Ask HN: What Does It Take to Be a "Black Belt" Programmer?
5 points by ahmaman 1 year ago | 4 commentsI 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?
- in9 1 year agoThe 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.
- meiraleal 1 year agoA 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
- 082349872349872 1 year agosolely a technical progression:
(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.)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
- accrual 1 year agoOne 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.