I was at the Boston Python Meetup tonight. It was, as always, an interesting mix of old hands and new people looking into Python as a language (and/or way of life). One question tonight was, “How should I get started with Python?”
The usual answer to this question covers book and sites that teach the language. There are plenty of them, go find one that resonates with you. Beyond learning the details of the language, though, here’s my advice:
The best way to get started is to find a problem that really interests you. Maybe it’s a tool that would be really helpful at work. Maybe it’s in a field in which you are an expert. Maybe it’s revisiting your high school science fair project. Whatever it is, it should be something you are excited about. Learning a new language can be difficult, so having a real drive for the problem at hand is good for getting you through the thorny parts.
I’ve found toy example and other people’s simple projects to be not that great for learning from, they run out of steam really quickly. I need a real problem at hand to solve.
If a project of your own isn’t on the tip of your fingertips, you can try joining an existing project. This can be a good way to get a supportive community who can help you. Here, my advice is to start small and humble. Find a project that interests you, and find out what help they need. Don’t try to take on too much.
Some people barge into a project announcing great ideas and grand plans, but it’s awfully hard to deliver on those promises. They also may not have a sense of the culture and history of the group. You may have big ambitions, but keep them to yourself at first. Ask what you can do, choose something small to accomplish, and get it done. Then you can find a bigger thing to do.
The great thing about getting started with a language like Python is there is a very strong community. The same goes for Ruby and Perl. These are languages created by open-source amateurs for use by open-source amateurs. Everyone involved is there because they want to be. Other languages (C++, Java, etc) have their proponents, and lots of enthusiastic followers, but they also have their share of people who fell into it, or were required to use it, or believed the marketing of some company that had a vested interest in it.
So pick a community, pick a project, and get started. Python is very welcoming.