Full Stack Python Interview Questions

Interview Questions

A Full Stack Web Developer is a person who is familiar with developing both client and server software. In addition to mastering CSS and HTML, they are also know how to program browsers, databases, and servers.

To fully comprehend the role of Full Stack developer, you must understand the web development components – front end  and back end

The front end comprises a visible part of the application in which the user interacts, while the back end includes business logic.

Some of the popular tools used by full-stack developers to make development more accessible and efficient are:

  • Backbone
  • Visual Studio Code
  • WebStorm
  • Slack
  • Electron
  • TypeScript
  • CodePen
  • GitHub

A Full Stack developer should be familiar with:

  • Basic languages – Must be proficient in basic languages like HTML, CSS, and SQL.
  • Front-end frameworks – BootStrap, AngularJS, VueJS, ReactJS, JavaScript, TypeScript, Python, Ruby, PHP
  • Back-end frameworks – Express, Django, NodeJS, Ruby on Rails
  • Databases – MySQL, SQLite, Postgres, MongoDB, Cassandra, Apache storm, Sphinx
  • Additional skills recommended – Git, Machine Learning, SSH, Linux Command, Data Structures, Character encoding.

As the name suggests, Pair Programming is where two programmers share a single workstation. Formally, one programmer at the keyboard called the “driver” writes the code. The other programmer is the “navigator” who views each line of the code written, spell check, and proofread it. Also, programmers will swap their roles every few minutes and vice-versa.

Cross-origin resource sharing (CORS) is a process that utilizes additional HTTP headers to tell browsers to provide a web application running at one origin. CORS accesses various web resources on different domains. Web scripts can be integrated using CORS when it requests a resource that has an external origin (protocol. Domain, or port) from its own.

Inversion of Control (IoC) is a broad term used by software developers for defining a pattern that is used for decoupling components and layers in the system. It is mostly used in the context of object-oriented programming. Control of objects or portions of a program is transferred to a framework or container with the help of Inversion of Control. It can be achieved using various mechanisms such as service locator pattern, strategy design pattern, factory pattern, and dependency injection.

Dependency Injection is a design pattern by which IoC is executed. Injecting objects or connecting objects with other objects is done by container instead of by the object themselves. It involves three types of classes.

  • Client class: It depends on the service class.
  • Service class: It provides service to the client class.
  • Injector class: It injects service class objects into the client class.

Continuous Integration (CI) is a practice where developers integrate code into a shared repository regularly to detect problems early. CI process involves automatic tools that state new code’s correctness before integration. Automated builds and tests verify every check-in.

The main purpose of multithreading is to provide multiple threads of execution concurrently for maximum utilization of the CPU. It allows multiple threads to exist within the context of a process such that they execute individually but share their process resources.

This is typically a difficult question to answer, but a good developer will be able to go through this with ease. The core difference is GraphQL doesn’t deal with dedicated resources. The description of a particular resource is not coupled to the way you retrieve it. Everything referred to as a graph is connected and can be queried to application needs.

There are quite a lot of possible ways to optimize your website for the best performance:

  • Minimize HTTP requests.
  • Utilize CDNs and remove unused files/scripts.
  • Optimize files and compress images.
  • Browser caching.
  • Apply CSS3 and HTML5.
  • Minify JavaScript & Style Sheets.
  • Optimize caches.

The purpose of the Observer pattern is to define a one-to-many dependency between objects, as when an object changes the state, then all its dependents are notified and updated automatically. The object that watches on the state of another object is called the observer, and the object that is being watched is called the subject.

A Full-Stack engineer is someone with a senior-level role with the experience of a Full-Stack developer, but with project management experience in system administration (configuring and managing computer networks and systems).

Polling is a method by which a client asks the server for new data frequently. Polling can be done in two ways: Long polling and Short Polling.

  • Long polling is a development pattern that surpasses data from server to client with no delay.
  • Short polling calls at fixed delays and is based AJAX-based.

The following table compares the GET and POST:

GET POST
GET is used to request data from a specified resource. POST is used to send data to a server to create/update a resource.
Can be bookmarked Cannot be bookmarked
Can be cached Not cached
Parameters remain in the browser history Parameters are not saved in the browser history
Data is visible to everyone in the URL Data is not displayed in the URL
Only ASCII characters allowed Binary data is also allowed

If the data within the API is publicly accessible, then it’s not possible to prevent data scraping completely. However, there is an effective solution that will deter most people/bots: rate-limiting (throttling).

Throttling will prevent a specific device from making a defined number of requests within a defined time. Upon exceeding the specified number of requests, 429 Too Many Attempts  HTTP error should be thrown.

Other possible solutions to prevent a bot from scrapping are:

  • Blocking requests based on the user agent string
  • Generating temporary “session” access tokens for visitors at the front end

REST stands for representational state transfer. A RESTful API (also known as REST API) is an architectural style for an application programming interface (API or web API) that uses HTTP requests to obtain and manage information. That data can be used to POST, GET, DELETE, and OUT data types, which refers to reading, deleting, creating, and operations concerning services.

A callback in JavaScript is a function passed as an argument into another function, that is then requested inside the outer function to make some kind of action or routine. JavaScript callback functions can be used synchronously and asynchronously. APIs of the node are written in such a way that they all support callbacks.

Data Attributes are used to store custom data private to the application or page. They allow us to store extra data on the standard, semantic HTML elements. The stored data can be used in JavaScript’s page to create a more engaging user experience.

Data attribute consists of two parts:

  • Must contain at least one character long after the prefix “data-” and should not contain uppercase letters.
  • An attribute can be a string value.
Scroll to Top