Adding a Guide

tl;dr; Each person will contribute one brief technical tutorial by the end of the 2nd module. It can be anything that's relevant to the class and should match your interest and ability. You prepare one tutorial, once in the semester and share it with the class online.

A full list of tutorials can be found in the guides/ folder.


Why a tutorial?

It’s a way to help develop expertise, reflect on what you’ve learned as part of your explorations with the web programming, and to contribute something useful back to the class as a whole.

How it works

Once during the semester, each person will be asked to prepare, publish and present a technical tutorial. The goal of the tutorial should be to introduce a tool, technique, component, library, service etc. that will help other students with their projects. The tutorial should be succinct but complete and provide a step-by-step introduction to a topic relevant to the course.

You’ll publish the tutorial in the course repo

You can choose what tutorial you’d like to prepare or work with the instructor to find a a suitable topic. Tutorials should be proposed before the deadline to a) take your interests and abilities and b) needs and suitability for the course into consideration.

Not every tutorial will require the same level of effort. More advanced students will be expected to produce more complex or involved tutorials, and may be expected to create custom code or solutions to contribute with the tutorial. In other cases, it may be as simple as recording a screencast and writing some clear instructions. Again, this will be negotiated with the instructor.

Grading

10% of your grade is given for a guide. Full details on grading for the guide can be found in the Grading, Feedback and Policies section

Example Tutorials Topics

A good place to start your tutorial from is:

  1. to think about something that was technically challenging for you or others in one of the assignments or creative projects;
  2. to focus on something that you want to work with in this course for your project, that will require some noodling out and that you want to invest some time in.
  3. to find something that you learned as part of the projects last module but wasn’t included in the covered tutorials.

Your tutorial could be about:

  • Working with an advanced gem that hasn’t been introduced in the course (look at possibilites on awesome-ruby)
  • Using helper extensions for Sinatra like static assets;
  • A useful technique e.g. securing/versioning an API; using websockets; sending data over OSC in realtime; scheduling emails with resque; etc.
  • Creatinge bot/chat-UI on other platforms e.g. Facebook M
  • Connecting to a third party service e.g. Wit.ai, MonkeyLearn.com, etc.
  • … and lots more.

Publishing your tutorial

Create your tutorial as a new .md in your forked copy of the course repo. You’ll find a template in your student folder.

Then, issue a pull request for your tutorial when it’s ready.

Writing your Tutorial

Your tutorial can take a few different formats - it could contain a video, have some code samples, include images, and/or a written description.

While the format may vary, the goal is to write a succient, clear and easy-to-follow guide of how to get something working in Sinatra / to build a bot-based or chat-based service.

The tutorial should be reasonably brief (around 1-2 pages), sensibly illustrated with images and video and be written with the class in mind. Basically, how would you introduce this thing quickly to the person sitting next to you?

As part of your tutorial you will probably need to:

  • Take videos of working outcomes
  • Create and include code samples
  • Create sketches or diagrams for technical concepts
  • Clearly list any gems used or dependencies involved.
  • Link to other online tutorials, guides, or articles that provide more detail if someone wants to know more.

Thinks to think about

  • Who created it? Don’t forget to put your name and date at the top of the tutorial.
  • Grab as you go. Macs have a built in screen capture tool (Grab) and Quicktime let’s you record your screen really quickly. Make sure to gather as many images, photo, video and GIF’s as you can and do this as you work through the concepts for yourself. You can decide what you need to use later.
  • Make sure you credit and attribute any media (videos, photos) that you embed. This should include the name of the original creator, the license for the media (creative commons) and a link to the original source or site.
  • Don’t forget your code. Make sure it’s well commented. And show the steps involved by breaking up the code sample For example, if you’re adding a gem to extend functionality add two code samples with your tutorial. One for before. One for after. Then someone can easily see what you’ve added or removed to make it work.