Once, all of us would search for our first job. And usually, it's a long, painful, and scary process. I've been interviewing interns and juniors for some time and would want to share my knowledge.
Interviews at the beginning usually are a disaster. And it's ok and predictable if you are shaken, nervous, miss your thoughts, and forget what you knew for sure. It helps to have a quick sheet with potential questions and answers.
Here is a part from my quick sheet:
Also, I recommend you to stay in the power pose for 2 minutes just before the interview. It would decrease stress (cortisol level) and increase calmness and self-confidence. I do it all the time - before an interview, presentation at a meet-up or conference, before a stressful conversation with my boss. And it helps! I found out about the pose from Amy Cuddy's TED, and it's magnificent! Highly recommend to watch it: video.
I think it's enough with a soft-skills part. Let's go on with actual questions and answers. Usually, the technical aspect of the interview can be divided into two parts: general technical questions and job-specific questions. Here we will talk about general technical questions for a junior position. So let's start!
Basic Internet questions
How does the Internet work?The Internet is a worldwide computer network that transmits various data and media across interconnected devices. It works using a packet routing network that follows Internet Protocol (IP) and Transport Control Protocol (TCP).
When data is transferred over the Internet, it's delivered in messages and packets. Data sent over the Internet is called a message, but before messages get sent, they're broken up into tinier parts called packets.
Using a numerical address (IP Address), the IP system receives further instructions on how the data should be transferred.
TCP vs UDP?The Transport Control Protocol (TCP) works with IP to ensure that data transfer is dependable and reliable. This helps ensure that no packets are lost, packets are reassembled in proper sequence, and there's no delay negatively affecting the data quality
The User Datagram Protocol (UDP) speeds up communications by not formally establishing a connection before data is transferred. This allows data to be transferred quickly, but it can also cause packets to become lost in transit. UDP is commonly used for applications that can handle some packet loss, such as streaming audio and video
What is HTTP?HTTP stands for Hypertext Transfer Protocol. Suppose the Internet is the infrastructure connecting web clients and servers. In that case, HTTP is the "language" they speak to each other over that connection. This is how we make web pages load, and YouTube videos play. HTTP protocol ensures that hardware and software produced by different vendors can work together reliably.
HTTP status codes1xx Informational
4xx Client Error
5xx Server Error
How Browsers Work?The browser's primary function is to send a request to the server and display the network resources you selected in the browser window.
Browser high-rise structure:
- User interface
- Browser engine (transfers instructions between the user interface and the rendering engine)
- Rendering engine (responsible for displaying the requested content)
- Data storage (to store various kinds of data, such as cookies)
- Network (receiving and processing content from the network)
- User interface backend (used for drawing basic widgets like combo boxes and windows. This backend exposes a generic interface that is not platform specific)
What is a Domain Name and DNS?The Domain Name is why you can access Google by typing google.com into your browser rather than a hard-to-remember numeric address such as 22.214.171.124.
The domain name system is like a phonebook of the Internet. Administered by the Internet Corporation for Assigned Names and Numbers (ICANN), a non-profit organization based in California.
What Is Web Hosting?Web hosting is the process of renting or buying space to house a website on the World Wide Web. Website content such as HTML, CSS, and images has to be housed on a server to be viewable online.
What is SSL?Short for Secure Sockets Layer, SSL is a family of encryption technologies that allows web users to protect the privacy of the information they transmit over the internet.
Basic frontend questions
What is CSS?CSS or Cascading Style Sheets is the language used to style the frontend of any website.
What is accessibility?Web accessibility means that websites, tools, and technologies are designed and developed so that people with disabilities can use them efficiently.
What is SEO?SEO or Search Engine Optimization is the technique used to optimize your website for better rankings on search engines such as Google, Bing, etc
What is responsive web design?Responsive Web Designing is the technique to make your webpages look good on all screen sizes
Basic backend questions
What is REST?REpresentational State Transfer (REST) is a software architectural style created to guide the design and development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of an Internet-scale distributed hypermedia system, such as the Web, should behave.
What are NoSQL databases?NoSQL Database is a non-relational Data Management System that does not require a fixed schema. MongoDB, Redis, Couchbase, RavenDB, etc.
What are SQL databases?SQL databases are a collection of tables that stores a specific set of structured data. Examples: PostgreSQL, MySQL, Oracle, etc.
What is SQL injection?SQL injection usually occurs when you ask a user for input, like their username/userid, and instead of a name/id, the user gives you an SQL statement that you will unknowingly run on your database.
What is the DRY principle?Don't Repeat Yourself (DRY)
What is the difference between Monolithic and Microservices ArchitectureMonolithic Architecture is where all the software components of an application are assembled together and tightly packaged.
Microservice Architecture is an architectural style that structures an application as a collection of small autonomous services
There is also a Service-Oriented Architecture - it's a collection of services that communicate with each other
OS and general knowledge
How OS work in General?An Operating System (OS) is an interface between a computer user and computer hardware. An operating system is a software that performs all the basic tasks like file management, memory management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.
Process and Process ManagementA process is a program in execution. It is the job of the OS to manage all the system's running processes. It handles operations by performing tasks like process scheduling and resource allocation.
There are 7 stages of a process: new, ready, waiting, executing, blocked, suspended, terminated, zombie
Processes & ThreadsProcesses are basically the programs (or execution unit where a program runs)
Thread is a part of a process. The process can have multiple threads, and these multiple threads are contained within a process. A thread has three states: Running, Ready, and Blocked.
Interprocess communicationInterprocess communication (IPC) refers specifically to the mechanisms inside an operating system which provides to allow the processes to manage shared data
Basic Terminal Commandscd - change directory
ls - content insede directory
mkdir - create directory
rm - delete file/directory etc.
pwd - show current path from the root
Memory ManagementMemory management is a form of resource management applied to computer memory. The job of memory management is to provide ways to dynamically allocate portions of memory to programs at their request and free it for reuse when no longer needed
I/O managementI/O - it's Input and Output.
One of the important jobs of an Operating System is to manage various I/O devices, including mouse, keyboards, touchpads, disk drives, etc. An I/O system is required to take an application I/O request and send it to the physical device. Then take whatever response comes back from the device and send it to the application.
Basic GIT knowledge
What is Git?Git is a version control system for tracking changes in computer files and is used to help coordinate work among several people on a project while tracking progress over time.
What’s the difference between Git and GitHub?Git is software. Git can be installed locally on the system
GitHub is a service. GitHub is hosted on the web
What is a Git repository?A Git repository refers to a place where all the Git files are stored. These files can either be stored locally or on the remote repository.
How can you initialize a repository in Git?
What is the correct syntax to add a message to a commit?
git commit -m "you comment to the commit"
What does the git push command do?The Git push command is used to push the content in a local repository to a remote repository
Difference between git fetch and git pull?The Git fetch command only downloads new data from a remote repository.
Git pull updates the current branch with the latest changes from the remote server.
What is Git merge conflict?A Git merge conflict is an event that occurs when Git is unable to resolve the differences in code between the two commits automatically.
What does git clone do?Git clone allows you to create a local copy of the remote Git repository
Basic DevOps questions
What is SSH?SSH stands for Secure Shell and is an administrative protocol that lets users have access and control the remote servers over the Internet to work using the command line.
SSH also has a mechanism for remote user authentication, input communication between the client and the host, and sending the output back to the client.
What is Continuous Integration (CI)?Continuous integration (CI) is the practice of automating the integration of code changes from multiple contributors into a single software project.
Continuous integration establishes an automated way to build, package, and test their applications.
What is Continuous Delivery (CD)?Continuous delivery picks up where continuous integration ends and automates application delivery to selected environments, including production, development, and testing environments. Continuous delivery is an automated way to push code changes to these environments.
Your questions to the employer
During the interview, often, in the end, an employer asks if an employee has any questions. It's essential to show your interest and what you're made of. At this point, you should know something about a company (just see their website), and it's better to show it somehow.
Here is the list of questions that you can ask your employer:
How is the code review process arranged in the company?Example of a good answer: you have to create a new branch for each ticket, and when you are ready with the code, you will create a Pull Request. Your colleagues will get acquainted and leave suggestions for changes. You should reply and change your code if necessary. When you have two or more approvals, you can merge your PR.
Example of a doubtful answer: We just merge into master directly
Which git system do you use?Example of a good answer: We host code on a Gitlab
Example of a doubtful answer: We just exchange text files
Do you use scrum/kanban or other methodology?Example of a good answer: We have scrum
Example of a doubtful answer: What is scrum?
Do you provide laptops?Example of a good answer: No, but we have health insurances
Example of a doubtful answer: Yes, with screen recording software
Who would be my direct manager?Example of a good answer: We will introduce you to him in the next interview
Example of a doubtful answer: Everyone is their own manager here
Do you have 1:1 communications?Example of a good answer: Yes, once in two weeks for a half of hour
Example of a doubtful answer: Once in a year
Hope it was helpful
And good luck with interviews!