Leonhart comments on Learning programming: so I've learned the basics of Python, what next? - Less Wrong Discussion
You are viewing a comment permalink. View the original post to see all comments and the full post content.
You are viewing a comment permalink. View the original post to see all comments and the full post content.
Comments (67)
Learn a framework for developing web applications. Specifically, learn Django.
This is because most new applications are web applications, and because you can write a satisfying application without knowing much. Also, you get immediate feedback on your code -- you can see whether or not the app is coming out the way you want.
Django is recommended because (a) it is written in Python, (b) it is relatively popular, and (c) it is similar to Rails, which is very, very popular and thus easy to get hired for.
(in parallel with 1) Decide on an application that you want to write, and write it. Put the code on Github or Gitorious or Bitbucket (as you go -- not just once you finish).
If you are exited about getting involved in free and open source software, it's usually best to work on a project that you actually use. That way, you at least understand some of how users expect the program to work. Unfortunately, the programs that you use are likely to be the ones used by zillions of other people, so much of the low-hanging fruit will be already plucked. But maybe you have a more obscure interest which involves software? For instance, I have added features to electronics schematic software, vector graphics software, an interactive fiction virtual machine, a search engine, and a bunch of other random stuff. If you don't see a feature you want to add or a bug you want to fix, just take a look on the bug tracker and see if anything catches your eye. Don't worry if you can't fix any given bug; if it were easy, someone would have done it already!
Oh, and one more thing: Consider taking the Algorithms and Data Structures class on Coursera. It will make you a better programmer, and help you with job interviews. When I am interviewing programmers, I always ask candidates to name any algorithm or data structure and tell me how it works.