Software Programming Guide: this book explains one topic per page, like a big glossary, easy wiki, quick encyclopedia, or summary notes.
- Get the book: Free EPUB, Free PDF, Gumroad, Zylvie, Kindle, Paperback.
- Edited by Joel Parker Henderson.
- For questions and suggestions email me.
- Functional Programming
- Procedural Programming
- Imperative Programming
- Declarative Programming
- Object-Oriented Programming (OOP)
- Aspect-Oriented Programming (AOP)
- Message-Oriented Programming (MOP)
- Event-Driven Programming (EDP)
- Logic Programming
- Actor Programming
- Level-Oriented Design (LOD)
- Data Flow-Oriented Design (DFD)
- Data Structure-Oriented Design (DSD)
- Object-Oriented Design (OOD)
- Sort algorithms
- Search algorithms
- String search algorithms
- Graph algorithms
- Cryptography algorithms
- Dynamic programming algorithms
- Genetic algorithms
- Consensus algorithms
- Constraint satisfaction algorithms
- Quality of service (qos) algorithms
- Networking algorithms
- Load balancing algorithms
- MapReduce
- Sieve of Eratosthenes
- Edit distance algorithm (a.k.a. Levenshtein distance)
- Error detection algorithms
- Error correction algorithms
- Relational database
- Document database
- Object database
- Graph database
- Vector database
- Ledger database
- Time-series database
- Database sharding
- Database replication
- Replica database
- Distributed database
- Eventually-consistent database
- CAP theorem
- PACELC theorem
- Lamport timestamp
- Vector clock
- Data-at-rest
- Data-in-motion
- Array data structure
- Stack data structure
- Queue data structure
- Hash table data structure (a.k.a. hash map)
- Linked list data structure
- Graph data structure
- Tree data structure
- See: binary heap, AVL tree, binary tree, red-black tree, splay tree
- Tagged union
- Bloom filter
- Kalman filter
- Blockchain
- Bitcoin
- Ethereum
- Smart contract
- Proof-of-work (PoW)
- Proof-of-stake (PoS)
- Practical Byzantine Fault Tolerance (PBFT)
- Constraint satisfaction
- Network protocols
- State machine
- Coordinated disclosure
- Responsible disclosure: see coordinated disclosure
- Compression
- Caching
- Russian-doll caching
- Cryptography
- Encoding
- Encryption
- Homomorphic encryption
- Inheritance
- Composition
- Interface
- Recursion
- Federation
- Memoization
- Serialization
- Message queue
- Tuple space
- Checked exceptions
- Queueing theory
- Software Development Kit (SDK)
- Software Development Kit (SDK) - benefits
- Application Programming Interface (API)
- Application Programming Interface (API) - benefits
- Text-To-Speech (TTS) and Speech-To-Text (STT)
- Universally Unique Identifier (UUID)
- Memory management
- Garbage collection
- Asynchronous processing (asynchronicity)
- Parallel processing (parallelism)
- Concurrent processing (concurrency)
- Monolith architecture
- Microservice architecture
- Service-oriented architecture (SOA)
- Event-Driven Architecture (EDA)
- Representational State Transfer (REST)
- Simple Object Access Protocol (SOAP)
- Remote procedure call (RPC)
- Waterfall software development methodology
- Agile software development methodology
- Rapid Application Development (RAD)
- Extreme Programming (XP)
- Unit testing
- Integration testing
- End-to-end testing
- System testing
- Regression testing
- Acceptance testing
- Usability testing
- Accessibility testing
- Localization testing
- Performance testing
- Benchmark testing
- Security testing
- Fuzz testing
- Penetration testing
- Shift-left testing
- Bug bounty
- Continuous delivery (CD)
- Continuous deployment (CD)
- Continuous integration (CI)
- DORA metrics
- Mean Time To Repair (MTTR)
- Social engineering
- Piggyback attack
- Phishing
- Spear phishing
- Malware
- Ransomware
- SQL injection
- Security by obscurity
- Defense in depth
- Perfect Forward Secrecy (PFS)
- Intrusion Detection System (IDS)
- Security Information and Event Management (SIEM)
- Transport Layer Security (TLS)
- Secure Sockets Layer (SSL)
- Digital certificate
- Certificate Authority (CA)
- Scope
- Statement Of Work (SOW)
- Functional specifications
- Software development life cycle (SDLC)
- Project estimation
- Critical chain project management
- Lean software development methodology
- Agile software development methodology
- Kanban
- Scrum
- Prince2
- Big design up front (BDUF)
- Domain-Driven Design (DDD)
- Behavior-Driven Development (BDD)
- Test-Driven Development (TDD)
- Hypertext Markup Language (HTML)
- Extensible Markup Language (XML)
- Tom's Opinionated Markup Language (TOML)
- YAML Ain't Markup Language (YAML)
- Financial Products Markup Language (FPML)
- Geography Markup Language (GML)
- Strategy Markup Language (StratML)
- Structured Query Language (SQL)
- Graph Query Language (GraphQL)
- SPARQL Protocol and RDF Query Language (SPARQL)
- Domain-Specific Language (DSL)
- Unified Modeling Language (UML)
- Schema.org
- Resource Description Framework (RDF)
- Web Ontology Language (OWL)
- The Semantic Web
- Activity diagram
- Sequence diagram
- Use case diagram
- Object diagram
- Class diagram
- Package diagram
- Component diagram
- Deployment diagram
- State diagram
- Timing diagram
- Entity-relationship diagram (ERD)
- Cause-and-effect diagram
- Fishbone diagram: see cause-and-effect diagram
- Ishikawa diagram: see cause-and-effect diagram
- PlantUML
- Mermaid.js
- Forming, Storming, Norming, Performing (FSNP)
- Icebreaker questions
- Pizza team
- Squad team
- Community of Practice (CoP)
- The Spotify Model
- Ways Of Working (WOW)
- TEAM FOCUS
- Pair programming
- Business information systems
- Line-of-business (LOB) application
- Front-office applications
- Back-office applications
- Program Evaluation and Review Technique (PERT)
- After-Action Report (AAR)
- Blameless retrospective
- Issue tracker
- Cynefin framework
- Five Whys analysis
- Non-functional requirements: see system quality attributes
- Root cause analysis (RCA)
- System Quality Attributes (SQAs)
- Quality of Service (QoS) for networks
- Good Enough For Now (GEFN)
- Technical debt
- Refactoring
- See also: cause and effect diagram
- Descriptive statistics
- Inferential statistics
- Correlation
- Causation
- Probability
- Variance
- Trend analysis
- Anomaly detection
- Quantitative fallacy
- Regression to the mean
- Bayes' theorem
- Chi-square analysis
- Monte Carlo methods
- Statistical analysis techniques
- Machine learning (ML)
- Case-based reasoning (CBR)
- Natural Language Processing (NLP)
- Expert system
- AI for software programming
- AI content generator
- AI image generation
- AI internationalization/localization
- [Hello World
- [Fizz Buzz
- Knapsack problem
- Tower of Hanoi problem
- Dining Philosophers problem
- Traveling Salesman problem
- N-queens problem
- Byzantine Generals problem
- [Longest Common Subsequence problem
- [Edit Distance problem
- Premature optimization is the root of all evil
- There are only two hard things in computer science
- One person's constant is another person's variable
- Brooks' Law
- Conway's Law
- Gresham’s Law
- Hyrum’s Law
- Metcalfe's Law
- Moore's Law
- The Law of Demos (Kapor's Law)
- The Law of Supply and Demand
- The Law of Conservation of Complexity (Tesler's Law)
- The Law of Large Numbers
- The Pareto Principle (The 80/20 Rule)
- The Principle of Least Knowledge (The Law of Demeter)
- Chesterton's fence
- The Tragedy of the Commons
- For more see our Business Lingo Primer
- Architecture astronaut
- Convention over configuration
- Rubber duck debugger
- White hat versus black hat hacker
- For more see our Business Lingo Primer
- How to name functions
- How to organize code
- How to refactor code
- How to ask for help
- How to collaborate
- How to get feedback
- How to give feedback
- Just In Time (JIT)
- Thread
- Virtual machine
- Green thread
- N+1 problem
- Complexify
- Environment variable
- Naming convention
- Dotfile
- pair programming
- DSL