How to Fake it as a Software Engineer
Tags: beginners, career, codenewbie, motivation
Published: 2019-06-25 01:17:47

I have a confession to make; I have no idea what I am doing. Up until recently I was employed as a software engineer even though I’m not even qualified to use a computer let alone have a degree in computer science.

Over the last 5 years I faked my way up the ladder from working at a small creative agency to a large multinational corporation and finally landed a role at one of Australia’s leading tech companies, [The Iconic](https://www.theiconic.com.au/), working in a large team of the country’s smartest software engineers, data scientists and product owners.

Like many developers, makers, hackers and hobbyists, I taught myself to code.

Building a website, integrating a CMS or e-commerce system, administering a database and managing a server, after a while become second nature.

At some point in your career, like me, you might find these simpler projects or working alone are no longer enough and you want to step up to being a fully fledged software engineer working with a larger team of like-minded engineers at a large corporation, tech company or fast growing start-up.

With Apple, Google and other large tech companies now saying they will accept applicants without a computer science degree it’s never been easier to fake it, so with that in mind, here are my top three tips on how to land that dream job.

##Apply for jobs you aren't qualified for

This is my top tip and the one that had the most impact on my path to faking it. Apply for jobs even if there is little chance of success. I’d recommend aiming for jobs asking for 1–2 years of experience more than you already have.

Unless you are exceptionally talented there is a high probability you will be rejected. Don’t let this discourage you, try again elsewhere but be ready for more rejections.

Why? Because the feedback you get will be invaluable. Employers will tell you exactly what skills, technologies and techniques they are looking for. After a few applications and interviews you will start to notice a trend and you can get busy learning the most sought after skills you don’t have experience with.

This is the equivalent of market research, treat your future employer like a customer and work out what they want, then go away, adapt and deliver it.

Some questions that directed my approach to learning several years ago:

- Explain your understanding of Polymorphism
- What is your approach to unit testing your code?
- Name three design patterns and when you would use them
- How would you use caching to optimise performance?

##Create your own side project

This is the best way to learn in my opinion and can also be the most rewarding. You can learn from books and online tutorials, but they tend to guide you down a specific path and completing a tutorial doesn’t offer the same thrill or sense of achievement that creating your own side project does.

By dedicating yourself to a side project, especially if you intend to release the source code or launch a software product to the public you will a) find yourself more committed to learning and b) you will be forced to develop your problem-solving skills — there is no guide telling you what to do, you’ll need to work things out yourself.

Side projects allow you to experiment, practice and demonstrate knowledge of the latest technologies, languages, frameworks, techniques and best practices that you might not have the opportunity to learn elsewhere, such as your day job.

A side project will also impress potential employers that you live and breathe software, that you love coding and you are on top of emerging trends.

##Copy others work

They say if you can’t find the answer on Stack Overflow then it can’t be done.

If you want to learn fast and build things, then copy solutions from Stack Overflow, Google the answer or find something similar on GitHub.

The trick to faking it however is to critically evaluate the solutions you find, cross reference it against other suggestions and then look for how it can be improved and refined so that it looks like your own work.

But don’t stop there, if you already work with or know other software engineers copy what they are doing and learn from their hard work and mistakes. A good software engineer will be more than happy to coach and mentor you and pass on their knowledge.

##You can do it

It should take no more than five years to be able to fake it as an accomplished software engineer and hopefully you can land that dream role with a much sought-after tech company. All it really takes is patience, hard work and dedication.

##One last thing

Should you successfully fake it, your job then is to pass down your knowledge and wisdom you have acquired.

Answer questions on Stack Overflow, write a blog, or contribute to an open source project and encourage those on the same path as you to embrace their curiosity, develop their problem-solving skills and help them to become great software engineers.