Profile PictureJoel Parker Henderson

Software Programming Guide

$1+

Software Programming Guide

This book explains one topic per page, like a big glossary, easy wiki, quick encyclopedia, or summary notes. Generated by OpenAI. Edited by Joel Parker Henderson (@joelparkerhenderson).

Contents

Introduction

• What is this book?

• Who is this for?

• Why am I creating this?

• Are there more guides?

Programming paradigms

• 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

Software design approaches

• Level-Oriented Design (LOD)

• Data Flow-Oriented Design (DFD)

• Data Structure-Oriented Design (DSD)

• Object-Oriented Design (OOD)

Algorithms

• Sort algorithms

• Bubble sort algorithm

• Insertion sort algorithm

• Quick sort algorithm

• Merge sort algorithm

• Heap sort algorithm

• Search algorithms

• Linear search algorithm

• Breadth-first search (BFS)

• Depth-first search (DFS)

• Binary heap

• Red-black tree

• Binary search tree

• Balanced tree

• Splay tree

• AVL tree

• String search algorithms

• Rabin-Karp algorithm

• Boyer-Moore algorithm

• Knuth-Morris-Pratt algorithm

• Aho-Corasick algorithm

• Graph algorithms

• Dijkstra's algorithm

• Floyd-Warshall algorithm

• Bellman-Ford algorithm

• Topological sort algorithm

• Strongly connected components (SCC)

• Minimum spanning tree (MST)

• Kruskal's algorithm

• Kosaraju's algorithm

• 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

Data

Database paradigms

• Relational database

• Document database

• Object database

• Graph database

• Vector database

• Ledger database

• Time-series database

Database availability

• 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

Data structures

• Array data structure

• Graph data structure

• Tree data structure

• Tagged union

• Bloom filter

• Kalman filter

Data tactics

• Data schema

• Data warehouse

• Data lake

• Data mesh

• Extract, Transform, Load (ETL)

• Batch processing

Design patterns

• Backpressure

• Circuit breaker

• Dependency injection (DI)

• Inversion of Control (IoC)

Distributed ledger

• Blockchain

• Bitcoin

• Ethereum

• Smart contract

• Proof-of-work (PoW)

• Proof-of-stake (PoS)

• Practical Byzantine Fault Tolerance (PBFT)

Technology tactics

• 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

• 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)

Runtime - TODO

• Memory management

• Garbage collection

• Asynchronous processing (asynchronicity)

• Parallel processing (parallelism)

• Concurrent processing (concurrency)

Software architecture

• 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)

Software development methodologies

• Waterfall software development methodology

• Agile software development methodology

• Rapid Application Development (RAD)

• Extreme Programming (XP)

Software testing

• 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 - TODO

• Penetration testing

• Shift-left testing

• Bug bounty

Version control

• Commit

• Topic branch

• Pull request

• Gitflow

• Trunk-based development

DevOps

• Continuous delivery (CD)

• Continuous deployment (CD)

• Continuous integration (CI)

• DORA metrics

• Mean Time To Repair (MTTR)

Security

Security attacks

• Social engineering

• Piggyback attack

• Phishing

• Spear phishing

• Malware

• Ransomware

• SQL injection

• Security by obscurity

Security mitigations

• 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)

Project management methodologies

• 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

Design Development

• Big design up front (BDUF)

• Domain-Driven Design (DDD)

• Behavior-Driven Development (BDD)

• Test-Driven Development (TDD)

Markup language

• 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)

Query language

• Structured Query Language (SQL)

• Graph Query Language (GraphQL)

• SPARQL Protocol and RDF Query Language (SPARQL)

Modeling language

• Domain-Specific Language (DSL)

• Unified Modeling Language (UML)

Schema.org

• Resource Description Framework (RDF)

• Web Ontology Language (OWL)

• The Semantic Web

Modeling diagrams

• 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

Teams

Teamwork

• 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

Larger Projects

Digital transformation

• Business information systems

• Line-of-business (LOB) application

• Front-office applications

• Back-office applications

Change management

• Business continuity

• Operational resilience

• Standard Operating Procedure (SOP)

• Playbook

• Runbook

Quality control

• 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

Statistical analysis

• 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

Artificial intelligence (AI)

• 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

Lore

Computer science thought problems

• [Hello World - TODO

• [Fizz Buzz - TODO

• Knapsack problem

• Tower of Hanoi problem

• Dining Philosophers problem

• Traveling Salesman problem

• N-queens problem

• Byzantine Generals problem

• [Longest Common Subsequence problem - TODO

• [Edit Distance problem - TODO

Books about software programming

• “The Phoenix Project” by Gene Kim et al.

• “The Mythical Man-Month” by Fred Brooks

Software programming quotations

• 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

Aphorisms

• 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

Idioms

• Architecture astronaut

• Convention over configuration - TODO

• Rubber duck debugger

• White hat versus black hat hacker

• For more see our Business Lingo Primer

Soft skills

• 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

TODO

• Just In Time (JIT) - TODO

• Thread - TODO

• Virtual machine - TODO

• Green thread - TODO

• N+1 problem - TODO

• Complexify - TODO

• Environment variable - TODO

• Naming convention - TODO

• Dotfile - TODO

• pair programming - TODO

• DSL - TODO

Conclusion

• About the editor

• About the AI

• About the ebook

• About related projects


$
Add to cart
Pages
Copy product URL
$1+

Software Programming Guide

Add to cart