What is a "Code Thrasher"?

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 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 can be symptomatic of newness to the field or it can be symptomatic of laziness, or apathy, in the developer. In the former case it’s forgivable (to some extent) and in the latter case it’s a disease. There are times, or nooks within the practice of development, when we all succumb to thrashing. I, myself, do it fairly often when doing most anything in the CSS domain. Despite being paid to create and maintain JavaScript apps, I can’t stand CSS. It’s too boring and I can’t retain the rules. So...I thrash.

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.

Happy hacking!

—-

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.