views:

118

answers:

6

Hi guys, I'm really interested in being a good programmer. So far what I've been doing is just reading a whole bunch of my friend's dad's programming books. I've been just kind of stumbling through and no help can be gotten from my friend's dad because he's kind of gone... for a long time. haha.

Anyway, I think I'm getting nowhere just reading, and need to start programming. So I decided I wanted to create a website using Python (the language I'm learning to program with), and was wondering how I should go about this.

Should I try make a website without a framework first and then use a framework, or vice-versa? I got books for both ways, but I swear I'm going insane from all these tech-book reading. I'm so sick and tired of reading haha.

+1  A: 

I would recommend to start with a framework. Then, you can focus on the application logic. Then when you understand how to make the app, you can dive into details and try to understand how a web app is working.

Django is one of the most popular web framework in Python. There is an excellent tutorial available here http://docs.djangoproject.com/en/dev/intro/tutorial01/

It can be a more practical way to get started. You 'll learn about Python, Django and web technologies in general.

I hope it helps

luc
Thanks! So I guess I'll try learn through a framework first then
NoIdontwant
Yes. I've updated my answer
luc
+1  A: 

I suggest that you build something, anything first. If you have time to spare and are new to web development then building a small web application without using a framework wouldn't be a bad idea.

Once you are familiar with the ideas you can re-write your application using a framework. This will give you a better idea about what frameworks can and cannot do. There are several frameworks to choose from, but that is for another day.

So, get coding!

Manoj Govindan
Thanks for your answer!
NoIdontwant
+3  A: 

Read and work through Dive Into Python.


Once you've done that:

Do some Project Euler problems.

Read the Django tutorial.

katrielalex
just checked out Project Euler. Pretty awesome.
NoIdontwant
+1, I clicked on this question to post almost the exact same thing. That is about how I taught myself Python (though it wasn't my first language). I started with Euler problems, I knew what I needed, and lots of Google to find the pythonic way of doing what I needed.
Matt S
+1  A: 

I would suggest using a framework first. Theres a couple of reasons: First, a framework will save you (some) time on thinking about how to architect the major parts your site (this can be a pain). Also frameworks tend to have some ability to auto-generate some of the code/database interactions that you need, that will keep you moving faster which will give you that oh-so-important feeling of accomplishment that we all need when learning something new.

Second, a framework will most likely also have plugins developed for it that will save you time since you won't have to reinvent the wheel.

Third, if there's a framework then there's a community supporting it that you can go to for help when you get stuck. (You've started right, keep asking questions!)

On the flip side, not using a framework will get you into the nitty gritty of web programming and help give you a more base understanding of what's going on. However that would probably be better left till you feel more comfortable doing that.

Good luck!

lyrch
Oh okay, that sounds good too. I think I can get hold of a pylon book too
NoIdontwant
+1  A: 

I have been teaching myself Python for about a month, so hopefully my advise will be useful. It sounds like you haven't actually started writing code, so it's really important that you start small and work your way up to django. I know its painful, but in the long run it will save you a lot of frustration. When I started with python I tried to do cool stuff instead of manipulating loops, numbers and strings. I realized that I was mostly just copy/pasting people's code, and then changing a couple values instead of actually writing code because copy/pasting yields cooler results. Also, I would have saved myself a lot of time if I understood the difference between a list and a dictionary and how to use them properly.

Here are some of the resources that helped me the most:

Think Python: How to Think Like a Computer Scientist

Dive into Python

The Python Standard Library (keep this under your pillow)

Think Python is geared towards the first time programmer, and I felt it was the most helpful resource. A lot of people in the community love Dive into Python, but I felt that it was not thorough enough for me as a first time programmer. It was still helpful to read the same information stated in a different way. And of course the Python docs which they appropriately state, you should "keep this under your pillow."

Once you are ready (or bored of exercises which probably won't take long) you should try to do some of the Project Euler problems that someone already pointed out. You can sort them by difficulty, so I recommend you work through them that way. Don't be afraid to skip a problem and come back to it. I found that you can reuse code and ideas when solving many of the problems.

I don't haven any experience yet with django (I didn't quite understand the tutorials so I never tried using it) so I can't give you any advice on that. Good luck with programming!

FlowofSoul
A: 

Using Google App Engine is a self-contained book that will teach you all you need to develop web applications in python, and get them hosted (for free) on Google App Engine. Here is a review of the book from Philip Greenspun:

Using Google App Engine, a recent O’Reilly book by Charles Severance, is a very rare animal: a self-contained book on software development. An intelligent person who had never written a computer program could, without referring to other books, develop a very simple application running on Google’s servers. The book has been slammed by some nerd reviewers on amazon.com for being shallow and wasting time explaining what HTTP and HTML are, but these are precisely the things that I like about the book. The chapter on Python starts with a section titled “What is Programming?”

A person doesn’t have to devote his or her life to reading dozens of interlocking books. This 240-page book is sufficient for a satisfying introduction to the world of cloud nerds. If the reader wants to go deeper, the online docs for all of the subsystems described in the book are available.

namin