Skip to main content

000 - Software Engineering Foundations

Gemini says "This is comprehensive, logically consistent, and demonstrates a deep understanding of the relationships between different domains of knowledge in software development and management."

000 - Agile/Lean System Development

001 - Agile

  • Agile software development - An umbrella term for approaches to developing software that reflect the values and principles agreed upon by The Agile Alliance
    • Agile Manifesto - A document that proclaims better ways of developing software by valuing individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan
    • Trunk Based Development - A source-control branching model, where developers collaborate on code in a single branch called 'trunk', resist any pressure to create other long-lived development branches by employing documented techniques
    • Software prototyping - The activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed
    • Minimum viable product - A version of a product with just enough features to be usable by early customers who can then provide feedback for future product development
    • Scrum - A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value
    • User story - An informal, natural language description of features of a software system
      • Card, Conversation, Confirmation - A practice where the Card is a token representing the requirement, the Conversation is where details are teased out, and the Confirmation is the acceptance test for the story
    • INVEST of PBI - A mnemonic created by Bill Wake as a reminder of the characteristics of a good quality Product Backlog Item (PBI)
      • Independent: The PBI should be self-contained
      • Negotiable: Draft PBIs are not explicit contracts and should leave space for discussion
      • Valuable: A PBI must deliver value to the stakeholders
      • Estimable: You must always be able to estimate the size of a PBI
      • Small: PBIs should not be so big as to become impossible to plan/task/order within a level of accuracy
      • Testable: The PBI or its related description must provide the necessary information to make test development possible
    • SPACE framework - A framework that provides a way to think about developer productivity in a more holistic way, encompassing Satisfaction and well-being, Performance, Activity, Communication and collaboration, and Efficiency and flow
  • Extreme Programming - A software development methodology which is intended to improve software quality and responsiveness to changing customer requirements
    • Refactoring - A disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior
    • Software rot - The tendency for software to deteriorate in quality, performance, or usefulness over time
    • Technical debt - A concept in software development that reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer
  • Behavior driven development - An agile software development process that encourages collaboration among developers, quality assurance testers, and customer representatives in a software project
    • Specification by example - A collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements
    • Tools
      • Cucumber - A tool that supports Behaviour-Driven Development (BDD) by reading executable specifications written in plain text and validating that the software does what those specifications say
        • Gherkin Syntax - A set of grammar rules that makes plain text structured enough for Cucumber to understand
      • RSpec - A testing tool for the Ruby programming language, created for behavior-driven development (BDD)
      • Behave - A tool for behaviour-driven development (BDD) in Python, using tests written in a natural language style, backed up by Python code

002 - Lean

  • Lean software development - A translation of lean manufacturing principles and practices to the software development domain
    • Continual improvement process - An ongoing effort to improve products, services, or processes
    • OODA loop - A four-step approach to decision-making that focuses on filtering available information, putting it in context and quickly making the most appropriate decision while also understanding that changes can be made as more data becomes available
    • Lean manufacturing - A production method aimed primarily at reducing times within the production system as well as response times from suppliers and to customers
    • Kanban method - A lean method to manage and improve work across human systems
  • Toyota Production System - An integrated socio-technical system, developed by Toyota, that comprises its management philosophy and practices
    • Kaizen: Continuous improvement through small, incremental changes.
    • Just-in-Time (JIT): Producing and delivering parts and products only when needed, minimizing waste and inventory.
    • Kanban: A pull-based system that controls the production and movement of items in a just-in-time production system.
    • Jidoka: Automation with a human touch, where machines detect defects and allow workers to address quality issues.
    • Heijunka: Leveling the production schedule to achieve a balanced, consistent workflow.
    • Genchi Genbutsu: Going to the source to understand the actual situation.
    • Andon: A visual management system that allows workers to signal problems and request assistance.
    • Muri Muda Mura: Identifying and eliminating waste, unevenness, and overburden.
  • Theory of Constraints - A management paradigm that views any manageable system as being limited in achieving more of its goals by a very small number of constraints

