4 ms·
Get Better at Programming?
I have been coding for some time and I can write basic stuff pretty easily like, reading files, writing files, i've done data structures and little bit leetcode. Are there any books someone could recommend or some list of projects that I could make to get better progressively.
Thanks for the help!
- wormpilled 10mo ago[flagged]
- ben_w 10mo agoFor 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 10mo agoHey 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 10mo agoCool :) 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 10mo agoThats a really nice idea, thanks for all the advice and help
- AnimalMuppet 10mo agoDo 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 10mo agoHey, 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.
- sn9 10mo agoSoftware 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/ https://third-bit.com/sdxpy/ [1] https://www.amazon.com/Elements-Computing-Systems-second-Principles-dp-0262539802/dp/0262539802 https://www.amazon.com/Elements-Computing-Systems-second-Pri... [2] https://csprimer.com/courses/ https://csprimer.com/courses/ [3] https://www.andreinc.net/2024/03/28/programming-projects-ideas https://www.andreinc.net/2024/03/28/programming-projects-ide... [4] https://app.codecrafters.io/catalog https://app.codecrafters.io/catalog
- vaasfps 10mo agoHey, Thanks for the response and all the resources, will definitely look into them.
- sn9 10mo agoI'd also check out HtDP [0] or the similar two-book set on problem solving and program design by Marco T. Morazán [1]. They both come from the Racket school of pedagogy and focus on systematic program design [2]. The first resource is free and excellent, but the second goes into more detail. [0] https://htdp.org/2024-11-6/Book/index.html https://htdp.org/2024-11-6/Book/index.html [1] https://www.amazon.com/stores/author/B09QMPRYYM/allbooks?ccs_id=112842ee-dfbf-4600-bfaf-3ad465b4c800 https://www.amazon.com/stores/author/B09QMPRYYM/allbooks?ccs... [2] https://felleisen.org/matthias/Thoughts/The_Design_Recipe.html https://felleisen.org/matthias/Thoughts/The_Design_Recipe.ht...