Course overview
Objective
The objective of this course is to train people with no prior software development experience to get a good job in technology.
Primarily this is achieved by teaching programming concepts using JavaScript (both client-side and server-side).
Modules
๐งฑ Fundamentals
โฑ๏ธ Requirements
โฑ๏ธ Iterating on features
- Overcoming Blockers
- Code.org
- CYF Blocks
โฑ๏ธ Ship It
๐ HTML-CSS
โฑ๏ธ Programming fundamentals
- Recap HTML and CSS
- What is HTML?
- What Is CSS
โฑ๏ธ Promises, async/await
- What are components?
๐ฅ JS1
- ๐น๏ธ Using an interface
- ๐ฅ๏ธ Terminal interface
- ๐๏ธ Classifying data
- ๐งพ Evaluating expressions
- ๐ท๏ธ Saving expressions
- ๐ฌ Declarations and statements
- ๐ช Functions
- ๐ Running scripts
- ๐จ๏ธ Logging
- โ Errors
- ๐งฉ Percentages
- ๐ช Declaring functions
- ๐ฎ Playing computer
- ๐ญ Scope
- ๐ค Returning from a function
- โป๏ธ Reusing the function
- ๐ท๏ธ Parameterising a function
โฑ๏ธ Event handlers and the DOM
- โ๏ธ Comparing current and target output
- โ๏ธ Writing an assertion
- โ Conditionally executing code
- ๐ง Forming sub-goals
- ๐งถ Accessing strings
- ๐๏ธ Assembling the parts
โฑ๏ธ Testing with Jest
- ๐ผ๏ธ Testing frameworks
- ๐ Starting a project
- ๐ฆ Using packages
- ๐ Installing Jest
- ๐๏ธ Jest's Application Programming Interface
- ๐ผ First test case
- โ โ Interpreting feedback
- ๐๏ธ Generalising further
๐ฃ JS2
- ๐พ Grouping data
- ๐ Arrays
- ๐ Iteration
- ๐ค References
- ๐ Mutation
- โ ๏ธ Side effects
โฑ๏ธ Grouping data: Objects
- ๐ Ordered data
- ๐๏ธ Key-value pairs
- ๐ช Accessing properties
- โ๐ชข Query strings
- โ Parsing a single key-value pair
- [ ] Access with variables
- โโโ Parsing multiple parameters
โฑ๏ธ The DOM
- ๐ป User interfaces
- ๐ Implenenting a character limit
- ๐ฒ The DOM
- ๐ Querying the DOM
- ๐ท๏ธ Updating the interface
- ๐ฌ DOM events
- ๐ค Reacting to events
- ๐งฉ Refactor
โฑ๏ธ Implementing Wordle
๐ฅ JS3
โฑ๏ธ UI Components
- ๐พ โก๏ธ ๐ป Rendering Data as UI
- ๐งฑ Composing elements
- ๐งผ Creating elements with functions
- ๐ฑ Creating elements with <template>
- ๐ Reusable components
- ๐บ๏ธ Using map
โฑ๏ธ State and Rendering
- ๐ช Reacting to user input
- ๐ Identifying state
- ๐งผ Refactoring to state+render
- ๐ Introducing new state
- ๐ฑ Rendering based on state
- ๐ฆป๐ป Capturing the user event
โฑ๏ธ Fetch and Asynchrony
- ๐ Fetching data
- ๐๏ธ Latency
- โณ Asynchrony : outside time
- ๐ช Callbacks
- ๐ Requesting from a server side API
โฑ๏ธ Promises and async/await
- ๐ซฑ๐ฟโ๐ซฒ๐ฝ Promises
- ๐ช .then()
- ๐ฌ async/await
- ๐ฅ try/catch
- ๐ ๐๏ธ fetch films
๐ช Frameworks
โฑ๏ธ React: Components
- ๐ช What is React
- ๐งฉ Components
- ๐ข Importing and Exporting
- ๐ฌ JSX syntactic sugar
- ๐ Embedding JavaScript
- ๐ฆ Props
- ๐จ๐ผโ๐จ Rendering
- ๐ Keys
โฑ๏ธ React: State
- ๐ฆป๐ผ Handling events
- ๐ฆ State
- ๐ช Re-Rendering
- ๐ Fetching data
- ๐คน๐ผ Synchronising with effects
- ๐ ๐ณ Fetching data with Effects
- ๐ Working with forms
- ๐๏ธ Forms with multiple fields
- ๐ชค Controlled Components
โฑ๏ธ React Router
- ๐ React Router
๐ Servers
โฑ๏ธ Node and Express
- Introduction to Express
- Make a Node Project
- Building the server
- Communicating with the server
- Routing
- Query Parameters
โฑ๏ธ GET and POST
- CRUD
- ๐ GET
- ๐ GET single movie
- ๐จ POST
โฑ๏ธ PUT, and Testing APIs
- CRUD Again
- ๐จ PUT
- ๐ช๐พ CRUD Challenges
- ๐ฎ ๐งช Test Examples in Postman
โฑ๏ธ Build Wordle
- Play Wordle
๐พ Databases
โฑ๏ธ Introduction to databases
- Introduction to databases
- Introduction to PostgreSQL
- Communicating with the database using SQL
โฑ๏ธ SELECTing data
- Using Aggregate Functions
- Inserting, Updating and Deleting Rows
- Joining Tables
- Creating a table
- Defining Primary and Foreign Keys
- Integration with NodeJS