-Like it or hate it-, it is a part of the job. Especially if you are a consultant or freelancer, you’ll have the opportunity to work on many projects hence you’ll have a lot of technical interviews.
When I was at the beginning of the my career, every time I had a planned interview I was anxious. I was young, I was confident, I knew all and I didn’t have problems with coding but you I didn’t like people judging me. That last point is the key point. When I advanced in my career, I realized the interview is there to decide whether they’ll want to work with me or not but also it is there so that I can decide whether I’ll work with this company or not. Once you realize that, the anxiety goes away, you began to see this process as an opportunity to discuss with another colleague about what you have done in your career, a design and/or code problem, their project, their approaches, the life in the company.
A good technical interview will learn you a lot of things. Depending on your working environment, you might not have a chance to have second pair of eyes on the way you code, you design, so that’s it, this is the opportunity!
It’s also important to note that the market in which you are changes. By passing interviews, you get an idea of the direction the market takes. In France for example, 5 years ago, nobody was asking if you were doing T.D.D. I remember even that I asked once to the recruiter about the methodologies they were employing and whether they practice T.D.D or not. He asked me back what T.D.D is. Today, the market in France are rather looking candidates having T.D.D experience or motivation to practice it.
Let’s come to the main subject. I decided to share some interview questions. Please note that, the market in question is France and the positions were for a C# developer/team lead. There were also programming challenges and design problems but unfortunately I don’t recall them all. I’ll try do other posts by going through my mails to retrieve memos I’ve made to myself.
- How the garbage collector works in .NET ?
- What generics brought to .NET ?
- What is a deadlock ?
- What is the difference between
- You wrote a class, you don’t want other classes to inherit from it and you hate the keyword
sealed, how would you achieve that ?
- You have an ordered list, what would be the algorithm to use to find an element? What would be its complexity ?
- What is a database index ? When do you use them ?
- What is a delegate ?
- Explain value types and reference types in .NET .
- What is a difference between
- Explain singleton pattern. [Note to the recruiters, please stop with this question]
- What are the 3 pillars of object-oriented programming ? Explain each of them
- In most cases, for a technical position, you’ll be asked to pass a technical interview. If they don’t ask you to pass a technical interview, I’d suggest you to consider refusing this job right away. I’ll talk about this in another post. ↩
- I was thinking that I knew all, that was till I meet real life problems that necessitate strong problem solving skills ↩