Skip to content


Repository files navigation

Teaching Tech Together

Hundreds of grassroots groups have sprung up around the world to teach programming, web design, robotics, and other skills to free-range learners outside traditional classrooms. These groups exist so that people don't have to learn these things on their own, but ironically, their founders and instructors are often teaching themselves how to teach.

There's a better way. Just as knowing a few basic facts about germs and nutrition can help you stay healthy, knowing a few things about psychology, instructional design, inclusivity, and community organization can help you be a more effective teacher. This book presents evidence-based practices you can use right now, explains why we believe they are true, and points you at other resources that will help you go further. Its four sections cover:

  • how people learn;
  • how to design lessons that work;
  • how to deliver those lessons; and
  • how to grow a community of practice around teaching.

This book is a community resource, and contributions of all kinds are welcome, from errata and minor improvements to entirely new sections and chapters. Parts of it were originally created for the Software Carpentry instructor training program, which has been run over several hundred times over the past six years, and all of it can be freely distributed and re-used under the Creative Commons - Attribution 4.0 license. Please see to download a digital version or purchase a printed copy at cost.

The author with his biggest fan, July 2018

The author with his biggest fan, July 2018
I miss you, Mum


These guidelines are adapted from the Spanish original.

Organization of work

  1. Each chapter is assigned a person in charge of the translation, who is responsible for overseeing work.

  2. There will be at least two reviews of each chapter and a final edition of the entire book as a whole; a table at the end of the file in each translation's sub-directory lists who is responsible for what.

General guidelines

  1. Use a conversational voice rather than a formal or academic voice.

  2. If appropriate, specify what dialect or regional variation of the language is being used. For example, the Spanish translation uses Latin American conventions.

  3. Try to be gender neutral. Unlike English, Spanish has a strongly grammatical gender (masculine and feminine with very few neutrals). That translation adjusts wording to avoid having to assign a gender. Where a gender mark cannot be avoided, it uses feminine-masculine or masculine-feminine splits. For consistency throughout the text and to show that there is no particular hierarchy, it alternates the use of feminine or masculine between chapters, with the use being consistent throughout each chapter.

  4. Try to be idiomatic. For example, since Spanish verbs have the mark of person, gender, and number, the Spanish translation can omit subjects that are present in the English original: because of the context, readers will understand what is being referred to. Similarly, Spanish has more verb tenses than English. When translating, the verbal form that is best to express the meaning of the fragment in Spanish should be prioritized, not the one that seems to be literal from English.

Technical terms and citations

  1. Each translation maintains a list of terms that are translated and another list of terms that are not. The translators agree to that list in Slack and we consult on social networks when there is not agreement.

  2. For bibliographic references, the original title/name is left in English with the words in italics; a translation of the title in Spanish is added in parentheses. When a reference to a Wikipedia entry, a Carpentries lesson, or other online resource occurs, the Spanish version is added to the link if it exists. If one cannot be found, the reference is left in English.


  1. Each language's folder has a sub-folder figures that contains all of the figures for that language. Line drawings should be saved both as SVG (for use on the web) and as PDF (for use in print); we prefer these to bit-mapped images (PNG and JPG) because they rescale better.

  2. Each language's folder also has a sub-folder called drawio that contains the source for line drawings created with (formerly known as Please edit these and then save as SVG/PDF rather than editing the SVG and PDF in figures directly.


This book would not exist without the help of many people; we are also grateful to our Spanish translators and contributors: gracias a todas/todos.