Software Developer Coding Interview Questions: What Works When?
Companies recruiting a software developer for almost any position now routinely test candidates to establish that they have the technical capabilities required.
As such testing has become almost ubiquitous, there’s good news—and bad news.
The good news is that vast resources are available for companies, including software engineer technical interview questions, ready-made testing instruments (like a 30-minute coding quiz), testing through online coding challenge websites, and online platforms where you can conduct your own testing—to name a few.
The bad news is that identifying the resources that best meet your company’s standards in filling a given role is now virtually a new specialty.
One site offers 17,000+ problems for testing a software developer. Another boils it down to the top 50 programming interview questions. From another, you can get the top 10 most frequently asked coding questions. These might be typical questions such as:
- How is a bubble sort algorithm implemented?
- How is a merge sort algorithm implemented?
- How do you count the occurrence of a given character in a string?
- How do you print the first non-repeated character from a string?
- How do you convert a given String into int like the atoi()?
- How do you implement a bucket sort algorithm?
- How do you implement a counting sort algorithm?
- How do you remove duplicates from an array in place?
- How do you reverse an array in place in Java?
Coding interview questions
Did you notice that the “most common questions” are basic programming interview questions? These assess a candidate’s command of basic tasks involved in a given coding language. They ask for information that the candidate would have gotten by majoring in computer science in college… and likely appeared on the final exam of a course in software development.
What these questions don’t do is assess a candidate’s ability to apply coding skill to problems that arise daily at your company.
If a candidate can tell you how they would find the prime numbers in a large list—a standard programming task—can they also answer, “Where would you start looking if your customer asked for an up-to-date report on the total number of prime and non-prime customers we have?”
The difference is a candidate’s knowledge of standard programming tools and tasks vs the ability, built on experience, to apply those tools to real-world problems.
This is the difference that defines Woven’s mission to assess differently. Our tests ask candidates to employ code in defining and solving problems germane to the role and workplace for which they are being recruited.
The prime numbers example above makes more sense when interviewing an entry-level or junior candidate. But regardless, your company needs to assess not only competence in coding language, but in applying it.
This obvious requirement has become the stock-in-trade of websites that emphasize “must do” coding questions. There are now lists of “must do coding questions” for specific company interviews (think Amazon, Microsoft, Adobe), “must do” coding questions for product-based companies, and so on. Questions are divided into dozens of major categories that might have special application to a given industry: arrays, searching, sorting, matrix, string, hashing, linked list, stack.
An example of a “medium” “must do” question in the category “Merge Sort for Linked List”:
“For C++ and Python: The task is to complete the function mergeSort() which sorts the linked list using the merge sort function.
For Java: The task is to complete the function mergeSort() and return the node which can be used to print the sorted linked list.
“Expected Time Complexity: O(N*Log(N))
Expected Auxiliary Space: O(N)
“Constraints:
1 <= T <= 100
1 <= N <= 105″
Java coding interview questions
Coding tests and 30-minute quizzes can be useful when your company is hiring a junior software developer who must be conversant, for example, in Java or Python. An astonishing 70% of all companies are seeking, among other things, Java coding hires.
It makes sense, then, to assess the candidate’s skill level in the required language. Among the most popular Java coding questions:
- Write a Java Program to reverse a string without using String inbuilt function.
- Write a Java Program to reverse a string without using String inbuilt function reverse().
- Write a Java Program to swap two numbers using the third variable.
- Write a Java Program to swap two numbers without using the third variable.
- Write a Java Program to count the number of words in a string using HashMap.
One site offers these examples of tricky programming questions in Java:
- Can you instantiate this class [with the class specified]?
- Is the below code written correctly? If yes, what will be the output?
- What will be the output of the following program
- What happens when you call methodOfA() in the below class?
- What will be the output of the below program?
For these and other Java-related questions, potential candidates can practice online with full explanations of each question, tips for tackling it, and the Java programming questions and answers for a written test.
Again, that’s possible because these questions call for solving a generic problem, not a coding challenge that would come up on the job. The coding quiz for Java or any other language (we’ll discuss Python below) may work well for filling an entry-level or junior position, where the candidate will need coding competence to begin on-the-job learning.
But coding quizzes for experienced engineering candidates are counterproductive. A senior software engineer can easily pick up a new coding language or languages. Assessment of the senior candidate must challenge knowledge of all core computer engineering skills.
That’s why Woven focuses on debugging, technical communication, systems thinking, backend programming, and frontend programming. Each core skill is tested as it applies to the role being filled (Mid/Senior Fullstack Engineer, Engineering Manager, Mid/Senior Frontend Engineer, or Mid/Senior Generalist Engineer.) These are among the nine computer engineering roles we test.
Coding interview questions python
Like Java, Python is a widely applied coding language: easy to use, powerful, and versatile. It’s used by both beginners and senior engineers, and happens to be easy to download and install. These are typical Python questions posed to freshers:
- What is Python?
- What are the benefits of using Python?
- What is a dynamically typed language?
- What is an interpreted language?
- What is PEP 8 and why is it important?
Most sites will offer questions divided by topic (Python OOPS interview questions, Python programming examples) as well as by level of experience. There are also tricky programming questions in Python for more experienced engineers:
- Can you write a program to find the average of numbers in a list in Python?
- Write a program to reverse a number in Python?
- Write a program to find the sum of the digits of a number in Python?
- Write a Python Program to Check if a Number is a Palindrome or not?
- Write a Python Program to Count the Number of Digits in a Number?
A site offering these questions is often used for coding practice, with answers spelled out in detail. There are special sections such as “Python Developer Interview Questions and Answers.”
The same comments we made about Java apply to Python, too. Neither the basic nor tricky questions move away from generic coding tasks. They are not framed in terms of real-world coding challenges that Python users would encounter in a given role (say, Frontend Engineer) at a given level (Mid/Senior).
Coding challenge questions
The problem we began with was: Which of the multitudinous resources for testing should your company choose?
And the answer depends upon the level of technical competence required for the role.
Candidates applying for entry-level and junior roles in your company should be tested for code writing skill in the language that will be used. Quizzes with coding questions for beginners should provide information about these fundamental abilities.
In contrast, companies hiring a senior engineer to enhance the competitiveness of a software development team should know that a candidate has mastered coding languages and can acquire others as needed. In fact, many experienced engineers won’t take coding quizzes. One estimate based on research at 100 companies showed that 50% of engineers straight out refuse to take these “status quo” tests.
Luckily, almost all engineering candidates agree to take Woven’s online assessment. We’re known for a methodology that tests not just the generic knowledge of software development tasks, but the ability to use code to define a real-world problem and propose a solution.
Engineering candidates also respect our challenges for a scoring and evaluation process that goes beyond “right and wrong” answers. Two senior engineers in our network perform a double-blind evaluation of the test results. Then, your company receives recommendations for hiring and the candidate receives feedback for their professional development.
If you’re looking to hire top-quality senior software developers that will make your company competitive, you need a hiring process that goes beyond code and assesses the technical skills of candidates for senior positions. We can help you with all stages of the process, from finding candidates to screening to testing and test evaluation.
Ready to begin? Start a free trial of Woven’s technical assessment platform today.