Overview

This section is a comprehensive journey through the art and science of software development, exploring the multifaceted world of programming beyond mere code writing.

Key Focus Areas

1. Programming Languages

  • Diverse language ecosystems
  • Comparative language analysis
  • Language-specific paradigms and best practices

2. Development Patterns

3. Software Architecture

  • System design principles
  • Scalability and performance considerations
  • Architectural decision-making frameworks

4. Version Control and Release Management

  • Git workflows
  • Collaborative development strategies
  • Code management and history tracking
  • Semantic Versioning: MAJOR.MINOR.PATCH versioning conventions
  • Long Term Support (LTS): extended support release lifecycle for stable, production-ready versions
  • Changelog: curated record of notable changes per version, following the Keep a Changelog convention

5. Theoretical Foundations

Guiding Principles

  • Continuous learning
  • Code as a form of communication
  • Ethical and sustainable software development
  • Embracing complexity while seeking simplicity

Learning Approach

  • Practical, hands-on exploration
  • Theoretical depth with real-world applications
  • Interdisciplinary perspectives on software craftsmanship

This is a living document, evolving with the dynamic landscape of technology.

12 items under this folder.

Documentation as Code

A methodology that treats technical documentation with the same rigor, tools, and workflows as software development.

Long Term Support (LTS)

A software release model guaranteeing extended support for specific versions, focused on security patches and bug fixes without adding new features.

Version Control

Tools and practices for tracking changes in source code, collaborating on codebases, and managing software history

languages

Specification Driven Development

SDD addresses a critical issue in modern AI-assisted development: 'vibe coding' - where vague prompts to AI coding agents lead to code that appears

Programming Paradigms

Different fundamental approaches to organizing and structuring computer programs, each with distinct philosophies, principles, and patterns for solving computational problems.

Development Patterns

Exploring programming paradigms, design patterns, and software construction techniques

Software Architecture

Exploring architectural principles, design patterns, and modeling techniques

Markdown - The Lightweight Markup Language

A simple, readable syntax for creating formatted text that can be easily converted to HTML and other formats.

Drag and Drop

An interaction pattern for moving elements by dragging them to new positions, implemented via HTML5 API or JavaScript libraries

Semantic Versioning

Semantic Versioning, often abbreviated as SemVer, is a versioning scheme for software that aims to convey meaning about the underlying changes in a

Theory Building and Systems Thinking Applied to Software Engineering

Unpacking the connection between theory building and systems thinking in software engineering, highlighting their shared goals and differences.