Here you can find an overview of the HackYourFuture program. It gives insight in how our program is structured, organized, what you can expect from the modules that we teach and last but not least where we teach and where you can find support during the week. Our half year course is divided into modules that last 3 weeks with exception of the project module that lasts 6 weeks. Below you can find a short listing of the contents and deliverables/learning goals of the different modules. The headers of the different modules link to the actual repositories that are used by teachers to post assignments/reading materials etc. Be aware that some of the modules make use of more than one repository.
- Are you a new teacher? Take a look here for some practical tips on how to get started!
- Are you a new student? Take a look here to see how to prepare for your first class!
Week | Topic | Reading Materials | Homework | Lesson Plan |
---|---|---|---|---|
1. | Command Line Interface basics, HTML/CSS syntax | W1 Reading | W1 Homework | W1 Lesson Plan |
2. | Introduction to GIT, Responsive design | W2 Reading | W2 Homework | W2 Lesson Plan |
3. | GIT branches, CSS frameworks, Working with the browser | W3 Reading | W3 Homework | W3 Lesson Plan |
Welcome to the wonderful world of web development! In this module you will learn the basic building blocks of the web: HTML and CSS. HTML gives us the power to add text, images and videos to a page. CSS gives us the power to organize these parts and make it look nice. The products of HTML and CSS comprise a two-thirds of what is called frontend (the final third is client-side JavaScript, which you will learn about in later modules). 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! You'll also be learning GIT, software that will allow you to save your folders and files in case they accidentally get deleted or end up corrupt. It can do much more and you'll learn all about that starting from week 2!
- Be able to write syntactically correct HTML and CSS
- Understand what is meant by "responsive" web development
- Practice navigation your computer using the command line interface (CLI)
- Learn about GIT and its basic usage
- Become familiar with Trello and GitHub as a way to submit your homework
- Explain your code by presenting what you've done
- Know your way around Visual Studio Code
- Feel comfortable working with your browser's inspector
Week | Topic | Reading Materials | Homework | Lesson Plan |
---|---|---|---|---|
1. | What is JavaScript?, Variables, Data Structures & Naming Conventions | Reading W1 | Homework W1 | Lesson Plan W1 |
2. | Statements vs. Expressions, Control flow, Loops, Operators, Conditional statement | Reading W2 | Homework W2 | Lesson Plan W2 |
3. | Functions, Thinking like a programmer I, How JavaScript relates to HTML/CSS | Reading W3 | Homework W3 | Lesson Plan W3 |
In this module you'll make a start into wonderful world of programming. We will be using the programming language JavaScript to do so. You'll learn about the basic buildingblocks 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!
- Have an idea of what computer programming is
- Know the basic building blocks of JavaScript
- Correctly write and use variables, functions and loops
- Understand the control flow
- Think like a programmer
In this module we will learn about JavaScript, combined with HTML and CSS and there will be a test at the end.
Week | Topic | Details |
---|---|---|
1 | Javascript 2 | Details |
2 | Javascript 2 | Details |
3 | Javascript 2 | Details |
- | Formative test | Details |
- Capturing user input
- Basic DOM manipulations [img src, innerHTML]
- Code debugging using the browser
- Code commenting
- Structuring code files
- Functions + JSON/Arrays
- Array Manipulations
- JSON
- Map and filter
- Arrow functions
- Closures
- Scope
- Events
- Callbacks
In this module we will learn about more advanced concepts of Javascript.
Week | Topic | Details |
---|---|---|
1 | Javascript 3 | Details |
2 | Javascript 3 | Details |
3 | Javascript 3 | Details |
- Object Oriented Programming
- Code flow (order of execution)
- Async VS Sync
- Structure for a basic SPA
- XHTTP Requests
- API calls
- (re)writing data structures (in JSON)
- Promises
In this module we will learn about Node.js.
Week | Topic | Details |
---|---|---|
1 | Node | Details |
2 | Node | Details |
3 | Node | Details |
Node.js is a server-side platform built on Google Chrome's JavaScript Engine (V8 Engine). For almost any web application, it is essential to have a backend. The backend is a place where we, the developers, can store our data, communicate with users and let the users communicate with us, do smart things like calculations, data processing etc.
There are many languages for this. We might've heard of Java, C, C++, Go, Python, Ruby, PHP and the list goes on.
There are two reasons why we at HYF choose Node.JS over others:
- You already know JavaScript, so it's easier to get started than other languages
- Node.js is great for making web APIs because it is asynchronous by nature and thus allows for high input/output. By this we mean that it allows many users to make very light requests at the same time.
- What is Node.js?
- Using Node Package Manager (NPM)
- Using
require
to include modules - Using
http
to handle http requests and respond - Using
fs
to read from and write to files. - Using
process
to read arguments from the CLI - Using
express
to make a RESTful API
In this module we will learn about databases using MySQL.
Week | Topic | Details |
---|---|---|
1 | Database | Details |
2 | Database Queries | Details |
3 | Database design | Details |
What is a database? A place to store “things”. Could be as simple as a phone book (physical) or as complex as storing all the inventory for Amazon.com. Why use databases? Easier than having data all over the place. Puts the problem of collecting, storing, sorting and searching data in a single place. There are two primary types of database systems - relational and NoSQL. Relational databases have tables that relate to one another and can be “joined” ACID vs BASE
By the end of this module, students should have a familiarity with and basic understanding of the following:
- Entities
- The relational model
- The Structured Query Language (SQL)
- The construction of a database system
- MySQL as an example of a relational database system
- Non-relational data and NoSQL
- MongoDB as an example of a NoSQL database
In this module we will learn about React.
Week | Topic | Details |
---|---|---|
1 | Thinking in React | Details |
2 | Data flow in React | Details |
3 | Advanced React | Details |
4 | Client-side routing | Details |
5 | Test | Details |
By the end of this module, students should have a familiarity with and basic understanding of the following:
- React Components
- State and Lifecycle
- Forms and Managing State
- Flux & MobX MobX
- API Integration
This six week project module will simulate parts of a real working experience in a typical software company.
-
Learn to understand an existing codebase in a short period of time
-
Get experience working on existing projects
-
Get experience working on open-source projects
-
Get familiar with the basics of project management with agile
-
Become comfortable with reporting about your work and communicating within a team.
After this module we offer (technical) interview and cv training for those who are interested. The goal of these sessions are to:
-
Get your CV and LinkedIn ready for when you are ready to go to interviews.
-
Get an understanding of how (technical) interviews go in the Dutch job market.
Our curriculum is subject to CC BY copyright. This means you can freely use our materials, but just make sure to give us credit for it:)