Published on

Fullstack Interview

Authors
  • avatar
    Name
    Loc Truong
    Twitter

Beginner

What is full-stack development?

Full-stack development refers to the practice of building and maintaining both the frontend and backend of a web application or web service. A full-stack developer works across all layers of the application, ensuring seamless functionality from the user interface to the server and database.

Key aspects of a full-stack development include:

  • Frontend Development: involves creating the parts of the application that users interact with directly, such as buttons, forms, and layouts. Tools and technologies often used include HTML, CSS, JavaScript, and frameworks like React, ANgular, or Vue.js. This may also include building Progressive Web APps (PWAs) for enhanced user experiences.
  • Backend Development: Focuses on server-side logic, databases and APIs that power the frontend. COmmon programming languages for backend development include Python, Java, Node.js, PHP.
  • Databases and Storage: Managing data through relational databases (e.g., MySQL, PostgreSQL) or non-relational databases (e.g., MongoDB, Redis).
  • DevOps and Deployment: Setting up hosting environments, CI/CD pipelines, and handling cloud services to deploy and maintain applications.

Full-stack developers are valued for their versatility and and ability to understand how different components of a web application interact, making them crucial for delivering well-rounded, functional products.

Explain the difference between lcient-side and server-side programming

The client-side and server-side refer to two distinct parts of a web application that work together to deliver functionality to users. Understanding their roles is essential for building efficient and responsive applications.

Client-side

  • What it ddoes: this is the part of the application that runs in the user's browser. It handles user interfaces and teractions, allowing users to see and interact with the applictaion.
  • ** Key characteristics:
    • Executes JavaScript code directly in the browser to handle tasks like form validation, animations and dynamic content updates (through DOM - updates)
    • Manages rendering of HTML and CSS for a seamless visual experience.
    • Often communicates with the server via REST (Representational State Transfer) APIs to fetch or send data asynchronously.
  • Examples:
    • Clicking a button that triggers a JavaScript function to show a popup
    • Fetching additional items on a page using fetch() or axios without a full page reload.

Server-side

  • What it does: this part operates on the server and processes requests from the client, performing tasks like database queries, busniness logic and serving responses.
  • Key characteristics:
    • Executes server-side programming languages like Python, Java or Node.js
    • Handles sensitive operations like authentication and data storage securely.
    • Sends data to the client in structured formats (e.g., JSON) via REST APIs for rendering
  • **Examples:
    • Processing a login request by verifying credentials in a database.
    • Returning a list of products in JSON format for the client to display dynamically.

What is the purpose of HTML, CSS and JavaScript in web development?

  • HTML: Defines the structure and content of a webpage.
  • CSS: Styles the webpage (colors, layout, fonts).
  • JavaScript: Adds interactivity and dynamic behavior to the webpage.