3 ms·
It’s interesting to think about what “atomic drills” would look like for programming. I do “dojos” with my team but it’s usually more “group code review” or “pr
by theptip 4y ago
It’s interesting to think about what “atomic drills” would look like for programming. I do “dojos” with my team but it’s usually more “group code review” or “present interesting concept”.
I’ve heard folks do mob programming on simple problems (eg “implement fizzbuzz in a few different paradigms”). Perhaps also a little time spent on advent of code would be good too? Everybody on the team does Day X and then we discuss and compare solutions?
Edit to add: thinking about drills - what if we merged interviews and team drills, spent some time setting up a realistic work scenario as a drill, and added an interviewee? That way, during an interview the team gets to drill, say, reviewing and debugging a feature rollout. The interviewee gets to actually spend 2-4h in a realistic work simulation instead of solving LeetCode problems.
- anthomtb 4y ago"Atomic drills", as done for sports, do not apply well to programming IME. The following will make a lot more sense if you are familiar with the book Thinking Fast and Slow (https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow), or the research upon which that popularization is based. Atomic drills as performed for sports allow you to use System 2 (slow, deliberate, logical) to train System 1 (fast, reactive, emotional). But when programming you are almost always going to be in System 2. Programming does not deal with instantaneous reactions in the same way sports does. Sure, you might react to a bug report (dammit, Johnson, I told you async was a bad idea for this!) but its not like sports, where by the time you consciously process input your physical reaction should have already occurred. To take the example from the Judo article, if you have formed the thought of "that guy looks about to throw me!" you are probably already on the ground. There may be very time limited, competitive programming events where you need to think so fast that atomic drills can come into play. I do not know of any but they could exist. But basically, when programming, at least on a professional basis, you are not relying on physical reactions to get the job done. And atomic drills are about training physical reactions. There is definitely value, lots of it, to the "realistic work scenarios" you describe, it is just not the same as figuring out the bare fundamentals of a sport and practicing until they are entirely subconscious.
- operator-name 4y agoWhat about the "basic competencies" such as touch typing, learning editor shortcuts and other workflow optimisations?
- joshka 4y agoThe term you're looking for to find more info on this is a Code Kata.
- tmtvl 4y agoAren't things like LeetCode and Hacker Rank supposed to be programming drills? Though I do like the idea of getting a realistic work simulation. That said isn't 4 hours a little short? I wouldn't be able to get much of anything done in so little time.