Resources I Used to Learn to Code

This blog post came about as a couple of people have asked me how I learned to code. Before you get stuck in, I wanted to mention to that these are just the resources that worked for me and there are many roads to coding success!

Secondly, learning to code is not "hard" in the sense it requires some mental wizzardry, but it is confusing and not getting discouraged and giving up will take a lot of grit. It's not so much about your mind as it is about your mindset!

Ok, so here are some suggestions. Basically my flow was build static websites, then add some JavaScript, then add a backend (log in, save data, etc), then learn better JavaScript and try to more complex stuff on the backend, and so on. It was very iterative.

To learn HTML/CSS, what worked for me quite well was this site:
http://htmldog.com/

As well as "Learn HTML and CSS in 30 days"
https://webdesign.tutsplus.com/courses/30-days-to-learn-html-css

And then I built a few simple static sites and started to use Bootstrap to make things responsive - http://getbootstrap.com/

I also used this book for HTML (it was a good beginner book):
HTML & CSS - Design and Build Websites by Jon Duckett

And this one for CSS (which is actually more advanced and I wish I'd rather left it for a little bit later since it was all Greek at the time and I forgot a lot of things!):
CSS Mastery: Advanced Web Standards Solutions by Andy Budd

I don't know if you need books - I am just sort of a book person. It make me feel more secure. Everything is on stackoverflow.com and I use that tons!

Then for learning programming, I did a combo of things.
Code Academy and Code school courses were good in the beginning to get my feet wet, but the thing I struggled with was how to actually write code in a text editor in folders on my computer and then get it to run. So what worked for me was to move quite quickly from the browser to Sublime Text.

Then I did the CS106A Programming Methodology course from Stanford which was great - I felt it was a useful amount of theoretical knowledge and helped me gain confidence with solving more algorithmic problems. The projects were particularly were great for me and I felt I learned a ton doing them!

I hear good things about MIT's open courses too.

At this stage, the most important thing is that you are writing programmes or building websites. There's really no trick - you just need to write lots of code!

Udacity nanodegrees is helpful here with getting specific projects with guidelines on how to start and building stuff. Whether you start to build stuff alone or use a course for guidance doesn't matter, as long as you're now writing lots of code. At the time, Udacity was free and now it's paid, but I still think it's worth it if you like to have some structure.

After a bit of time, this more advanced Javascript course is good - Javascript Is sexy.(It's now a whole thing with career paths and such, but what I did was an 8 week long "Learn Javascript Properly" course). I recommend this after you have gotten comfortable hacking around a bit.

For back-end, I mostly know PHP and I found PHP The Right Way to be super helpful.
I also used this Ruby on Rails tutorial to learn Rails and it was very good.
I also did Stanford's open databases course.

Then, I just built a lot of websites and kept Googling.

It took quite some time to do all this stuff listed above and some projects and client websites (about 15 months, full time) and I felt like I was in this Valley Of Frustration for more than a year. You can read about it here.

If you have resources that you like I would love to hear about them and make this a more collaborative effort to make a nice guide for others starting out on the journey!