What do I need to know about Python

I have done a ton of Java web development and have a degree in CS but I have never done any Python web development and I wondered what I should know about it besides the language syntax. For example, are there any libraries or other packages that are typically used? I know there are Python-based CMSes such as, I believe, Django. I don’t have much experience with CMSes except for working on a custom one years ago, but as I recall, there wasn’t any development associated with actually using them (except for HTML/CSS/JS development).

So, what do I need to know?

Thanks,
Rob

It really depends on what you want to do with it. Django is commonly used for Python web sites, but Python is good for lots of stuff besides web sites. I use Python for lots of things, but never bothered to mess with Django. Mostly I use it where I would have years ago used a Perl script (but I still sometimes use Perl if the task is mostly text processing).

Everyone learns differently, but my process for learning a new language is usually to come up with a project and force myself to use the language to do the project. Once you figure out the project, that’ll help guide what things you need to learn about Python.

“Bolton” spelled backwards, is not “Ipswich”.

It’s not a palindrome! The palindrome of “Bolton” would be “Notlob”!! It don’t work!!

The two things to know about Python are that indentation is mandatory and there are an absolute ton of resources available online for any specific question about the language.

If you want to learn the language, I’ve heard good things about this: http://learnpythonthehardway.org/

I’ve been doing Python for the last several months. I like it a lot and it’s easily in my top five languages but far from my first choice.

Some things I like about it:

  • The significant white space thing takes some getting used to but it’s nice once you do.
  • It’s very concise without being obscure.

Some things I don’t like:

  • The OO parts of the language are clearly bolted on after the fact and don’t quite belong.
  • The language designers are a little too tolerant of monstrosities like init. It feels unnecessarily geeky.
  • The designers have attempted a massive rewrite of the language and libraries in Python 3.0. The new version is largely not compatible with existing libraries. I’m sure, once the switchover is complete, it’ll be wonderful but the 2.x branch shows no sign of going away any time soon. Meanwhile, compatibility is a confusing mess.

Once you get used to it, Python will be a breath of fresh air after Java.

FWIW Django is not a CMS. It’s a framework for building web sites analogous to Ruby on Rails.

It’s a great resource, but it’s geared towards beginner programmers, not exoerienced programmers coming from another language. Still, it’s worth checking out.