003 - DevOps

  • CALMS framework - A conceptual model for approaching DevOps that stands for Culture, Automation, Lean, Measurement, and Sharing
  • Feature Toggles - A powerful technique, allowing teams to modify system behavior without changing code
  • Blue-Green Deployment - A technique that reduces downtime and risk by running two identical production environments called Blue and Green
  • Canary Release - A technique to reduce the risk of introducing a new software version in production by slowly rolling out the change to a small subset of users before rolling it out to the entire infrastructure
  • The Four Keys of DORA - A set of metrics used to measure DevOps performance, consisting of Deployment Frequency, Lead Time for Changes, Change Failure Rate, and Time to Restore Service
  • Site Reliability Engineering - A discipline that incorporates aspects of software engineering and applies them to infrastructure and operations problems

010 - Management and Leadership

010 - Principles & Governance

  • Corporate Principles & Values
    • Amazon's Leadership Principles - The set of core tenets Amazonians use daily to guide their discussions, decisions, and actions
    • GitLab Values - The key principles that form GitLab's identity and culture, guiding how team members work together
  • Community Governance & Codes of Conduct
  • Professional Manifestos
    • Manifesto for Software Craftsmanship - As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft

011 - People & Communication Skills

  • Team building - A collective term for various types of activities used to enhance social relations and define roles within teams, often involving collaborative tasks
  • Storytelling - The social and cultural activity of sharing stories, sometimes with improvisation, theatrics or embellishment
  • Facilitation - The act of designing and running a successful meeting or workshop
  • Active listening - The practice of preparing to listen, observing what verbal and non-verbal messages are being sent, and then providing appropriate feedback for the sake of showing attentiveness to the message being presented

012 - Strategy & Goal Setting

  • Goal setting - The process of developing an action plan designed to motivate and guide a person or group toward a goal
    • SMART goals - A mnemonic acronym, used to guide in the setting of objectives or goals, for example in project management, employee-performance management and personal development
      • Specific: Targeting a particular area for improvement
      • Measurable: Quantifying, or at least suggesting, an indicator of progress
      • Assignable: Defining responsibility clearly
      • Realistic: Outlining attainable results with available resources
      • Time-related: Including a timeline for expected results
    • FAST goals - A framework for goals that are Frequently discussed, Ambitious in scope, Specific in metrics, and Transparent for everyone to see
    • GROW model - A simple method for goal setting and problem solving
    • OKRs - A goal-setting framework used by individuals, teams, and organizations to define measurable goals and track their outcomes
    • KPIs - A type of performance measurement used to evaluate the success of an organization or of a particular activity (such as projects, programs, products and other initiatives) in which it engages
      • Net Promoter Score - A market research metric that is based on a single survey question asking respondents to rate the likelihood that they would recommend a company, product, or a service to a friend or colleague
    • Goodhart's law - An adage often stated as, "When a measure becomes a target, it ceases to be a good measure"
  • Prioritization - The activity that arranges items or activities in order of urgency
    • RICE - A simple scoring system for product prioritization that stands for Reach, Impact, Confidence, and Effort
    • Kano model - A theory for product development and customer satisfaction developed in the 1980s by Noriaki Kano
    • MoSCoW method - A prioritization technique used in management, business analysis, project management, and software development

013 - Project & Work Management

  • Project management - The process of leading the work of a team to achieve all project goals within the given constraints
    • Critical chain project management - A method of planning and managing projects that emphasizes the resources (people, equipment, physical space) required to execute project tasks
    • Work breakdown structure - A deliverable-oriented breakdown of a project into smaller components
    • RACI matrix - A responsibility assignment matrix (RAM)... describes the participation by various roles in completing tasks or deliverables for a project or business process
      • Responsible, Accountable, Consulted, Informed
    • Software development effort estimation - The process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input
      • Three-point estimation - A technique used in project management to estimate the likely duration or cost of an activity
      • Planning poker - A consensus-based, gamified technique for estimating, mostly used for timeboxing in Agile principles
  • Systems development life cycle (SDLC) - A conceptual model used in project management that describes the stages involved in an information system development project
    • ISO/IEC/IEEE 12207: Systems and software engineering — Software life cycle processes
    • ISO/IEC/IEEE 15288: Systems and software engineering — System life cycle processes
  • Related Standards
    • ISO/IEC 15504: Information technology — Process assessment
    • ISO/IEC 20000: Information technology — Service management

