This is a continuation of a previous post that aims to be a very subjective guide for those who, like me not long ago, have a strong interest in programming but do not know how to start.
On part 1 you got some advice about what being a programmer, you picked up a language to learn ( and hopefully you chose python) and you more or less learned that language syntax.
4. Do Udacity's Web Development course
Even though you might not be interested of creating software that connects to a machine (i doubt it though), the Internet is a tool that everyone, especially a programmer, should know how it works.
And if you are reading this, chances are you don't.
Don't get me wrong, one of the most amazing things of the Internet is how everyone can use it without having any idea of how complex it is. I had no idea myself until I did this course.
The course is taught by Reddit's cofounder Steve Huffman and uses Python to build a sample application.
5. Pick a project.
This step is tricky.
One of the most important skills a programmer can develop is the ability to break a top level program into specific processes.
For example, to build a program that sends tweets, that program needs to connect to twitter's server, allow the user to write some text, be sure that each tweet doesn't exceed 140 characters, etc.
As you become a better programmer you will be able to more acurately define a project and assess how hard it will be to build it.
As of now there are a couple of sites that can help you chose a project
- Reddit's /r/dailyprogrammer. Daily programming challenges, labeled by difficulty level.
- Martyr's Mega Project List. This list isnorganized by project domain, and each domain list is sorted by difficulty. Each exercise has links to solutions as well.
- Project Euler. This site focuses more on mathematical projects but the projects are sorted to be increasingly challenging.
And here are a couple sites that are Python specific.
- Python Challenge. This site provides a set of quizzes that can be solved using python. You can check the answers here.
- Prepare Python A blog that I recently discovered that provides weekly projects for entry-level python developers.
Hopefully you wil be able to chose a project by now. One of the most important aspects of that project is, you need to feel excited about it. In my opinion the first programming project is the most frustrating one, because the challenge is not only the coding itself, but finding a method to find information, a method to fix errors, the appropiate set of tools and so on.
I will go in more detail on section 3.