Are You Too Old to Code?

I'm sure this post is timely.

On Friday night, I had dinner with the family of a dear brother who has been in construction for years and has been thinking about making a change to the software field. He has built his own web sites on multiple occasions and when he was younger "spent too much time on the computer". He's always loved it but it has always been a distraction to what he thought he needed to do to make a living.

He took my advice and looked at the Learn To Program book and has been breezing through it as I suspected he would. I've seen him work and know that he is tenacious. I know he can concentrate for hours at a time and do incredibly fine work (his specialty in the construction field is trim work, and he's done a lot of it in very high end homes with very elaborate trim). He has run a business and strives for customer satisfaction. He already has the mindset of a craftsman in many ways. If he decides to dive in completely to the software field, I'm confident he could be an excellent Software Craftsman.

Early this morning, I ran across a blog post, It’s Not Too Late to Learn How to Code.

Later this morning, Mitch Amiano, an independent software developer who has done some work with RoleModel, dropped me a note,

Are you looking for anyone in the 30s age range?

There was a guy at the RDU BarCamp this year, [name deleted], who is looking to get into a more technical field. He seemed a little self-effacing but from what little I know about his past history he doesn't shy away from hard work or long hours.

He currently works in a position that will be changing in the next 10 months. He is their "tech guru", but (according to him) that was because of how little the others know about technology. I would imagine he would be somewhere at a beginning apprentice level from a software standpoint.

I was very fortunate that I had my first taste of programming when I was 17 and liked it. I went to college at a good engineering school and had co-op jobs starting my sophomore year that confirmed that I was both good at it and loved it. After a second co-op job, I had seen enough to know that I wanted to work with smaller teams doing innovative work rather than at larger companies doing work that many people did to support the infrastructure at the large companies.

However, I remember listening to some of my peers at college in their senior years saying, "You know. Now that I've started getting a feel for what a {fill-in-the-blank} engineer does, I really don't like it. But after paying for 4 years of school, I don't think I have much of a choice but to grin and bear it for a few years, and hope that I make enough money and find an opportunity to do something I'd really enjoy. I'm certainly not going to tell my dad that I want to go back to school for another few years to try out something else."

It takes a lot of courage to make a job change and go back for training to do something you only think you might love. Perhaps there is a stigma that making a career change, or going back to school, points to some sort of failure. Perhaps it is just the financial risk that would keep you from doing it. The price of a four-year degree is not just the money, but the time… four years of your life before you really get to try it! (Or, it could be even more if you are doing it at night and on weekends). We've tried to make it easier than that with our immersion approach, but we are certainly not going to imply that the cost in time or money is insignificant. It is not an easy decision to invest in a change of careers.

On the other hand, although it is far from a scientific study, I would venture to say that the majority of people I have met who have

  • really committed to changing their careers,
  • sought counsel from those in other fields who knew them and knew their character qualities and personal bents until they found a field that they were excited about and had their natural abilities confirmed, and
  • were realistic about how much time and work it would take to do so and tackled it,

have been very successful.

I recently extended a job offer to have someone join us on the RoleModel Software core team. He had only been programming a few years after getting a couple of degrees in mathematics, gaining a couple of years teaching experience, and earning a seminary degree, before getting his first job working with software and design in his late 20s. He cared about doing his work well, and learned a lot in those few years, and is well worth hiring.

Some of the best software craftsmen I've ever worked with didn't have any sort of degree related to computers. Many of them started programming in their mid-20s or later. I've met some who started much later. Every single one of them learned things when they weren't programming that made them better software craftsmen. In fact, I would assert that most software craftsmanship is about making the computer do things to make life better for someone who is not a programmer. A programmer who doesn't have empathy for those they serve is rarely a software craftsman. Though he may call himself a craftsman, he is merely a geek. Someone who has lived a life away from a computer may have actually picked up some very useful skills that other geeks never pick up. These skills help the former become a software craftsman while the latter never leaves an isolated life of geekdom.

Software craftsmanship is not about the "mutual admiration society" of geeks. If a programmer only programs in ways that can only be appreciated by other programmers, there is a problem. We all know of so-called "art" that only impresses the so-called "artist." Michelangelo never had to point out that his work was a piece of art to anybody. Some would give anything to have watched him work. Others would rather watch grass grow. All would appreciate the final result.

Software Craftsmen ship. They ship software to others who need it. Those who need it appreciate it when it actually meets their needs and feels like it was designed and built for them. I was recently interviewing some of a client's end-users as we explore how to build their next-generation system. When I asked one of them where his pain points were, he said, "The system feels like it was designed by a programmer."

If you have ever been the beneficiary of software that you loved, and the victim of software that you have hated, and have a feel for what makes the difference, you have an asset that many geeks don't. If you have ever done something out of the norm to satisfy a customer on their terms, rather than redefine the customer's problem to something you thought was more interesting, you have an asset that many geeks don't.

If you can concentrate long enough to figure out a problem, wrestle it to the ground, and fix it, you have an important quality that can help you become a software craftsman. If details matter to you, but you don't let details that don't matter yet keep you from recognizing the bigger problem (and the next problem) you are trying to solve, you have another quality that it takes to be a software craftsman. If you are more than 24 years old, you don't have the quality that it takes to become 18, but I hope you will have the courage to overcome the presuppositions of others if you want to become a software craftsman.

  • Do you have the ability to reflect on what you've done, learn from it, and make appropriate adjustments before you take the next step?
  • Did you do well at word problems in Algebra or excel in other areas in which problem-solving using abstraction was necessary?
  • Have you already done some programming, and enjoyed it?
  • Does the idea of building software that other people value, use, and love, get you excited?

Whether you are 18 or 45, we'd love to have you apply and let us determine if you have what it takes to join the others striving to be software craftsmen at the academy.

Photo by Rémi Jacquaint on Unsplash