9 backend training projects
KDPV source
Previously , a translation of an article from Medium was published on Habréwith a selection of 8 projects that can be implemented by learning a new language or framework. In my opinion, the selection is very good. The problem is that it is designed only for front-end and mobile developers. And I'm from another camp.
Rummaging through my notes, I have put together a selection of ideas for you in case your hands itch to do something of their own. All these “projects” already exist in one form or another, but it’s sometimes interesting to write your backend bike and ride a rake on it.
1. Blog engine
Yes, I decided to start my “top” with a blog. In my opinion, this is one of the simplest options to study the intricacies of a new PL or framework. Look carefully at existing solutions and think about what you would do better. Open the WordPress source code and list what is wrong with it
Naturally, you should not try to roll out the finished product immediately with a bunch of features. Describe MVP , turn it into a checklist and go! By the way, this advice applies to all other points.
2. IO game
the picture is taken from here.
If you want to get into reactive programming, web sockets and that’s all, and chatting is too boring, you can try to implement a backend for: 15x15 tic-tac-toe, sea battle or, even, homoku. The advantage of these games is that you can create a client for them even with minimal JS knowledge.
As a bonus, you will have to think about the algorithm for validating the playing field, which is also not as simple as it seems.
3. File format parser
This is the case when you can do something really useful for the community of your favorite programming language. Look at what files (media, documents, data, etc.) you regularly work with and make a library for them on your PL. Just do not write a wrapper over the existing extension, but study the file specification. And hands on hardcore.
As an example, I’ll give a library in PHP for working with 3D models of the STL format. A description of this format is on the Internet. But, 4 years ago there was only one working library in the network, which was able to return the dimensions and volume of the model. It was sold for $ 10 per copy. And she was in great demand.
If you can’t come up with something new, you should try to make your own implementation of the existing one. For example, as far as I know, until now there is not a single library in PHP that would digest a> 1GB XML file without eating all the RAM. Although, there is an opinion that stream piping, SPL and a little perseverance should solve this problem.
4. Telegram, Skype, Slack any other bot
the picture is taken from here.
There can be a lot of options: weather forecast, reminders, calculator, card "Drunkard" , one-time password generator for the site, etc.
Let each of them have already been created by someone. But, you and I want to learn something new and add “weight” to your resume. Is not it?
5. The engine of the forum
The pluses are the same as the first paragraph.
If this seems banal and unnecessary to you, read the article on how a person wrote a forum in assembler . What for? Just because it can . But now he can confirm his knowledge with a link to an interesting article and a repository for it. Is this not motivation?
6. Clone 10 Minute Mail
Probably everyone knows the excellent 10minutemail service . It allows you not to shine your mail when registering on unknown sites. Just get a unique email for 10 minutes and enter it everywhere, without fear of intrusive mailings.
If you want to write something small and simple - this is a great option.
7. Image generator with text
Very often, in social networks, ads are published in the form of a screenshot of the phone screen with the open notes application.
You can make a service for these people to generate images from text. In Google, I found a similar solution , but, in my opinion, there is too much extra functionality. Enough form to enter text and buttons: "do well!".
By the way, I offer this task for beginners to implement without a server.
8. Pomodoro
picture taken from here
The Tomato method is a time management technique proposed by Francesco Cirillo in the late 1980s. The technique involves dividing tasks into 25-minute periods, called “tomatoes,” followed by short breaks. - Wikipedia
In short, then 2 hours of work are divided into 4 segments (“tomatoes”) for 25 minutes, with breaks of 5 minutes. In order not to pinpoint everything manually, there are a bunch of Pomodoro applications on the Internet.
And, I know that this project can be created without a server. But I propose to do it for the sake of the fan. In general, the article is for beginners, so write the logic on the server. And screw push notifications! And do not forget the Telegram bot!
9. Write your blog
No, not a blog engine, but a technical blog. One of the best ways to consolidate new knowledge is to try to explain it to another. Learn something new and retell it in the simplest and most understandable way for you . This helps to structure new knowledge in the head. In addition, your article may be useful to someone.
Instead of a conclusion
Once I myself was looking for a similar list. I hope that he will inspire at least someone to write something fresh and his own . Also, I will be glad to see the continuation of the list in the comments.