Programming
There are several ways to learn programming and plenty of languages to choose from. The good news is that even though they are not the same, they are often analogous; once you learn one programming language, most others follow easily. Codecademy.com provides practical knowledge and lets you program interactively as you’re learning. It’s ideal for the basics, but will not take you too far down any path. If you’re interested in web development, and want to get started right away, take a look at Codeacademy’s HMTL/CSS track, as well as the one on Javascript. If you want to take programming more formally and more seriously, try Python or Ruby.
Another good resource for learning programming is udacity.com, which allows you to access courses— introductory through advanced—for free. For those interested in classical programming, I recommend starting with its Java or Intro to Computer Science classes; for web development, I recommend HTML/CSS.
Modern development requires much more than just programming skills. For those learning how to program, this is sometimes the hardest step. While your efforts may seem far from any real software, it’s essential to keep working. If you’ve made it this far, you have the building blocks from which all software is made.
Level up
After learning basic programming, it’s important to understand some of the theory behind software development. At this stage, it may still be difficult to understand everything you’re reading or doing, but that’s okay. Take it slow and use Google and Wikipedia often, but keep moving and, don’t get stuck on any one topic.
For Javascript/web developers, take a look at eloquentjavascript.net, which may contain some duplicate information, but will certainly improve your skills as a programmer. Udacity’s web development course teaches web fundamentals, and will get you ready to program your first web app. Try making a chrome extension using the knowledge that you have gained so far, or develop your own personal website.
For the Python/Ruby programmers, check out the free eBook “Think Python,” or the last few pages of learnpythonthehardway.org/book or learnrubythehardway.org/book, especially the “next steps” section, for more advanced topics in your language of choice. Udacity’s “Intro to Algorithms” provides a broad overview of commonly used algorithms in computing. The Django Tutorial (for Python) or the Rails Tutorial (for Ruby) will teach you about useful frameworks for developing web applications.
Both groups should also learn to use the command line at this point. It is a different way of interacting with the computer through text rather than through the mouse, and teaches a lot about how programs interact with the computer. cli.learncodethehardway.org/book is a good resource for this.
Join the club
Finally, it is time to put your skills to the test by getting involved in the programming community. Github.com is a great site for finding new tools, sharing code, and contributing to open source. The name comes from git, a version control system that is incredibly useful for programmers. atlassian.com/git/ contains everything needed to become a git master.
Hack McGill hosts hack nights and other meet-ups throughout the year. , which are great ways to meet other programmersAttend a ‘hackathon,’ a 24+ hour coding marathon where teams build working software from scratch in a friendly competition.
Mastering programming is in no way simple, but hopefully this guide will help provide you with a foundation that you can build on as you move forward in your programming career.