from Hacker News

Ask HN: What Does It Take to Be a "Black Belt" Programmer?

by ahmaman on 12/10/23, 8:10 PM with 4 comments

Just like some martial arts have a belt system to reflect your skills, I wonder if we could adopt a similar approach in programming. What would each belt represent?

I am a Brazilian Jiu-Jitsu (BJJ) practitioner myself, and in BJJ, there are generally five belt levels: white, blue, purple, brown, and black. When you spar with someone of a higher belt rank, you really see that there are levels to the game.

Similarly, even though our skills as programmers aren’t tested in the same way, it’s intriguing to think about what each belt might signify for a programmer.

What abilities should a “blue belt” programmer possess? How would that differ from a “purple belt” or a “black belt” programmer?

  • by in9 on 12/12/23, 6:39 PM

    The belt analogy, IMHO, does not transfer to programming in general because each field where programming is useful or extremely required has different notions of milestones. If you want to force me into having a general notion of tiers for programming I'd look into the required non-optional courses for a major in computer science and there you have it.
  • by meiraleal on 12/11/23, 1:49 PM

    A blue belt should be able to work in a team and execute his part of the work well, integrating it right

    The purple belt can do the same but alone, developing a whole project by himself taking care of the important things, scale it to commercial use

    And a black belt will managing the work of multiple purple belts to do what they do well at a large scale

  • by 082349872349872 on 12/11/23, 12:08 AM

    solely a technical progression:

        white:    can write, [build, deploy,] and run a trivial program
        coloured: knows how to trade space for time, time for space,
                    and will trade both for simplicity
        brown:    strong in either systems ∨ theory
        black:    strong in both systems ∧ theory
    
    (as a counterpoint, my understanding is that for kendō players, the All-Japan champion may be ~3 dan, but the elite are ~8 dan, with the idea that a 3 dan player may win solely through superior speed & physique, taking advantage of the opponent's mistakes, but an 8 dan player should be able to shape the game to achieve a superior position despite having neither superior speed nor superior physique, by inducing the opponent to make mistakes.)
  • by accrual on 12/10/23, 11:57 PM

    One of the things that differentiate skill level in programmers is soft skills. The ability to navigate calls with stakeholders, apply pressure where needed to achieve certain results, answer technical questions for non-technical folks, etc., I think help stratify programmers.