Of Coders And Carpenters
Leighton Darkins Nov 17 '17
A short while ago I wrote a response to a question on this site. The reaction to that response was quite powerful (too many little hearts to ignore), so I felt inspired to bring the content of that response forward into an article of its own and to flesh my thoughts out a little more.
Take this all with a truckload of salt, I'm just a monkey with a keyboard after all ;)
For the lazy, the questions at hand are:
"Can developers who don't code in their free time improve? Or do they just stagnate?"
And if you're already bored, the answers are "Yes" and "No", respectively.
Alright. Article complete!
Of Coders And Carpenters
In my original response, I reframed the question by changing the occupation. I do this, because it highlights something interesting about our expectations of developers and our expectations of other skilled professionals.
When I reframe the questions and ask: "What's your opinion on carpenters who don't build houses in their free time?"
I imagine that tickles your brain differently. It's not super important how it's different, just note that it's different. Or even better, leave a comment explaining how it's different for you - that'll be a fun experiment.
Culture & Pressure
Software development isn't my first calling, it wasn't even my second. I've always been that person in a group who has stories to tell from what seem like infinite occupations. But about 5 years ago software became my focus, and it's been a stable situation since.
I point this out only because it's been immensely helpful to me to be able to contextualise the culture of software development through the lens of different industry experience. It's easy to find yourself in a situation and just assume it's normal when you have no stick by which to measure it.
What I immediately noticed about software as an industry was the intense pressure placed on young developers to simultaneously "learn fast" and "keep up". Which is already an insane premise to me. "The race has already started, but you'd better learn how to run, fast. And you'd better finish first! If you don't, you should feel bad."
I mean, I'm all about applying yourself to your work. But I've mentored enough young developers to know that the guilt they feel for not being able to work on pet projects and hone their skills every night of the week is undue at best, and poisonous at worst.
Passion (by its modern definition) is great! There's nothing more inspiring than a person who experiences true joy in their work. But that type of relationship to your work is not mandatory to be a great developer.
From a personal perspective: I wouldn't say that writing software is even in the top three most joyful things I do in my life. But it's a damn fun and challenging way to make money and enable my actual top three. If, by some broken definition, that makes me a "bad" developer, then so be it. I'll own my badness.
Software developers, like any community, have a nasty habit of judging each other and trying to define what a "real" developer is. In response to that, I'll just shamelessly quote myself here:
"If you love to code, do it at every opportunity you get. But be careful when passing judgement on the skill, growth and development of folks who don't share that same level of passion."
- Some pretentious Dev.to contributor
The Proof Is In The Pudding
I've encountered a lot of great technologists in my time and the only common theme between them is that they were all different. Different in their approach to their work, different in their interests, different in their journey to get to where they were at the time.
These folks are intensely passionate about a wide variety of things. Photography, ship-building, surfing, painting and the list goes on. But a large portion of them view writing software as a valuable skill for work, and don't care to dabble in it outside of the context of work.
Some of these folks are C-level technologists, some are brand-new junior developers and the others fall everywhere in between. Some of the best technical minds I've encountered have been superb at separating their work and home lives.
All Right, Wrap It Up...
The flavour of the point I'm trying to make here is that it's common for young developers to believe that the only way to avoid stagnation is to let their job take over their life.
This simply isn't true. If you want to do a little more at home, learn something new, or build something fun. Do it!
But no-one's got a gun to your head. I promise :)
Git was invented by the Linux project in order to move beyond the crappy solutions they had in place before, and since then it has established itself as the de facto standard for version control and software collaboration.