Skip to content

Instantly share code, notes, and snippets.

@adamarthurryan
Created November 21, 2015 19:48
Show Gist options
  • Save adamarthurryan/20784727e64097f14903 to your computer and use it in GitHub Desktop.
Save adamarthurryan/20784727e64097f14903 to your computer and use it in GitHub Desktop.
Envato Tuts+ Code: Instruction Standards

Instruction Standards

All Envato Tuts+ courses are expected to meet certain standards for quality and instruction:

In addition, there are some standards that are specific to the Code section. These guidelines were drawn from the best practices of the many talented Tuts+ Code instructors!

Motivation

The course should be structured around one or more meaningful projects. That way each technology or concept being introduced is motivated by a clearly defined problem in the course project. Problem solving rather than technique or technical detail should be at the foreground.

The role of the instructor is not so much to provide a reference for a technology or technique, but to model problem solving as regards that technology.

Language features or technology details are best demonstrated in a cumulative way, in the context of "real-world" problems, rather than abstractly on a scratch-pad. So, at the end of a lesson, the student has created a source file which demonstrates all the topics that were covered.

Transparent Design

Furthering the idea of motivation, some instructors find it helpful to include a lesson in which they "design" the course project - this serves both to rationalize the decisions that are being made and to help the student understand the challenges of the course project. Ideally, for a course with a complex course project, we should have:

  • a short lesson in the first chapter with a high-level description of the course project (features, design and architecture)
  • an introduction (~ 1 minute long) to each chapter (in it's first lesson) that explains the chapter objectives
  • a brief intro to each lesson explaining the next implementation step

Explanation of Code

This is the heart of code course instruction. Our standard should be that every step should be comprehensible both visually and aurally - that we should be able to either watch the instructor or listen to them and entirely understand the sense of the lesson.

All code should be clearly explained, broken down into arguments, and have a clear motivation - similarly any action taken in the IDE, browser or shell. It's not helpful to read code verbatim. Rather, explain each line of code's intention. Think of it as an audible code comment.

Big-Picture Explanations

Big picture explanations of new concepts are crucial for students who may be coming to the subject fresh. Consider diagrams, they are often an indispensable tool for communicating architectural information. Diagrams can also be used to build comprehension, visual interest and variety.

Explicit Setup Instructions

The student should have the information necessary to replicate the instructors development environment, as well as pointers on platform-specific difficulties they may find. Any dependencies should have a specific version specified, so students can still follow along even if future versions of some framework or library introduce breaking changes.

Navigation of Source Files

In complex source trees, an explicit overview of the file hierarchy is needed. If an entity is being referenced across source files, it is useful to navigate to its origin to make an explicit link.

It should always be visually clear what file is open in the editor and where it was found. An IDE or text editor with a file navigation sidebar is preferred for most courses.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment