- Concepts
- Model
- Modeling
- Subject domain
- Algorithm
- Syntax
- Semantics
- Abstraction
- Paradigm
- Programm
- Programming paradigm
- Programming language
- Contract
- Module
- Library
- Package
- Component
- Framework
- Platform
- Source code
- Object code
- Machine code
- Microcode
- Software engineering
- Decomposition
- Control flow
- Data flow
- Code reuse
- Defensive programming
- Don't repeat yourself (DRY)
- KISS principle
- Syntax and concepts
- Value
- Identifier
- Variable
- Constant
- Scalar
- Literal
- Expression
- Heap
- Function
- Procedure
- Method
- Class
- Prototype
- Event
- Type
- Flag
- Lexical scope
- Code block
- Conditions
- Loops
- Assignment
- Regular expression
- Interface
- Namespaces
- Call stack
- Naming conventions
- Coding conventions
- Camel case
- Snake case
- Kebab case
- Trailing commas
- Return early
- Fail-fast
- Types
- Primitive types
- Reference types
- Type systems
- Strong typing
- Weak typing
- Duck typing
- Static typing
- Dynamic typing
- Nominal typing
- Structural typing
- Explicit typing
- Type inference
- Covariance
- Contravariance
- Functions
- Signature
- Argument
- Parameter
- Pure function
- Lambda expression
- Side effects
- Closure
- Partial application
- Currying
- Higher order
- Recursion
- Tail call optimisation
- Callback
- Listener
- Composition
- Pipe
- Memoize
- Wrapper
- Functor
- Monad
- Monoid
- Generator
- Coroutine
- Data structures
- Array
- Structure
- Record
- Enum
- Instance
- Object
- Collection
- Set
- Hash table
- Linked list
- Doubly list
- Unrolled list
- Circular list
- Queue
- Stack
- Deque
- Tree
- Graph
- Iterator
- Mutable state
- Immutable state
- Serialization
- String parsing
- JSON
- JSON5
- YAML
- Networking
- DNS
- CDN
- CORS
- IPv4
- IPv6
- NAT
- URL
- URN
- URI
- Process and tools
- Compiler
- Just-in-time compilation
- Ahead-of-time compilation
- Transpiler
- Linter
- Polyfill
- Interpreter
- Linker
- Dynamic linking
- Static linking
- Runtime
- Virtual machine
- Register-based VM
- Stack-based VM
- Containerization
- Debugger
- Tracing
- Garbage collection
- Refactoring
- Code review
- Exception
- Unittesting
- git
- Github
- Docker
- Kubernetes
- GCC
- LLVM
- Antipatterns
- Magic numbers
- Hard code
- Soft code
- Cryptic code
- Improbability factor
- Accidental complexity
- Action at a distance
- Spaghetti
- Silver bullet
- Not invented here
- Dead code
- Unreachable code
- Duplicate code
- Premature optimization
- Micro-optimization
- Nested loops
- Long method/function/procedure
- Long inheritance
- Large class/file
- Too many parameters
- Pass-through parameters
- Accumulate and fire
- Use switch/case
- Temporary field
- Handle object as instances and hashes at the same time
- Use fields instead of arguments
- Data clump
- Feature envy
- Monkey patch
- Yo-yo problem
- Runtimes and virtual machines
- Bytecode
- V8
- VJM
- CLR
- Mono
- Operating systems
- Interrupts
- Drivers
- Kernel
- Ring
- Virtual memory
- File system
- Linux
- Unix
- BSD
- MacOS
- Windows
- Real-time OS
- Embedded OS
- Standards
- ASCII
- Escape sequence
- RFC
- IETF
- IANA
- IEEE
- Base64
- ECMA
- ICANN
- ISO
- MIME
- OWASP
- UTF-8
- W3C
- ODMG