As Aaron Osteraas can tell you, the path between discovering what you want to do for a living and actually doing it is rarely linear.
Now a Software Engineer at Tigerspike, a digital services company headquartered in Sydney, Aaron’s journey toward becoming a developer began when he was in high school, yet it wasn’t until his early 30s that he obtained his first full-time development job. The years in between were filled with starts and stops, challenges and successes, and a whole lot of tinkering.
“I was always tinkering with the family computer, which was mostly, ‘oh god I’ve broken it how do I fix it before I get in trouble,’” Aaron said of his technical beginnings. He had an appetite for building and modifying hardware, which he attributes to the joy that comes from doing something with your hands. He’d collect spare hardware, buy and sell parts, and at times resort to scrounging and trading. “There were computer parts strewn everywhere,” he said.
But by the time he graduated high school, Aaron had checked out academically. He wasn’t confident his grades were good enough for university, so he enrolled in TAFE, Australia’s largest vocational training provider, and spent six months learning XML before realizing that “making mobile websites for 2004’s best mobile phones in XML was pretty damn far from my idea of a good time.”
So he dropped out of TAFE and eventually found himself working in the world of content, where he stayed for seven years. Though he worked his way up to a managerial and editorial role for a handful of companies within the technical realm, Aaron found himself consistently unsatisfied.
I had this itch to solve technical problems, and working in content, I wasn’t able to scratch it. That’s what a lot of programming is, problem-solving. And it’s not that this is unique to programming, it’s just the type of problems – and solutions to them – are more enjoyable to me.
Back to School
During his long stretch in content, Aaron maintained enough of an interest in tinkering and programming to eventually enroll in a Software Engineering degree program.
I took one subject to start off, as I felt I needed to validate two things: one, that I could learn to study again, and two, that I would enjoy it.
Aaron found the validation he was after, but it wasn’t until a few years later, when he learned his company had been acquired and his job was on the line, that he decided to leave content behind and commit fully to becoming a developer. Knowing he could be let go in as little as a week, Aaron enrolled at RMIT University full-time to pursue a degree in Software Engineering.
Aaron was finally where he belonged, but it wasn’t easy.
There was a lot of frustration. I found certain languages, concepts, and themes difficult to grasp, and others came with remarkable ease. So when you’re going from, ‘How easy and fun is this!’ to swearing at the computer asking why something isn’t working, it can be emotionally turbulent.
In conjunction with the difficult subject matter was the overwhelming amount of career paths to choose from.
The world of programming is outrageously broad, there are innumerable paths you can take, and there’s temptation to try and take them all because everyone loves the new shiny thing.
The more career paths he discovered, the less sure of himself he grew.
I’ve never experienced the adage ‘the more you know, the less you know’ in a greater way than in learning to code.
Aaron found the motivation to press on by focusing on the reason he was doing it all in the first place — the same reason he had tinkered with his family’s computer all those years ago: “There was the sense of wonder that comes from just being able to build something.”
Finding a Mentor
Things started to get better for Aaron. He became more focused, and was fortunate enough to find a mentor in a self-taught, full-stack developer who helped him learn how to handle real-world tasks.
Having a mentor was a very valuable experience, formative in fact. I’d suggest that anyone taking the journey seriously should be keeping an eye out for one.
Through his mentor, Aaron was able to land some freelance work, and spent the next few years working on developing projects on a contract basis. And then, over 15 years after leaving spare computer parts all over his childhood home, he landed his first full-time role as a developer.
Landing a Full-time Role
I had only worked freelance to this point, and I realized that not working in a team of smarter, more capable people was to my detriment. There were so many learning and coaching opportunities that I was missing out on, and I wanted that.
After browsing job boards for a well-suited role, he found an open software engineering position at Tigerspike. “I felt like the position description was written specifically for me,” he said. The folks at Tigerspike seemed to think so too, and invited him to interview. First up was an HR screening, then a technical phone interview (which he thought he failed miserably), a coding challenge (which he thought he did reasonably well on), and a final in-person technical interview, which he knew he aced.
When asked why he felt so confident about the technical interview, Aaron said that he chose to be candid about what he was experienced in, and what he was not.
I thought it showed a capacity and extreme drive to learn. Being dishonest is questionable, and to think you can fake it to people who are decades more experienced than you is naïve.
After only being on the job for about six months, Aaron has already learned so much from being a part of a team, and has even gotten the opportunity to teach others.
The way I think about it is that I’ll probably never be close to the best at any one thing – a feeling that I’m constantly struggling to come to terms with – but there are areas and technologies where I do know more than my peers (which is hard to admit), and I feel a sense of obligation to spread the knowledge.
Now at a point in his career where he can look back with perspective, Aaron understands that finding a way to stay focused was key to his success.
If you can find a way to guide your learning and have discipline to stay focused, you’ll probably do just fine. It’s not easy to learn programming, but it does get easier over time as your baseline knowledge increases … I remember how soul crushing it can be. Just trust in the process and keep on keeping on. The only way to get better at anything is time and repetition.
Designing Your Career Transition
There’s never been an easier time to learn to code — there are more resources than ever available to you, and the online development community is one of the most helpful and enthusiastic around. Here are some great starting points at SitePoint:
- Tackle 10 projects that will build the fundamental skills new web developers need.
- Talk with other developers, and get help when you’re stuck, on the SitePoint forums.
- Learn to code with our 400+ development books and courses for $3/month for 3 months ($9 thereafter, cancel anytime).
When you’re ready to hunt for your first junior role, move on to these resources — especially if you’re looking for remote work.
- Learn how to prepare for your first remote job search and show hiring managers why you’re right for the role.
- Search hundreds of remote jobs on SitePoint Remote, with over 20 new jobs posted each day.
And if you’ve got a development career story of your own that could encourage others who are interested in making the leap, be sure to get in touch with us.
The Principles of Beautiful Web Design, 4th Edition
Docker for Web Developers
HTML5 Games: Novice to Ninja