Get Better at Programming?

3 points | by vaasfps 6 hours ago ago

11 comments

  • sn9 4 hours ago ago

    Software Design by Example sounds like what you want [0].

    There's also NAND to Tetris [1], csprimer [2], and/or lists like these [3] or codecrafters [4].

    [0] https://third-bit.com/sdxpy/

    [1] https://www.amazon.com/Elements-Computing-Systems-second-Pri...

    [2] https://csprimer.com/courses/

    [3] https://www.andreinc.net/2024/03/28/programming-projects-ide...

    [4] https://app.codecrafters.io/catalog

    • vaasfps 4 hours ago ago

      Hey, Thanks for the response and all the resources, will definitely look into them.

  • ben_w 5 hours ago ago

    For self education? Things that are fun to make incremental progress with.

    What worked for me was writing an image editor. Lots of different filters and effects I could add to it.

    Then games; if you do that, start with minesweeper or chess (without AI), add features and complexity to do whatever seems fun. You don't need to bother with a fancy game engine at this level, vanilla JavaScript or python or whatever else you're using is good enough, everything is good enough.

    If you love sounds and how they work, make a sound processor. Music, procedural music composition.

    Main thing is just keep yourself excited for the next step; what that means for you is something only you can answer.

    • vaasfps 5 hours ago ago

      Hey ben, thanks for the response and advice, I've built chess in the terminal with Go, the trouble for me is I cant seem to find something I can work on a long time and have fun. I'll try working on more projects and see if I can find something. :)

      • ben_w 4 hours ago ago

        Cool :)

        If chess appeals, how about chess variants, perhaps one like Penultima where your implementation could read a custom secret rule for a piece and allow/forbid according to that rule?

        (This is also one of the projects on my to-do list).

        Games in general can become arbitrarily complex: A tower defence game can expand to become all of Starcraft, or a Settlers of Catan clone could expand to become Civilization.

        But yeah, focus on something you'd enjoy either using or playing, depending on if it's a game or a tool.

        • vaasfps 4 hours ago ago

          Thats a really nice idea, thanks for all the advice and help

  • AnimalMuppet 4 hours ago ago

    Do you want to get better at programming? Or at software engineering?

    For programming, learn a new thing to do with your language (network programming, say). Or learn a second language.

    For software engineering... that winds up being all about the accurate communication of technical information, so work on reading and writing technical documentation. Also more architecture-level issues rather than fits-in-a-few-lines-of-code kind of problems.

    • vaasfps 4 hours ago ago

      Hey, thanks for your response, I would say programming, right now I am trying to get better at network programming and learning more about the bit torrent protocol and trying to build it.

  • wormpilled 6 hours ago ago

    [flagged]

    • bigyabai 5 hours ago ago

      OP has been on this website for 30 minutes and has more karma than you. They must be getting something right.

    • vaasfps 5 hours ago ago

      hope your day gets better