Who are the bottom 20% worst programmers and what are they working on? Not everyone can be a 10% top developer, so what are the bottom developers doing, who are they and what is their influence on the world?

Question
Mudassir Ali 8 months 1 Answer 126 views

Answer ( 1 )

  1. Originally Answered: Who are the bottom 20% worst programmers and what are they working on?
    I have to go anon for this one. There is a guy at work, let’s call him Mark. I remember in my interview he asked a very simple technical question and that was it. It was very apparent that he was a bottom 20% programmer when I read his code about a week into the job.

    He wrote some code to perform a large scale operation involving database querying and transactions, REST API requests, and searching through records. I was to help with the project, but I had a hard time working with his code without nitpicking almost every single line. Everything was inefficient, from the vague variable names to the overall design. There was no decomposition — just a huge chunk of code in one file, mostly in one method, and that one method was a huge if/elif statement. For a project that had to scale, this was pretty scary. There was little to no thought about abstraction. The algorithms were painfully inefficient. The worst part is that this code had taken Mark months to finish. I could have written the code in a week or two.

    Mark, like other bottom 20% programmers, claim that they are no good at math. They have no intuition for analyzing algorithms. They cannot implement data structures, and make costly design decisions. But good programmers are scarce, so sometimes Marks find their way into organizations. Mark gets the job done, but is grossly inefficient.

    It’s hard to even talk about future designs for the project. If we have a lot of traffic then we need a batch system to perform one or more tasks for each incoming connection. Mark doesn’t understand a batch system (a queue). He thinks all connections can be served all at once. Either that or he doesn’t even consider multiple incoming connections.

    These concepts aren’t even that difficult or theoretical. Sometimes I wonder how Mark got the job, or why he works as a programmer. Sometimes I wonder how he manages his day-to-day. He does a lot more typing than is necessary. I can only shake my head, and try not to think about it.

    Mark is a nice guy, but he is a bottom 20% programmer. Being a skilled programmer requires some base of conceptual knowledge, a strong understanding of time analysis, and a sense of how to make things better. Unfortunately, he is lacking in all departments.

    Update: A commenter mentioned that Mark probably hasn’t been programming long enough to be considered in any quintile, and I think that is fair. People can make these mistakes when starting out. I still believe that Mark is an interesting example, given that he works at a “unicorn” company where expectations can run high.

    Commenters have also shared advice to share my knowledge with him, which I will. I just spent some one-on-one peer support time with him and will continue doing so, and hopefully it helps.

Leave an answer