Ask HN: Am I learning Python the right way?

5 points by naithemilkman ↗ HN
So I have some previous SQL experience but I don't think it counts for much. My objective is to eventually build a databound website using Python/Django by June this year.

What I have done so far:

1) Finished Learning Python the Hard Way

2) Went through the Django tutorial online. Realised I was still a long way off from trying to understand a Python framework and I wasn't grounded in the basics yet.

3) Did HeadFirst Python but stopped half way. Didn't like their approach. Thought their HTML/CSS series was better.

4) Spent the last week attempting to do exercises here: http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/index.php. I found the site randomly. Found myself asking more questions on Stackoverflow after I couldn't find the solutions through googling.

5) Got stuck on one of the questions where I needed to access a specific value from the tuples inside my list. I realised that must be a really basic thing you have to know

6) Once again googled for it but found nothing. Posted the question on SO and getting flamed for asking a newbie question.

I think I'm doing this the wrong way. I like material/books that encourages hands-on participation rather than books that just 'talk at you'. Should I just read a whole bunch of them beginner books over and over again?

I'm pretty sure that I still wouldn't have found the answer to my question (use list comprehension) by doing so.

tl;dr: What's the best approach to learn python for a beginner?

6 comments

[ 2.4 ms ] story [ 27.1 ms ] thread
You might see how far you get with Dive into Python (http://diveintopython.org/), though it is aimed at people with some level of prior programming experience...
This is kind of interesting: http://www.pythonchallenge.com/

I started out with python doing project euler (http://projecteuler.net/) though that really won't give you that good of a background in python for the web and I mostly learned by going through the tutorial on the python website and going through the docs.

If you want a book I think apress begginning python is among the more recommended books after you have started out, and for the sake of time and your wallet avoid oreily's python books as they are about 700 pages over length.

You might want to give the Python Essential Reference a try instead as it is quite a good reference and something like the first 6 chapters are a nice quick tutorial, though it probably is more high level than you want (probably read it in a store first).

The django book (http://www.djangobook.com/) is available for free and is good for learning the internals though it can be a bit dry and there a some screencasts for django around if you look.

Hopefully that helps.

Project Euler got hard for me really quickly. Thanks for tips.
So, I am by no means a Python expert, or even moderately good at it, but I've been making strides in learning by building my own webapp. See, things really didn't "click" until I had to apply them to something I'm personally interested in. I could do all the tutorials in the world but then as soon as I tried doing something on my own, I'd fail. The key is to just accept that you'll fail immediately when you start out (and feel like an idiot), but keep going and keep solving small problems until the whole website comes together.

Took me from early December to mid Jan to get a full website up from not knowing Python/Django in the slightest. (I did do 1.5 years in CSC learning Java in college, but transferred to an art major... but the prev. experience with a different language certainly helped with learning Python).

The app: http://weddinginvitelove.com

I started out by finding a tutorial doing something kind of related (took a blog tutorial, turned a blog post model into a designer profile). Found some friends who were experts in Django (both of whom I only knew through Twitter at that point) to bounce questions off of ("I'm trying to do this but it isn't working, what am I doing wrong?"). Their help was invaluable.

So, basically, just start doing it and you'll start picking it up a lot faster.

If you have beginner questions use the irc channel. There are many python releated channels. You can also use the mailing lists.

I recommend you to join your nearest Python User Group. You will be in contact with python developer, and sooner than later you will doing python for living.