Crossroads
No, not the ITV (UK) soap from the 70s/80s but rather with the start of the new year an accompanying feeling that I'm at a junction in my software development life and I'm not sure which way to turn.
These last few months have been very busy. I've been writing a new web app for work using Go and MongoDB. In the main, it's been a lot of fun (though the front-end less so), educational, and enlightening. It's made me realise that I don't want to be pigeon-holed as a C#/.Net developer any more. I don't suppose I really ever wanted to be pigeon-holed as anything (who would?) but I never stopped and thought about it before.
Professionally, I was a latecomer to the world of software development though I'd learned to code quite early, first on the ZX Spectrum and C64 followed later by an Atari ST and then an Amiga. I actually started working life as grease-monkey (sometimes known as a car mechanic) but at age 25 I knew I'd wasted my younger years and decided I had to pursue what I'd always loved, so I went back to night school and at 28 years old got my first development job where I stayed for more than 11 years!
Now, at 44 years of age, and feeling like life is passing by faster than ever before, I suddenly feel like I've missed out on such a lot of opportunities to grow because, unlike in my day to day development role where I learned to question every action and justify every design decision, I never once questioned my life as a C# developer or Delphi developer before that. I never even questioned my life as a Windows developer. Like many others, I just followed the path of least resistance.
Location has a lot of influence on the way things pan out, career-wise. Where I live, and for many miles around, Windows is the predominant platform, and of course .Net and C# are the obvious development tools to go with it. The only real alternative is Java and well, thanks but no thanks. Either choice is not exactly appealing given the state of most of the enterprise shops I've seen. Sadly, finding a good one seems less likely than winning the lottery.
That then doesn't leave me with a lot of alternatives. I know that I want to ramp up my Linux knowledge whilst continuing to develop in Go when the opportunity presents itself,and luckily my current job at least allows me to fulfil the Go side of things though my use of Linux is confined to home. We are a windows and C# shop. The thing is, my positive experience in Go is the cause of a corresponding drop in my enthusiasm for C# and .Net in general. We all grow tired of things sooner or later and whilst my passion for programming remains intensely high,I feel like I'm stagnating. It could be the enterprise environment that's making me feel the way I do but I think the worry of being a .Net only developer forever has something to do with my mindset. I want to branch out, learn more things, different things, and Linux and Go are the starting points .
So here I am faced with the sort of choice I had when I decided to retrain as a developer only this time the direction is more subtle, and less obvious. There's only so much time in a day and I'm not getting any younger so the question is this: Do I stick or twist?
Do I invest more time and energy in .Net, learning to live with yet more big changes coming down the road from Microsoft and accept being forever damned to work on all the legacy crap that will likely live longer than me? Or do I put heart and soul into Linux, Go, maybe Erlang too, and the plethora of associated open source goodies that come from those worlds but at the risk of rendering myself unemployable within a 150 mile radius?
My heart says do it, it'll be worth the investment and opportunities will come anyway. My head says don't, better the devil you know.
The thing is, I've already kind of started down that path anyway. I'm definitely investing a lot of time and effort in other languages and operating systems, it's just that I have an inner voice nagging away at me making me feel uneasy about it all. Change is hard to accept and I'm definitely stepping out of my comfort zone but doing nothing is even harder. So in the end what will be will be and all of this is just me getting it off my chest. I just hope I made the right choice and that the road leads somewhere positive but as usual, only time will tell.
polyglot programmer - passionate, opinionated, cynic, realist