๐Ÿง‘๐Ÿพโ€๐Ÿ’ป Prep

What to do before the module starts

๐Ÿงฐ Install a UNIX based operating system

Learning Objectives

If you get stuck on any of the below or above instructions, please post in your class channel on Slack.

You probably already have this if you have done previous modules.

โš ๏ธwarning

Code Your Future does not support Windows.

We have found that we don’t reliably have volunteers at class who can debug Windows problems, and they frequently come up, stopping trainees from making progress.

We do not support Windows so as to not waste lots of trainee and volunteer time. We have made this decision even though Windows is a popular operating system and has features like WSL which help to get experience with Unix.

If you have a Mac or Linux machine already, you already have a UNIX based operating system. All CYF-supplied laptops run Mac OS or Linux. If you have your own machine and it runs Windows, you should already have set up a Linux partition.

If you have still not done this, you must do it now. We cannot support learners using Windows. It takes too much time from everybody else. If you need help doing this, post in Slack, or bring your laptop to a CYF co-working space to get support. It’s normal to need help with this process.

Dual Boot on Windows

๐Ÿ“‹ Check Git installation

Learning Objectives

Git

You will use Git continually as a developer. We will cover Git in more depth later in the course. Right now, we will just check that you have it installed.

Open up a terminal and run the command git --version to double check you have Git installed. If it is installed successfully, you should get a version number (which may not be exactly the same as this example, but should look similar):

git version 2.40.0

Otherwise, you will need to install it or ask for support on your Slack channel.

๐Ÿ’กTip

If you are working on a library computer, you do not have a terminal, but your github.dev account already has Git installed. (It’s called “Source Control”.) So you can skip this step.

๐Ÿงฐ Install VSCode

Learning Objectives

We use VS Code to write all of our code in the course. It is known as an Integrated Development Environment (IDE) and really helps you write great code.

๐Ÿ”— Download and install VSCode now

๐Ÿ’กTip

If you are working on a library computer, use the online version of VSCode called Github.dev.

The interface is mostly the same, but you cannot install extensions or use the terminal. You can complete all the tasks in the onboarding module without these features.

“Github.dev can be accessed by pressing dot on any GitHub repo”
Press the dot while on any GitHub repo to open Github.dev.

๐Ÿ“‚ Create a work folder

Learning Objectives

๐Ÿ“ขImportant

Make a folder called CYF in your home directory. Store all your work for the course in this folder.

You’ll need to create a CYF folder to store your projects on the course. You can do this any way you like, but here we are using the terminal.

How to create a folder using the terminal

  1. Open a terminal on your computer.

For each of the steps below, you’ll need to use the command line in your terminal.

Use this cli documentation to remember terminal commands.

  1. In your terminal, print your current working directory.

  2. List the files and folders in your current working directory.

You’ll need a place to store your work for the course.

  1. Make a new directory called CYF in your home directory.

  2. Change directory into the CYF directory.

  3. Double check you’re in the right place by printing your current working directory.

๐Ÿ’กTip

If you’re working on a library computer, skip this step. You will store your work in your GitHub account.

๐Ÿ”— Set up Planner

Welcome to your coursework planner

This is how you will plan and manage your coursework at CYF. You will add all your work as issues to your fork of this repository, and then use a project board to manage your work. This is broadly how all technical projects are managed, so you will need lots of practice. Get started today.

1. How to get set up

Forking the My-Coursework-Planner repo

  1. Fork this repo to your own GitHub
    image
  2. You should see your own GitHub username under Owner
    image
  3. Turn on issues in the Settings of your forked version of the repo
    image

You must fork to your personal Github account. Forks created in the CYF org will be deleted by a bot.

Creating your project board

  1. Go to the example project board
  2. Click the three-dot menu, and then select Make a copy
    image
  3. Make sure your own GitHub username is under Owner
    image
  4. Make your project board public so your mentors can see your progress - open the project board settings
    image
  5. Scroll to the bottom to find the setting to make your board public
    image

Linking the My-Coursework-Planner repo to your project board

  1. Go back to your forked version of the My-Coursework-Planner repo
  2. Under Projects, click Link a project and select your project board
    image
  3. That’s it! You’re ready to start adding issues to your board!

2. In every module, you will add your work as issues

Each sprint in each module has a Backlog page which lists the work you’re expected to do for that module. Every item in the list is actually a GitHub issue.

There is a “Clone” button next to each issue. When you’re starting a sprint, clone each of its issues into your coursework planner.

Copy issues for each week or at most for each module. The coursework content is updated frequently, you will not have the most up to date tasks on your board if you copy all modules at once.

If the Clone button isn't working, expand this for instructions of how to manually clone the issues

Each module has a module repo. The coursework for each module is added as issues to that repository. All the module repos are listed in the Table of Contents.

  1. Go to the module repo
  2. Click on the Issues tab
  3. Copy each issue from the module repo to your own coursework repo.

We have also used the Kamino Clone Button Chrome extension to make this easier, so you could try that.

3. Manage and adapt your project board as you learn

There are example project boards attached to each module, showing you ways you can use boards to manage your time, prioritise, scope, and track your work. You should use the same project board all the way through the course, and add to it as you go. Learn as you go, and adapt your board as you learn.

You can, and should, also add your own tickets to the board. Just remember it’s a public board, so don’t add anything you don’t want to share with your mentors.

You can watch this video about how to create your coursework-planner board.

๐Ÿ“š Get a copy of How Computers Really Work

Throughout this course, we will reference the book How Computers Really Work by Matthew Justice.

You will need a copy.

The author, Matthew Justice, has kindly donated a pdf of this book for use by CodeYourFuture trainees. If you would like a copy of this PDF, you can find access details in the #software-development-course slack channel.

If you buy your own copy from e.g. Amazon, CYF cannot pay for this.

Huge thanks to Matthew Justice and the folks at No Starch Press for their kind donation of this excellent book!