Today I explored my archive and discovered excellent resources on documentation systems, educational content, and structured learning approaches that every developer should know about.
The Four-Part Documentation System
Divio’s Documentation Framework
Divio’s Documentation System presents a revolutionary approach to organizing technical documentation into four distinct types:
- Tutorials - Learning-oriented, hands-on lessons
- How-to Guides - Problem-oriented, step-by-step solutions
- Reference - Information-oriented, systematic descriptions
- Explanation - Understanding-oriented, theoretical knowledge
This framework was beautifully explained in the video What Nobody Tells You about Documentation - one of the greatest presentations on documentation structure I’ve encountered.
Why This Framework Works
Each documentation type serves a different user need:
Tutorials guide newcomers through their first successful experience with your product. How-to guides solve specific real-world problems for experienced users. Reference materials provide systematic, complete information. Explanations clarify concepts and design decisions.
- Tutorial: “Build your first Django app”
- How-to: “How to deploy Django with Docker”
- Reference: “Django settings configuration”
- Explanation: “Why Django uses MVT architecture”
Google Season of Docs
Google Season of Docs is a program designed to improve open source documentation by connecting technical writers with open source communities. It’s similar to Google Summer of Code but focuses specifically on documentation projects.
Advanced Sphinx Documentation
Sphinx Tabs Extension
sphinx-tabs
enables tabbed content in Sphinx documentation:
|
|
This creates clean, organized documentation where users can switch between different implementations or languages.
Modern Documentation Themes
MkDocs Material provides a beautiful Material Design theme for MkDocs documentation:
- Responsive Design: Works perfectly on mobile and desktop
- Search Integration: Fast client-side search
- Dark Mode: Automatic theme switching
- Navigation: Intuitive sidebar and navigation
- Code Highlighting: Beautiful syntax highlighting
Computer Science Educational Resources
Comprehensive CS Curriculum
OSSU Computer Science Curriculum provides a complete Computer Science education using free online courses:
The OSSU curriculum is equivalent to a complete CS degree, covering:
- Programming fundamentals
- Math for CS (calculus, statistics, discrete math)
- Systems programming
- Theory (algorithms, data structures)
- Applications (databases, graphics, AI)
- Unix, networking, and security
Specialized Learning Platforms
Missing Semester of Your CS Education - MIT course covering practical computing skills often overlooked in traditional CS programs:
- Shell scripting and command-line tools
- Version control with Git
- Text editors (Vim)
- Data wrangling
- Virtual machines and containers
- Security and cryptography
CS 61B Data Structures, Spring 2019 - Berkeley’s excellent data structures course with comprehensive materials and assignments.
Mathematics for Programming
Foundations of Applied Mathematics provides extensive Python and data science resources with mathematical foundations:
- Linear Algebra: NumPy-based implementations
- Optimization: Scipy optimization algorithms
- Data Science: Statistics and machine learning
- Numerical Methods: Computational mathematics
Programming Language Resources
Rust Learning Materials
Jon Gjengset’s YouTube Channel features intermediate Rust content:
- Crust of Rust series
- Live coding sessions
- Advanced Rust concepts explanation
- Real-world Rust applications
Jon Gjengset’s Blog includes excellent articles on distributed systems, including MIT 6.824 and RAFT consensus algorithm analysis.
Little Book of Rust Macros - Comprehensive guide to Rust’s macro system:
|
|
Ruby Object-Oriented Design
Practical Object Oriented Design in Ruby - Sandi Metz is considered the definitive guide to OOP principles in Ruby. Metz explains complex concepts like:
- Single Responsibility Principle
- Dependency injection
- Interface design
- Testing strategies
Functional Programming
Common Lisp: A Gentle Introduction by David S. Touretzky provides an excellent introduction to functional programming concepts:
|
|
Cryptography and Security
Learning Cryptography
Real World Cryptography - Modern approach to understanding cryptographic principles and implementations.
Understanding SHA Algorithms provides deep technical insight into SHA hash functions.
Cryptographic Demonstrations
SHA256 Animation - Visual representation of how SHA-256 hashing works, step by step.
Malicious SHA1 demonstrates practical collision attacks against SHA-1, showing why it’s no longer considered secure.
Project-Based Learning
Learning Through Building
Project-Based Learning Repository curates tutorials organized by programming language where you build real applications:
- Web Development: Build a blog, e-commerce site, or social network
- Game Development: Create games in various languages
- Mobile Apps: iOS and Android development projects
- Data Science: Analysis projects with real datasets
- DevOps: Infrastructure and deployment projects
Learn AI from Scratch
Learn AI from Scratch takes a bottom-up approach to understanding artificial intelligence:
- Mathematical foundations
- Linear algebra and calculus
- Statistics and probability
- Machine learning algorithms
- Neural networks
- Deep learning
Specialized Technical Content
Advanced Screencast Resources
Semicolon&Sons Intermediate Screencasts provides high-quality technical screencasts covering advanced programming topics.
Data Structures Research
Succinct/Compact Data Structures for Python - implementations of space-efficient data structures:
|
|
These structures are crucial for big data applications where memory efficiency is paramount.
Key Learning Insights
Documentation Best Practices
- Structure Matters: Use the four-type framework for comprehensive documentation
- User-Centric: Different users need different types of information
- Visual Enhancement: Tools like Sphinx tabs improve user experience
- Modern Themes: Good visual design increases documentation adoption
Educational Strategy
- Systematic Learning: Follow structured curricula like OSSU
- Practical Application: Project-based learning reinforces concepts
- Multiple Perspectives: Learn from various sources and authors
- Depth and Breadth: Balance specialized knowledge with general CS education
Technical Growth
- Fundamentals First: Strong mathematical and theoretical foundations
- Language Diversity: Exposure to different programming paradigms
- Security Awareness: Understanding cryptographic principles
- Modern Tools: Stay current with documentation and development tools
This exploration reinforces that great technical education requires both systematic study and hands-on practice, supported by excellent documentation and learning resources.
These discoveries from my 2020 learning archive demonstrate the timeless value of well-structured educational content and documentation systems that serve learners at every level.