Why am I learning to code?

I'm in my mid twenties and I have been thinking about changing career (even though I'm currently only at the start of one) for a year or so. Over the summer I read Gödel, Escher, Bach: an Eternal Golden Braid by Douglas R. Hofstadter which is what initially got me interested in computers. I've always tinkered but I never really understood what was going on 'under the hood'.


After finishing Gödel, Escher, Bach I started looking into what it would take to get into artificial intelligence and machine learning. It turns out these are in vogue at the moment but the learning curve and the years it would take to get to a position where I could get a job in the field seemed too large. I then found my way to Codecademy which is a great free resource for getting started in learning to code. I had previously started working on the Python course a year or two earlier but this time I stuck it through and completed the course. I decided to create a new account than pick up from where I was last time, clean slate and all that. Persistence is key. Just because you may have not got very far last time doesn't mean you won't this time. Push through and don't get caught up too much thinking about what happened the last time you tried.

After completing the Python course I was a bit stuck with what to do next. I knew I wanted to delve deeper into one language rather than sample a few but I didn't know where to go. I ended up searching on Amazon for any books that might be of use and I stumbled upon Automate the Boring Stuff with Python by Al Sweigart. I decided to buy the book instead of using the useful website. I always prefer a physical book over reading from a screen. I started working through the book but a few chapters in felt like I wasn't getting anywhere. I felt like I was just reading a copying and nothing was going in. The practice projects at the end of the chapters were great but just didn't feel quite enough.

I then had a sort of epiphany about learning to program:

The languages aren't the important bit, it's the ideas behind the languages that are important.

I decided to seek out a course that would give me the fundamentals of how programming computers works, and this is what lead me to CS50x (Introduction to Computer Science) from Harvard on the edX website. I am currently on week 4 of this 12 week course and I feel I am gaining so much more information about how to program. The language the course starts off in is C, which was a challenge at first, but now I can see the similarities between Python and C a lot is starting to click into place. I am really excited for where this course is going to take me, and I will be posting soon with more in depth details of the things the course is teaching.

Thanks for reading and happy coding!