If you're a living person in the workforce today you've probably considered the use of learning to code at some point. This article takes a look at the why's, where's, and how's of getting started with a new coding language.
Why Learn To Code?
All of us use technology everyday, yet so few of us have a solid (or even basic) grasp on how our daily technologies function. As a young man with a solid DIY ethos, I feel an imperative pull to have at least a conceptual connection (if not an actual one) to the technology and contraptions in my everyday life. Numerous tech honchos have declared coding to be the new literacy and frankly it never hurts to add a skill set that will flex your brain's computational problem-solving skills while also giving you the potential for a raise.
Especially if you're a man with a DIY attitude who's limited by physical resources, coding can be a great way to experience the zen space of a methodical building process, except without the need for tools or materials. Plus at the end of the day, you'll have something cool and tech-geeky to show for it.
Where To Start?
The first question to answer after embarking on a quest for coding literacy is which language to learn. Unfortunately that depends on what you're interested in, and even then there's some disagreement about which languages are easiest or most useful to learn.
One thing that people often repeat is that no matter which coding language you pick, your first language is going to be the most difficult to learn. As with spoken languages, it takes time to wrap your head around understanding a foreign syntax and language structure, but once you're able to get past that, it's much easier to apply your newly limber conceptual framework to comprehending a second and third language. In that sense, the most important skill is learning to "think like a coder."
C on the other hand is one of if not the most popular language to learn, but it has one of the steepest learning curves. Lifehacker writes, "C is a 'machine level' language, so you'll learn how a program interacts with the hardware and learn the fundamentals of programming at the lowest—hardware—level (C is the foundation for Linux/GNU)" and also makes the comparison that C is to programming what basic anatomy is to a doctor. Everyone that I've spoken to that started with C is happy that they know it, but only about half of them recommend it as a starting language since it takes so long before you can really do anything cool with it. That said, maybe you're one of those people who doesn't have a problem plunging in and sticking with a difficult course of learning and you just want to commit to being a badass from the get-go… then C might be a good one for you.
Python is pretty well-loved for its simplicity and far-ranging capabilities. It generally requires fewer lines of code that are easier to read and is also more forgiving with mistakes. It's been rising in popularity since it's been used on websites like Pinterest and Instagram. It's also the official language of United Space Alliance (NASA's shuttle support contractor) which isn't nothing.
Places To Learn:
MIT's Open Courseware offers quite a few courses you can pick through such as Introduction to Computer Science and Programming, Introduction to Programming in Java, and Practical Programming in C. The entire class materials are online including lecture notes, homework sets, exams and more – and it's entirely free. Other great places to look for free course offerings are on Kahn Academy and Coursera, or try googling CS courses from Stanford University.
Introduction to Computer Science is just one of Udacity's many well-regarded college courses in coding. You can peruse the course materials for free, but this one costs money to take one of their guided courses (although it does come with a personal coach).
Finally, it's worth looking for intensive code boot camps in your area. The courses are usually 2-3 month intensives for guys who are looking to improve their personal market value. These real-world courses have been cropping up all over in the past few years and are great for those who are looking to learn skill in a classroom setting alongside peers who are pursuing the same ends.
Here are some great resources that helped inform this article if you want more in-depth information on the next steps in learning coding: