The origin story of that term eludes me; it may have been coined by me, by someone I worked with, or someone I never met. I don’t remember either way. Simply put, a code thrasher is a developer who doesn’t think through what he/she is doing. Someone who will try every combination of tactics they can think of (or Google) to get their code to work:
Put the code on line
n - 1? Sure. Let’s give it a shot.
Oh! Maybe if I add this compiler flag then my code will compile.
I’ll copy/paste this Stackoverflow answer and see what happens.
This is what I, and my colleagues, refer to as “thrashing”. Trying anything and everything—with little to no methodology—until the errors stop.
This blog is my attempt to minimize my own thrashing. Feynman nailed it when he said,
That which I cannot create I do not understand
Software development is hard. It’s a career (or hobby...or both) that requires near-constant learning. But reading documentation will only get you so far. Like learning a new human language, only reading books will get you so far. To actually learn and understand the language you need to go out and create conversations.
In Software you need to put the documentation into action. Implement that pattern you just read about. Try out that new language by building a whatever. Put your fingers to your keyboard and create!
That’s when you’ll really understand and finally stop thrashing.
My name is Matt and I’m a frontend developer living in Los Angeles. Currently, I’m working on React and TypeScript applications at work, but my interests in tech are all over the place. I’m also a Linux nerd who finally graduated into Gentoo.
Reach out to me on Twitter if you think I've made a mistake or, hey, you just want to chat.