The day has come. You passed the initial phone interview with the recruiter and now you finally arrived at the technical interview. Technical interviews can either be very easy or very hard. You might get lucky and the prospective company you want to work at just asks for sample code or you might be walking into a grill session and you’re on the menu today.
Here is a list of topics you should know in depth to land a job as a web developer.
MYSQL Table Joins
You should know what’s the difference between a left join and a right join. What’s the difference between an inner join, a cross join, an outer join. It’s also a good idea to know when to use a join versus a subquery. Look at Jeff Atwood’s explanation of joins.
OOP Principles
The questions that tech companies love to ask on technical interviews are about polymorphism, class abstraction, interfaces, and class inheritance. Some common questions are:
- What is an abstract class and why would I use one?
- What is the difference between an abstract class and an interface?
- Why would I use an abstract class versus an interface?
- What are some common architectural design patterns?
- What is a factory?
- What is a singleton?
- What is encapsulation?
- What in the most simplest explanation is polymorphism?
Performance/Scaling
Even if you haven’t done any work in your career optimizing performance on a web/mobile application you should know and research the following key areas. Questions around these key areas may be asked:
- I have a slow website, how would I diagnose if the slowness is coming from the front end or the back end?
- When should a JPEG be used versus a PNG?
- When should data be retrieved in real time versus versus cached either in a database or a caching platform such as memcache?
- Why is it not a good idea to use inline css or javascript? Generally speaking its not a good idea to use inline css or javascript because the browser won’t be able to cache your javascript files and will have to reload them every time a user loads a webpage.
- What tools can I use to determine how long a page is running?
- How can I benchmark SQL queries on an application to see whats being run and how long each query takes?
Common algorithm problems
- How would I sort through a multidimensional array?
- How would I find a value in a multidimensional array in the fastest amount of time possible?
- How would I iterate through a data set and paginate it on an HTML page?
- How do I quickly iterate through a file system and find out if a file or file with a pattern exists?
Regular expressions (Regex)
- When is it not a good idea to use a regex? Generally speaking you shouldn’t use a regex as a main defense against email forgery. You should use an email regex plus email confirmation to ensure that email addresses entered within your database are actual emails.
- How do I write a regex that targets alphanumeric characters?
- How do I write a regex that targets alphanumeric characters plus whitespace and new lines?
- How do I write a regex that matches words plus numeric characters?
Versioning and source control
- What is git?
- Why would you choose git over SVN?
- What’s the difference between a branch and a tag?
- Are you familiar with git flow? Why would you use git flow?
General programming knowledge
- What are the different data types for (x language = the language you claim to have knowledge in).
- What’s the difference between an increment operator and a decrement operator?
- What are the different type of loops that are available in (x language)?
- What function would you use to sort an array or sort an object?
If you can think of any additional questions that you encountered on a technical interview please leave them in the comments. We’ll add them to the list. Thanks!