source KDPVEarlier on Habré a translation of an
article from Medium was published 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 gathered for you a selection of ideas in case itching to do something of my own. All these “projects” already exist in one form or another, but sometimes it is interesting to write your backend bike and ride it on a rake.
1. Blog Engine
Yes, I decided to start my “top” with a blog. In my opinion, this is one of the simplest options to learn the intricacies of a new YaP or framework. Look closely at the existing solutions and think what you would do better. Open the sources of WordPress and list what is wrong in it
(everything is wrong in it ...) .
')
Naturally, you should not try to roll out the finished product immediately with a bunch of features. Describe the
MVP , turn it into checklist and go! By the way, this advice applies to all other points.
2. IO game
picture taken from hereIf you want to penetrate into reactive programming, web sockets and that's it, and chat is too boring to write, you can try implementing a backend for: 15x15 daggers, sea battle, or even gomoku. The advantage of these games is that you can create a client for them even with minimal knowledge of JS.
Bonus will have to think about the algorithm of the validation of the playing field, which is also not as easy as it seems.
3. Parser file format
This is the case when you can do something really useful for the community of your favorite programming language. Look at which files (media, documents, data, etc.) you regularly work with and make a library for them in your PL. Just do not write a wrapper over the existing extension, and study the file specification. And hands, on hardcore.
As an example, I will give a library in PHP to work with 3d models of the STL format. The description of this format is on the Internet. But 4 more years ago there was only one working library in the network, which knew how to return the size and volume of the model. It sold for $ 10 per copy. And she was in great demand.
If you cannot invent something new, you should try to make your own implementation of an existing one. For example, as far as I know, there is still no PHP library that could digest> 1GB XML files without having eaten all the RAM. Although it is believed that stream piping, SPL and a bit of persistence should solve this problem.
4. Telegram, Skype, Slack any other bot
picture taken from hereThere can be plenty of options: weather forecast, reminders, calculator,
card “Drunkard” , generator of one-time passwords for the site, etc.
Let each of them already been created by someone. But, you and I want to learn something new and add “weights” to your resume. Is not it?
5. Forum engine
The advantages are the same as in the first item.
If this seems trivial and unnecessary to you, read the article about how a person
wrote a forum in assembly language . What for? Just
because it can . But now he can confirm his knowledge by referring to an interesting article and its repository. Is this not the motivation?

6. Clone 10 Minute Mail

Probably everyone knows the excellent
10minutemail service. It allows you to not 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 on social networks, ads are published in the form of a screenshot of the phone screen with an open note application.
You can make for these people a service for generating images from text. I found a
similar solution in Google, but, in my opinion, there is too much unnecessary functionality here. Enough forms for entering text and buttons: "do well!".
By the way, novice front-tenders offer this task for implementation without a server.
8. Pomodoro
picture taken from hereThe Tomato Method is a time management technique proposed by Francesco Cirillo in the late 1980s. The technique involves splitting tasks into 25-minute periods, called “tomatoes,” followed by short breaks. - Wikipedia
In short, 2 hours of work are divided into 4 segments (“tomatoes”) for 25 minutes, with intervals of 5 minutes. In order not to detect everything manually, on the Internet there are a bunch of applications "Pomodoro".
And, I know that this project can be created without a server. But I propose to do this for fun. And in general, an article for beginner backenders, so, write the logic on the server. And screw push notifications! And Telegram-bot do not forget!
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 as simple as possible and understandable to
you . It helps to structure new knowledge in the head. In addition, your article may be useful for someone.
Instead of conclusion
Once I myself was looking for a similar list. I hope that at least he will inspire someone to write something fresh and
his own . Also, I will be glad to see the continuation of the list in the comments.