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

  • germanatlas@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 month ago

    You can try to write programs you think would be a challenge for you (but still doable at your skill level). Write some games, bots that solve simple games like Tic Tac Toe or mods for your favourite (moddable) games. If you own a Raspberry Pi you could play around with the DPIO. Your free time projects are usually nothing too exciting or world-changing and that’s perfectly fine, they don’t have to be; the worthwhile part about them will be the practice they’ll offer.

    Alternatively, you could try reading some theory, learn different types of data structures, sorting algorithms or pathfinding algorithms and their respective strengths and weaknesses. Or go deeper and prepare for higher Edu in CS by looking into the maths fundamentals, learn some linear algebra, discrete math, analysis or basic graph theory, it will help you a lot.

    Edit: graph theory, not knot theory