014 - Tools & Platforms

  • Issue Tracking Systems
    • JIRA - A software application used for issue tracking and project management that helps teams plan, assign, track, report, and manage work
      • Python Jira - A Pythonic interface to the JIRA REST APIs
      • JiraCLI - An interactive command line tool for Atlassian Jira that will help you avoid Jira UI to some extent
    • GitLab Issue Board - A user interface that displays issues in columns that correspond to their workflow statuses
    • GitLab Service Desk - A feature that enables you to connect with users through email, without requiring them to have a GitLab account
    • Azure Boards - A service that provides a customizable platform for managing work items, allowing teams to collaborate effectively and streamline their workflow
    • GitHub Issues - A tracking tool that helps you manage your work on GitHub
    • Redmine - A free and open source, web-based project management and issue tracking tool
  • Chat Systems
    • Slack - A channel-based messaging platform where people can work together more effectively, connect all their software tools and services, and find the information they need to do their best work
      • Python Slack SDK - A software development kit that helps Python developers build apps that integrate with Slack
      • Slack API in Go - A Go library for the Slack API
    • Mattermost - An open source collaboration platform for developers, offering secure messaging, project management, and workflow orchestration
    • Discord - A free voice, video, and text chat app that's used by tens of millions of people to talk and hang out with their communities and friends
      • discord.js - A powerful Node.js module that allows you to interact with the Discord API very easily
    • Notify - A dead simple Go library for sending notifications to various messaging services

020 - Systems Architecture Design

020 - Core Design Concepts

  • System - A group of interacting or interrelated elements that act according to a set of rules to form a unified whole
    • Systems architecture - The conceptual model that defines the structure, behavior, and more views of a system
    • Conway's law - An adage stating that organizations design systems that mirror their own communication structure
  • Requirements analysis - The process of determining the needs or conditions to meet for a new or altered product or project, taking account of the possibly conflicting requirements of the various stakeholders
    • Requirement - A documented need of what a product or service should be or do
      • Non-functional requirement - A requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors
  • Related Standards
    • ISO/IEC 25010: Systems and software Quality Requirements and Evaluation (SQuaRE)

021 - Modeling Methodologies

  • Domain-driven design - A major software design approach, focusing on modeling software to match a domain according to input from that domain's experts
  • Object-oriented analysis and design - A technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process
    • Use case - A list of actions or event steps typically defining the interactions between a role (known in the Unified Modeling Language as an actor) and a system to achieve a goal
  • Ontology - A representation, formal naming and definition of the categories, properties and relations between the concepts, data and entities that substantiate one, many or all domains of discourse
    • Semantic network - A knowledge base that represents semantic relations between concepts in a network
      • WordNet - A large lexical database of English
  • Database design - The organization of data according to a database model

022 - Design Patterns

  • Architecture Styles and Patterns
    • Three-tier architecture - A client–server architecture in which presentation, application processing, and data management functions are logically separated
    • Microservices architecture - An approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms
    • Resource-oriented architecture - A style of software architecture and programming paradigm for designing and developing software in the form of a network of resources
      • REST - A software architectural style that describes a set of constraints for creating web services
  • Software Design Patterns
    • Software design pattern - A general, reusable solution to a commonly occurring problem within a given context in software design
    • Entity–control–boundary - An architectural pattern used in software design and analysis that helps in structuring the responsibilities of classes in an object-oriented system
    • Command Query Responsibility Segregation - A pattern that separates read and update operations for a data store
    • Fluent interface - A method for designing object-oriented APIs based on method chaining with the goal of making the readability of the source code close to that of ordinary written prose
    • Model-view-controller pattern - A software design pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements
    • Dependency injection - A design pattern in which an object or function receives other objects or functions that it depends on

