Introduction: Learn to Code

 "Learn to code" as an expression has become a meme by this point. If your job has been made obsolete either through outsourcing or automation, and you complain about this fact on social media, inevitably somebody will tell you "learn to code."

Much like the horse-buggy whip industry with the advent of automobiles, a lot of our jobs are quickly going to the machines. It got so bad for the whip-makers that they actually tried to pass legislation making driving a more miserable experience so people would opt to continue to use horse-drawn buggies. Imagine if somebody told them: "learn to make cars!"

There are many jobs that can't be offloaded to the robots, and there are equally just as many that shouldn't. However, unless you're in one of those professions, chances are that your job is in jeopardy (speaking of which, remember Watson?). Since the robots are most likely here to stay, it's probably in your best interest to embrace the fast-approaching future and learn how to code. Coding, of course, is used to instruct the robots, to help them make the right decisions on how to process its domain. That being said, software development, while parts of it can be automated, there will always be a need for people who "speak robot." Maybe in a hundred years, we'll have robot psychologists. Nowadays we have code debuggers. The principle is the same: find problems in the instructions and provide a fix for them. It could be as simple as making those red Terminator eyes a more appealing shade of green, or as complex as turning Skynet into WALL-E.

But where should you start? There are so many resources out there that even finding a place to start seems daunting. Even I myself was having trouble deciding on how to start this blog! So, hopefully by my finding a good place to start, I could help you find a good place to start.

This blog is aimed towards a goal: to take someone at any level of programming skill (starting with an absolute beginner) and help you advance towards becoming an expert. I hope to blend the sort of how-tos you'd find on a blog like this with a more academic lesson format, and will try to appeal to different methods of learning. 

The lessons will be organized by difficulty (think, 101, 202, etc.). For each lesson, we'll cover the topic, break down complicated vocabulary, find out why we should care, see a few examples, and do some hands-on work. At the end of each lesson, there will be some questions that you can answer (I had a history teacher in high school who made all homework optional. He called these Home Learning Opportunities, and gave bonus credit if you actually did the work. Additionally, there was a direct correlation between students who did the HLOs and students who did well on the exams). These questions are completely optional, and I will provide answers to the ones that require a more human response (though my answers will not always be the end-all, be-all for that question, and I encourage you to challenge my answers). There will occasionally be programming exercises as well. For these, I will provide a series of test cases that you can execute against your code (if this seems like a scary idea, don't worry! I'll go through how to set this up before you'll be expected to do it on your own).

In the end, I'll walk you through everything you'll need to know, so that no matter where you are in your programming journey, you'll be able to get up and running on your journey to learn to code.

However, please note that I am a human, and as such, I am capable of making mistakes. While I will do everything I can to make sure that my instructions are complete and accurate, I might be wrong, or I might be missing something. If you discover a problem, have a caveat to something I say (no matter how pedantic), or even are having trouble following the topic, let me know. If you're doing your due diligence (that is, you've done the previous lessons), I don't mind doing mine.

So, happy coding!

Comments

Popular posts from this blog