Welcome to the Pre-Course for the Sigma Labs’ Technical Programme.
At the top of this page, you will find links to Levels 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 of the course.
There is a strong correlation between people who take this pre-work seriously and those that excel not only in the course but also in their careers.
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 all coaches in the Train team.
Our number one priority is to prepare you as much as 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 haven’t reached out for help, your training may be deferred to the next cohort or the offer may be withdrawn.
We do this 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, leading to a poorer outcome for everyone on the course.
By the end of this pre-course, you should be able to:
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
PY01: Run a Python program in the terminal PY01.1: Successfully navigate to a Python file in the terminal PY01.2: Install Python via the terminal PY01.3: Run a program using Python3 PY02: Write code that interacts with all of the built-in Python types PY02.1: Write code that creates and manipulates collections of data in arrays PY02.1.1: Create and initialise an empty list PY02.1.2: Declare a list and fill it with data PY02.1.3: Retrieve an element from an array using an indices PY02.1.4: Add an element to an array using append PY02.1.5: Remove an element from an array using pop PY02.2: Write code that uses a Boolean type PY02.2.1: Define the two states that a Boolean type can be in - True or False PY02.2.2: Write a statement using logical operators and / or / not to evaluate to a Boolean PY02.3.1: Explain the difference between an Integer and a Float PY02.3.2: Manipulate numbers stored in variables using arithmetic operators PY02.4.1: Create and initialise a string in a variable PY02.4.2 Use f-strings to create strings with dynamic values PY02.4.3: Manipulate strings using string methods PY02.4.4: To access characters in a string using  notation PY02.5.1: Create and initialise an empty dictionary PY02.5.2: Call an Dictionary’s method using dot notation PY02.5.3: Store data as a property of a dictionary PY02.5.4: Retrieve dictionary properties using dot notation PY02.5.5: Access dictionary properties using  notation PY02.5.6: Create an dictionary property that is a function PY02.6: Use type to find the type of a variable’s value PY02.6.1: To predict the type of a variable given its value PY03: Write code that can create and manipulate variables PY03.1: Define what a constant variable is and when they should be used PY04: Write code that iterates PY04.1: Use a for loop to iterate a fixed number of times PY04.1.1: Define the correct syntax for a for loop in Python PY04.1.1: Use the range function to create an iterator PY04.2: Use a while loop to iterate until a condition is met PY04.2.1: Define the correct syntax for a while loop in Python PY04.3: Iterate over a list using a loop PY04.3.1: Use the elements of a list to iterate through an array PY05: Write code that is executed in the desired order PY05.1: Predict the output of a function given an input PY05.2: Predict the values of variables after manipulation PY05.2.1: Predict the value of a variable after it has been initialised PY06: Know when to appropriately use coding tools (such as loops /if /else etc) PY07: Write code that declares and calls functions with return statements PY07.1: Write code that accepts a parameter, mutates it and returns it PY07.1.1: Define what a parameter is and why it is useful PY07.2: Write code to call a function and expect a return value PY07.2.1: Define what a return statement is and why it is important PY07.2.2: Write code that returns a value PY07.2.2.1: Define when a return can or cannot be used PY07.2.3 Predict the output of a function with explicit and implicit returns PY07.3: Write code that calls a function and stores the returned data in a variable PY08: Write code that interacts with variables at different levels of scope PY08.1: Define the different types of scope (global scope and local/block scope) PY08.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 Python code D03: Use console.logs to deduct the state of their code D03.1: Use print 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