Preparing for The Codeworks Tech Interview

Advice from a Codeworks student and instructor

Isabella Chen
Codewords
5 min readOct 1, 2018

--

So you’ve passed our intro chat, congratulations! We now know you’re motivated and serious about becoming a software engineer. As a student of the program myself, I then became an instructor, and this is my advice for preparing for the tech interview.

Isabella cracking new concepts on the Codeworks campus © Codeworks

What Does the Tech Interview Want to See?

On the surface, our tech interview is about accessing your command of Javascript and basic computer science concepts. Do you know how arrays and objects work and how to iterate over them? How do you declare and use variables? How comfortable are you with writing a function and calling it? These are questions that test how well you’ve studied and internalized the basics of Javascript for web development. But the tech interview is more than this — what we want to see is your problem-solving ability when faced with a challenge you’ve never seen before.

At first it can feel like you’re on your own, but we offer buckets of resources to help. © Codeworks

There are a few landmarks when it comes to learning anything new. Assuming you have no prior programming experience, the very first step to programming mastery is to get a grasp of the syntax and core concepts. Once you have been exposed to the basic types in JavaScript (these are the primitives and objects, which include arrays) and know how to manipulate them, the next step is to be able to use what you know creatively. The only way to do this is by solving problems of increasing difficulty.

Ask for help when you need it. Get offline and buddy up! © Codeworks

Push Yourself

Deliberate and effective learning and practice happen in the space that lies at the very edge of your comfort zone. It’s tempting to only try and solve questions that you immediately know the answer to, but that will not help you improve. Solving questions that fall within your comfort zone is better than not solving any questions, but you’re not going to level up as fast as you’d like. Also, there’s the problem of losing motivation along the way.

The best questions to tackle are those that at first glance seem unanswerable with the knowledge and information we have at hand. When confronting such questions, you are forced to be honest about what you know and what you don’t know. Only then will you see the gaps and be able to fill them in.

Preparation Resources

The technical portion of the Codeworks admission is a two-step process, consisting first of the tech interview followed by a coding assignment. To pass the tech interview, you’ll need to be proficient with Javascript syntax and be able to think computationally.

If you lack prior experience with programming, completing the Codecademy course on Javascript will not guarantee a pass. That course focuses on syntax and the basics of the language instead of the computational methods you’ll need to solve problems, which is what we’re looking for in the tech interview.

Codewars Challenge

I prepared for the tech interview by going through this list of katas on Codewars (you’ll be prepared for the interview if you do them up till #25). To date, this remains my favourite resource and the one I recommend to all beginners. I really like it because every chapter introduces a new basic concept in Javascript. It then gets you to apply what you just learnt in a creative way that forces you to think computationally.

The challenges later on in the list also build on earlier concepts. Demanding that you recall what you learned before in a new context is a key strategy to mastering any skill. Furthermore, every challenge on Codewars is free. You don’t get to see the solutions without a forfeit until you’ve solved them yourself!

Another resource I really liked is Khan Academy, particularly their module on recursion. Recursion is one of the central ideas of computer science and is very difficult to grasp for beginners. If you feel like you don’t get all of it, that’s alright! What matters is that you make your best attempt at understanding it and give it some practice.

A Personal Lesson

I’d like to end with a little anecdote that changed my approach towards problem-solving. This was key to my transformation from fine arts graduate to software engineer in one year.

In the free EDX course ‘Effective Thinking Through Mathematics’, the professor puts forth a question.

Ten people (five couples) go to a party and start shaking hands. You
don't shake your spouse's hand or (of course) your own. One of the
men, Jake, shouts, "Stop! How many hands did you shake?" Every person
gives a different answer. Jake's wife is the last to answer. How many
handshakes does she have? Is it 0?

Google it if you want the answer. My immediate reaction to this question was disbelief. There is no way there’s enough information in the question for there to be a definite solution. But there is. The professor anticipates this reaction and suggests, in order to solve this, we start with one thing:

writing down what we know.

Break it Down

So write it down; that is the very first step. Writing down what you know and then playing around with the available information forces you to break down the problem.

One thing that all programmers have internalized is this: if a problem seems insurmountable, it doesn’t mean it is — only that it hasn’t been broken down into small enough parts. Good luck!

How many Italians does it take to solve a problem? © Codeworks

--

--