To learn how to walk – you need to walk, to learn how to pull yourself up – you need to pull yourself up, to learn how to solve problems in physics – you need to solve problems in physics.
You can rest against dry theory as much as you like, but without applying your knowledge in practice, it is impossible to learn how to program and to get your job in a great Python web development company. In this article, we picked up a few projects for beginner python developers. These projects will help you solidify the theory, apply the acquired knowledge in practice and get your hand at writing code. Some of them can even be added to a future portfolio. I will explain what each project is good for, what skills and topics it allows you to work on, and also what libraries and technologies you can use to implement it.
The purpose of this “top” is not to create the most original portfolio and not to list unique projects. The purpose of the article is to understand simple things, technologies, and topics that will help develop practical programming skills. Therefore, you should not expect here the assembly of Optimus Prime, the programming of the Death Star, and the creation of an engine on whale oil. We will go through simple but at the same time basic things.
Web application (online store)
If you take on the creation of a website, then it should not be a blog, not an Instagram clone, not an online predictor of the future, but an online store.
You will have to deal with the site admin panel, registration, authorization, personal account, selected products, shopping cart, product categories, database connection, migrations, access rights, pagination, sessions, and a bunch of other things.
As a complication of the project, you can add a payment system, discount promotional codes, a section with sales leaders, caching, sending a check to the mail or a recommendation system based on an in-memory Redis DBMS or a machine learning model in general.
And if you are complete without brakes, then screw the REST API of the site. To do this, you will need to further delve into the issues of serializing JSON objects, working with network protocols, and so on.
Website development will introduce you to the MVC (Model-View-Controller) design pattern, HTML/CSS, and possibly JavaScript code.
Based on my experience, we will say that there is no better option than Django for mastering web development. Django is a great framework that comes with modules by default for everything I listed above. In addition, it is based on the classic MVC pattern mentioned earlier (although it is called MVT there, but not the essence).
Learning Django will have to learn how to work with routing, data models, migrations, controllers, HTML, and ORM template engines (this is a special thing that allows you to work with a database without SQL queries, but through Python objects). There is a lot of work to be done with OOP because all data models are represented by classes. Often you have to use inheritance.
It is important that almost all modern popular Python and not only frameworks are arranged in the same way as Django. If you understand Django, it’s easy to understand how PHP’s Laravel, Jav’s Spring, or Ruby on Rails work.
Django ORM is almost identical to Eloquent from Laravel, template engines are also similar plus / minus for everyone, and models and migrations differ purely cosmetically.
Then, to broaden your horizons, you can also look at the Flask microframework. And to motivate yourself, find out the average rate per hour on the website of one of the best companies (https://devoxsoftware.com/blog/average-software-developer-hourly-rate/).
Choose a subject area that interests you. If we love computer games – we create a game store, trudge through the top gear – here’s a clothing store for you. In short, we try to get the most out of it.