Change language

What Employers Expect from a Junior Python Developer

| |

Python is one of the most popular programming languages. In the 2020 Stack Overflow rankings, it ranks third. It is easy to master, and there is no shortage of vacancies in the market. Python is used in web applications, machine learning and data science. Here we share our experience of interviewing for the position of a Python developer and tells what employers usually expect from beginners.

What kind of education is needed?

Usually resumes for Junior Python developers are submitted by graduates or students of the last courses of technical and mathematical specialties. Specialized additional education, completed courses on Stepik, Coursera or other platforms will be a plus to basic education. If you want to work in Data Science, then a master's degree or graduate school, the presence of publications and speeches at conferences will be a bonus.

Employers are sometimes willing to take on junior-position candidates without the appropriate higher education. For such applicants, as a rule, additional tests are carried out, they are more attentive to the test task and educational projects in the portfolio.

How is experience checked?

Usually experience for beginners is not required. But for some vacancies, they are looking for candidates with experience from six months to a year or applicants who have completed an internship. If you haven't worked anywhere, get ready to talk about completed academic and personal projects. Personal projects are also asked to test the candidate's interest in the profession and his desire for development.

Completed projects can be published, for example, in a personal profile on GitHub or create a portfolio website. At the interview, you will be able to tell what task you faced, what technologies you chose and why. Additional projects will help not only improve skills, but also stand out from other candidates.

What soft skills will be useful first of all?

Remember the Silicon Valley series and its protagonist Richard Hendrix, the CEO of Piebald Piper? He was an excellent programmer, but he clearly lacked the ability to communicate with people, work in a team and manage employees. In practice, the ability to solve tasks with the help of technical skills is not enough, the success of a candidate also depends on his social qualities.

Responsibility, the desire for professional growth, the ability to manage work time and work in a team are basic soft skills that are needed in almost any position in the IT field.

A junior developer is additionally expected to be able to quickly learn new material, delve into the essence of tasks, understand requirements and be ready for routine tasks. At interviews, junior specialists may be asked: “How do you feel about routine tasks?” - because their work often involves monotonous processes, not always creative. The employer does not want to scare you - rather, he wants to make sure that you will not get bored in this position in a few months and you will not want to leave. The answer to such a question can be formulated as follows: “Now such tasks for me are an opportunity to gain experience, on them I can work out my skills in order to take on more difficult work in the future.”

The interview may also ask why you want to work in this position and in this company. With this question, the employer tries to understand whether the applicant is suitable for the company, and the company is suitable for the applicant. If you are really not interested in a project, then working on it is unlikely to be enjoyable, and you are unlikely to benefit the company.

Before the interview, study your future tasks, products and projects that are being worked on in the company, the stage of the company's development (for example, a startup or an IT giant), corporate culture, employee reviews, location, working conditions. And choose among everything that is really important to you. It can be as simple as “this is a company where I can fully develop my competencies and continue my career” or “I think my experience fits the requirements perfectly” and list the key skills.

What technical skills are required?

The main requirement is knowledge of the Python programming language. But sometimes people with experience in other popular languages ​​(for example, C ++, Java, Go) are considered for the position of a Python developer.

At interviews, an employer can test general IT literacy, such as asking how a computer works or how the Internet works. Most often, candidates are expected to have knowledge of algorithms and data structures. Some companies have a separate stage, or even several selection stages, dedicated to testing this skill. We have already written about why a developer should study algorithms and data structures.

Also, at interviews, they often ask about experience with databases and frameworks, understanding the principles of multi-threaded and asynchronous programming, and the ability to work on the command line.

Python developers are also looking for machine learning tasks. Therefore, when selecting for positions related to Data Science, they check the knowledge of machine learning algorithms and the ability to apply them, the experience of participating in competitions on Kaggle or in hackathons. Applicants are expected to have knowledge of mathematics: probability theory, linear algebra and mathematical analysis.

What to do before an interview

Algorithms and data structures (without reference to the programming language). It is desirable to know how arrays, linked lists, hash tables, sets, binary search trees, graphs are arranged. What is the complexity (in O-notation) of the basic operations when working with them. They can also ask questions about basic algorithms. For example, ask them to talk about basic sorting algorithms, binary search, or ways to traverse graphs.

