Originally posted on Developer.com, November 18, 2016.
It seems like anyone that knows how to copy code from an Internet search or put a semicolon at the end of a line calls themselves a developer. However, how do you sort those that understand development from those that just want to. The answer, may be in these ten interview questions that every developer should know. Developer is the workhorse role in the software development process as the Anatomy of a Software Development Role: Developer article points out.
Q1: How do you validate user input?
A: A candidate’s answer should include that validating user input should happen client-side to provide instant feedback, and server-side to ensure that malicious data isn’t injected. For methods to be safe they need to validate any input parameters they get, particularly if they can be coming from a user.
Q2: How do you manage caching of information?
A: The answer here focuses on the need for some caching to improve scalability and performance, as well as the problems with cache coherency and staleness. Candidates should be aware of these problems and understand that they require special architectural considerations. Developers aren’t asked to address major architectural issues but need to know when they might occur.
Q3: How do you handle exceptions in your code?
A: Every candidate should be aware of basic error handling, including the idea of wrapping errors in more context and throwing them up the stack until they can be logged. Developers understand that exceptions should not be allowed to bubble back up to the user.
Q4: How do you improve your development skills?
A: The answer may vary but should include online forums or local community groups, as well as reading books, articles, web sites or other materials and online videos. The intent of the question is to ensure that the candidate will continue to improve over time through continuous learning.
Q5: What kind of development do you most enjoy?
A: Some developers prefer working on slick user interfaces. Others are at home writing data processing logic. Still others love complicated logic puzzles. This question seeks to get a sense for what excites a candidate.
Q6: What have you developed just for fun, to play, or to test?
A: One way to know how excited a developer is about their craft is to ask them what they do for fun. Good developers connect the proverbial toaster to the Internet. Employers want employees who enjoy what they do – because they’ll be better at it.
Q7: How do you build reusable objects?
A: The best reusable objects have a single focus and do whatever that is very well. The candidate’s answer should talk about the objects that have been built and why they were so valuable. The thinking behind building reusable objects helps developers be better at all kinds of development.
Q8: What are your favorite debugging tools?
A: The goal of the question is to discover some of the hidden tools that developers use to debug. Answers can be “old school” like outputting information or logging. They might be tools integrated into the development environment or third party tools. Debugging is a substantial amount of the time spent developing code – so knowing how to debug is essential.
Q9: How do you decide when to make something configurable?
A: Developers are often called to make calls as to which settings should be configurable – and which shouldn’t – as well as how default values should be handled. A candidate should be prepared to talk about how they make values configurable, default reasonable values, and how they document those that are changeable.
Q10: How do you feel your technology, industry, and function experience matches the job?
A: Development isn’t just about where the semicolons go. Candidates have to have basic skills and language/platform knowledge. However, it’s just as important to be able to understand the industry they’re in or the departmental/functional needs.