Resources used to make code interview.
Each company has its own standard of the amount of knowledge that each level requires. These resources are based in my experience and in the current company that I work on.
Candidates currently enrolled in a Computer Science or related undergraduate/graduate program. We assume you’ve taken introductory courses in logic, programming fundamentals, and basic mathematics.
You are not expected to have taken advanced courses (e.g., databases, compilers, operating systems, or deep OOP). The interview focuses on general problem solving and foundational coding skills.
The interview mixes conceptual and hands-on questions, using common languages such as Java, Python, C, or C# (pick the one you’re most comfortable with).
We’ll cover four areas:
Short puzzles or real-world scenarios where you’ll outline a clear approach before coding. We’re looking for how you understand the problem, break it down, and justify steps.
Questions about core language constructs and why/when to use them—for example: variables, control flow (if/loops), functions/methods and basic data structures (arrays/lists).
Small programming tasks solvable with straightforward algorithms and standard libraries. Emphasis on correctness, readability, and edge cases, not on advanced frameworks.
A lightweight exercise to describe a simple feature (e.g., a to-do list). We’ll discuss requirements, simple components, data flow, and trade-offs at a beginner level.
Someone that would have most of the knowledge about software development that the college requires to learn. This includes:
- Function;
- Conditions;
- Loop structures;
- Object Oriented programming;
Depending where you want to work, you might need to know a little bit about other programming paradigms, like:
- Functional Language;
- Structs;
This is one of most important skill that a develop should work on and that is really underestimated. I already saw a lot of people focusing into knowing the syntax of many languages, knowing frameworks, but at the end of the day, programming is the art of solving problems using the computer. The language and frameworks are only the means to translate the problem into computer language.
If you can't understand the problem, think ways to solve it, and more important, know how to translate it to a language that the computer will understand and process, knowing the language and framework are useless.
To practice problem solving skills, I recommend to use sites like:
There is a really high chance that you'll need to work with a database. TO know SQL language and a Database Management System (DBMS) is really important. Also know how to make simple queries:
- insertion, update and deletion;
- select;
- select with join;
- sort and filter data;
Create code with a team will need code synchronization, keep different versions. It would be great if there was a tool to manage this. Actually there is! Tools like Git or Mercurial are meant to help you organize your code by doing things like:
- Easy way to version your code, allowing you to access different points of the development;
- Set tags to mark special versions of the code (usually releases);
- Show in a easy way the changes that someone is trying to apply to the new code, so people can review if the change are right;
- etc.
Modern compiles already gives a lot of information about what's wrong with the code. So you must learn how to read it.
- Array index out of bounds
The Pleno level is someone that already get a lot of experiences with all the items cited in the Junior Level. It's someone that already don't have doubts how to use it, or have really easy time learning small details of each tool. So, besides is really good with these concepts, the Pleno Level Developer should be able to:
In construction...