As a relatively new coder, I have noticed something problematic:
It's increasingly hard to find a time-worthy project to work on.
Let me elaborate a little bit:
Projects are usually what developers learn the most from, not having restrictions for coding and being able to make whatever their knowledge and mind allows them to.
This usually isn't a problem for frontend devs, seeming as websites are usually original and unique.
But for some software developers, this becomes a big problem, since there are barely any programs/ideas that haven't been created before. Of course you can choose to recreate that program, but that usually contributes to imposter syndrome, which affects a huge portion of the programming scene.
This isn't a problem for some software devs that have great imagination, but that sadly isn't everyone.
I've been struggling with this ever since I got into software development, and it hasn't gotten better.
Top comments (3)
The fewest go to sleep, wake up and come up with an original project. Or a way to enhance other projects significantly.
Just create something that you need. Or something around a topic you're interested in. Do you happen to listen to podcasts often? Why not create a podcast listener. Small side projects offer you opportunities to try out new tech stacks. Maybe you never worked with a database before and only with JSON "save files". Well, time to try one out then!
I found Java, the JVM and bytecode super interested a year ago. So I set down, read the specification and wrote my own small JVM. It didn't run Java 15 (?) at the time. It only worked on Java 7 I think. And not all of the native side was implemented. But a simple "Hello, world!" worked perfectly.
Maybe there is software that you aren't happy with but you use daily. Or maybe it's good but closed-source. Try creating a "clone", why not!
Setting oneself the standard of
programs/ideas that haven't been created before
ororiginal and unique
is just the wrong approach. Especially as one who is relatively new to coding.In the end, software is about making someone's life easier. And why not start with yours before thinking about others?
You make some good points, but keep in mind that as a newbie I don't really have the experience to make something that I'd actually want to make (an example could be a program that uses the Steelseries SDK to check my mouse's battery percentage, and when it's below 30% it sends a notification to windows).
So I need to start smaller, and that's where the problem lies, there really isn't much that I can do.
I still think that it holds true even for your example. My very first larger project was an editor in Java. I’m pretty sure I only created a test area with some basic menus like copy and paste. And it took me weeks. But even if the journey was long, it was the project that made me fully understand some programming concepts.
I’d argue that, even as a beginner, just try it. Take small steps. Look up the documentation of the sdk. Do you need to learn a new language for it? Maybe try and see if an sdk is available for your most familiar programming language. Don’t try to make it work in one step. Maybe try to initialize the sdk. Then try to connect or list your mouse. Then print the value out to the console. The write some kind of watcher that checks the value every x seconds. Then add the conditional for the percentage. Maybe make it configurable using a program argument. And just at the end take a look at how you create a notification in windows.
Even if you only manage to get to the initialization part and barely get that to work. It doesn’t matter. You’d have to go through it at some point. I think such problems are perfect for learning. Because your goal is to have this program. And it’s that what keeps you motivated to power through the difficult parts of it.