views:

385

answers:

10

I am currently learning PHP and want to learn about OOP.

  1. I know Python is a well-organized and is all OOP, so would learning Python be a wise choose to learn OOP?

    The thing is I am more towards web development then just general programming, and I know Python is just a general purpose language, but there is Django.

  2. So how should I go about learning Python if I am lending towards web development? Is there any good books/websites that help me learn Python for web development?

  3. Is there any free webhosting companies that allow Python? I never used Python before, only PHP, and not sure how it works? Is there like a "xampp" for python?

+4  A: 

I would pick up a good O'Reilly book on Python and build a strong understanding of the fundamentals before delving into more web specific ventures. Once you've got the essentials then I'd branch out to things like Django.

Here's a good starting page:

O'Reilly - Python

And here's a good tutorial if you'd rather do your research on the web:

Python Tutorial

byte
thanks, i'll look into it. I just installed Python.
jpjp
+4  A: 

I learned Python reading the book Learning Python. I read almost the whole thing on a plane trip, and when I got home I was able to start building applications immediately. There are newer versions out since I read it (and it's longer), but I found it very easy to follow.

As mentioned by others, Django is definitely the place to start for Web development.

Andy West
well, either it was a long intercontinental trip or it was not 4 edition :-)
joaquin
Yeah, I definitely don't remember it being over 1,000 pages. It's been several years, anyway.
Andy West
+2  A: 

Work through the examples on www.pythonchallenge.com. Refer to the language documentation when you get stuck.

danben
+2  A: 

As long as you stay within their quota Google Apps Engine provides free hosting for Python. Django is a great framework when you want to do webdevelopment with Python. Django also has great documention with http://www.djangobook.com/ and the official Django website.

Christian
Python should work on the localhost right? It's not a server language, so only if I want my codes to be on the internet, do I have to get Google App engine right?
jpjp
I actually didn't know any python when I started reading the djangobook. I just looked up some syntax once and while. Python is very intuitive.
Lucas
Python can work in the console and doesn't even need a server.Django comes with it's own testserver that runs on the localhost.
Christian
+2  A: 

If you want to learn about Object Oriented Programming in general, you may want to look at the answers to this question, although many of the books are higher level (and some are aimed at Java/C# like languages instead of Python-like languages).

Kathy Van Stone
+2  A: 

Here's some answers to your questions:
Python is an excellent language for beginners looking to learn OO design/programming.

As far as books and websites, the best python book I've read is available free online
Mark Pilgrim's Dive into Python.

For web programming there are many many options. You mention Django which is the most popular although I like Turbogears, Cherrypy and web.py. All of these have their own webserver built-in (Based on paste or cherrypy)

For hosting, it's usually based on fastcgi or Apache's mod_python. I've heard really good reports of webfaction for python based hosting.

Hope this helps, but if you are learning php why not go for Apress's PHP Objects, Patterns, and Practice that's a good book.

dalton
A: 

You could learn using books, but nothing beats practical hands-on approach - so make sure you have Python installed in a computer to help you learn. If you decide to buy a Python book, I strongly suggest you DO NOT buy a copy of Vernon Ceder's Python Book, it has very bad reviews. I bought a copy and was also disappointed.

If you'd like to join a mailing list, we have a good community at Python Tutor. Sign up and post your questions there as well.

Good luck

Helen Neely
+1  A: 
  1. If it is your basics in OOPS that you wish to strengthen, Java is a good option(provided you know c++ or any other non-web-based language which supports OOPS). However, if you are looking towards web-development, Python should be your best option.

  2. Yes, Python is a good option

  3. Yes, Django is a very good web application framework(and they have awesome documentation and tutorials put up at their site)

  4. To learn Python I definitely recommend reading "The Python Cookbook" cover-to-cover. Its fun, and covers some very important concepts. However, there really is no substitute for the standard python documentation. Its well written, but it might take a while through a major portion of it. Using it as just reference material is also a fine idea.

  5. Well I have seen domains which allow Django to be hosted; also you should try out the GAE(google app engine) once you are comfortable with django. Its a great place to host your apps.

zubin71
A: 

Get ipython. Use it as your shell. This means move, copy, view, change, edit files from ipython. Day to day shell stuff anywhere has enough little problems that one ordinarily solves by piping, but are just as easily solvable by python. The real bonus is that your eye for syntax and simple solutions will develop quickly.

Need to find files? use os.walk,

Running grep? try to 'open' the file instead, try some regex while you are there. Those uses of the language will serve you in any type of python programming.

( Good news, PHP and python use the same underlying regex lib PCRE, so although there are some additions, it'll be familiar to you, )

The nice thing about having this in the language , which is not really the case in PHP or Perl, is that you can just mess around with functions, not full programs.

Why ipython and not the standard REPL or bpython? Easier to use as a shell out of the box. That's all.

chiggsy
A: 

I recently learnt Python and had very little programming experience before. I found that doing a little bit of Python first then diving into Django worked for me. USing Django, looking through its reference material and Googling individual problems when I needed the help was really good.

Django has a built in Development server for you to use a bit like xampp, however, to make things like installing Django, installing Python, installing plugins etc a lot easier, use a unix based OS. I am developing on Mac OS and I have had no problems. Most Linux distributions will be the same. I wouldn't want to try Django development on Windows, there are just too many hacks you need to do to get it working, plus, it is more difficult for when you then publish the site (on a unix server).

Learn some Python, there are some good books suggested here, but don't get too deeply stuck into it if your focus will be Django. Go and do the official Django tutorial and then Google around for one or two more.

I use a book called 'The Definitive Guide to Django'. It is great for learning Django in the first place, but after the first few chapters, I stopped following it and started my own projects instead. Now it is a really good reference book to have.

It takes a while, but its worth it. I started working at a company as a Django developer recently and it is great.

Good Luck!

danpalmer