Also remember that your first programming language is not your last one. It's a starting point from where you will learn many more languages. We have long gone past the era where developers could code their entire career in one language. But Python is a great first language. For those who need reasons, here are five :-)
Easy to set up and get started
Software development has become a bit of a beast nowadays. There's just way too much a person has to install and understand before they can write their first line of code. This is very frustrating for someone who is just starting because it distracts them from what they really should be focusing on - which is to learn the principles of programming.
Python really shines in solving this problem. It's super simple to get started with Python because of it's simple setup
. Python also has a straightforward syntax which will not drown you with complex constructs, once again allowing you to focus on principles of programming without getting frustrated with ancillary concepts like directory structures and the like.
Even though I am a big fan of object oriented programming, I like the fact that Python allows you to get started without learning about classes and objects. IMO this is very important because OO is a slightly complex concept which should ideally be taught after more basic concepts of programming are grasped well. Python will allow you to get started with simple things really fast and also work on complex concepts after you have grasped the more basic ones.
Extensive standard library and third party tools
The standard library is the library of classes and modules which come along with the language as part of its core capabilities. Its important to have an substantial standard library because it allows developers to do standard stuff without having to hunt for third party code (which can be a pain and unstable as well).
However, when a newbie does proceed beyond basic knowledge they will need to work with third party libraries and Python shines out here too. It's hard to believe that something you need has not already been implemented as an open source library by someone from the community.
One of Python's most-touted strengths is its standard library, and for good reason. It comes with over 400 modules (in version 2.7), ranging from a minimal HTTP server (BaseHTTPServer) to databases (sqlite3), to compression libraries (gzip). -- Why Beginners Should Learn Python
In my personal experience Python has one of the most helpful communities out there. Flame wars happen everywhere, but they happen the least in the Python community, so as a newbie you will never be apprehensive of asking (seemingly dumb) questions. This is important because I have seen places where newbie questions are often met with disapproval and even indignation. This silly sort of arrogance is a very unhealthy attitude that has unfortunately crept into the software industry. Fortunately you won't have to deal with it as a Python developer. Even if you do run into such episodes, they will be far and wide. Python also has a lot of user groups and meetups. Chances are that your city or town already has a Python user group. Such groups allow newbies to interact with senior developers for learning as well as for exploring work opportunities.
Great job market
At the beginning I mentioned that your first programming language should be one which will help you learn the principles of programming and not necessarily a language that will land you the juiciest job. However, with Python its not an either-or situation. Python has a thriving job market and is used extensively for web development, devops, and scientific computing.
According to the Tiobe index
, Python has moved up from the 7th most popular programming language in November 2014 to the 5th in November 2015. And the Redmonk index for June 2015
ranks Python at #4. So chances are that you will land a very good and satisfying job with Python.
The Zen of Python
If you are not already convinced then the Zen of Python will make you a believer for good...
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!