I’ve been a professional developer/software engineer/programmer for 15 or so years now, 22 years if you include college education and typing in Basic programs from magazines into my Commodore 64. So many job titles and some of them, let’s be honest, are irritating. I still don’t feel comfortable with the Technical Architect one, sounds bumptious. Can’t think of your own wanky job title? There’s a tool for that.
Regardless of the job title, one thing I’ve had to do is stay current. If you don’t stay up-to-date then you get left behind; if you get left behind you’ll struggle to further your career and, importantly, earn more dollars.
I’ve been programming for so long, the first language I learned was Pascal in college; only really old people know this one. Then on to C – none of this Object Oriented stuff everyone takes for granted now.
My bread and butter would be Java and PHP, these are the languages I’ve used for most of my working life. Then on top of this you need to be a dab hand with a plethora of databases, source control, caching strategies, security, network performance, message queues and an endless number of application frameworks. It’s not only languages and technologies, but processes as well SCRUM, Test-driven Development and Behaviour-driven Development are skills that I’ve had to add to my repertoire.
In the not so distant past I was involved in numerous Flash projects; some of the more interesting work in my career was developed using Flash. Some highlights include EA, Wipeout Pure, ghd to name a few, but it’s going the way of the Dodo. Although it’s still hanging in there, people use it to make actual TV shows in the year 2017
How do you learn all this stuff?
When I was younger (mid 20’s) I’d spend a lot of my free time and nights working on my own projects and hacking random stuff. Not only this, I’d be working for agencies where the normal 9-5 wasn’t acceptable, so I’ve spent a lot of my life staring at a screen. These days I try and limit the amount time spent in a dark room with a glow on my face.
What am I doing now?
If I’m making an effort to spend less time staring at a screen of some description for 56 hours a day, how do I keep up to date?There are a ton of sites and people to follow to stay up-to-date with what’s current, but actually learning these technologies and processes is the challenge.
When working on a project, I’m a firm believer of using the right tech for a solution rather than limiting the solution to you and/or the team’s core skillset. For example, on a project I was working on a few years ago for a client, we initially launched with a MySQL DB. A few months after launch, due to the product’s needs, more flexibility with the data was required. So after a bit of investigation we decided to migrate to Riak. Clearly there is more work involved as you need to get yourself acquainted with a new tech, but the product gets the correct solution and you learn a new skill.
Instead of hacking random stuff with no end goal, I’ve decided to work towards certifications – AWS at the minute. I do need to spend my own time learning the material, seeing as I can follow a strict curriculum I can plan my time better, for example a few evenings a week.
Books. If I’m not going to stare at a screen, I can still soak up knowledge by reading books. I invested in a Kindle Paperwhite (not a Fire: no screens remember). Although I’ve discovered it’s not best to read technical literature just before you sleep, it’s hard to switch off.
If you do want to focus your attention on something new, try to make sure it will be something you enjoy or at least don’t mind doing. The last thing you want to do is work endless hours towards a tight deadline using a tech you can’t stand.
So if you want to learn something new and stay current, I think there’s definitely a compromise to be had between only doing what you do in your day-to-day job to spending every night hacking away in front of a computer. You just need to plan accordingly.