Programming Fundamentals
Core concepts every software engineer must master — from variables and types to memory models and error handling.
Why This Section Matters
Programming fundamentals are the building blocks of all software engineering. Whether you’re writing a simple script or designing a distributed system, these concepts underpin every line of code you write. In interviews, strong fundamentals signal that you truly understand how computers work — not just how to copy-paste solutions.
Chapter Outline
| # | Chapter | Key Topics |
|---|---|---|
| 1 | Variables and Types | Variables, constants, literals, primitive vs reference types, value vs reference semantics, stack vs heap, memory layout, mutability |
| 2 | Scope and Lifetime | Block/function/module/global scope, lifetime, storage duration, closures, variable capture |
| 3 | Functions | Functions, procedures, methods, closures, callbacks, HOFs, recursion, tail recursion, lambdas, generators, iterators |
| 4 | Error Handling | Exceptions, error codes, Result/Option, try-catch-finally, checked vs unchecked, error propagation, assertions |
| 5 | Type Systems | Static vs dynamic, strong vs weak, duck typing, structural vs nominal, generics, type inference, coercion |
| 6 | Memory Model | Stack vs heap, pointers, references, smart pointers, GC, manual memory management, leaks, dangling pointers |
| 7 | I/O and Serialization | File handling, streams, buffers, Unicode/UTF-8, JSON/XML, CLI args, env vars |
| 8 | Modules and Packages | Namespaces, modules, packages, imports/exports, dependency management, semver |
| 9 | Interview Questions | 50+ curated questions across beginner, intermediate, and advanced levels |
How to Use This Section
- New to programming? Start from Chapter 1 and work sequentially.
- Brushing up for interviews? Jump to Interview Questions first, then deep-dive into weak areas.
- Need a quick reference? Each chapter includes comparison tables and cheat sheets.
Related Sections
- Data Structures & Algorithms — algorithmic thinking
- Operating Systems — how the OS manages memory, processes, I/O
- Concurrency — parallelism, threading, async
- Languages — language-specific deep dives