(Like this article? Read more Wednesday Wisdom!)
One of my favorite colleagues is a former army Ranger. He told me that the motto of his Ranger company, emblazoned in the hall of their building, is: Try harder to suck less.
I love that motto because it describes so well what I have been trying to do in the last few decades. It’s also what I expect of my colleagues. It's okay if you don't know something, it's okay if you make mistakes (even dumb ones). Just try hard every day to suck less and we’ll be fine.
The only way to become good at anything is to do the work. My piano teacher told me that whenever he plays in public, people come up to him to tell him how lucky he is with his God-given talents. "Nope," he then answers: "It's practice." "But surely," these people then reply: "You have been blessed with a talent for music?" "No," he then adds: "It's really all just practice."
A well-known saying in the music world is that if you don't practice for a day, you notice; if you don't practice for two days, your partner notices, and if you don't practice for three days, your audience notices. I am a terrible piano player, but my own experience suggests this is true.
Pablo Casals was a brilliant cellist. He continued to practice intensely with his cello well into his nineties. When he was asked why he was so diligent, he replied: “I think I see some improvement.”
What's true for playing the piano and the cello is true for programming computers too. I am pretty decent at it because I have been coding almost daily for about forty years. Not eight hours a day every day anymore, but my mind is on how to develop complex pieces of software almost continuously. To support that habit requires continuous study of new and existing languages, programming patterns, algorithms, design methodologies, machine architectures, network protocols, security techniques, storage solutions, and a whole host of other technologies.
Making that effort trains your conscious as well as your unconscious mind. The latter one is important to make the right judgment calls in an instant.
Once, when I was teaching a class on operating systems in college, a group that was working on an assignment to extend the scheduler of the Xinu operating system came to me with a big listing of their work. They told me it contained a bug that they just couldn't find. Kindly enough they didn't expect me to find the bug, but could they please talk to me for a bit about what they were trying to do?
While they were talking I was leafing through their listing, which consisted of pages and pages of condensed C code. Suddenly my eye caught something out of the ordinary. I looked at that piece of code more closely and noticed an off-by-one error. I interrupted their explanation, pointed to the offending line of code, and said: "There's your bug." They grabbed the listing out of my hands, looked at the code, and stormed out of the classroom.
It's like this golfer who said: "People tell me I am lucky, but I find that the more I train, the luckier I get (quote) 🙂.
Getting good at something, anything, requires toiling for decades. I have done hundreds of landings in a Cessna 172 and I am still not great at it. Sure, I can get the plane safely on the ground every time, and every landing that you can walk away from is a good one, but still, every landing I try harder to suck less.
All that toil turned me into an old fart and with that comes old fart attitudes. One of the things that annoys the living daylights out of me are bootcamps that promise to make you an expert at coding in six months. There is nothing worthwhile in our field that you can become an expert in with just six months of study, no matter how intense that study is. A good six months program will at best give you entry level skills. That's not bad at all, everyone has to start at the beginning and a good training program might teach you in six months what you would otherwise need two years of self-study to learn, but let's not kid anyone: Even after an intense bootcamp, you are still a beginner.
At the same intensity of annoyance is the following: One of my previous employers decided to rejig job titles so that people with 1-2 years of experience were now hired as senior software engineers. SENIOR! After two years of experience! What the flying f*ck! To be sure, these were mostly good people with good degrees and some work experience, but surely there is no universe in which that will make you senior in our profession. If that is senior, what am I? Methusalaic?
I get why they did this, it's a race to the bottom. In the job market we find ourselves in a place where even entry level positions are often hard to fill and a lofty job title becomes a weapon in the battle for talent. In the same vein we would talk to people with 5-6 years of industry experience and they expected to be hired as staff engineers. As a comparison, way back when job titles still meant something, I got promoted to staff engineer at Google in 2010, after about 22 years in the field.
Old man raging at the sky… :-)
Whenever my annoyance at these things gets the better of me, I remember it's just inflation. When I was a kid I could buy a luxury ice cream for 1 guilder and 25 cents, whereas now I have to pay 5 guilders for that same frozen treat (converted from Euros). Fortunately, most of the senior software engineers of today do not behave like the senior software engineers of yore; today's seniors seem to realize that they are still at the start of their careers, which is good because they have a hell of a time in front of them, with AI and all.
Whatever your title, to get any good at anything you have to keep at it. I often say that any claim I have to be somewhat decent at something, is because I have been doing it for a long time and made all the mistakes already.
There is no silver bullet.
Actually, there is, you can buy it at Amazon.
Let me rephrase that. The metaphorical silver bullet does not exist. If you want to become an expert at something, get up every day and try harder to suck less.
Amen, Methuselah.
Corollary: Don't sit still. Keep seeking out jobs and projects where you are strongly compelled to advance your skills. Or per the alleged Jazz musician proverb: look for a group where everyone is a better player than you are. Once you get too comfortable there, switch. Always be the worst musician in the band.
YES! This year, suddenly everyone is an architect.