Ask HN: How do you master your programming skills?

2 points by Szpadel ↗ HN
I've been a developer for many years, and I consider myself proficient in my field. However, I recognize that my coding practices could be more polished, and my architectural designs are not flawless. There's always room for improvement.

The challenge arises when seeking resources for advancement at a senior developer level. The majority of online materials cater to beginners or intermediate-level developers, making it difficult for seasoned professionals to find content that can truly help them refine their skills.

I'm eager to elevate my abilities further. Beyond mere practice, what strategies or resources can I pursue? Are there any in-depth blogs, books, videos, or other materials focused on enhancing code style and architecture for those who are already familiar with the basics and aim to achieve mastery in these areas?

PS I primarily focusing on rust at the moment, but I believe that those skills are language agnostic

9 comments

[ 2.1 ms ] story [ 27.4 ms ] thread
Look at an open source project you frequently use.

I’m talking redis, llama.cpp, vim, serde, wgpu, whatever. Literally anything.

Rebuild it.

That’s it, that’s how you advance at this point. Try to make it perfect for you. Rediscover why some things in that original project are unintuitive. Learn the trade offs that were made first hand.

According to the pragmatic bookshelf “a master has failed more times than an expert has tried”

So start failing at rebuilding these big powerful tools.

That's actually something I started recently Something like simpler redis with focus on distributed cache
The fundamentals of programming haven't changed much in decades, so I'd start there. Probably more wisdom in The C Programming Language or any of Knuth's or Wirth's books than in the mountains of tutorials and Medium posts online. The languages and tools and frameworks in vogue change all the time, but they are mostly just new coats of paint on the same old house. As Alan Kay (another author you might read) pointed out, the programming profession is plagued by fads and fashion, constantly reinventing the flat tire.
Thanks, I'll take a look at those
I enjoyed Richard Gabriel's book Patterns of Software.
Try to solve an interesting but not business critical side quest with a new method. Give yourself at least some time to play again. Then try to understand what your did and extend your taxonomy with that new understanding.

Going on a walk and explaining our debating it with a peer is great for that...

As an adult you typically learn through extending existing knowledge, not necessarily something completely new.

I'm feeling like I'm sometimes invent something again from scratch that is already known and I could just read about it somewhere instead, but I don't know how it's called yet

For some unique problems that's IMO fine but form time to time I read somewhere something that gives me another perspective and dramatically changes my approach

That's why I'm looking for a way to eg learn more about some interesting algorithms that I don't know that I need before I read about them

Ah. I see. For me such a moment was "The Zen of Erlang" and reading Joe Armstrong's thesis. Earlier (much eralier) it was Numerical Recipes or "Multiple View Geometry" by Hartley and Zisserman.
Build a better mousetrap.