023 - Principles & Best Practices

  • Design Principles
    • Orthogonality and DRY principle - The principle that every piece of knowledge must have a single, unambiguous, authoritative representation within a system
    • Separation of concerns - A design principle for separating a computer program into distinct sections
    • Design by Contract - An approach for designing software that prescribes formal, precise and verifiable interface specifications for software components
    • Law of Demeter - A design guideline for developing software, particularly object-oriented programs
    • SOLID - The principle of OOD - A mnemonic acronym for five design principles intended to make object-oriented designs more understandable, flexible, and maintainable
      • Single responsibility
      • Open–closed
      • Liskov substitution
      • Interface segregation
      • Dependency inversion
    • The Reactive Manifesto - A coherent approach to systems architecture where applications are responsive, resilient, elastic and message driven
    • Unix Philosophy - A set of cultural norms and philosophical approaches to software development
    • Single source of truth - The practice of structuring information models and associated data schema such that every data element is stored exactly once
    • KISS principle - A design principle which states that most systems work best if they are kept simple rather than made complicated
  • Design Best Practices
    • Resource acquisition is initialization (RAII) - A programming idiom where the life cycle of a resource is bound to the lifetime of an object
    • Rob Pike's 5 Rules of Programming - A set of rules about where to focus optimization efforts, emphasizing measurement and the importance of data structures
    • The Zen of Python - A collection of 19 guiding principles for writing computer programs that influence the design of the Python programming language
    • The twelve-factor app - A methodology for building software-as-a-service apps that are suitable for deployment on modern cloud platforms
      • Codebase: One codebase tracked in revision control, many deploys.
      • Dependencies: Explicitly declare and isolate dependencies.
      • Config: Store config in the environment.
      • Backing services: Treat backing services as attached resources.
      • Build, release, run: Strictly separate build and run stages.
      • Processes: Execute the app as one or more stateless processes.
      • Port binding: Export services via port binding.
      • Concurrency: Scale out via the process model.
      • Disposability: Maximize robustness with fast startup and graceful shutdown.
      • Dev/prod parity: Keep development, staging, and production as similar as possible.
      • Logs: Treat logs as event streams.
      • Admin processes: Run admin/management tasks as one-off processes.

040 - Documentation

040 - Concepts & Methodologies

  • Technical writing - A type of writing where the author is writing about a particular subject that requires direction, instruction, or explanation
  • Divio Documentation System - A framework that proposes that all documentation should be explicitly structured according to its purpose, into four distinct types: tutorials, how-to guides, technical reference and explanation
  • Architectural Decision Records (ADRs) - A document that captures an important architectural decision made along with its context and consequences
    • adr-tools - A command-line tool to help you manage your architectural decision records

041 - Lightweight Markup

  • Markdown - A lightweight markup language for creating formatted text using a plain-text editor
    • CommonMark - A rationalized version of Markdown syntax, with a spec and BSD-licensed reference implementations in C and JavaScript
    • GFM (GitHub Flavored Markdown) - A formal specification, based on the CommonMark Spec, that defines the syntax and semantics of GitHub's dialect of Markdown
    • markdownlint - A Node.js style checker and lint tool for Markdown/CommonMark files
    • Glow - A terminal based markdown reader
    • Grip - A command-line server application that renders local README files before you push them to GitHub
    • markmap - A combination of Markdown and mindmap
    • Marp - The simplest Markdown presentation writer with plain Markdown
    • Guides
      • Markdown Guide - A free and open-source reference guide that explains how to use Markdown
  • DocUtils - An open-source text processing system for processing plaintext documentation into useful formats, such as HTML, LaTeX, man-pages, open-document, or XML
    • reStructuredText - An easy-to-read, what-you-see-is-what-you-get plaintext markup syntax and parser system
  • Asciidoc - A lightweight markup language for writing notes, documentation, articles, books, ebooks, slideshows, web pages, man pages and blogs
    • Asciidoctor - A fast, open source text processor and publishing toolchain for converting AsciiDoc content to HTML5, DocBook 5 (or 4.5) and other formats
  • Org Mode - Your life in plain text

