Skip to content

06. Why Python, and what if I have never coded in Python?

Indranil Sinharoy edited this page Dec 20, 2015 · 1 revision

Caution for non-converts: Python is highly CONTAGIOUS. It is highly ADDICTIVE too; once used, it is hard to turn away!

TL;DR - Exponential return on investment

  • Python is a beautiful (at least I find it that way) and efficient language.
  • It is very versatile -- used for very simple tasks, build websites (e.g. Instagram, Pinterest, etc.), great applications (e.g. Dropbox), create games, analyze large data, machine learning, natural language processing, perform numerical computation, medical imaging and create scientific visualizations, controlling space telescopes and many other applications.
  • Free (as in beer) and open-source.
  • Easily interface with high-level and low-level languages (e.g. C, FORTRAN, etc.)
  • Multiplatform.
  • Availability of endless tools, growing ecosystem. For example, look at Topical Software for some scientific tool listing.
  • Large community of active, friendly developers and users.
  • One of the easiest language to learn, yet very powerful to do almost anything.

If you have never coded in Python, please download the WinPython package, or the Anaconda package (yeah!! we are in snake land!), start the "QtConsole" and work through the fantastic tutorial at Python Scientific Lecture Notes. Realistically, for a complete newbie in Python, it may take between 3-6 hours of basic Python training to start using Python (and PyZDDE). Python is that simple! If you enjoy video based tutorials then you may have a look at Python Training - Getting Started with Python, which is a 45 mins tutorial on basic Python. After the initiation, you can also continue learning Python using the excellent interactive book How to Think Like a Computer Scientist - Learning with Python

The scientific Python ecosystem is vibrant and growing. See a quick overview of the ecosystem, recommended getting started tutorials, links to videos and blogs etc. in Python for Scientific Computing – a collection of resources, and many other resources in the web.

Other related resources

IPython in-depth: high-productivity interactive and parallel python (Video recording at Pycon US 2012 by Fernando Perez, Brian Granger and Min Ragan-Kelley). If you are new to IPython and the IPython notebook, you can quickly get a sense of what it is all about and its powerful features. (Note that IPython has evolved since then, and the information in the video is a little dated.)

Enthought Training on Demand - Training video lectures and exercises from Enthought targeted towards scientific computing. They have wonderfully divided the videos into separate sections such as Python Essentials, Numpy, SciPy, Advanced Python, Interfacing with other languages. Further, each section has been divided into topics with short videos for quick access to specific topics. The material is free for academics. Others may have to buy partial/full sections. Personally, I really think that the quality of the lectures is excellent, and I like the videos as they are very focused and gives just the necessary information very quickly.