📜 ⬆️ ⬇️

Recruitment for a Python course: why we think that Python 2.7. - this is serious, and Python 3 is fashionable

A couple of days ago, we opened a set for one of the most awaited courses - a serious course in Python. Today we wanted to tell you about the focus and program of the course. The course is designed for those who already know everything about Python, but want to improve their skills to the level of a middle developer and find a job that will bring not only pleasure, but also a good income (after all, our partners are the best IT companies will be offered to pass an interview). We are not waiting for newcomers on the course: therefore, the presence of a certain beginner level is checked by the entrance test - there are only a couple of dozen questions. If most of the test questions cause a long stupor - it is better to think about a little to tighten up your knowledge of Python yourself, because during the course it may not be possible to dwell on basic things.

It is also worth making a reservation in advance that the vast majority of course materials will be in English. This is an inevitable consequence of the international demand and applicability of the language. The whole “movement”, major conferences, articles, current books, etc. - in English.

How was the program composed? We collected the requirements of current Python developers' vacancies with a salary above 100k and updated them with our partner companies. Further, based on the results obtained, the teacher’s presentation of the course on, let's say, the dynamic range of the language, we divided the course into 5 logical parts, in proportion to the demand in the labor market.

Python for everyone. The introductory part of the course will be a springboard for overclocking. Despite the entrance test, the level of knowledge at the entrance will still vary, but during the first weeks we will come to a common denominator. In the process, we will look at the functional techniques of the language, the decorators, rummage around the interpreter's guts, discuss the algorithms (an essential component of most interviews), talk about OOP and design patterns, and complete the operation block with aspects of development.
')
Python for web. The most extensive layer of the course. This is due to the fact that most of the current vacancies require knowledge of one or another web framework, Django in particular. We'll start by looking at how to create simple applications without any frameworks, and then head over to Django. There will be SQLAlchemy, and REST, and Celery, and, of course, the “vanilla” Djago with its ORM, view's, templates. Do not forget to talk about testing. And, depending on the availability of time, we may have time to discuss things like Flask, Twisted and Tornado. In this block there will be one pass-through DZ, where we will make a Django application.

Python for data science. Data analysis today is immensely, sometimes even excessively, popular and this is also reflected in job offers. It is clear that to become an expert in machine learning in a couple of classes will not work, but it is quite possible to get data science skills of an engineer. Such a specialist creates data pipelines, supports analytics infrastructure. Here it is to study NumPy, Pandas, practice drawing beautiful pictures and even pick up the “toy” Hadoop and write the simplest task for it.

Python for high performance. Donald Knuth teaches us that premature optimization is the root of all evil. But in the penultimate part of the course, it seems to be a good time to touch on the performance aspects. We will talk about profiling, writing extensions to C, competitive computing. Consider possible optimizations, and also highlight the question “what to do if Python is not enough?”.

Python for future. Python 3 is a bright future that has already arrived, but unevenly. In this section, we will discuss the main changes that have occurred in the language between versions, consider new cool features (one asyncio is worth it!). Be sure to discuss the process of migration of projects from the second version to the third.

Of course, it’s not possible to train a great django developer, analyst and infrastructure programmer within one course. Almost unreal even if you focus on one thing. After all, a good developer makes a real work practice and experience. In turn, obtaining a wide range of knowledge gives you the opportunity to decide on what exactly you want to do as a Python developer, the ability, if necessary, to do anything, the ability to “cut corners” and step on a smaller number of rakes on the way to your dream.

And yes, this is all Python 2.7, except for the final course block, where we dive into the features of Python 3. Immediately there is a subject for disputes and objections. Undoubtedly, Python 3 is good, modern, stylish, fashionable, youth. The third version gets development, new features and one day we will all enter this beautiful future. But there is a nuance, Python 2.7 (and 2.6) does not magically disappear anywhere due to the fact that Python 3 is the right way to go. In many companies, including large ones, companies still have Python 2.x code that needs to be maintained. Yes, and the new code is also often written in the same Python 2.7, if only because the latest CentOS, on which servers are running everywhere, this particular Python gives out of the box, and putting another version on top and living with two, to put it mildly, is inconvenient. If you look at vacancies on any aggregator, then again you will see that it is quite often that Python 2.7 is required. Similarly, but this is purely subjective, it seems easier and better to master 2.7 first, and then, if necessary, switch to 3. Mastering new features and features will not take much time, but it will be clear where the “legs” grow from solutions and there will always be an opportunity to understand the legacy code.

Naturally, it will not do without practice! HW in the curriculum means homework (homework), which will be dealt with and discussed in class. DZ accompanies each of the theoretical calculations and provides an opportunity to independently “touch” what we talked about in class. By the way, among other things, there is even one task for Go, so you won't be bored!

Finalized course work on your own project. Other things being equal, he can be a good help during an interview with a potential employer and become part of your portfolio.
Let's try? Take the entrance test and join the new group !

Source: https://habr.com/ru/post/330606/


All Articles