From tester to developer, my journey from breaking things to making them

I didn't always know I wanted to be a developer – it took seven years of working in insurance, three of those as a tester, before I realised that writing code for a living seemed like a pretty great thing to do. But over the last two years it's a goal I've pursued doggedly, and this year Kyan helped propel me over the finish line and into my current career as a full-time Ruby dev. In this post, to celebrate National Coding Week, I'll share a quick overview of my journey, the steps I took to get here, and how Kyan helped me out along the way.


Step 1 — the idea

Maybe you already know you want to be a developer (or, quite possibly, you already are one – nice!), but maybe it's something you've never even thought about as a possible career. For me it was an idea that grew pretty gradually. With no degree to steer my career choices, I was thrust into the world of work without any real idea what it was I wanted to do. Over time in my first few jobs, it became apparent that I was pretty handy with tech and picking up new systems, and this guided me towards my first career change, from insurance claims assessor to software tester.

During my time testing, I started to pick up bits and pieces of SQL (a database querying language), and this eventually piqued my interest in learning "proper" programming. I still wasn't really sure I had what it took to learn all this seemingly incredibly complex stuff, but a colleague pushed me to investigate it further, recommending an "Intro to Programming" course which covered the basics, and continually re-inforcing the belief that a Tester didn't have to stay a Tester forever (thanks Mark, I owe you a lot)!

My passion for coding snowballed from there – from that first "Hello World", scratching out a few lines of HTML & JavaScript and seeing it coalesce into something tangibly happening in my browser, I was hooked. Even if you are someone that's never thought about trying programming before, I can't recommend enough that you try it out and see for yourself. It won't click for everyone, but if like me you loved toys like Lego as a child—that concept of taking a set of building blocks, relatively uninteresting on their own, and putting them together to make something cool—maybe this is the job for you.


Step 2 — knuckling down

This one's pretty obvious – it's also one of the hardest parts. You can't just learn to code overnight, rather it's something you'll learn over many days, nights, and early early mornings (coffee is your friend here – if you're not already a coffee drinker, now's a good time to start). It can be tough working a full time job and learning to code at the same time, but the pay-off in the end is well worth the price of admission.

Tough as it is, this is also the fun part - everything is new, everything is exciting, you'll be learning new things every single day, and there's nothing else quite like that feeling of seeing the progress you make over this period. Read books, devour online courses like it's going out of fashion (sites like Udemy are your friend here), whatever works best for you – most importantly, enjoy it! Don't let the failures deter you -– you'll spend days at a time bashing you're head against your keyboard trying to debug bizarre errors, but eventually you'll have that breakthrough, having learned something new in the process. What you need to remember is that everyone faces this, even devs with years of experience. In the words of Alan J. Perlis:

There are two ways to write error-free programs; only the third one works. 

One thing I do recommend is not agonising over the initial choice of language too much, as you can always switch to something else further down the line. Case in point, I spent months trawling through "C# 6.0 and the .NET 4.6 Framework", certain that I was going to carve out a career for myself in .NET – I'm now a Ruby on Rails dev. It wasn't until I decided to set up a website to blog my progress (following a DIY Wordpress tutorial) that I realised that web dev seemed pretty fun, and completely switched up my area of study from there!

The key point is that no matter what you study, you'll be learning core concepts that are shared across the board, and will make it easier to pick up something new. Not just that, but soft skills as well – these are some of the most important things you'll learn as a programmer, like how to read and extract the info you need from library documentation, how to ask the right questions to find the answers you're looking for on sites like StackOverflow etc.

The biggy here is just to keep at it. There will be times where you want to give up – don't. Reach out for help when you need it, work hard, and you will progress. And it will be damn rewarding.

I know that sounds cliché, and it is cliché, but it's the truth. 


Step 3 — networking

"The scary part" (but it really doesn't have to be). Starting to put yourself out there and network with local devs (and other techy people) was a really intimidating prospect for me, laden with fears of inadequacy, not being ready etc. Right up until I did it, and realised something very important – nobody but you cares that you're a beginner. Seriously.

Networking isn't interviewing, and as soon as you get that distinction set clearly in your head, you're good to go. You're not there to prove yourself, you're there to meet and chat to like-minded people, to make connections and (hopefully) friends. Have a beer, have a laugh, and relax. If anything, while I was starting out I found that most people I met, rather than looking down on you as an "inexperienced noob", respected the dedication and commitment it takes to teach yourself coding in your own time!

Leave your worries at the door and have a good time – once you get over the initial butterflies, this is easily the most fun part, and I just wish I'd had the guts to get stuck in sooner. There are loads of great options out there - sites like Meetup list tons of regular local events, such as our very own quarterly Web Meet Guildford, where we invite people to get together at a pub in town to chat tech, make friends, and have a drink on us. It's a great evening, and if you're in the area you should definitely check it out!

WMG, September 2018

Step 4 — the finish starting line

You've spent countless hours huddled over your keyboard, networked until you dropped, and drunk enough coffee to keep you awake for a lifetime, and finally, finally, it all pays off. It feels like the end of a long, hard, but ultimately fulfilling journey (and it is). But really it's also just the start of another, and that's the best.

When I started at Kyan, they were in need of testers (I was the first in-house one) and I didn't have any direct Ruby on Rails experience, so I was taken on in a hybrid Tester / Developer capacity. Initially, a large amount of my time was spent testing, and helping to build-up the in-house testing team / practices, but from early on I was given plenty of opportunity to practice my skills and improve, allowing me to build my confidence and proficiency over time.

The agreement was always that in time I would be given the support I needed to progress my career to a full-time developer role, and Kyan delivered on that promise and then some: I was given full access to our code repositories, encouraged even in the early days to (if I felt comfortable doing so) attempt to fix bugs that I found; I was guided in the direction of books, courses and conferences that would further my professional development, and all covered by the individual training budget that all staff here are entitled to; I was partnered with one of our senior developers to mentor me as required.

In short, I was given everything I needed to ensure that I was learning at a pace I never could have achieved on my own, and really accelerate the progression towards a full-time dev role. With constant access to colleagues to ask questions and bouce ideas off of, regular staff Dev Meets, access to existing code-bases for checking examples of how to do things etc, it's once you get your foot in the door that the real magic happens, and I guarantee you'll learn more in your first 6 months in a junior role than in an entire year of self-guided study beforehand!

One of our regular internal dev meets.

And that's that really, thanks to the fantastic support from Kyan, my transition is complete – I've been a full-time Developer here now since February and I couldn't be happier. And the best part, I still get to learn loads of cool new stuff every day!


A final word...

So, yeah, that's my story. I should point out this is not a guaranteed guide to becoming a developer, this is just how it happened for me – everyone's situation is different, and you never know what could happen along the way.

The main thing to take away is that, with hard work, and a bit of luck, it does happen. So if you're someone reading this who's trying to make the switch, and feeling like it's an up-hill struggle – keep at it. You got this 👍

Happy National Coding Week!

Steve