Working as a software developer has one annoying side effect that, your daily work tends to sap your enthusiasm for spending lots of time to learn new technologies.
Bringing in completely new technology into a product at work is a fairly rare occurence — mostly because of inertia, concern for code and product stability, etc. The problem is, without significant exposure to a new technology (i.e. doing a medium sized project using it), it’s hard to understand it well enough to recognize when it might help in solving existing problems. Without that knowledge, it’s hard to push for using a new technology in a new work situation.
This situation means all the experimenting and for-fun hacking is left to be done outside of work time. But who wants to come home — after working on a computer all day — and sit and try to do something on a computer? Although I tend to end up doing that anyways, I can say that most of the stuff I do on my computer when I get home does not fall in the category of learning new technologies that will help with my work. Also, many times I end up doing that out of lack of anything else to do.
But there seem to be some people, who are perfectly happy to do this. Are they just particularly motivated? Do they really have nothing else to do? Is their ability to concetrate just that much greater than mine? Do they not have lives?
My enthusiasm for doing things like tracking the goings on of the open source world have almost all but disappeared since I started working. I feel like this is a pretty common pattern, but there are those who still manage to stay involved. I instead, have fallen back to paying for software and complaining when it doesn’t do what I want it to.. which is what 98% of the world does.
That’s certainly not to say that I haven’t been learning anything at work. It’s just that the things I used to follow closely, I don’t anymore. It’s sometimes hard to tell whether this is because of a lack of enthusiasm and motivation, or whether it is due to a change in perspective. For example, during high school and college, I used to keep up with all the details of latest CPU generations, memory technologies, PC hardware designs (though that really just meant reading ars, anandtech, and toms alot and learning a bunch of acronyms). I don’t do that nowadays, mainly because, it just doesn’t matter anymore. The machines I use day to day are bought for me, so I don’t really care too much what’s inside. The only time I do care is if I were to put a machine together myself, but that’s becoming increasingly rare as well. And besides, it can’t be that relevant if its all just gonna change in a few years anyways. Knowing all that information doesn’t really help me at work or in my life in general, and so why spend so much time to learn it?
Maybe that’s true with Open Source as well. People who have nothing else to do but be involved in open source stuff (like lots of students) tend to see that as the most important part of the big picture. Then you go to work, and realize that in Microsoft is a huge part of the picture, and most people want commercial software and commercial support, and open source stuff is just a very small piece of the pie. Maybe that will change, but to me its more plausible that open source will change in a way that adapts better to the real economy before it makes huge hits. Maybe it already has started to, but that’s a separate topic altogether.
Part of this was inspired by the “where are all the 40 year old programmers?” post on slashdot. It seems like the 3 main theories among the Slashdot commenters are:
- They move into management (conventional wisdom)
- They get sick of it and move into something else altogether
- They realize that engineering in big companies doesn’t work too well, so they move to small companies and consultancies
Which ever of the theories you believe, there were also numerous postings about how there are many good old software developers, and they all have the common trait that they work hard to stay relevant and up-to-date with recent goings on. They have the motivation to do the kinds of things I was talking about above.
So say you have the motivation, then what happens. You not only spend a lot of your time actually working, but you spend time out side of work, lets call it, “working on your career.” This inevitably takes away from time to be social and develop people skills. This leads to the phenomenon that was so eloquently phrased by my friend as “a lot of these old guys are good developers, but they’re also Space Aliens.” No socially self-aware person wants to be a space alien, but is that the tradeoff you have to make?