042 - Writing Styles

  • Style Guides
  • Prose Linters
    • vale - A linter for natural language/prose
    • retext - An extensible natural language processor
    • alex - A tool that helps you find gender favoring, polarizing, race related, religion inconsiderate, or other unequal phrasing in text
    • write-good - A naive linter for English prose
    • textlint - The pluggable linting tool for text and markdown

043 - Common Tools

  • Document Site Generators
    • Docusaurus - A static-site generator. It builds a single-page application with fast client-side navigation, leveraging the full power of React to make your site interactive
    • VuePress - A Vue-powered Static Site Generator
    • Hugo - The world's fastest framework for building websites
      • Docsy - A Hugo theme for technical documentation sites, providing easy site navigation, structure, and more
    • Sphinx - A tool that makes it easy to create intelligent and beautiful documentation
    • MkDocs - A fast, simple and downright gorgeous static site generator that's geared towards building project documentation
    • Nanoc - A static-site generator, fit for building anything from a small personal blog to a large corporate website
  • Typesetting Systems
    • Troff/Groff - A typesetting system that reads plain text mixed with formatting commands and produces formatted output
    • LaTeX - A high-quality typesetting system; it includes features designed for the production of technical and scientific documentation
      • TexLive - A cross-platform, free software distribution for the TeX typesetting system
      • PGF/TikZ - A TeX macro package for generating graphics
    • KaTeX - The fastest math typesetting library for the web
      • sphinxcontrib-katex - A Sphinx extension which allows you to use KaTeX to render math in your Sphinx documentation
  • Wiki Systems
    • Wiki software - A collaborative software that runs a wiki, which allows users to create and collaboratively edit pages or entries via a web browser
    • MediaWiki - A free and open-source wiki software
    • Ibis - A federated encyclopedia which uses the ActivityPub protocol, just like Mastodon or Lemmy
  • Validation & Maintenance
    • lychee - A fast, async link checker written in Rust
  • Converters
    • Pandoc - A universal document converter
      • Eisvogel - A pandoc LaTeX template to convert markdown files to PDF or LaTeX
  • Content Management Tools
    • Content management system - A computer software used to manage the creation and modification of digital content
    • Nextcloud - The industry-leading, fully open-source, on-premise content collaboration platform
    • WordPress - A free and open-source content management system written in hypertext preprocessor language and paired with a MySQL or MariaDB database with supported HTTPS

044 - Architecture Description

  • Models and Languages
    • ISO/IEC/IEEE 42010: Systems and software engineering — Architecture description
    • Flowchart - A type of diagram that represents a workflow or process
    • 4+1 architectural view model - A view model used for "describing the architecture of software-intensive systems, based on the use of multiple, concurrent views"
    • The C4 model - An easy to learn, developer friendly approach to software architecture diagramming
    • UML - The graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system
  • Diagramming Tools
    • draw.io - A technology stack for building diagramming applications, and the world's most widely used browser-based end-user diagramming software
  • Diagramming as Code
    • D2: Declarative Diagramming - A modern diagram scripting language that turns text to diagrams
    • Diagrams - A Python package for drawing cloud system architectures in Python code
    • PlantUML - A tool that allows you to create diagrams from a simple textual description
    • Mermaid - A Javascript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically
    • Kroki - A free and open source service that converts plain text diagrams to images
    • Graphviz - An open source graph visualization software
      • DOT language - A plain text graph description language
      • haphviz - A Haskell library for representing, manipulating, and pretty-printing graphs in the DOT format
    • ditaa - A small command-line utility that can convert diagrams drawn using ascii art into proper bitmap graphics

050 - OSS Ecosystem and Open Data

050 - Open Source Licenses

  • Opensource license - A type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions
  • MIT - A permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s
  • BSD - A family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software
  • Apache - A permissive free software license written by the Apache Software Foundation (ASF)
  • GPL - A series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software
  • LGPL - A free-software license published by the Free Software Foundation (FSF)

