It’s been increasing clear to me over the last year or so that computer programming is a vital skill to have, and will only become more useful as technologies further develop. No matter what discipline your work or hobbies fall under, understanding how to communicate with technology will probably help. As will.i.am puts it, “great coders are today’s rock stars”. And as the guy before him in this inspirational video puts it, “the programmers of tomorrow are the wizards of the future”. I want to be a wizard. Who doesn’t want to be a wizard?
A huge part of learning a new skill, especially one as complicated, in-depth, detail-oriented, and, frankly, frustrating, as learning computer code, is to stay motivated and determined. My journey into this world, because I’m doing it on my own and not as part of an educational program, has drawn upon dozens and dozens of resources. It’s amazing that I have all these at my disposal through the internet, but it’s also hard to stay focused and really dig deep into them because there are so many to be distracted by. I’m slowly getting better at figuring out what resources are useful for me right now, and which are not helping.
I recently started following Harvard’s CS50 intro to computer science class that they offer free through the EdX online learning organization. In the past I’ve found free online classes to be uninformative, poorly organized, and frustrating; however, this one so far is extremely impressive. All of the information, slides, resources are located in one spot online. There are no expensive textbooks to buy to accompany the free course; all the material is provided. The lectures are interesting, the pace takes into account both square-one beginners (me a year ago) and people who kind of understand what’s going on and can code basic projects, but are still very much beginners (me now). I enjoy that it doesn’t focus on one computer programming language, but uses a few different ones to illustrate important aspects of logic, diving right in to basic but interesting projects.
I also appreciate that the course works really hard to make computer programming sexy, marketable, community-oriented, and fun. Some of the performances and gags are a little hokey, but I appreciate them anyway. They really show that the course organizers understand how intimidating programming can be, how hard it is to get started, and that they don’t want anyone to miss an opportunity to learn this important set of skills.
Maybe I’ll put together an outline of the resources I’ve used so far in case anyone would find them helpful. Until then, this is a great place to start.