Skip to content

Latest commit

 

History

History
240 lines (239 loc) · 5.83 KB

Programming.md

File metadata and controls

240 lines (239 loc) · 5.83 KB

Programming fundamental concepts

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