Data Structures in Python: Applications, Differences, Advantages and Disadvantages. Be prepared to answer questions about numeric data types, strings, lists, tuples, sets, and dictionaries. Knowledge and experience with data structures built into the language, such as OrderedDict or defaultdict from the collections module, will be an advantage.

Mutable and immutable data types in Python: what is the difference between them, examples of use. Often asked to simply list the mutable and immutable data types that you know. They can offer to solve a problem and ask what type or what data structure you would choose to solve it and why.

Decorators: what they are and how they work. They might, for example, be asked to write code for a decorator to measure the running time of a function or a decorator with a parameter. Knowledge of functools.wraps will be useful.

Context managers: what is it and what are they used for. You may be asked to implement a context manager for working with files, similar to the built-in open ().

Generators and iterators: what they are, what they are used for, what is the difference between them. They may, for example, be asked to write a generator of even numbers or Fibonacci numbers.

GIL: why is it needed and how does it work. An interview question might be, “Can more than one thread be running at the same time in Python?” Beginning professionals are not usually required to know about GIL, but they can set you apart from other candidates.

How one of the popular frameworks, such as Django or Flask, works. It's good if you understand its strengths and weaknesses. They may be asked to design a database for the application, write a few queries using an ORM or pure SQL.

How the Internet works: Understanding the OSI/TCP IP model/models, basic protocols. A popular question in this section is: "What happens when you type google.com in the search box?"

Command line utilities. They may be asked to tell you about five to ten commands that you use most often.

Threads, processes, asynchronous programming. For example, what is the difference between a thread and a process, or what kind of interprocess communication do you know.

Logical and mathematical problems: to solve them, you may need school mathematics, basic knowledge of combinatorics, probability theory, the ability to work with numbers in different number systems.

It is unlikely that at the interview you will be asked questions from all these sections. From the applicant for the position of a junior developer, they are not expected to answer all the questions correctly, rather, they will look to see if he is thinking in the right direction. But the more prepared you are, the more likely you are to get the job you want.

What to read for a junior Python developer

"Clean code: creation, analysis and refactoring", Martin Robert K. "Dirty" code hinders the development of the project and the company, because it requires significant resources for support. The book has many real examples that will teach you to distinguish bad code from good. It is useful to all novice developers, it is easy to read. It may not be possible to put everything into practice right away, but when you encounter the situation mentioned in the book, it will be easier for you to find a solution.

“Groaming algorithms. An Illustrated Guide for Programmers and the Curious, by Aditya Bhargava. Think algorithms are hard? The book will convince you otherwise. Each algorithm is analyzed in detail in it: it will be clear even to a child. To reproduce them in any programming language is not difficult.

"Programming with Python" by Michael Dawson. The author of the book is an experienced developer. It helps to master the fundamental principles through the example of creating simple games. So you will get basic skills and be able to replenish your portfolio. For more advanced specialists, the book may seem boring, the main audience is still novice developers.

"Python in Practice" by Mark Summerfield. The knowledge from the book will help you better prepare for interviews. Suitable for beginners and experienced programmers. It is based on four topics: improving the elegance of code using design patterns, improving performance through parallelization and compilation of Python programs (Cython), high-level network programming, and graphics.

Learning Python”, “Programming in Python”, “Python. Pocket Guide, Mark Lutz. These are several books by a famous Python instructor. It is better to read them in the original. They help fill gaps in knowledge and understand complex things. In the "Pocket Reference" you will find basic information about data types and operators, special methods, built-in functions that are useful when working with Python.

Python. Recipe Book, David Beasley, Brian K. Jones. A guide for beginners and experienced developers to help you create readable, optimized, and maintainable code. 15 chapters cover the main topics of Python, each chapter contains specific "recipes" with code examples that you can use in your projects.

"Algorithms: Construction and Analysis", Thomas Kormen, Charles Leizerson, Ronald Rivest, Clifford Stein. This is a guide and manual on algorithms, which will be useful for novice developers, seniors, and team leaders. The descriptions are given in plain language, the chapters are independent of each other, and can be studied in any order and volume.