

Ask HN: Am I learning Python the right way? - naithemilkman

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.<p>What I have done so far:<p>1) Finished Learning Python the Hard Way<p>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.<p>3) Did HeadFirst Python but stopped half way. Didn't like their approach. Thought their HTML/CSS series was better.<p>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.<p>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<p>6) Once again googled for it but found nothing. Posted the question on SO and getting flamed for asking a newbie question.<p>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?<p>I'm pretty sure that I still wouldn't have found the answer to my question (use list comprehension) by doing so.<p>tl;dr: What's the best approach to learn python for a beginner?
======
limedaring
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.

------
roxstar
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.

~~~
naithemilkman
Project Euler got hard for me really quickly. Thanks for tips.

------
cd34
Dive into Python is pretty good if you're a programmer already.

[http://code.google.com/edu/languages/google-python-
class/ind...](http://code.google.com/edu/languages/google-python-
class/index.html)

Some sites are a bit harsh to people new to a language.
<http://www.reddit.com/r/learnpython> is often much more tolerant.

------
rst
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...

------
pdelgallego
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.

