Anti Curiosity
Curiosity Killed the Cat
When was the last time you really asked about something you didn’t know. When was the last time you looked at a new programming language, book series, or somewhere you hadn’t been before. When was the last time you actually ventured beyond your bounds because you wanted to know what was out there?
If curiosity killed the cat, then surely it lives on while in it’s safety net right? Well to tell the truth, the incurious cat dies a slower and subtle death. So above all, I ask: stay curious.
Why Bother
You may be very successful. You may be smart. And you may not need to know about the trivial things out there, like AI, like the Web, like embedded devices, like BI, like data analytics.
You may not. And strictly speaking you don’t need to know all of these things, and you can’t.
You can be a much stronger developer by daring to look beyond your own domain and exploring things you don’t know. You may pick up things you like, you may remember why you do the thing you do. But importantly, exploring allows for synthesis and growth.
Specific Threats: OO and “AGILE”
“Object Oriented” programming, and Agile (TM) are curiosity killers. I know Robert Martin might say “well actually agile is all the good things, and if you did it wrong it’s not agile” and like, thanks Robert I get that you probably have another book to sell.
Any paradigm that you learn fundamentally cuts off parts of the design space.
This is a good thing: you need to be able to deliver solutions. It doesn’t matter if you’ve discovered the best way to code something after years and years of tinkering. It doesn’t matter if you have the most lines of code or the fastest execution. What matters is working code, and preferably less of it because chances are you’ll need to change it.
So why are Object Oriented and Agile threats?
The simple trap is to learn the “principles” of these paradigms, and never explore beyond them. We’ll learn the tools and apply them without seeing the downstream effects. We cling to these principles and lessons and we forget how to discard the training wheels.
Programming is hard, and project management is hard. Learning a method isn’t enough to be good at either of these skills. Is a writer good at writing because they’ve read all Stephen King’s books? Is a carpenter a good carpenter because they can identify different woods? Is a Quarterback a good player because he’s memorized all the plays in the playbook?
No
Would all of those activities help? Maybe not! In fact, you can learn the wrong thing from these “lessons”
Developers are tricky people; we’re tasked with a complicated job. Make a complicated machine do something that I don’t want to do, or make a complicated system work a specific way, or solve an unsolvable problem by lunch. Developers are sold and told a thousand different antidotes and methods for reaching these goals. Most find success doing a specific thing, and as creatures of habit and learning we are inclined to continue down the pathways that have brought us success in the past.
I’m not sure if it’s true but developers seem to be prone to blinders. We’ll put up things in our way to ignore any dissonance, and to stay on a true path.
Sometimes you need to break from the path if only to learn how to follow it better.
The Platonic Win
Plato was a famous dude who’s attributed with a lot of fun stuff. Things like “look at the sun to know what goodness is.” Ok, so I’m not a Platonist, but one thing Plato’s known for is claiming to be ignorant.
Plato (allegedly - this guy is more myth than history) tried to delete Ego from the equation by forcing a sort of Tabula Rasa, where you’d construct knowledge from a blank slate. This is a great way to build new experiences - unfortunately it’s not easy, and if you’re really trying to do it right it can take time. It also usually takes a partner. The “classical” method is a Platonic dialog ala “Republic,” where Plato, the genius he is, says he’d be the best king.
Plato was also yoked, so I think his main thing was to threaten a wrestling match so most thought it’d be better to talk things through with him.
No more sniping at Plato!
Drop Ego and Give Up: Become One with Nothing
The only way to learn is to fail. A wise dog once said,
Sucking at something is the first step to being sorta good at something
So I make it a point to accept failures, reassess, and continue on. I know that if I want something to be truly successful, whether it’s a creative endeavor, a project, or a job - for me to be a master requires failure and accepting failure.
Addenda & Further Reading
I’ve found a few resources, I may add more as I find them
Stay curious!