The first step
console.log('Hello World')

One of the first things that you should do before considering coding is taking a free class from Harvard. This course is called CS50 and it serves as a great foundational knowledge source. The course provides the "whys" for why programming languages work and how they work together too. It is also completely free, so why not take a free course and expand your own knowledge too?

Here is the link that can take you to the course information. CS50's Introduction to Computer Science

Some of the things that you will learn during the course are

  • A broad and robust understanding of computer science
  • how to think algorithmically and solve programming problems efficiently
  • Familiarity in a number of languages, including C, Python, SQL, and JavaScript plus CSS and HTML
  • How to engage with a vibrant community of like-minded learners from all levels of experience

After taking some time in the course, or if you may have skipped it all together, you can continue on with the websites down below. I have included free resources to use. You are more than welcome to donate to them, or even pay for the pro version for one of them. I can not speak to anything else besides the free ones, because broke teacher over here.

I am going to be completely honest, I did not take this course first. In retrospect, I did not need to take the course to begin building things from code, but I do wish that I took the course sooner to get a better understanding of Computer Science. I did not finish the course either though, because I found I learned better with the

FreeCodeCamp
Just because it says free doesn't mean it is easy

I personally started with FreeCodeCamp when I got into coding. Like others who started with FreeCodeCamp, I began with the Responsive Web Design Certification. During this course, I began to learn about HTML, CSS, and some JavaScript. I actually made this documentation page as one of their certification projects for that course.

Using just FreeCodeCamp though made me realize that I had gaps in my education that I wanted to get filled. That lead me to looking into the other two resources below.

FreeCodeCamp offers such a great curriculum though! That is coming from a teacher and understanding the learning process. The curriculum is laid out nicely along with the hands on practice that is needed with coding.

Their courses include

  • Responsive Web Design
  • JavaScript Algorithmis and Data Structures
  • Front End Development Libraries
  • Data Visualization
  • Back End Development and APIs
  • Quality Assurance
  • Scientific Computing with Python
  • Information Secuity
  • Machine Learning with Python
  • Coding Interview Prep

You can begin their courses here. FreeCodeCamp Learn to Code

After completing the Responsive Web Design course, I do plan on going into the JavaScript Algorithmis and Data Structures course. I really do enjoy the curriculum laid out for the current course I am. I have found many opportunities to practice what I was learning throughout the course, but I would definitely recommend that you use all these resouces together. There is a specific reason for that, which I will cover in the Personal Projects section of this document.

Code Academy
The prettiest to use and offers a Pro Version

The next resource that I found is Code Academy. I ended up doing some of the courses within the Learn HTML, Learn JavaScript, and Learn SQL courses.

Within the Learn HTML course, I had the opportujity to practice what I had learned in the courses from FreeCodeCamp. It was nice though to see that the skills that I had devloped in HTML were transferable and I felt started to understand a little bit more of the language.

The next course that I started was the Learn JavaScript course. I did have some experiece with JavaScript because I was taking courses in Galvanize's Engineering Bootcamp Prep. Once again, it was nice ot see the knowledge that I had gained was transferable into what this course was asking for.

Last was the Learn SQL course that I took. I have to be honest, this was something that I just started but did not really get into it. Looking at data and tables like that just was not for me.

Code Academy offers many courses that include

  • Learn how to code
  • Python
  • Front-End Engineer
  • Web Development
  • Data Science
  • Full-Stack Engineer
  • Video Resources

Code Academy also offers a pro version of their curriculum. I have not used the pro version, but from what I have understood, the pro version offers more projects for you to build as you progress through the curriculum.

You can begin their courses here. CodeAcademy

Out of the three options, Code Academy is the "prettiest" in terms of the layout of the website. I have competed half of the HTML and JavaScript course that is offered through them. The projects that are offered in the Pro version seem neat to make, but there are also free resources out there to develop your understanding.

TheOdinProject
This one challenged me the most

The last free resource that I came upon was called The Odin Project. I have to be honest, I am happy that I came upon this one last and already had some background knoweldge from the previous two resources.

The Odin Project pretty much throws you right into the curriculum. I have to say that one of my favorite things though is the use of vidoes throughout the lessons. The lessons are webpages that also send you to outside videos to gain a better understanding of the material that is being presented.

Once you complete the Foundations course, you are given the options to take two paths.

  • Rails on Ruby
  • Full Stack JavaScript

The two paths are the same in that in the end you will know how to create beautiful responsive websites from scratch. The only difference is the Ruby on Rails teaches you Ruby, while Full Stack JavaScript teaches you JavaScript and NodeJs.

I have spent the least amount of time with the curriculum set through with The Odin Project. I do have to say though, that even though I spent the least amount of time with their curriculum, the curriculum set out from The Odin Project has been the most impactful for me as a Developer. What I mean by this is that the curriculm and videos that are provided are great but the gaps in my skills were very prevalent. During one of their courses, I had to manipulate some CSS code and had no idea what the user story was asking for. This is why I recommend using all of the free resources together. There are gaps that each one covers for each other.

Personal Projects
Easily the favorite once you get some skills

The last thing that I would say that you will need to do to get better at coding is personal projects. I entered an Introduction Bootcamp courses and ended up hating it. The reason was because of the projects that I needed to make. They were projects that I just had no passion for making.

are exposed to many different things you can make. These personal projects, coming from a teacher perspective, is what fuels creativity and learning. Personal projects though take time. There is time needed to research, code, test, practice, cry, and get frustrated. Besides the free resources above, there are also great coding documentation such as Stack Overflow and W3 Schools. I have spent so much time just looking over the coding templates provided through them, just to understand how to write code better.

Coding is something that you have to do daily to get better at it. I can even tell you that in the few months that I have practiced, my code is so much neater, but also more complicated for what I can do. There is so much more to learn though and that is what makes coding and learning beautiful. There is always something new to learn, if you are willing to do a little bit better each day.

The process is not linear to learn how to code. I think back and the things I can do and know now compared to September, I would have never guessed possible. I know though that there is so much about coding and technology that I do not know about at all! That feeling of being okay with not knowing answers is the beautiful thing about coding though. You are going to need to be okay with being uncomfortable, wrong, and frustrated.

With daily practice though, even small steps, you will get better at coding. That counts for even days when you do not feel like touching your keyboard. A small step is better than none.