Some fragmented programming-related notes, not meant as introduction or tutorial
Data: Numbers in computers ·· Computer dates and times ·· Data structures
Wider abstractions: Programming language typology and glossary · Generics and templating ·· Some abstractions around programming · · Computational complexity theory notes · Synchronous, asynchronous · First-class citizen
Syntaxy abstractions: Constness · Memory aliasing · Binding, assignment, and such · Closures · Context manager · Garbage collection
Sharing stuff: Communicated state and calls · Locking, data versioning, concurrency, and larger-scale computing notes
Language specific: Python notes ·· C and C++ notes · Compiling and linking ·· Lua notes
Teams and products: Programming in teams, working on larger systems, keeping code healthy · Benchmarking, performance testing, load testing, stress testing, etc. · Maintainability
More applied notes: Optimized number crunching · File polling, event notification · Webdev · GUI toolkit notes
Mechanics of duct taping software together: Automation, remote management, configuration management · Build tool notes · Installers
|
People like acronyms
DRY
Don't Repeat Yourself.
Functions are good to avoid repeating code.
OO classes are sometimes good to avoid code repeating code and/or repeating state management.
YAGNI
You Aren't Gonna Need It basically says "don't add functionality until you actually need it"
Can apply to design as well as code.
SOLID
GRASP
On premature optimization