Today’s topic was inspired by the BoingBoing article that tells the story of a QA developer who spent 6 years working for a company and literally did nothing besides play computer games, browse Reddit, and waste time.
The Reddit user, FiletOfFish1066, posted his story to the site last week and has instantly become a supreme case study for what happens when you don’t continue to develop your coding skills. After not working for 6 years, he says that he has completely forgotten how to develop and now he’s out of a job.
The story goes that he started working as a software tester and realized that, by writing some scripts, he could fully automate his job. So he worked for about 8 months building testing scripts, and after that, he simply let the tests run. He didn’t have to do anything besides kick back and play video games all day.
There are a number of lessons that developers can learn from this story:
Company Oversight Matters
I don’t really blame the employee in this case. Apparently, there was such little oversight in his organization that he was able to get away with not working for 6 years. That tells me that the company he worked for has serious structural problems to let that go on for so long.
Automation is Key
It should be noted that many organizations are employing people to do work that software can do, but instead are choosing to waste money with archaic manual processes.
Missed Opportunities
This developer started his job doing exactly what he should have done. He recognized that there was a way to automate his job, which was a great first step. If he had gone to management and shown what his automated script did, he would have most likely been promoted for his expertise and would have a great career right now.
Skills Atrophy
It’s possible to lose your coding skills. If a world-class bodybuilder stops going to the gym, eventually, he’d lose his muscles. In the same way, if you stop honing your craft as a developer, you’ll eventually lose your programming skills.
A few years ago, I met with a gentleman who was the vice president of software development at a large energy services company. He got the position by selling software that he had built himself, which has become the industry standard and currently processes billions of dollars in transactions each month. Even though this individual used to be at the top of his field as a developer, since he became an executive, he got further and further away from coding the application, and he admitted to me that he wouldn’t even be able to build a simple program nowadays.
I just finished reading the book Peak by Anders Ericsson and Robert Pool. It gives case studies from the medical field that show that the most experienced general practice doctors are not always the best in their field compared with less experienced physicians. The book explains that, on average, the longer a general practice doctor has been working in the industry, the less they focus on learning, and therefore they start to lose some of their expertise. Surprisingly, it’s actually doctors who have recently finished fellowships and gone through extensive training that perform the best.
The authors did note exceptions when it came to specialists. For example, cancer specialists who perform surgeries daily and are constantly working on their craft perform better than less experienced surgeons.
I thought that was a great example for developers because I know, from my own experience, that if I’m not daily using my development skills, they will atrophy. There really is no middle ground—when it comes to development, you’re either getting better or worse; you won’t stay the same.
So, how can you ensure that you’re always improving and that you won’t lose your coding skills? Here are a few practical tips that I use:
Learn Something New Every Day
Be intentional with how you learn. For example, just yesterday, I taught myself how to integrate Growl notifications into a Rails application, which was something I hadn’t done before.
Avoid Repetition Without Growth
If you simply repeat the work you’ve done in the past, you won’t improve. Thinking back to our case study of the general practice doctors, the research showed that the reason why the older physicians’ skills decreased was because they performed the same work day after day, and eventually, the only tasks they could perform properly were the things that they had repeated each day.
Deliberate Practice
Learning new and challenging skills can be intimidating and stressful. In the same Peak book, the authors said that a common trait among all top performers, in every field they researched, was that they were willing to deliberately practice skills that they found difficult because it was only by mastering those skills that they were able to grow in their profession.
A practical way for developers to implement this method of deliberate practice is to:
I personally have a list that I work and study from, and it’s helped me to feel confident that I’m learning something new each day and that I’m constantly improving as a coder.
On a final side note, I’ve had multiple people message me about the story from BoingBoing asking how it was possible that the developer created a script for automating his work. Without further details, it’s impossible to know for sure. However, since he was in the testing department, my guess is that he built a test suite using tools such as Capybara to run through the software and generate reports on features.
I hope that this guide has helped to inspire you to be deliberate with your practice and that you will continually improve as a developer.