HACKER Q&A
📣 sourabhv

How to go from a good engineer to a great one?


After about 8 years as a software engineer, I've noticed significant growth in my skills, from grappling with messy code to crafting cleaner solutions, and from struggling with documentation to confidently delving into library source code. I've broadened my expertise across application, frontend, and backend development. However, over the past 2-3 years, I've encountered a roadblock. I find myself unable to progress further or delve into advanced topics. This stagnation has led me to undervalue my accomplishments and feel demotivated about further learning. I often admire individuals who can independently create remarkable tools, scale products from a few users to millions, and rapidly develop and deploy software within a week.

Has anyone else experienced a similar feeling of being stuck? Any advice on how to overcome this hurdle and continue progressing?

PS: And yes I asked GPT to format my question. So that's the reason it sounds robotic, its not bot spam.


  👤 surprisetalk Accepted Answer ✓
For me, leaving a plateau usually requires a paradigm shift. Here's a few rabbit-holes for you:

• Learn memory management from Rust

• Study Postgres internals: https://www.interdb.jp/pg/

• Learn architecture and design from Elm: https://taylor.town/elm-2023

• Try building things "from scratch" with zero dependencies

• Watch online lectures from Joe Armstrong, Alan Kay, Gerald Sussman, Bret Victor, Casey Muratori, Greg Young, Richard Feldman

• Build a robot

• Learn a semi-esoteric language like Forth, APL/J/K/BQN, Lisp/Scheme, Wolfram Language, etc.

But research isn't enough. I never really understood the value of new paradigms until I tried to use them in a personal (or professional) project.

Let me know if you need any further resources or suggestions.

Good luck!


👤 brudgers
Humility? The best engineering is engineering that doesn't reflect the engineer's ego. Great engineers are great because they maintain a focus on being good engineers.

For example:

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian Kernighan

Good luck.