There is need for other short begginer tutorials, simply because we are all different, but for majority of people official tutorial will really be the best place to start.
If you know both, you can make an informed decision and choose the right tool. Even if you're using Django to write your webapp, you'll be able to use Chef for configuration management. If you're about to embark on writing a new project, you can choose the language that has the most mature libraries for your problem domain.
You also won't have to rely on all of the apparently subjective things people say in comment threads about which language is better when choosing one.
While you're at stop saying how bad C/C++/Java/Scheme/PHP/javascript/haskell/C#/Cobol and learn those too (ok, maybe not Cobol).
Remember a few years ago when everyone was all hating on javascript? Now, all of sudden it's the awesome lingua franca of programmers and the language hasn't changed a bit. The perception changed because some smart people learned its strengths and wrote good libraries and runtimes based on those.
I think the article has some good tips for people learning any new language(it can be python,ruby or anything). The tips most useful according me are:
1. Dedicate fixed time for learning
2. Find Good mentor.
3. Use recommended development practices from Day1
4. Learn Core Language first, then try frameworks
5. Write Code(that's the only way!)
One of the nice things about the open-source community and having a great ecosystem around <insert language> is that you can hop on IRC (http://www.python.org/community/irc/) or find your way to the mailing lists and there will be at least a few very smart people overjoyed to help you learn–as long as you put in the initial effort, try the problem yourself first, and then ask for help (and be willing to listen to their advice).
Then, if you go through all of that and try really, really hard, be patient, ask for help, and still find yourself lost, maybe seeking an instructor is a good idea. I'm just saying to beginners that I wouldn't jump to that right away.
Overall, nice writeup, and thanks Mark for sharing your experiences and being willing to push your own boundaries and learn more! Yay for not falling into the abyss of managerial stagnation!
i really love to read very good illustrations of how ruby developers being arrogant for noobies.
(Now my friends and I are learning separate languages and planning to work on the same product, and I'm actually curious how/if this will resolve itself...)
1. Zen of Python. (since Ruby doesn't adhere to it, it's bad)
2. Python community is less arrogant compared to Ruby community. (painting millions of Ruby programmers with the same brush based on an IRC chat they had)
3. Google loves Python. (is that even a reason?)
4. Zed Shaw said so-and-so against Ruby/Rails which I want to believe/agree. (fan mentality)
However as time has passed by and I have become competent at Python, I see some clear wins for Python where Ruby lags:
1. Machine Learning with PyML, et al. Python has some of the best tools for scientific programming by far.
2. Two order of magnitude improvements for numeric code using either: - NumPy - Cython - PyPy
3. I prefer Cython to integrate C/C++ code to using any form of FFI.
Yes, the cultures are different but that rarely affects beginners.
* Python is easier to learn (not much syntax)
* Easier to read (explicit vs implicit)
* Has a bigger ecosystem (more packages/libraries)
* Taught at universities so it's easier to find good programmers to help
* More research/resources going into to its development (e.g. PyPy)
* Used by more websites/companies so its easier to find jobs
And these are the online Python tutorials I recommend http://www.quora.com/How-can-I-learn-to-program-in-Python/an...* Subjective
* False: http://modulecounts.com
* Some American universities.
* Agreed.
* Statistics please.