051 - OSS Repositories or Registries

  • Source Repositories
    • GitHub - The AI-powered developer platform to build, scale, and deliver secure software
    • GitLab.com - The DevSecOps Platform that empowers organizations to maximize the overall return on software development
  • Package Registries
    • CTAN - The Comprehensive TEX Archive Network
    • CPAN - The Comprehensive Perl Archive Network
    • CRAN - The Comprehensive R Archive Network
    • PyPI - A repository of software for the Python programming language
    • RubyGems.org - The Ruby community’s gem hosting service
    • npm Registry - The world's largest software registry
    • JSR - The open-source package registry for modern JavaScript and TypeScript
    • pkg.go.dev - Your source for information about Go packages and modules
    • crates.io - The Rust community’s crate registry
    • LuaRocks - The package manager for Lua modules
    • Hackage - The Haskell community's central package archive of open source software
      • Stackage - A curated set of packages from Hackage
    • NuGet Gallery - The package manager for .NET
    • Maven Central - The World's Largest and Oldest Component Repository
    • ConanCenter - The central repository where you can find all the open source packages created by the community
    • Anaconda Hub - The Hub for Data Science and AI Collaboration
  • Container Related
    • Docker Hub - A service provided by Docker for finding and sharing container images
    • Artifact Hub - A web-based application that enables finding, installing, and publishing Cloud Native packages
  • Community Curations
    • Awesome Go - A curated list of awesome Go frameworks, libraries, and software. Inspired by awesome-python
    • Awesome Ruby - A curated list of awesome Ruby frameworks, libraries and software
    • Awesome Python - A curated list of awesome Python frameworks, libraries, software and resources
  • OSS Foundations
    • Free Software Foundation - A nonprofit with a worldwide mission to promote computer user freedom
      • Philosophy of the GNU Project - The idea that everyone shall have the granted right to use a program, to copy it, and to change it to make it fit his or her needs
    • Apache Software Foundation - A nonprofit corporation to support Apache software projects, including the Apache HTTP Server
    • Cloud Native Computing Foundation - An open source software foundation dedicated to making cloud native computing universal and sustainable
    • Linux Foundation - A non-profit organization that supports, protects, and standardizes Linux by providing a neutral, trusted hub for developers to code, manage, and scale open technology projects
    • OpenJS Foundation - The neutral home for more than 40 open source projects, including Appium, Dojo, jQuery, Node.js, and webpack
    • Rust Foundation - An independent non-profit organization dedicated to stewarding and growing the Rust programming language and ecosystem
  • Open Standards Organizations
    • World Wide Web Consortium - An international community that develops open standards to ensure the long-term growth of the Web
    • WHATWG - A community of people interested in evolving HTML and related technologies
    • The Open Group - A global consortium that enables the achievement of business objectives through technology standards
  • Advocacy and Stewardship Organizations
    • Creative Commons - A nonprofit organization that helps overcome legal obstacles to the sharing of knowledge and creativity to address the world’s pressing challenges
    • Open Source Initiative - A non-profit organization dedicated to promoting and protecting open source software and communities

053 - Open Data

  • Open Data Registries
    • Hugging Face Hub - A platform with over 900k models, 200k datasets, and 300k demos in which people can easily collaborate in their ML workflows
    • Data.gov - The home of the U.S. Government’s open data
    • Kaggle - The world's largest data science community with powerful tools and resources to help you achieve your data science goals
    • Registry of Open Data on AWS - A service that makes it easy for people to find datasets that are publicly available through AWS services
    • OpenML - An open, collaborative, frictionless, and automated machine learning environment
    • OpenStreetMap - A map of the world, created by people like you and free to use under an open license
  • Data Search Engines
    • Google Dataset search - A search engine that enables users to find datasets stored across thousands of repositories on the Web

060 - Psychology and Sociology

