Before you start your course
In order to be successful on your course you must spend some time preparing yourself to learn. This document outlines the tasks you should complete in order to familiarise yourself with the basic technical foundations you'll need to know in order to take your course. It also gives advice on steps you can take to make your learning experience easier once you start.
Mandatory pre-course training
Before you join a Sparta course, you must complete the tasks and exercises outlined below. In total there are 42 hours worth of practical coding exercises plus topical reading. If you are a trainee on the SDET (Ruby engineers in Test), JavaScript Web Development, DevOps or Software Testing courses, all the tasks/topics of revision listed below are mandatory; trainees in the Business Analyst and Project Management courses must speak to one of the enrolment team to confirm the preparatory reading list for their courses.
- Medium
- Using a Mac
- The Command Line
Codeacademy's Learn Git Course (2 hours)
Codeacademy's Learn SQL (2 hours)
- Codecademy's HTML & CSS Course (7 hours)
For SDET Students:
- Codecademy's Ruby Course (9 hours)
For Web Development or JavaScript Engineering Students:
- Codecademy's JavaScript Course (10 hours)
We'll be checking to make sure that you've completed the pre-work on day one of the course.
Developing the right mindset
Our training courses aim to produce T-shaped people, with a wide breadth of skills plus a specialism. The core modules therefore cover a lot of ground, so anything you can do to gain some prior knowledge will help out.
As far as we're concerned, two of the most important traits for success in the tech industry are passion and curiosity. We're hoping you're already passionate about technology, but having the curiosity to find out how and why things work may be something you need to develop.
Read everything you can, and then find more to read. That's the best advice I can offer! – Joe Buckwell, Sparta Graduate
Finding things to read
This document provides a few starting points, but it's important that you learn to find interesting stuff through your own channels. Two good places to start are Twitter and Medium.
Medium
- Set up an account – You'll be using Medium to write and publish articles during your course.
Follow some people – Follow tags, people and publications that align with your interests in technology. You could start with these:
- Technology
- Startup
- Ruby (or whatever programming language you favour)
- DevOps
- Business
- Innovation
- FreeCodeCamp
- Sparta Global
- BackChannel
- The Startup
- Personal Growth
- Medium Engineering
- Several People are Typing
Get the apps – Install the Medium app on your phone. The bookmarks feature is useful.
Write – If you fancy it, write an article ✍️.
Twitter is a brilliant place to find interesting and relevant articles, but only if you follow the right people. You could start by following Medium authors whose articles you've enjoyed, and build your list up by looking at the people they follow.
Feel free to share any good articles or videos you find with @spartaglobal, too!
Once you start following enough people on Twitter, Medium, YouTube and the like, it's very easy to get overwhelmed with all the interesting content. Pocket allows you to save articles when you see them, to read them later.
- Sign up for an account at http://getpocket.com.
- Install the Browser extension.
- Install the app on your phone.
- Start saving and reading articles.
What to read?
Being a good technologist is about far more than writing good code or testing: It's about understanding business, and being productive in every area of your life and work. While you should obviously read technical articles, don't discount articles on business, personal productivity, habits, agile, process, teamwork, communication and management. All these things are just as crucial to your career as your technical ability.
📖 If you don't enjoy learning new things every day, you're probably not cut out for the tech industry!
Using a Mac
On the course, you will be using a Mac for everything. If you have used one in the past this should be easy, but if you're new to macOS then there are some subtle differences in how it works. The faster you are at using your machine, the more time you will have to focus on the course material.
If you don't have access to mac, it would be worth borrowing one from a friend or going into an Apple Store and having a play with one. The Apple Store also offers instruction on the basics of using a mac.
If you do not have a Macbook, don't worry. We have Macbooks we can loan to you free of charge for the duration of your course.
Things to know before the course
- A fancier trackpad - The mac trackpad allows much more functionality than most windows machines, especially with the use of multi-touch gestures. These will be incredibly useful when navigating between different windows and programs. Spend some time practising these and how they can be used. They can also be customised in System Preferences.
- Right-click - Right click is less used on a mac, although it is replaced with a two finger click by default.
- The dock - Instead of a start menu, a mac makes use of a dock at the bottom of the screen. This can be configured any way the user wants to contain all the things used most often.
- The finder - Mac's version of the file explorer, allows navigation throughout the files and folders on the machine.
- Drag and drop - On a mac, most things can be dragged and dropped somewhere else. Whether it's images from the internet, files on the desktop, apps in the dock, drag and drop is your friend.
- Installing programs - Installation is a breeze on a mac, you simply download a
.dmg
or.pkg
file. You may need to either execute a.pkg
or simply drag a file into your Applications folder and you're all set. - Spotlight search - This simple search can be opened with the keyboard shortcut
cmd + space
, and allows search throughout your entire machine. This is really useful when you first start and you're not sure exactly where everything is! - Terminal - The program that gives access to the command line in mac. There are some useful keyboard shortcuts in this terminal cheatsheet.
- Multiple desktops - A really useful workflow tool. Multiple desktops can be added and navigated through using multi-touch gestures.
- Different keys - Watch out for that cheeky
@
sign, he's in a different place! There is also thecmd
key used for keyboard shortcuts.
Learning the basics
The Command Line
Regardless of the course you're applying for, you're likely to spend a fair amount of time working with the command line. For those hoping to become engineers (whether development, DevOps or SDET), this is doubly important. We'd recommend the following:
- Complete free elements of the Codecademy Learn the Command Line Course (3 hours).
- Spend some time practising some of the basics. Command like
cd
,cp
,mv
,rm
,touch
,ls
should be second nature to you. - Bonus: If you fancy a challenge, you could also look into Vim – you might find this useful.
Markdown
Markdown is a simple language which is used extensively in the tech world. The syntax is pretty simple, and we highly recommend that you learn it before joining the course. Here's a good interactive tutorial.
You'll use markdown extensively during the course, and many of our students use it to write their notes. (Interesting fact: This document is written in Markdown🌟).
HTML & CSS
Codecademy's free HTML & CSS Course (7 hours) offers a free set of lessons on building basic web pages. You'll need this across all courses and it's a vital skill for a career in tech.
Git
Codeacademy's free Learn Git Course (2 hours) is a good place to start learning about version control.
SQL
Codeacademy's free Learn SQL* course (2 hours) is a good way to get some understanding about databases.
Once you've done all of the above, feel free to start any of other courses on Codecademy and other online learning platforms. They'll all help to expand your knowledge in the right direction. The more preparation you do the better off you will be.
Paid Training
If you've got time on your hands and don't mind spending a bit of money, CodeSchool offers some fantastic courses in Engineering, while Linux Academy offers some great DevOps and Sys Admin training.
⚠️WARNING: The CodeSchool and Linux Academy courses are pretty tough. It's far better that you get comfortable with everything else than try to push yourself too far – you run the risk of forgetting the more important stuff.
If you do sign up for either of these, we'd suggest:
CodeSchool
- Front-end Foundations and Formations - for anyone.
- Try SQL and The Sequel to SQL - for anyone.
- Try Git, Git Real and Mastering GitHub - for anyone.
- MongoDB - for JS engineers.
- JavaScript Road Trip parts 1 and 2 - for JS engineers.
- Try Ruby and Ruby Bits - for SDET and DevOps engineers.
Linux Academy
- Linux Essentials - for DevOps engineers.
- DevOps Essentials - for DevOps engineers.
Agile Software Development
Agile Software Development features pretty heavily in our training and while we'll teach you about the philosophy and methodologies, it'd be helpful if you arrive with some understanding of what it's all about. There are hundreds of resources out there that can help you understand what agile is. Here are just a few of them:
- Agile: An Introduction, by CA Technologies (9 min video)
- A Gentle Introduction to Agile
- Intro to Agile Development
Some good articles from GDS:
- UK Government Digital Service: An Introduction to Agile
- UK Government Digital Service: Agile Methodologies Explained
- UK Government Digital Service: Agile Tools and Techniques
- UK Government Digital Service: Writing User Stories
Agile In Practice Videos from the Agile Academy
- Agile Team Roles
- Stand-Ups
- Story Cards
- Big Visible Charts
- Social Contracts
- Retrospectives
- Frequent Small Releases
- Continuous Feedback
- Sustainable Pace
- Continuous Integration
- Definition of Done
- Pair Programming
- Automated Testing
- Test Driven Development
- Burn Up Charts
Places to find the more advanced stuff...
- Articles from InfoQ (some of these are pretty advanced)
- Articles from Mountain Goat Software
- Articles from Leading Agile
- Articles from the Agile Alliance
Books
There are hundreds of good books on coding and testing. While we'll recommend some of these during the course, we'd rather you read something a little less technical as well. Here are three books we'd recommend to anyone entering the tech industry:
- The Phoenix Project by Gene Kim, Kevin Behr and George Spafford
- The Lean Startup by Eric Ries
- The Power of Habit by Charles Duhigg
The Amazon descriptions should make it clear what they're all about.
We're looking forward to meeting you 😃
PS. If you spot any typos in this document or have any resources you'd like to add, feel free to submit a pull request once you know how to use Git and GitHub.