What does the workflow of great engineers or programmers look like? What habit do they maintain to achieve that greatness?<p>If you have ever worked with such great people what characteristics did you notice that made them standout?
I think you can group working programmers (as opposed to hobbyists and dilettantes) into three broad categories:<p>- Newbies, still learning, don't know what they don't know.<p>- "Expert beginners," employable but lack curiosity, stuck at a mediocre skill level.<p>- Programmers you might call great, excellent, 10X. They have significant experience and domain expertise, constantly learn and expand their skills.<p>I don't have any numbers. Anecdotally in my (40+ years) experience most programmers fall into the "expert beginner" category. A few never seem to get out of the newbie phase -- five years in and can't write FizzBuzz or debug a simple program.<p>I got the "expert beginner" name from Eric Dietrich here:
<a href="https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/" rel="nofollow">https://daedtech.com/how-developers-stop-learning-rise-of-th...</a>
Unfortunately there were no obvious common patterns or rituals among those few really talented 100x programmers I've met so far in 20 years.<p>The only feature they shared was a sharp mind. Deep thinking for some, both fast and deep enough for others.<p>None of them cared about their "skill level" nor "greatness", most of them didn't even have any social media presence. They just enjoyed their job and challenges it brought.
They update, look for, and provide documentation. They realize the value of good documentation.<p>They review their own PRs, with a focus on making them easy to review.<p>They are vocal on public channels and aren't afraid to ask questions outside their team - making sure that communication that could be relevant for other people isn't sent over DMs.