Pre – Course Work



Hello! Congratulations on enrolling at CodeClan!

The purpose of the pre-course work is to get you to a point where participating on the first days of the course in person is less confusing.

During the pre-course work you will use some of the tools and vocabulary we're going to spend the whole course working with, and we're going to start improving your typing so that you can type speedily for four months.

These materials are not the resources you will learn from: it is exposure, not instruction. It is also not necessarily meant to be studied in any particular order, however it is essential that it is covered before you start the course.

We've included a checklist with a connected list of resources, so that you can keep track of what you have covered (and how much you're learning).

We'll check-in with you a few times during the pre-course work period to help with any queries or problems.  We also require your account usernames so that we can review and support your progress online. If you have a big blocker stopping you from making progress, don't hesitate to get in touch.

You'll need access to a computer three weeks before the course starts so that you can begin your pre-course work. For the on-campus part of the course, you will need a Macbook and you can bring your own or rent one from CodeClan. Email the team about rental options.


During the course, CodeClan's primary tool for communication is Slack. We use it to communicate in groups and directly; and even if we're not online, Slack will email us when we're messaged or mentioned.

We will send you an email inviting you to ‘Join Us’ on Slack. Click the link when you receive it to accept.

You may be working alone on the pre-course work, but you don't need to be lonely. If you have any questions about the material you're going through, please don't hesitate to ask on Slack.

Online Accounts

We'll be using a variety of online services. Please ensure you have registered yourself with the providers in the checklist, and sent us your user name for each, so we can communicate with you on the services. You should do this in the first week of the pre-course work.

Pre-Course Work Contents

The goal of this pre-course study is to be able to do the following:

  • Be comfortable navigating your development environment
  • Computer Familiarity
  • Familiarity with some components of coding in Ruby
  • Understand the basics of source code version control and why it is used
  • Have a basic understanding of HTML and CSS

The first thing is to make sure you're comfortable using a Unix-like computer. Your computer is going to be the tool of your trade, so it's essential that getting to be comfortable using it like a developer. Challenge yourself to learn at least a keyboard shortcut each day.

Intro to your computer and the internet

Once you've got your hands on your Mac, get using it. If you've never used a Mac before, it can be an interesting journey to discover all of its functionality.

Typing Speed

If you want to get things done on your computer, the simple matter is you get there faster the faster you can type. You need to have good keyboard skills, be able to use programming shortcuts and type at least 30 words per minute. If you're already a good typist, you might find that "typing code" suddenly slows you down. This sounds like a lot, however practice makes perfect. Please ensure you send us a typing speed score each week, for both the 'normal' typing exercises and the 'code' typing exercises.

What's the Web?

The CodeClan curriculum is geared primarily around making software for the web. Much of the web is built around HTML files for the content, and CSS for the presentation. The focus of our course is on the craft of programming. The languages you will learn are commonly used to create web apps.

Having familiarity with HTML, CSS and how the Internet and the World Wide Web works, will make constructing software for the web easier.


You're hopefully pretty handy already at using your computer's GUI, but programmers in the movies are often shown with black terminal windows with streams of incomprehensible text running across it. As programmers, we do prefer to use command-line access for lots of functionality - it can be a lot quicker, and it can be very powerful.

Once you have been issued with your Mac, spend time using the terminal (especially if you've never really done it before).


There are many programming languages. We are going to introduce you to the world of programming using a language called Ruby.

Ruby is one of the best programming languages for beginners.  Spend at least one week of the three pre-course work weeks focused on Ruby.  In Ruby (like most programming languages), the order you put code and symbols in becomes very important.  This is why we want you to spend a fairly large chunk of time during the pre-course work weeks learning about it. It will give you a better idea of what programming is about.

Learn as much of the terminology as you can before you start the course, as class is very immersive and it will help you in the first few weeks.  We will be starting from the beginning, but knowing as much as possible before you start will help.

Source Code Control

All the text files you create as a programmer are the source code of your applications. We use tools and utilities to help us manage these files; to give us a safety net of backups, to make sharing with colleagues easier; and to allow us to speed up our development.

Of the many options we have, we're going to use a program called Git. Your Mac will have it installed.


We're not going to spend time teaching the basics of HTML and CSS during our 16 weeks. The basic principles are yours to study during the pre-course work.  The purpose of having HTML and CSS in the pre-course work is to ensure everyone coming on the course has a basic understanding of these before the course even begins.

Keeping warm

If you’ve finished all the pre-course work long before the course starts, including all the optional parts, let us point you at the internet, and give you a few words of suggestion.

Whatever knowledge you've gained from the pre-course work, try to keep hold of it. However long until Day 1 of the course, if you let all the things you know fall out of your head, you might as well have not learnt them. So keep yourself on the boil. There's lots of other tutorial sites out there like Treehouse, and some offer free trials, and other incentives.

Optional/Additional online courses:

* Codecademy
* Udemy
* Lynda
* Codeschool has some free courses you might find beneficial, such as 'Discover Devtools' and 'Try SQL' courses (although we will be covering SQL in depth during the CodeClan course)

Optional/Additional coding challenges:

There are also lots of coding challenges you can attempt; lots of them are "gamified".

* Project Euler
* Codewars
* Exercism

If you find any other useful resources, share them with us to inform future students.

You could also share it with the other students in your cohort by putting a message on Slack.

There are also many blogs about people learning to code and their experiences as a developer. Read blogs, articles and tech news sites. Maybe even start keeping your own blog.