5 Resources to Learn Programming

In last few years I have seen an interesting paradox first hand. While there are so many companies looking for good technical talent, there are also thousands of engineering graduates looking for technical jobs. And what explains this paradox is the skill mis-match between what companies need and what these grads own. Unfortunately, most of the engineering colleges are failing to impart these skills required in Industry. Take for instance, programming skills – I have met many computer science grads in last one year who do not know programming. I am not an expert in programming, but being a geek, I have been able to aggregate some resources that might be of some help.

1. Udacity – Udacity is an interesting startup offering free courses from the greatest teachers. One of the current course running is CS101: Building a search engine and Udacity claims to teach enough programming in seven weeks that you will be able to build a web search engine like Google. The best thing is that this course does not need any prior programming experience. The programming language used is Python. Although the course started on 20th Feb, you can still join it or join in next session.

2. CodeAcademy – Yet another startup, but the approach is different from Udacity. Instead of using videos, Codeacademy provides an interactive web application to learn programming. The app goes in step by step manner through each lesson and exercise. As of now, Javascript courses are available and this is a good start. The web app also keeps track of your progress. In addition, there is very engaging QnA platform in case you get stuck. The UI is clean and now since they have made it as a platform [means other can also create lessons], I think many more courses will be available very soon.

3. Khan Academy – Salman Khan has been in the limelight for some time (I had written about him earlier here). Surrounded by lot of hype there is some substance in his style of teaching. The best thing about this videos is the simple and casual language used. However, these videos are not enough if you want to pursue programming seriously but can be a good starting point. Heres the link – http://www.khanacademy.org/#computer-science

4. Project Euler – Project Euler is a series of problems in mathematics and programming. A good collection of problems to solve and the problems range in difficulty level. An example problem here –

Find the greatest product of five consecutive digits in the 1000-digit number

There are 366 problems I can see (without logging in) – enough number to keep you busy for a while.

Image representing Stack Overflow as depicted ...
Image via CrunchBase

5. Stackoverflow – If you are a geek, it is almost certain that you would have stumbled on Stackoverflow. With more than 2.8 million questions, and growing, this has become one of the biggest library of programming questions. There is very high probability that you will find the answer to the exact problem you are looking for and in case you don’t find, you can always ask.

So we have five different ways of learning programming. Khan Academy and Udacity are based on Video learning, Udacity is more structured and comprehensive. While Code Academy and Project Euler are based on problem solving. Codeacademy walks you through step by step , perhaps good for beginners and Project Euler throws a good problem and its all on you how to solve it. Stackoverflow is more like reference where you go when you get stuck with something. All said and done, as some of the programmers say, the best way to learn programming is by doing it.

Popular Programming Languages In India

A selection of programming language t...

Google Keyword Tool can provide good insights sometimes. While I was playing with it, I just compared the ratio of keyword searches for some programming languages in India vs Worldwide –

Keyword Global Monthly Searches Local Monthly Searches (India) Percentage of Local Searches
.net 506000000 20400000 4
c 226000000 9140000 4
php 101000000 4090000 4
java 83100000 6120000 7.4
html 55600000 2740000 4.9
javascript 24900000 1830000 7.3
asp 20400000 2740000 13.4
programming 13600000 1500000 11
python 13600000 368000 2.7
ruby 11100000 246000 2.2
perl 7480000 368000 4.9
coding 4090000 550000 13.4
actionscript 2740000 135000 4.9
software programming 2240000 60500 2.7
objective-c 1000000 74000 7.4
lisp 1000000 27100 2.7
groovy 823000 22200 2.7
Total 1074681100 50411800 4.7

Python and Ruby are not very popular in India compared worldwide, while Java, Javascript and .Net are relatively more popular.

Also interesting to note that local search is only 4.7 %age of total search for these specific keywords.