Technology is all around us – in our offices, on our living room coffee tables, in our pockets, in our hands, and even in our cars. The technology revolution unfurled in the early 1990s has seeped into every facet of our lives – from smartphones and laptops, to advanced navigation systems and computer controlled ignition systems in cars.
Every digitally controlled system runs on software. Netscape founder and Silicon Valley icon Marc Andreessen went so far as to say that “software is eating the world“. And since every piece of software requires programmers to code it, it is inevitable that in the near future, an active knowledge of programming will be a significant advantage in virtually any job.
According to Boston.com, ‘computer applications software engineer’ is the fourth fastest growing job in the United States, with a median pay of $82,000 in 2006 (a figure bound to go up as demand far outstrips supply). In fact, to get a job in any computer-related field, a working knowledge of programming is a must. Even in jobs that have traditionally been technology shy, such as journalism, programming knowledge today is much sought after as data journalism and online publishing upstages more traditional models. It goes without saying that picking up some programming knowledge will be of massive benefit to your career.
On the plus side, you don’t really need a degree to learn programming. Indeed, some of the most sought-after programmers in the world are self-taught. Ready to add a little programming to your skillset? With the ubiquity of technology, a number of free resources have cropped up online that will teach you programming for free.
Starting Out – Learning the Basics
Codecademy has brought about a small revolution in programming education with its innovative mix of instruction and practical application in an easy to access, easy to use single interface in the cloud. So successful was this model that Codecademy was able to accumulate over 200,000 users within a couple of months of launch.
For beginners, Codecademy is the perfect starting platform. Currently, its primary focus is on teaching JavaScript – a relatively easy language used on virtually every website. Getting a firm grip on JavaScript through Codecademy’s unique tutorials will give you all the tools you need to grapple with more advanced languages such as Ruby and C++.
Eloquent JavaScript is another highly recommended free book that brings a modern perspective to programming education. Combined with Codecademy, this book will yield ample rewards to the aspiring programmer and pave the way for more advanced programming subjects.
Beyond JavaScript – Ruby, Python, and More
Ruby (including its spin-off, Ruby on Rails), has a devoted following among programmers, who swear by its flexibility and speed. RubyMonk will teach you the syntax, idioms, and even the philosophy behind effective Ruby use in an interactive, Codecademy-like interface. As of now, RubyMonk is completely free to use.
Hackety is an alternative to RubyMonk that teaches the basics of programming in an interactive graphical user interface. While it does not have the depth of RubyMonk, it is perfect for beginners stepping unsteadily into the world of programming.
Python is an open-source, high level programming language that finds plenty of use in web applications. Python emphasizes code-readability, and is easy for beginners to approach. LearnPython offers easy-to-follow tutorials for the language that follow the Codecademy interactive model.
Crunchy is another resource to learn Python that goes beyond the basics taught by LearnPython. Crunchy is a downloadable application that delivers interactive Python lessons inside a browser window. The lessons cover beginner as well as advanced topics.
While not entirely pertaining to hardcore programming, a working knowledge of CSS is essential for any developer today, especially because of the growing confluence of desktop and web applications. CSS (Cascading StyleSheets) is used in conjunction with HTML to style web pages. CSS3Please offers a comprehensive tutorial on CSS3 (the most recent version of the CSS standard), although it assumes that you are already aware of the basic syntax and functions of the language.
SQL is a server-side language used in various avatars, particularly SQL Server and MySQL (MySQL is used as the database on most websites). SQLZoo offers beginner tutorials on the language and will get you up to speed on the basics in an approachable manner.
One higher-level resource every aspiring programmer must bookmark is Udacity. Udacity offers extensive tutorials on concepts related to computer science, taught by leading professors and programmers from around the world. The courses are designed as regular classes, with lectures, tests and tutorials. As of now, the courses teach you everything from programming a robotic car to coding a search engine.
Two more resources students should keep an eye on are Coursera and EdX. Both these platforms are in their infancy, but given the ambition and calibre of the teams backing them (EdX is a joint venture between MIT and Harvard, while Coursera has courses taught by Stanford, Princeton, UMich and UPenn professors), these two avenues should soon offer a wealth of programming knowledge (along with a host of other subjects). Best of all, these resource — like all of the ones mentioned here — are available for free.
What will you code?