Why some developers are better than others?

Jan 29, 2021

I’m wondering why some developers write better code than others. Sometimes it just about the knowledge of some tricks, clever code snippets, sometimes it's the difference between knowing/using patterns. But recently I’ve noticed the biggest difference comes from knowing and understanding the app, the part of the app a developer is working on. Writing shorter functions doesn’t make such a difference as correctly designed function, correctly implemented flows etc.

That’s the biggest struggle I see for less-techy developers (let’s call them that way) that are not used to solving complex problems, not used to algorithms or just have less analytical minds.

But, I think it all can be solved - and even less gifted developers can be able to do more than just coding layouts. The first step in that journey is to understand where the lacks are, what should be improved. Below I’m pasting what I think the developers who wants to do more than just coding layouts and want to be better in solving problems should do during the day-to-day job

  1. Understand the app you are working on - really it’s a foundation, you can’t successfully deliver features fix bugs with not understanding:

    • What the app is doing
    • How the app is built
    • Architecture of the app
    • Data flows in the application
  2. Understand the problem you are working on
  3. Figure out the solution for the problem (don’t touch code yet!)
  4. Understand where are the bottlenecks of this solution
  5. Think about the implementation of this solution (no, don’t touch code yet!)

    • You might just think about it, visualize it, draw it, say it loud whatever you prefer, but do this step to check if you implementation makes sense on paper
    • If you can remove some frictions before touching the code it’s a huge time saver
  6. Now, you can write your code
  7. After writing the code, review it - yes, take your time and review what you’ve wrote
  8. Refactor it - unless you wrote a really simple, short, well known function there is 99.9% chance you can do it better
  9. If you are about to give it someone else to review - take your time to review your code as someone else. I bet in #7 you were still protecting your code or intentionally skipping some parts to force you to touch it again... but if you can improve something before someone else spend time reviewing your code it show that you respect other people's time. How can you ask someone else to review your code if even you (author of the code) do not put effort into reviewing it first?

See the pattern here? Most of the time developers think not code. Thinking, analyzing, brainstorming, improving solution before ever creating them is much more important than writing a code. Unless you are just coding CSS boxes, then you don’t have to think that much...