Syllabus Overview
An overview of our Software Development Course
What is the Syllabus?
The syllabus is a repository of everything that we teach at CodeYourFuture. Everything in this syllabus is created, maintained and taught by teams of volunteers from across the world.
This website includes:
- The modules that make up the Software Development course (seen right)
- One-off workshops that have been run by specialists
- Useful guides for our trainees
How should I use the Syllabus?
As a teacher...
If you're reading this then you may be looking to attend or teach a class in the future. In each of the module sections of this website you will find a suggested lesson plan for your lesson. If you're new to CodeYourFuture this is a great place to start with our teaching.
However, you are also welcome to change, remix and re-create the content you find here as you wish. Over your time here you will get to know your specific trainees and will know what kind of content and teaching they need. We encourage you to innovate and experiment with the lesson plans you find here.
Every lesson has a set of Learning Objectives that we're trying to achieve in each lesson, as a teacher your goal to have your trainee achieve these goals throughout your lesson and the accompanying coursework.
Be sure to check out the Teaching Notes attached to every lesson for notes, slides and videos from previous teachers.
As a trainee...
If you're reading this as a trainee you will find lots of the lesson plans that you've been following in your class. You will also find links to resources that we think you will find useful, additional exercises and links to all of the coursework for the course.
How do I make a change to the Syllabus?
Check out the Contributing section to find out how to contribute to the Syllabus. New contributors always welcome!
Intro to Digital
Content Type: Combined
Length: Self Paced
This online, self-paced course gives trainees a basic understanding of JavaScript, HTML & CSS, unit tests, and guides them to building their first simple website. Completion of this course is required to access the full course.
Fundamentals
Content Type: Combined
Length: 3 Weeks
This module is a three week immersion into the core principles of digital product development.
Trainees work through the key stages of development: Requirements, Iteration, and Delivery. Trainees work in teams to discover requirements and express them as user stories. Trainees iterate on their work and then ship their websites to production.
Induction and Git
Content Type: Personal Development
Length: 1 Week
This week inducts trainees to the Software Development Course and then introduces trainees to Git and Github using Github Desktop. This is a key skill for all developers and is also how we do our coursework at CodeYourFuture.
HTML/CSS
Content Type: Tech
Length: 4 weeks
Introducing Front End. What is frontend? It's another word for the presentational part of a piece of software. In terms of web development we're talking about "what you see" when you go to any website.
Think of it like this: if a webpage were a person, the HTML would be the skeleton and CSS the skin and clothing!
Building a team
Content Type: Personal Development
Length: Integrated through HTML/CSS
Trainees discover, develop, and deliver a team building project.
JavaScript Core 1
Content Type: Tech
Length: 4 weeks
In this module you'll make a start into the wonderful world of programming. We will be using the programming language JavaScript to do so. You'll learn about the basic building blocks of programming: loops, functions, control flow and more. Consider these as the ABC's of programming, without them it's impossible to write working software!
Communicating in the workplace
Content Type: Personal Development
Length: Integrated through JS1
Trainees will be introduced to important skills needed for the workplace.
JavaScript Core 2
Content Type: Tech
Length: 4 weeks
In JavaScript Core 2 you'll learn all about how to use JavaScript within the browser. First, you'll learn about how HTML is structured within your browser: we call this the Document Object Model (DOM).
Once you've gotten the hang of that we'll apply JavaScript to it, in order to manipulate the elements and make our pages more interactive. We call this DOM manipulation and it's one of the most interesting things about JavaScript!
Presentation Skills
Content Type: Personal Development
Length: Integrated through JS2
Trainees will explore various tools and techniques to develop their presentation skills.
JavaScript Core 3
Content Type: Tech
Length: 4 weeks
In JavaScript Core 3 you'll learn all about requesting data from over the internet to make your websites talk to each other. This is when programming becomes really exciting as you work with real world data to build interesting, complex projects.
In addition to this we introduce you to the world of Debugging and the best techniques to make sure that your code runs as bug free as possible.
Specialisation
Content Type: Personal Development
Length: 1 week
After JavaScript Core 3 trainees will reflect with mentors and choose a path of specialisation. After this point, trainees will pursue individualised learning plans based on their aptitudes and interests, broadly on these tracks:
Tracks
- Front End Development
- Back End Development
- Full Stack Development
- Quality Engineering
- Cloud Engineering
- Product Development
React
Content Type: Tech
Length: 4 Weeks
You'll become more familiar with a frontend technology called React.js, a JavaScript library written and maintained by Facebook.
It is mainly used to create dynamic user interfaces, changing the data a user sees depending on their input.
In this module you'll learn about how to think about webpages in a radically different way: instead of making seperate pages, you'll be making components of pages. Instead of hardcoded content, you'll make structures that can hold different data.
Preparing for the Job Market
Content Type: Personal Development
Length: Integrated through React
Trainees will learn about the CYF process of getting a job and the tools to support getting into a new career.
Node.js
Content Type: Tech
Length: 3 Weeks
Any software application consists of at least 2 parts: a frontend, which is what the user sees and interacts with, and a backend. This module will expose you to the wonderful world of backend development, where you learn all about where your data goes once you've pressed that submit button. You'll be writing web servers and learn how to send users the right feedback.
Interview Skills
Content Type: Personal Development
Length: Integrated through Node
Mock interviews, writing CVs, and creating a professional profile online.
Databases
Content Type: Tech
Length: 4 weeks
In this module you'll learn how to store your data in a database so that you can persist users data across sessions. You'll learn how to structure and group data so your apps know where to find and store the correct data.
Working in Teams
Content Type: Personal Development
Length: Integrated through DB
Trainees will learn about how to work in a cross functional Agile team in preparation for the Final Projects.
Final Projects
Content Type: Tech
Length: 4 Weeks
Learning to write code is one matter but learning to do it as a team is a whole other skill. In this module we bring together everything you've learnt over the past six modules to build a complex group project for real world clients.
We'll be teaching you about modern project management tools like Scrum and Agile as well as using your soft-skills training to work well together in teams.
Presentations and Demo Day
Content Type: Personal Development
Length: Post project
The final leg of the course focuses on Presentation skills and preparing for Demo Day.