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.
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.
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.