Published on Jun 29, 2014. 5 minute read.
Its virtually unheard of for me to write blog posts about anything that isn’t a language, framework, or technology but my experience recently has affected my life in so many ways it got me thinking…there must be lots of other people who have experienced this, or are heading towards it. It’s too important to not share with the community. I am of course talking about my learning hangover. Note that this is an honest and frank post, and that, to some extent, I am still experiencing a learning hangover. Despite this, I am starting to see glints of light and the end of a long dark tunnel.
I have been what I like to refer to as a “traditional” Software Engineer for many years. I have developed a wide range of desktop applications written in Windows Forms and WPF, and I am skilled in various backend technologies and frameworks, including SQL Server and WCF. Traditional software development has been my passion since I was 11 years old, and I’ve never looked back. All good things, however, don’t last forever. I recognised that the technological landscape was changing. The world of desktop applications is fading to black and I wanted to keep with the times. I have met people over my career who have been stuck working on dead, 30 year old technologies for their whole careers just because it was “easy” and their company required them to do so. So I left the job, company, and friendships I cared so much about, ditched desktop development for good, and sought a new life developing web applications. My ambition was limitless. I wanted to become an expert ASP .NET MVC developer with strong knowledge of modern frameworks such as AngularJS, KnockoutJS, WebAPI, SignalR and more. I also wanted to be the most knowledgeable developer on the team with regards to Windows Azure. I understood that if I were to achieve these goals, I must hit the learning hard. And that’s exactly what I did. I read books, watched online training videos from Microsoft Virtual Academy and Pluralsight (as well as plenty of others), I downloaded demo applications and fiddled, I wrote entire projects from scratch just to prove that I could, I followed online tutorials, and spent every waking moment (quite literally) for a full 9 months doing all this in an attempt to not only get up to speed, but to excel and shine in my new field. I did eventually complete the Microsoft Certified Solutions Developer (Web Applications) program, just before suffering what I like to refer to as the “Learning Hangover”.
A learning hangover is similar in a lot of ways to a traditional hangover. You drink too much alcohol, your body becomes severely dehydrated and you become unwell. Whilst normally you do start to feel better after 1-2 days, at the height of the hangover you swear to yourself and your partners in crime that you’ll “never” do it again. The very thought of voluntarily consuming at least one more drop of alcohol makes you feel nauseous. A learning hangover the virtually the same. Rather than drinking alcohol to the excess, you are learning to the excess. You put so much time and effort in that eventually the very thought of learning just one more thing feels impossible. The main difference between a regular hangover and a learning hangover is the duration. A learning hangover can last, like in my case, for several months or more.
Frankly, the job I signed up to has not been what I hoped for. I was promised that there would be a healthy mix of ASP .NET MVC (and all the goodness that comes with that) and ASP .NET Web Forms. Whilst I wasn’t super-thrilled about this to start off with, I understood the importance of legacy applications to businesses and figured it was all good experience for the future. At least I would be spending 100% of my time doing web development. Whilst working at my current company, I have spent 90%+ of my time developing Web Forms applications. I’ll cover this more shortly, but the takeaway is this; make sure that if you are considering applying for a job, or accepting a job, that it delivers 100% of what you want. Don’t settle for anything less. If you want to work on new projects only, and the company says that there will be a healthy mix of legacy and Greenfield projects, you might want to think twice before accepting the job. If you’re learning new stuff, you really need to be using those skills daily, otherwise you will feel as though you have accomplished nothing.
I haven’t yet discovered a magic formula for curing my learning hangover, it just seems to be getting better over time. I eventually realised that I needed to do something to turn things around, or my passion might disappear forever. I have been actively developing software as a hobbyist for over 15 years and doing it professionally for 5/6 years. I love software development and I really don’t know how to do anything else. The steps towards a cure are roughly as follows;
- Follow. I follow lots of industry “celebrities” on twitter whom are constantly posting about new and interesting topics. I try to keep up to date with this as much as possible. My beloved feedly helped a lot here, by delivering new material straight to a single location. Just reading blog posts and interacting with the community helps you feel like you’re still involved.
- Specialise. I hear this a lot, and I continue to ignore it, to my peril. I have studied such a wide range of topics since my learning journey started that I have become somewhat of a generalist. This is generally OK but it’s important to focus on one very specific topic from time to time and create and finish developing a project that covers that topic in detail. This helps focus the mind and give a sense of accomplishment. I’m not 100% convinced that it’s a good idea to completely specialise, as you could back yourself into a corner, but there’s no harm in getting really really strong at one particular topic.
- Take a break. It will help to take a step back and step away from outside projects for a short time. This will help you refresh. As they say, absence makes the heart grow fonder. Be sure to spend some time with friends and family, and go outdoors, it is summer after all.
- Use your new skills. Set aside an hour or two each day to really put your new skills into action, so that you stay sharp. Develop a new website, desktop application, or mobile application just for fun. Even if it doesn’t even see the light of day and it ends up in the recycle bin, it’ll help you to rekindle your passion.
Really want to give your career a boost? Read How to Win Friends and Influence People by Dale Carnegie. It will give you lots of help and advice when it comes to interacting with your colleagues and superiors to ensure that you get exactly what you want!