061 - Personal Performance

  • Mental Health
    • Mindfullness - The basic human ability to be fully present, aware of where we are and what we're doing, and not overly reactive or overwhelmed by what's going on around us
      • Zen - A school of Mahayana Buddhism that originated in China during the Tang dynasty
    • Flow - The mental state in which a person performing some activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity
    • Defence mechanism - Unconscious psychological processes that protect the self from anxiety-producing thoughts and feelings related to internal conflicts and external stressors
    • Psychological resilience - The ability to cope mentally and emotionally with a crisis, or to return to pre-crisis status quickly
    • Occupational burnout - A work-related phenomenon resulting from chronic workplace stress that has not been successfully managed
  • Cognitive Performance / Decision Making
    • Maslow's Hierarchy of Needs - A conceptualisation of the needs (or goals) that motivate human behaviour
    • Cognitive bias - A systematic pattern of deviation from norm or rationality in judgment
    • Default mode network - A large-scale brain network; known for being active when a person is not focused on the outside world and the brain is at wakeful rest
    • Situation awareness - The understanding of an environment, its elements, and how it changes with respect to time or other factors
      • 1: Perception of the elements in the environment.
      • 2: Comprehension or understanding of the situation.
      • 3: Projection of future status.
  • Related Philosophies
    • Three Virtues - The qualities of a great programmer: Laziness, Impatience, and Hubris
  • Related Books

062 - Social Performance

  • Social Psychology
    • Psychological safety - The belief that one will not be punished or humiliated for speaking up with ideas, questions, concerns, or mistakes
    • Trust - The belief that another person will do what is expected
    • Collective intelligence - The shared or group intelligence that emerges from the collaboration, collective efforts, and competition of many individuals and appears in consensus decision making
    • Groupthink - A psychological phenomenon that occurs within a group of people in which the desire for harmony or conformity in the group results in an irrational or dysfunctional decision-making outcome
    • Bystander effect - A social psychological theory that states that individuals are less likely to offer help to a victim when there are other people present
    • Dunbar's number - A suggested cognitive limit to the number of people with whom one can maintain stable social relationships
  • Illustrative Concepts
    • Broken windows theory - A criminological theory that states that visible signs of crime, anti-social behavior, and civil disorder create an urban environment that encourages further crime and disorder, including serious crimes
    • Stone soup story - A European folk story in which hungry strangers convince the people of a town to each share a small amount of their food in order to make a meal
    • Boiling frog apologue - An apologue describing a frog being slowly boiled alive

070 - Logic

070 - Concepts

  • Logic - The study of correct reasoning
  • Informal Logic - A broad term for any of the various methods of analyzing and evaluating arguments used in everyday life
    • Logical reasoning - A mental activity that aims to arrive at a conclusion in a rigorous way
      • Deductive, Inductive, Abductive and Analogical
    • Fallacy - The use of invalid or otherwise faulty reasoning in the construction of an argument that may appear to be well-reasoned if unnoticed
    • Rhetoric - The art of persuasion

071 - Formal Logic

  • Formal system - An abstract structure and formalization of an axiomatic system used for deducing, using rules of inference, theorems from axioms by a set of inference rules
    • Propositional calculus - A branch of logic that deals with propositions (which can be true or false) and relations between propositions, including the construction of arguments based on them
      • conjunction, disjunction, implication, biconditional and negation
      • Tautology - A formula that is true regardless of the interpretation of its component terms, with only the logical constants having a fixed meaning
    • First order logic - A collection of formal systems used in mathematics, philosophy, linguistics, and computer science
      • universal quantification and existential quantification
    • Formal language - A set of words, i.e. finite strings of letters, symbols, or tokens
      • Well-formed formula - A finite sequence of symbols from a given alphabet that is part of a formal language
  • Set Theory - The branch of mathematical logic that studies sets, which can be informally described as collections of objects
    • Set - A collection of different things; these things are called elements or members of the set and are typically mathematical objects of any kind
    • Function (a.k.a. Map) - A binary relation between two sets that associates every element of the first set to exactly one element of the second set
    • Operation - A function from a set to itself
      • Idempotence - The property of certain operations in which they can be applied multiple times without changing the result beyond the initial application
  • Proof Theory - A major branch of mathematical logic that represents proofs as formal mathematical objects, facilitating their analysis by mathematical techniques
  • Related Fields
    • Constraint satisfaction problem - Mathematical questions defined as a set of objects whose state must satisfy a number of constraints or limitations
    • Satisfiability modulo theories - The problem of determining whether a mathematical formula is satisfiable
    • Theory of computation - The branch that deals with what problems can be solved on a model of computation, using an algorithm, how efficiently they can be solved or to what degree
  • Related Resources