Yesterday, I posted about some traditional strategies to acquire data science skills. Today, I will post a nontraditional strategy.
There is hoards of data science information available on the internet for free. With enough personal motivation, a person could learn all the skills necessary for free (or cheap) online. Coursera is probably a great place to start. There are also other good sites such as Udacity, the Kaggle Wiki, other blogs and websites.
The problem with this approach is knowing exactly what to learn. A course in machine learning is great, but data science is more than just machine learning. How do you know what to learn? It would be really nice to have a collection of data science topics and the associated online training materials.
Would this strategy work for you?
Since recently announcing $16M in funding, Coursera has been making quite a bit of noise. Last fall, Stanford University decided to freely offer a couple computer science classes online. The response was huge, and that led to the creation of Coursera.
The courses are no longer limited to computer science, and Stanford is no longer the only school involved. Here is a list of academic areas being offered and another list with the schools involved.
Although, not all of the courses will be directly related to data science, many of them are very close. Naturally Math, Statistics, and Computer Science areas have direct relations to data science. However, some of the other areas such as Networks, Biology, and Economics are some of the most popular application areas for data science. This is very exciting. My only concern is that the courses are a bit too much like traditional university courses with specific start/end dates and homework due dates. It will be interesting to see if the course structures change over time.
Anyhow, the following courses are starting today. Signup and start learning.
- Machine Learning – A major focus area of data science
- Computer Science 101 – probably a good starting point if you don’t know how to program
- Compilers – good for understanding how programming languages work
- Automata – hard to explain in 1 line, but it contains some fundamental principles in computer science
- Intro to Logic – learn to reason systematically
- Computer Vision – not sure of the relation to data science, but I am sure there is one, if you know, please leave a comment
Are you going to enroll in any of these courses?
Coding (a.k.a. computer programming) is not the primary function of a data scientist, but some coding skills are necessary. Modifying machine learning algorithms or scaling/altering data are both good examples of when writing a few lines of code could be very beneficial. Well, if you have desire to learn to code, then there is no time better than the present. A handful of companies have recently launched products that will help with just that task.
- Udemy – not specific to coding, but there are many computer programming classes available
- Code School – The courses here are focused on web development. If you want to learn the ruby programming language and eventually Rails, this may be a good place to start. Plus, you can currently get access to all courses for $25 per month.
- Code Lesson – Courses are not free, but the range of courses is nice. Also, the courses are structured to fit the evening/weekend schedule. Update: CodeLesson does offer free courses, see here.
- Codecademy – Probably the most interesting site on the list. If I did not know how to code, I would probably start here.
- Coursera – Soon they will be offering CS 101. I have not seen a syllabus, but it may serve as a good resource for learning to code.
- Of course, there is always the option to go to college. Nearly every college or university offers at least a class or two about programming. This is probably the most expensive route, but if you thrive in a classroom setting, then this is a good option.
With all the options available, there are others too, 2012 might be the best year ever for learning to code.
Are you aware of other sites devoted to helping people learn how to program?