Learning Python

This is a reference page that I’ll link to everybody who asks about learning Python programming language.

Why Python?

In my opinion, it is great language, that will help you solve widest variety of tasks requiring programming: Web Development, Command Line Interface(CLI) tools, various automation tasks, game, movie and editors scripting, data-science. All of these things are often done in Python. Doing some of this things in Python makes you most efficient.

Installation

Python

First of all you should install Python to your computer.

There are two major versions of python: 2 and 3. You should know that version two is still widely used in legacy projects, but it is also not supported. You should use major version 3. Today it is 3.6.4, and 3.7 is on the way. Python 2 and 3 have slightly different syntax and version 3 has a lot of new functionality.

You can read Dive Into Python 3 page on installing python on your machine: http://www.diveintopython3.net/installing-python.html

While this link will be hugely useful for Windows users and I cannot say anything about Windows since I am mac and linux user, for mac users I strongly recommend using HomeBrew ( https://brew.sh/ ), Mac Package Management Software.

With HomeBrew on mac, u can install Python3 by running this command in terminal:

 

Python Editors and IDEs

The most powerful (IMO) IDE for working with python is PyCharm ( https://www.jetbrains.com/pycharm/ ). There is free and paid version of PyCharm. Paid version has 30 days trial. Paid version is better if you work with frameworks, like Django, because paid version has some awesome integrations, making your programming day super efficient.

Also you can use Visual Studio (as far as I know it is available for Windows, Mac and Linux, but I don’t have never even tried it. Many people are super happy with this product, so maybe you should try it). AFAIK, it is free.

Atom ( https://atom.io/ ) is a free editor, with a lot of available packages, suitable for many programming languages. Not my choice, because it is built on Chromium/Electorn and consumes too much RAM. Plus after I’ve installed all packages for JavaScript development – it started being RAM-hungry and became laggy and now crashes every now and then.

For those who are brave enough – i recommend to try Aquamacs, Mac ready Emacs version. http://aquamacs.org/

With HomeBrew on mac you can install editors with one of these commands:

Apps related to Python and development in general

While developing in Python, you will need various other tools, not directly required to Python:

  • git, for version control
  • dash3, for documentation reference
  • iterm3, instead of built-in mac terminal
  • postgresql, the best database of all times!
  • DataGrip, one of the best tools for working with databases
  • Sequel Pro, if you are unfortunate enough and need to work with MySQL (that was a bit sarcastic, sorry 🙂 )

For GUI git client you can use SourceTree

Dash3 ( https://blog.kapeli.com/dash-3 ) is awesome app for quick documentation reference. It is paid, but I tell you – go buy it. It is superb!

Iterm3 ( https://www.iterm2.com/version3.html ) IMO is the best terminal app for Mac.

Postgresql can be installed with brew install postgresql

DataGrip ( https://www.jetbrains.com/datagrip/ ) , made by JetBrains, who created Pycharm – awesome tool, that will help you write SQL-queries and browse your existing data. Paid, partially built in PyCharm. I’ve used it on trial and loved it. I was fine what is in PyCharm, so I didn’t buy DataGrip license.

Sequel Pro ( https://www.sequelpro.com/ ) is native Mac application for working with MySQL database. Lacks some awesome features of DataGrip, but its native look and feel compensates it a bit. For Mysql-only devs it is good. And it is free, but you can donate, so authors can make this app even better! Personally I’ve used it a lot while was working on mysql-heavy projects.