6

Congratulations, You've Just Learned Python

 2 years ago
source link: https://hackernoon.com/congratulations-youve-just-learned-python
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Congratulations, You've Just Learned Python

I would like to devote this article to those people who, after learning Python, faced the usual problem - What next? Are you sure you have already learned it? I will attach a small checklist:

Classes and OOP, you can immediately name 5 magic methods Functional programming possibilities Generators, iterators, and decorators Have an idea of what is in the standard library Know how to work with libraries and virtual environments Understand asynchrony and its use You understand what the GIL is, threads and processes You can name at least one interpreter besides CPython

If you were able to answer all these questions yes, then congratulations you know Python. But I hate to disappoint you - you only know the language itself and there is still a lot to learn besides the programming language.

Maksim Kuznetsov

Just a Senior Python Developer.

I would like to devote this article to those people who, after learning Python, faced the usual problem - What next? Are you sure you have already learned it? I will attach a small checklist:

0 reactions
heart.png
light.png
money.png
thumbs-down.png
  • Classes and OOP, you can immediately name 5 magic methods
  • Functional programming possibilities
  • Generators, iterators, and decorators
  • Have an idea of what is in the standard library
  • Know how to work with libraries and virtual environments
  • Understand asynchrony and its use
  • You understand what the GIL is, threads and processes
  • You can name at least one interpreter besides CPython

If you were able to answer all these questions yes, then congratulations you know Python.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

But I hate to disappoint you - you only know the language itself and there is still a lot to learn besides the programming language.

Although this will already be enough to solve simple automation tasks.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

It is very important to understand that in order to maintain skills, you need to write code at least 3-5 days a week.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

Resources such as leetcode can help here, there you can pump in the knowledge of algorithms, a very important skill, but only for interviews. But there is an increasingly interesting solution - Pet projects.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

In them, you can implement your own ideas, write automation of any workflows, or maybe even start something big and make a startup out of it. The main thing is not to be afraid to try different projects, not to be limited only to a specific language, technology, framework.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

In my experience, Pet projects played an important role, I developed my version of RSA cipher from scratch using C ++ and Qt5 for the graphical interface, after which I liked Qt so much that I decided to use it to write my browser using the Python language.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

Python is commonly used in backend development, data science, and machine learning. From the paragraph above, you can see that Python is suitable for almost any purpose. In Backend development, you should be familiar with various web frameworks such as Django, Flask, FastApi, Aiohttp.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

After moving on to SQL, ORM, and do not forget about NoSQL databases, as well as various caches. You can also try yourself in a related field - DevOps. Namely, deal with docker, k8s, Linux, configuring Nginx. Also, a bonus skill will be working with CI \ CD, for example, Github Actions, Jenkins.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

For the most part in my work, I work with various web frameworks, so I will dwell on them in more detail.

Django is the most famous Python framework. It has many built-in features: Django ORM, support for many DBMS (SQLite, MySQL, Postgresql), built-in templating engine, built-in admin panel, forms, and this is just the bare minimum.

1 reactions
1heart.png
light.png
money.png
thumbs-down.png

The framework is often considered overloaded, which is partly true. But if you figure out the optimization, then you can turn off part of the functionality. Very suitable for testing a prototype or releasing an MVC, also very suitable for hackathons.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

Fastapi is a modern, fast (high performance) web framework for building APIs and HTML templates. It is very fast due to its asynchrony, it supports WebSocket, swagger, and typing out of the box. It also has a lot of additional libraries that will make the job easier. Suitable for heavy-duty projects.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

Flask is a framework for building web applications in the Python programming language using the Werkzeug toolkit as well as the Jinja2 templating engine. The main difference is that most of the features must be installed manually using the package manager.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

Therefore Flask can be more complex than Django due to its large number of dependencies. Suitable for home projects, and rarely found in a Production environment.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

If you want something that works faster, but at the same time work with web development, your choice is Go (Golang). An excellent and in-demand language with many different libraries, but it seemed to me too much geared towards web development. The well-known Docker and K8s are written on it. You can get acquainted with the concept of channels, although I first met it in another Python interpreter - Stackless Python.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

Also, don't forget about JS and Node Js. JS is now the language of both sides, Backend and Frontend. This means that by studying it, you can completely create web applications, plus some frameworks, for example, React Native and the like, do not allow you to create applications on several platforms at once (Web, Android, iOS), which is also very popular and cool.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

In general, I have little to say about data science and machine learning, since I came across them only indirectly and I can only remember a couple of libraries: Tensorflow, scikit, and Pandas.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

But most of all I liked the Ray project [https://github.com/ray-project/ray]. It is dedicated to distributed computing in Python and was primarily used for machine learning, now it has a serve extension that allows you to create a backend. I highly recommend that you familiarize yourself with this project, it has many different interesting features that will help improve your application.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

But if you are bored or disliked by Python, you can learn something else. There are many other languages, if you want something more low-level you can try C \ C ++. At the same time, look at the language without the GIL. But based on recent ratings like StackOverflow, Rust is a better choice. An interesting language, I liked the fact that the compiler “hits hands” for bad code and refuses to compile until it is written correctly. Plus it has a great package manager.Personally, I'm interested in it for its asynchronous and multithreading capabilities.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

Another interesting development option is hardware. One of the most popular platforms is Arduino.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

This platform supports several languages ​​such as micropython, C, Rust. Historically, most projects have written sketches in C. There is an online micropython editor and environment [https://micropython.org/unicorn/] where you can look at various projects and try to write something yourself.

0 reactions
heart.png
light.png
money.png
thumbs-down.png

I would also like to mention boards with WiFi support, for example, esp8266. Great board, using it I was trying to make a small HTTP server. You can also make a Wifi access point, a WiFi network scanner, a small proxy server and even a server with web sockets support on it. If you can figure out how to work with it, it will be a huge leap into the world of IoT

0 reactions
heart.png
light.png
money.png
thumbs-down.png

Whatever you choose, it will help you become a T-shape specialist by studying either in width or in-depth. In any case, the choice is yours.

9
heart.pngheart.pngheart.pngheart.png
light.pnglight.pnglight.pnglight.png
boat.pngboat.pngboat.pngboat.png
money.pngmoney.pngmoney.pngmoney.png
by Maksim Kuznetsov @exactor. Just a Senior Python Developer.Read my stories
Join Hacker Noon

Create your free account to unlock your custom reading experience.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK