Sam Morgan is a programmer and teacher. He's passionate about learning and technology. He works as Head of Product at Makers in London.

  1. What’s the ‘simplest thing?’

    The conventional wisdom when doing programming is to start with the ‘simplest thing’. But what is the ‘simplest thing’? How do you know something is ‘simple’? And are there different ‘simple things’ that work better with different approaches? I see four main candidates for the ‘simplest thing’: interactions, rules, components, and chunks.

  2. Novice TDD: Race to Green

    'Red, Green, Refactor': that's a helpful mantra for writing your code test-first. But how long should you spend on each stage, and how can you effectively separate each stage from the other? The answer: Make it Work, then Make it Good.

  3. Learning to Learn I: the Ready Position

    This post is about a learning Ready Position: a state of mind required for the adoption of new practices. A Ready Position is indispensable, especially when learning new behaviours that are either opposed to current behaviour, or refinements of existing behaviours.

  4. How to be a better ally

    This is a post about how to be a better ally in support of oppressed groups. It uses feminism as the main example.

  5. Lessons from the CSS coalface

    CSS can be really hard: it's not naturally object-oriented, and it's built for a bygone era of type-only websites. Here are some tips (from a talk I gave at Makers Academy in London) to help intermediate front-end developers avoid spaghetti-ing their CSS on larger projects.

  6. Self-guided learning II: The Knowledge Dimension

    In the previous article, we looked at what Bloom's Taxonomy was and where it is used. We began to look at ways a solid grounding in the taxonomy can help learners to scaffold their own learning (by knowing, given any specific topic, where they are in the taxonomy, and by providing a route to higher levels of proficiency), and how educators and curriculum developers use the taxonomy to craft learning objectives.

  7. Self-guided learning I: Introducing Bloom

    This is a series of articles aimed at both students and educators. In three parts, we look at how Bloom's Taxonomy (1956, revised 2001) can be applied to everyday learning.

  8. Software design up-front: how much?

    A common mistake that people make when trying to design something completely foolproof was to underestimate the ingenuity of complete fools. (Douglas Adams) When starting the process of building software, how much effort should be expended at the beginning? Your answer to this will determine the responsiveness, flexibility, and resource requirements for the duration of the whole project.

  9. What's a Class Structure?

    In Object-Oriented Design, a Class is an entity that holds data (known as the Class state) and ways of manipulating or communicating that data (known as the Class behaviour). A Class Structure is an arrangement of classes that efficiently models the Domain Model.