Choosing software engineering pet projects

Intro

In every software engineer path always comes a need to practice what he learned. It is not possible just to go through tutorials, online courses and books only, as they remain only dead knowledge. A person wishing to become a software engineer should transform the dead knowledge to practice. But how to pick which projects to do?

Also, some food for thought in addition, how much are we supposed to practice? Practice in self-studies should take not less than 50%, and reach even up to 90% of your time and further. I personally found myself at the beginning a lot picking theory only and practicing all the stuff at work (that made for me a balanced proportion that 10-15% of theory come with 85-90% of practice). But as I learned a plethora of code quality things that the majority of the world is rarely ever using anyway, i reached the need pretty much even in my free time mostly practicing only too for the desired stuff, despite having practice at work. What’s difference between practice at work and home? At work, I use what i have to. At home i use the most desired quality tech, the one i most enjoy to work with, and would prefer to get better enough to make part of stuff i am comfortable to work with.

UI tools

I find sparkling sparkling with ideas, if I know a good UI tool.

Every tool we build, usually needs some end interface to interact with a user.

There are lists for ecosystem of every language, that are googlable like this “LanguageName Awesome curated list of libraries”

Having tools to build UI interface, we have some “entry point” to plan how it will be looking for our user.

(P.S.technically we approach the stage formalized for devs as gathering requirements and building user usage case scenarios, this stuff actually has theory about it, but i would prefer to recommend for starting people to read Code Complete first as more novice-friendly book to start and covering a lot of things that exist in programming),

Someone needs it, at least you

The best pet projects are the ones someone will be using and someone actually needs. It is really pointless to make “business-like needed project in a vacuum”. It could work as part of tutorial completion, but it has no life beyond its first implementation. A good project has users

For example, i started with CLI instrument (because it is kind of easiest interface also too) and went to build autogit tool. Which makes for me easier to write git conventional commits and based on that, the tool generates changelogs i utilize to make releases for products. It helps me to communicate with users and other developers using my tools.

Ideally, you are part of some community.

For me personally unlimited amount of things to do appeared because space game Freelancer community has accumulated in 20 years many many tools, but they became bad, deprecated, lost code and etc, and there is just a simple need to… rebuild things in a quality way. As long as i build employing at least unit testing and giving a thought from the position of a user of this community, what is needed and what i miss for a comfortable life, i have always projects to do.

Other ideas appear for me because i just… use different tools with their own ecosystem and find things i miss.

I love playing minecraft, and that makes me opened to infinity a plethora of minecraft modding projects. Including as just infrastructure project to run minecraft server with mods.

Lets summarize things we said.