Consider how to learn a high-level programming language Python, books for learning Python, which version to choose.
Who uses Python
Python or “Python” is a general-purpose high-level programming language designed to improve developer productivity and code readability.
The Python core syntax is minimalistic. Gaining great popularity, many sites and applications are written on it.
It is used by companies such as:
- Google,
- Yandex,
- NASA,
- Dropbox,
- and etc.
Before you start learning Python, let’s first figure out what it is used for. And it is used not only for creating websites and simple applications. Various scripts for games are written on it, it is used to process a huge amount of information in scientific research, to analyze a large amount of data, and also to create serious desktop applications with it.
Study methods
There are several classic ways to learn any language:
- courses,
- books,
- practice.
The programmer constantly works with the Internet, so during practice he learns even more than with purposeful study.
I recommend the five best sites for learning Python in my opinion:
- OTUS,
- Stepik,
- Hexlet,
- Skillbox,
- Coursera.
Books for learning Python
When it comes to books, I would recommend starting with two books:
- “Python crash course”From Eric Mattes,
- “Byte of Python”, Swaroop Chiltur.
Further, in order to better understand how algorithms and the language itself work, it is worth reading “Grokking Algorithms”From Aditya Bhargava
After reading these two books, you can take something more interesting. For instance, “Automate The Boring Stuff With Python”, In which you delve even deeper into the language, but also start to use it in practice, while writing useful scripts for your computer. This book is no longer required reading, but it is worth reading.
“Learning Python” by Mark Lutz
One of the most recommended books. It is worth starting with the fact that the book is quite weighty – 1600 pages. The book is quite difficult to read, so I had to return to it several times, some places had to be re-read several times, because due to the language barrier I did not always understand what the author specifically meant.
Overall, I liked the book, but there are also weak points.
Why did I choose this particular book?
In July, I started looking for literature on the Python programming language. I visited various resources, asked people for their advice and how I learned Python myself. I settled on this book because people described it as a book that explains very well the mechanics of the language and its aspects.
I also read about the author of the book and learned that he has been programming in Python since the first version, and also teaches at the university. This convinced me a lot and I started reading.
What did I like?
The author describes in great detail the syntax of the language, its logical constructs, focuses on how it is customary to write code in the Python programmer community.
The author gives a lot of examples in which he comments on almost every line. At the end of each chapter, the author offers to take a short survey on the content of the chapter, and at the end of each section, he suggests taking exercises to consolidate knowledge. The author periodically dilutes educational content with jokes and interesting facts.
What didn’t I like?
In his examples, the author sometimes uses material that at this stage has not yet been presented in the book, for example, he talks about functions and operations with them, after which he gives an example “But how could it be done with classes”, which is confusing … The author sometimes gets too carried away with the description, the result is a chapter filled with “water”, which is why the main aspects do not fit into memory.
The author sometimes uses rather complex vocabulary, so you have to learn about the meaning on the Internet. The author sometimes repeats himself, this usually happens when he reminds how to use a particular function. Due to the fact that the author is considering two versions of the Python language at once (second and third), in some examples from the third version those libraries that have been removed are imported.
Python 2 or Python 3
The latest Python 2 fix will be out in April 2020.
Python 2 has reached the end of its life cycle. This deprecated version of the language is expected to receive the latest release bugifx in April 2020. The project’s codebase has been completely frozen and it will no longer be possible to introduce new features. Developers who haven’t done so yet will sooner or later have to migrate to Python 3.
The first version of Python 3 dates back to December 2008 year… Therefore, it took Python 2 software projects 11 years to update their reference release. The main problem with migrating to Python 3 is the lack of backward compatibility with some of the features from previous releases.
Therefore, this element has caused several developers to postpone the move to the most recent mainline indefinitely. The end of support for Python 2 was originally planned for 2015. However, at the time, various software vendors were not yet ready to migrate to Python 3.
Therefore, project managers decided to extend the lifecycle of other Python 2.5 years to give the community more time to improve Python 3 and to make porting faster and easier.
Although Python 2 development is now a thing of the past, it is very likely that it will remain in the entrepreneurship space for several more years. thousands of enterprise applications are based on it.
Starting in 2020, using Python 2 will become increasingly risky given the lack of security fixes, and all services and IDEs will soon stop supporting this deprecated version of the language.
What’s next?
Let’s pretend you’ve read the books. What’s next? You should already be determined with the area in which you want to work. In this article I will look at the most popular option for what you can do – web programming. There are not so many specific books on web programming, basically all the information is on forums and websites.
But there are more than enough online courses, you can search on the same resources that I indicated earlier and choose to your liking. If you want to take a more independent path, I advise you to start by learning about frameworks.
Frameworks are software that makes it easier for you to put together the different components of a project. They are constantly used now, they are easy to learn, so you should not pass by and unnecessarily complicate the work. In my opinion, the best at the moment:
- Flask,
- Django.
They have their advantages and disadvantages over each other and you choose which one to use. But keep in mind that most resources are in English, and if you want the most up-to-date information, English is better to learn.