Skip to content


Welcome to the Pre-Course for the Sigma Labs’ Technical Programme.
If you’re reading this document it means you’re going to be starting at Sigma Labs in the coming weeks. Congratulations!
At the top of this page, you will find links to Level 1, 2 and 3 that should be completed sequentially.
➡️ Please read all of this page before getting started. ⬅️
The aim of this pre-course isn’t to complete all of the tasks and finish all of the challenges. The aim is to attain Mastery of all of the Learning Objectives. This website contains resources and exercises to help you do this but ultimately you will be the ultimate judge for your own understanding. We encourage you to use resources outside of the ones listed here.
The reason we give you this coursework is to make sure you have covered all of the required material before we start as we don’t cover the basics on the course.
There is a strong correlation between people who take this pre-work seriously and those that excel not only on the course but also in their careers.
Getting Support
The only way you can fail this pre-course is if you can’t do the work AND you don’t ask for help. To get help at any time you can reach out to
Sonali Singh - Coding Coach
Chris Owen - Director of Education
Our number one priority is to prepare you as much possible before you join us full time. We are 100% committed to this goal.
If you do not submit all three levels of this course before you join and you haven’t reached out for help then your training may be deferred to the next cohort or the offer may be withdrawn.
The reason we do this is because if all of our trainees’ technical skills are not aligned before the course starts then one or two trainees can take up all of our coaches time which will lead to a poorer outcome for everyone on the course.
Recorded Sessions
On the page you will find all of the sessions that we’ve run in the past for trainees during the pre-course
Learning Objectives
By the end of this pre-course, you should be able to:
Command Line
CL01: Move around your computer’s directories in the command line using cd and cd ..
CL02: Create files and folders from the command line using touch and mkdir
CL03: Use ls to list everything in a directory in the command line
CL04: Use grep to search for a file
CL05: Use cat to view the content of a file
CL06: Use ps to view the running processes
CL07: Use head/tail to view the start or end of a file
CL08: Use wc to calculate the word count of a file
CL08: Combine commands using pipes
CL09: Give different levels permissions using sudo
G01: Commit changes to a repository
G02: Create a branch and commit to it
G03: Undo mistakes by discarding changes
G04: Use Github to fork a repository
G05: Clone a repository from Github to your laptop
G06: Push your changes to Github
JavaScript Fundamentals
JS01: Run a JavaScript program in the terminal
JS01.1: Successfully navigate to a JavaScript file in the terminal
JS01.2: Run a program using Deno
JS01.3: Install Deno via the terminal
JS02: Write code that interacts with all of the built-in javascript types
JS02.1: Write code that creates and manipulates collections of data in arrays
JS02.1.1: Create and initialise an empty array
JS02.1.2: Declare an array and fill it with data
JS02.1.3: Retrieve an element from an array using an indices
JS02.1.4: Add an element to an array using .push()
JS02.1.5: Remove an element from an array using .pop()
JS02.2: Write code that uses Boolean type
JS02.2.1: Define the two states that a Boolean type can be in - true or false
JS02.2.2: Define what is meant by a ‘truthy’ type in JavaScript
JS02.3: Numbers
JS02.3.1: Explain the difference between an Integer and a Float
JS02.3.2: Manipulate numbers stored in variables using arithmetic operators
JS02.4: Strings
JS02.4.1: Create and initialise a string in a variable
JS02.4.1: Manipulate strings using string methods
JS02.4.2: To access characters in a string using [] notation
JS02.5: Objects
JS02.5.1: Create and initialise an empty Object
JS02.5.2: Call an object method using dot notation
JS02.5.3: Store data as a property of an Object
JS02.5.4: Retrieve object properties using dot notation
JS02.5.5: Access object properties using [] notation
JS02.5.6: Create an object property that is a function
JS02.6: Use typeof to find the type of a variable’s value
JS02.6.1: To predict the type of a variable given its value
JS03: Write code that can create and manipulate variables
JS03.1: Define the difference between let and const
JS04: Write code that loops
JS04.1: Use a for loop to iterate a fixed number of times
JS04.1.1: Define the correct syntax for a for loop in JavaScript
JS04.2: Use a while loop to iterate until a condition is met
JS04.2.1: Define the correct syntax for a while loop in JavaScript
JS04.3: Iterate over an array using a loop
JS04.3.1: Use the i variable to iterate through an array
JS05: Write code that is executed in the desired order
JS05.1: Predict the output of a function given an input
JS05.2: Predict the values of variables after manipulation
JS05.2.1: Predict the value of a variable after it has been initialised
JS06: Know when to appropriately use coding tools (such as loops/if/else etc)
JS07: Write code that declares and calls functions with return statements
JS07.1: Write code that accepts a parameter, mutates it and returns it
JS07.1.1: Define what a parameter is and why it is useful
JS07.2: Write code to call a function and expect a return value
JS07.2.1: Define what a return statement is and why it is important
JS07.2.2: Write code that returns a value
JS07.2.2.1: Define when a return can or cannot be used
JS07.3: Write code that calls a function and stores the returned data in a variable
JS08: Write code that interacts with variables at different levels of scope
JS08.1: Define the different types of scope (Global scope and Local/Block scope)
JS08.2: Manipulate the value of a variable in a nested scope
D01: Read and understand an an error message
D02: Use an error message to debug a problem in JavaScript code
D03: Use console.logs to deduct the state of their code
D03.1: Use console.logs to print the value of variables
D03: Compare the expected output of code compared to what they’re currently getting
P01: Seeks help when has been stuck for a period of time
P01.1: Know when to ask for support with technical problems
P02: Know how long to spend working through a problem before asking for help
P03: Ask for help from a coach when stuck
P03.1: Knows how to ask for help from a coach
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
) instead.