🌍 Backend Development · subject

Backend Development Programming Foundations and Server Runtimes Syllabus

The Programming Foundations and Server Runtimes syllabus for Backend Development in full: 6 chapters and 31 topics, every one listed below, plus 51 Programming Foundations and Server Runtimes flashcards with answers.

6Chapters
31Topics
51Flashcards

Programming Foundations and Server Runtimes syllabus: all 6 chapters

Expand any chapter to see its topics and sub-topics.

  1. Internet and Web Fundamentals

    5 topics
    • How the Internet Works
    • HTTP and HTTPS Protocol
    • Client-Server Architecture
    • TLS, SSL and Certificates
    • Browsers and Rendering Basics
  2. Programming Language for the Backend

    6 topics
    • Choosing a Language
    • Variables, Types and Operators
    • Control Flow and Functions
    • Object-Oriented Programming
    • Functional Programming Concepts
    • Error and Exception Handling
  3. Asynchronous Programming and Concurrency

    5 topics
    • Synchronous vs Asynchronous Execution
    • Callbacks, Promises and Async/Await
    • Event Loop and Non-Blocking I/O
    • Threads, Processes and the Thread Pool
    • Concurrency vs Parallelism
  4. Node.js Runtime

    5 topics
    • Node.js Architecture and Event Loop
    • Modules and npm/package.json
    • Core Modules
    • Express.js Framework
    • Environment Variables and Configuration
  5. Data Structures and Algorithms

    5 topics
    • Arrays, Lists, Stacks and Queues
    • Hash Maps and Sets
    • Trees and Graphs
    • Sorting and Searching
    • Big O and Complexity Analysis
  6. Development Tooling

    5 topics
    • Version Control with Git
    • Package Managers and Dependency Management
    • Linters, Formatters and Editors
    • Debuggers and Logging
    • Build Tools and Task Runners

Backend Development Programming Foundations and Server Runtimes flashcards — 51 questions with answers

  1. What are the four steps a browser performs to load a website after you type a URL?

    1) DNS lookup resolves the domain name to an IP address; 2) A TCP connection is established with the server (often with a TLS handshake for HTTPS); 3) The browser sends an HTTP request; 4) The server returns an HTTP response, which the browser renders.

  2. In networking, what is the role of DNS (Domain Name System)?

    DNS acts as the internet's phonebook, translating human-readable domain names (e.g., example.com) into numerical IP addresses (e.g., 93.184.216.34) that computers use to locate servers.

  3. What is a packet, and why is data split into packets when sent over the internet?

    A packet is a small unit of data. Data is broken into packets so each can be routed independently across the network, reassembled at the destination, and re-sent if lost, making transmission efficient and reliable.

  4. Compare TCP and UDP as transport-layer protocols.

    TCP is connection-oriented and reliable, guaranteeing ordered, error-checked delivery via acknowledgements and retransmission. UDP is connectionless and faster but unreliable, with no delivery or ordering guarantees; it is used for streaming, gaming, and DNS.

  5. What does HTTP stand for, and what kind of protocol is it?

    HyperText Transfer Protocol. It is a stateless, application-layer, request-response protocol used for transferring hypermedia (web pages, APIs) between clients and servers.

  6. Why is HTTP described as a 'stateless' protocol?

    Each HTTP request is independent; the server retains no memory of previous requests. State (like login sessions) must be maintained separately using cookies, tokens, or sessions.

  7. List the main HTTP methods and their typical purposes.

    GET (retrieve data), POST (create/submit data), PUT (replace a resource), PATCH (partially update), DELETE (remove), HEAD (headers only), OPTIONS (query supported methods).

  8. What do the HTTP status code classes 2xx, 3xx, 4xx, and 5xx each represent?

    2xx = success (e.g., 200 OK, 201 Created); 3xx = redirection (e.g., 301, 304); 4xx = client error (e.g., 400, 401, 404); 5xx = server error (e.g., 500, 502, 503).

  9. What is the core difference between HTTP and HTTPS?

    HTTPS is HTTP layered over TLS/SSL, encrypting the communication so data is confidential and tamper-resistant. Plain HTTP sends data in cleartext. HTTPS typically uses port 443; HTTP uses port 80.

  10. What is the main difference between the client and the server in client-server architecture?

    The client requests services or resources and typically handles presentation/user interaction; the server listens for requests, processes them (business logic, data access), and returns responses. One server can serve many clients.

  11. What is a stateless vs. stateful server, and why does statelessness aid scalability?

    A stateless server keeps no client session data between requests, so any server instance can handle any request, making horizontal scaling and load balancing easy. A stateful server stores session context, complicating scaling and failover.

  12. What problem do TLS and SSL solve, and what is their relationship?

    They provide encryption, authentication, and data integrity for network communication. SSL is the deprecated predecessor; TLS (Transport Layer Security) is its modern, secure successor, though 'SSL' is still used colloquially.

  13. What are the goals of the TLS handshake?

    To authenticate the server (and optionally the client) via certificates, agree on a cipher suite and TLS version, and securely establish a shared symmetric session key for encrypting the rest of the communication.

  14. What is a digital certificate, and what does a Certificate Authority (CA) do?

    A digital certificate binds a public key to an identity (domain owner) and is digitally signed by a trusted Certificate Authority. The CA vouches for the identity so clients can trust the server's public key without prior contact.

  15. Explain the difference between symmetric and asymmetric encryption in TLS.

    Asymmetric (public/private key) encryption is used during the handshake to securely exchange or establish a shared secret. Symmetric encryption (one shared key) is then used for the bulk data because it is much faster.

  16. What are the four main stages of a browser's rendering pipeline?

    1) Parse HTML into the DOM and CSS into the CSSOM; 2) Combine them into the render tree; 3) Layout (reflow) computes geometry/positions; 4) Paint and composite pixels to the screen.

  17. What is the difference between the DOM and the CSSOM?

    The DOM (Document Object Model) is the tree representation of the page's HTML structure. The CSSOM (CSS Object Model) is the tree of style rules. They are merged into the render tree to determine what is displayed and how.

  18. What factors typically guide choosing a programming language for a project?

    The problem domain and ecosystem/libraries, performance requirements, team expertise, community and tooling support, hiring availability, and the target platform (web, mobile, systems, data science).

  19. Contrast statically typed and dynamically typed languages.

    Statically typed languages (e.g., Java, Go, TypeScript) check types at compile time, catching type errors early. Dynamically typed languages (e.g., Python, JavaScript) check types at runtime, offering flexibility but deferring type-error detection.

  20. What is the difference between a compiled and an interpreted language?

    A compiled language is translated ahead of time into machine code (e.g., C, Rust), running directly on hardware. An interpreted language is executed line-by-line by a runtime/interpreter (e.g., Python), often more portable but slower.

