I begun learning programming a few years ago, and it feels like I barely progressed. I know the basics and a bit of advanced python(I have learnt to use a few libraries), html and css plus a tiny bit of c++, but not much outside of those. I enjoy programming and solving problems using code, and it’s an enjoyable hobby of mine. But I feel like all I do is extremely basic and I want to advance but it feels overwhelming seeing the countless of things I could learn.
I wanna know what are ways I can actually apply the things I have learnt/will learn on somewhat worthwhile things, because the main problem right now is that I don’t really have anything to do with the things I’ve learnt other than silly projects that don’t really last more than a day and aren’t that complex. I also want to advance my knowledge as previously stated since I feel like I know too little for the amount of time I’ve been learning to program.
For context I’m still in school but not too far off from higher ed, and I have a decent amount of free time on most days(~2-4 hrs).
Thanks if you reply
I think what you need is inspiration, there’s so many things to build to improve your skills and broaden your knowledge. Not every project you work on needs to be novel and exciting, even basic things can provide ample complexity to learn new things.
For example, in c++ you can make a basic image viewer that takes the name of a file and displays it, using some library like SDL (or OpenGl/Vulkan(hard)). This would teach you a lot about file formats, dynamic memory allocation and managing it, graphics pipeline etc.
For html and css, you can try to recreate some cool websites you see online. I hope this gives an inspiration(best viewed on PC).
For problem solving there’s always leet code, advent of code and other similar services.
If you want that sweet dopamine hit of solving problem with out the overhead of doing a project just try leet code. Like that Chinese ping pong player. Nothing wrong with that if you are not gonna pursue it as a job. Ps. You can use different language then you are familiar with like Haskell or ocamel. It can really help you think differently and look problems in new light.
As others have said, keep finding and building projects for yourself. Maybe get this book if you don’t have ideas of things you can build: Exercises for Programmers: 57 Challenges to Develop Your Coding Skills
I propose you contribute to Foss software that you use.
With that you are motivated because you are invested in the project, you will see the effect of your work and you learn about the process of contributing and working in a team.
That should keep you going for a while. Best of luck.
You need to think of things you might want to build. Try building software that nobody ever has, try fixing issues in current software using git. You can find lots of python program in GitHub, waiting for contributions. That’s how I learnt. If you want to learn and use C++, try building software that interacts with the real world with Arduino, try contributing to the Linux kernel or try making simple games using C++ in Godot.
I did actually make a game in godot but it was mostly based on a tutorial and little of my own inpuy