Circles.Life
Published in

Circles.Life

Off the Paper Trail: Making It Without a ‘Technical Background’

Written by: Wilson Yong, Circles Academy, Software Engineer

As a self-taught programmer from a ‘humanities background’, I get lots of questions like this: how did you make the leap into software engineering? The simple answer is, it’s not just a leap of faith — it’s more of a pole vault. Even without a ‘relevant degree’ many job ads expect, with know-how and the nerve to prove it, you can still land that interview on your feet.

In this article, I hope to share some of my experiences on the journey from amateur hobbyist to software engineer at Circles Academy. If you are looking to find your own way into the tech sector, hopefully, you’ll find something useful in these musings!

Start early

There’s plenty of online courses or boot camps out there promising to teach you how to code in X weeks. Useful as a first step, yes, but usually such crash courses usually don’t impart know-how to students: handling text editors, debugging skills, how to restructure spaghetti code… They also tend to fall short on instructing learners to deal with the world outside their code/machine — how to work with date and time, languages, how the Internet works, sometimes even how their code is executed (common symptom: overreliance on IDE buttons and little/no mention of the command line). The list goes on.

Of course, it’s unreasonable to expect a course to dish out everything on a silver platter. The point is, there is a staggering amount of stuff to learn, and a lot of it is best learnt hands-on. Unlike computer science/engineering majors, if you’re learning to program on the side, you definitely will need plenty of time to get familiar with these topics. What’s important is to absorb enough lingo to get your Google-fu levelled up enough, so you know roughly which keywords you’ll need to look up anything. This takes time. So start early.

Apart from starting early, sometimes one stumbling block facing many aspiring programmers is the lack of inspiration to start. My advice is to try and solve a problem that you, or people you know, are facing.

For me, I picked up coding during my time in National Service as an information systems specialist, just before university. At the time, my interest was sparked by the hope of automating some of my work, so I could actually take a nap while the scripts did the boring stuff. It’s pretty solid motivation. I started with batch scripting and constantly pestered one of my bunkmates with lots of silly questions since he was already doing web development at the time. One day, he lectured me to “go learn a real programming language”. Building on the momentum from that first push, I’m glad to still be learning and growing every day at Circles.Life.

Focus on the craft

The constant churn of new technology is the norm in the digital economy, and companies know that passion for the craft keeps the best people hungry to learn. But as we know from our friends’ LinkedIn profiles, everyone these days is passionate about some kind of learning. What sets you apart from the crowd?

As Alan Perlis muses, “Everyone can be taught to sculpt: Michelangelo would have had to be taught how not to.” I personally believe that attention to detail, such as outstanding housekeeping in the code, is a strong indicator of a programmer’s dedication to the craft. For this reason, I often recommend reading style guides, which catalogue best practices and also provide clear, practical wisdom on form and function. The Linux kernel style guide is particularly informative and entertaining.

Code that smells clean sends a strong signal that you care enough to do things the right way, and will take the time to polish your work for the benefit of others looking at it. Are your comments curated, spaces sufficient, indents in line? Does risky code look risky, so it’s easily noticed (and fixed)? And when the time comes to break rules and conventions, can you defend your decisions to the bitter end? If you care, it will show through practised consistency — even during the coding interview.

Seek opportunity

I’m a linguistics major. If your first response is “So you’ll be teaching English?” you wouldn’t be too far from the usual (side note: when teaching people Python, my rule of thumb is “one line of code = one English sentence”, it checks out). Admittedly, I was not expecting a bright future in engineering. As luck would have it — but was it really luck? — I was recommended to a summer internship role with Singapore’s National Speech Corpus at IMDA. I was excited since the interview had highlighted my experience with MySQL and Python.

However, the first few days made it clear that my task was mostly going to be manually annotating corpus data — sans database — a sobering realisation. Still, the only way to play is with the hand you’re dealt, so immediately I made clear to my boss that since we’re tight on time, some of the annotation tasks should be automated. This could have just been a fat regex replace, but I worked on a parser, tokenizer and API on the side, which all turned out handy when we had to align the audio and text, do data scrubbing, etc. By the end of the internship, the role I left behind was looking more like an engineering position.

The takeaway is, the opportunity to exercise your skill does not depend on having a job that requires it. Joel Spolsky observes that the study of “computer science is not the same as software development”, and as with prose, it’s also crucial to “write enough to learn how to write”. To interpret this kindly, know-how can sometimes be just as valuable as paper credentials.

Companies increasingly recognise this: hackathons and direct assessments that emphasise hands-on problem-solving skills are gaining traction as recruitment channels while hiring platforms such as Triplebyte are angling for firmer emphasis on “what you can do”, and less on “where you went to school”.

So if you come from a ‘non-technical background’, worry not. Focus instead on polishing your code, and cherish the alternative perspectives that your training will have equipped you with. Do your best to showcase how they bring value to your own projects.

If you’ve already got the know-how and the nerve to prove it, go ahead and apply to Circles Academy, where you’ll get to cut your teeth on real-world problems, under the mentorship of veterans. Sure there are the usual ‘relevant degree’ requirements, but Be Bold, and we’ll Be Open-Minded — it’s baked right into the Circles core values. See you there!

About the author: Wilson is a software engineer on the Platform team at Circles.Life. As a habitual tinker and thinker, he dabbles in breaking and unbreaking pet projects, as well as reading too deeply into obscure topics. (Have you heard shining balls of mud?)

Come check out our Job Board too: In Circles.Life, opportunity seek YOU!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Circles.Life

Circles.Life is on a global mission to give power back to the customer through highly personalized digital services.