Show the other 31 Programming Foundations and Server Runtimes flashcards
  1. What is the difference between a variable's value being stored by value vs. by reference?

    By value means a copy of the actual data is stored/passed (typical for primitives), so changes don't affect the original. By reference means a pointer to the same object is shared (typical for objects/arrays), so mutations are visible everywhere.

  2. Distinguish primitive types from reference (composite) types.

    Primitives are basic, immutable single values like numbers, booleans, characters, and strings (in many languages). Reference types are composite structures like objects, arrays, and functions, accessed via a reference to their location in memory.

  3. What is the difference between the `==` and `===` operators in JavaScript?

    `==` is loose equality and performs type coercion before comparing (e.g., $0 == \text{''}$ is true). `===` is strict equality and requires both the same type and the same value, with no coercion.

  4. Name the categories of operators every programmer should know.

    Arithmetic ($+, -, \times, /, \%$), comparison/relational ($<, >, ==, \neq$), logical (AND, OR, NOT), assignment ($=, +=$), and bitwise (AND, OR, XOR, shifts).

  5. What is short-circuit evaluation in boolean logic?

    In a logical AND, if the left operand is false the right is not evaluated; in a logical OR, if the left is true the right is skipped. This avoids unnecessary work and enables safe guard/default patterns.

  6. What are the three fundamental control-flow constructs in structured programming?

    Sequence (statements in order), selection/branching (if/else, switch), and iteration/looping (for, while, do-while).

  7. What is the difference between a `while` loop and a `do-while` loop?

    A `while` loop checks its condition before each iteration, so it may run zero times. A `do-while` loop checks the condition after executing the body, so it always runs at least once.

  8. What is the difference between a parameter and an argument in a function?

    A parameter is the named variable in a function's definition (a placeholder). An argument is the actual value passed to the function when it is called.

  9. What are the four pillars of Object-Oriented Programming?

    Encapsulation (bundling data with methods and hiding internal state), Inheritance (deriving new classes from existing ones), Polymorphism (one interface, many implementations), and Abstraction (exposing only essential features).

  10. What is the difference between a class and an object (instance)?

    A class is a blueprint/template defining properties and behaviors. An object is a concrete instance created from that class, holding its own actual data in memory.

  11. In OOP, what is the difference between overloading and overriding?

    Overloading defines multiple methods with the same name but different parameter lists (resolved at compile time). Overriding redefines an inherited method in a subclass with the same signature (resolved at runtime via dynamic dispatch).

  12. What is the difference between composition and inheritance?

    Inheritance models an 'is-a' relationship by extending a parent class. Composition models a 'has-a' relationship by building objects from other objects. Composition is often preferred for flexibility ('favor composition over inheritance').

  13. What is a pure function in functional programming?

    A function that (1) always returns the same output for the same input and (2) has no side effects (no mutation of external state, no I/O). This makes it deterministic and easy to test and reason about.

  14. What is immutability and why is it valued in functional programming?

    Immutability means data cannot be changed after creation; updates produce new values instead. It eliminates whole classes of bugs from shared mutable state, simplifies reasoning, and makes concurrency safer.

  15. What is a higher-order function? Give examples.

    A function that takes one or more functions as arguments and/or returns a function. Common examples are `map`, `filter`, and `reduce`, as well as functions that return closures.

  16. What do map, filter, and reduce each do?

    `map` transforms each element and returns a new collection of the same length; `filter` returns a subset of elements matching a predicate; `reduce` (fold) combines all elements into a single accumulated value.

  17. What is the difference between an error and an exception, and what is exception handling?

    An exception is an anomalous event disrupting normal flow that a program can catch and handle; an 'error' often denotes a serious, usually unrecoverable problem. Exception handling uses try/catch/finally blocks to gracefully manage such events.

  18. What is the purpose of the `finally` block in try/catch/finally?

    The `finally` block always executes after `try`/`catch`, whether or not an exception occurred, so it is used for cleanup such as closing files, releasing locks, or freeing connections.

  19. What is the difference between checked and unchecked exceptions?

    Checked exceptions must be declared or handled at compile time (e.g., Java's IOException). Unchecked exceptions (runtime exceptions) are not enforced by the compiler and typically indicate programming bugs like null dereferences.

  20. What is the difference between synchronous and asynchronous execution?

    Synchronous execution runs tasks one after another, blocking until each completes. Asynchronous execution starts a task and continues without waiting, handling the result later via callbacks, promises, or async/await, improving responsiveness for I/O-bound work.

  21. What is blocking vs. non-blocking code?

    Blocking code halts the thread until an operation (like a disk read) completes. Non-blocking code initiates the operation and returns control immediately, letting the thread do other work while the operation proceeds in the background.

  22. What is a callback, and what is 'callback hell'?

    A callback is a function passed to another function to be executed later, typically when an async operation finishes. Callback hell is deeply nested callbacks (the 'pyramid of doom') that make async code hard to read and maintain.

  23. What is a Promise, and what are its three states?

    A Promise is an object representing the eventual result of an asynchronous operation. Its states are pending (initial), fulfilled (resolved with a value), and rejected (failed with a reason). It settles once and cannot change afterward.

  24. How does async/await relate to Promises?

    async/await is syntactic sugar over Promises. An `async` function returns a Promise, and `await` pauses execution until a Promise settles, letting asynchronous code be written in a sequential, readable style (with errors caught via try/catch).

  25. What is the event loop, and how does it enable non-blocking I/O?

    The event loop is a mechanism that continuously checks a queue of pending callbacks and executes them when the call stack is empty. It lets a single thread handle many concurrent operations by offloading I/O and running callbacks upon completion.

  26. In the JavaScript event loop, what is the difference between the microtask queue and the macrotask (callback) queue?

    Microtasks (e.g., resolved Promise callbacks, queueMicrotask) run first and are fully drained after each task, before rendering. Macrotasks (e.g., setTimeout, I/O callbacks) are processed one per loop iteration. Microtasks have higher priority.

  27. What is the difference between a process and a thread?

    A process is an independent program instance with its own isolated memory space. A thread is a lighter unit of execution within a process that shares the process's memory with sibling threads, making inter-thread communication faster but riskier.

  28. What is a thread pool and why is it used?

    A thread pool is a managed set of pre-created worker threads reused to execute tasks. It avoids the overhead of constantly creating/destroying threads, limits concurrency to a fixed size, and improves performance and resource control.

  29. What is the difference between concurrency and parallelism?

    Concurrency is dealing with many tasks at once by interleaving their progress (structure), possible even on one core. Parallelism is literally executing multiple tasks simultaneously on multiple cores/processors (execution). Concurrency is not necessarily parallel.

  30. Describe Node.js's architecture and its concurrency model.

    Node.js runs JavaScript on the V8 engine with a single-threaded event loop for application code, using the libuv library to provide the event loop and a thread pool for offloading blocking operations (file I/O, DNS, crypto). This enables high-throughput, non-blocking I/O; CPU-bound work can still block the loop.

  31. What is npm, and what is the role of package.json?

    npm (Node Package Manager) is the default registry and CLI for installing and managing JavaScript packages. package.json is the project's manifest, declaring metadata, dependencies and devDependencies (with version ranges), and runnable scripts.

Backend Development Programming Foundations and Server Runtimes FAQ

What is in the Backend Development Programming Foundations and Server Runtimes syllabus?

Backend Development Programming Foundations and Server Runtimes is split into 6 chapters: Internet and Web Fundamentals, Programming Language for the Backend, Asynchronous Programming and Concurrency, Node.js Runtime, Data Structures and Algorithms and Development Tooling. Together they contain 31 topics.

How many chapters are in Backend Development Programming Foundations and Server Runtimes?

6 chapters, containing 31 topics. The largest chapter is Programming Language for the Backend, with 6 topics.

Are there flashcards for Backend Development Programming Foundations and Server Runtimes?

Yes — a 51-card Programming Foundations and Server Runtimes deck, printed in full in the flashcards section of this page and available in the Examius app with spaced repetition. The free plan covers one exam of your choice, including its flashcards; Examius Pro, a one-time purchase, unlocks every other exam and deck.