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).

A pre-requisite of this course is having completed Code Your Future’s Intro to Digital course which teaches the basics of HTML and CSS.

Modules

Fundamentals

Requirements
    Iterating on features
    1. Overcoming Blockers
    2. Code.org
    3. CYF Blocks
    Ship It

      HTML-CSS

      Programming fundamentals
      1. Recap HTML and CSS
      2. What is HTML?
      Breaking down problems with functions
      1. What Is CSS
      Breaking down problems and testing
      1. What are forms?
      Promises, async/await
      1. What are components?

      JS1

      Arrays, iteration, and side-effects
      1. ๐Ÿ•น๏ธ Using an interface
      2. ๐Ÿ–ฅ๏ธ Terminal interface
      3. ๐Ÿ—„๏ธ Classifying data
      4. ๐Ÿงพ Evaluating expressions
      5. ๐Ÿท๏ธ Saving expressions
      6. ๐Ÿ’ฌ Declarations and statements
      7. ๐Ÿช„ Functions
      8. ๐Ÿ“ Running scripts
      9. ๐Ÿ–จ๏ธ Logging
      10. โŒ Errors
      Objects, and generalising problems
      1. ๐Ÿงฉ Percentages
      2. ๐Ÿช„ Declaring functions
      3. ๐ŸŽฎ Playing computer
      4. ๐Ÿ”ญ Scope
      5. ๐Ÿ“ค Returning from a function
      6. โ™ป๏ธ Reusing the function
      7. ๐Ÿท๏ธ Parameterising a function
      Event handlers and the DOM
      1. ๐Ÿ•› 12 vs 24 hour clock
      2. โš–๏ธ Comparing current and target output
      3. โœ๏ธ Writing an assertion
      4. โ†™๏ธ โ†˜๏ธ Making a choice
      5. โ“ Conditionally executing code
      6. ๐Ÿง  Forming sub-goals
      7. ๐Ÿงถ Accessing strings
      8. ๐Ÿ—๏ธ Assembling the parts
      Testing with Jest
      1. ๐Ÿงฎ Ordinal numbers
      2. ๐Ÿ–ผ๏ธ Testing frameworks
      3. ๐ŸŽ’ Starting a project
      4. ๐Ÿ“ฆ Using packages
      5. ๐Ÿƒ Installing Jest
      6. ๐ŸŽ›๏ธ Application Programming Interface
      7. ๐Ÿ’ผ First test case
      8. โœ… โŒ Interpreting feedback
      9. ๐Ÿ—„๏ธ Generalising further

      JS2

      Grouping data: Arrays and loops
      1. ๐Ÿ’พ Related pieces of data
      2. ๐Ÿ“œ Grouping data
      3. ๐Ÿ“Š Calculating the mean
      4. โž• Summation
      5. ๐Ÿ” Iterating
      6. ๐Ÿ“Š Calculating the median
      7. ๐Ÿงฑ Assembling the parts
      8. ๐Ÿค References
      9. ๐Ÿ”€ Mutation
      10. โš ๏ธ Side effects
      Grouping data: Objects
      1. ๐Ÿ“ Ordered data
      2. ๐Ÿ—๏ธ Key value pairs
      3. ๐Ÿšช Property access
      4. โ“๐Ÿชข Query strings
      5. โ“ No parameters
      6. โ“ Single pair case
      7. [ ] Access with variables
      8. โ“โ“โ“ Multiple parameters
      The DOM
      1. ๐Ÿ’ป User interfaces
      2. ๐Ÿ›‘ Character limit
      3. ๐Ÿงญ Strategy
      4. ๐ŸŒฒ Interacting with the page
      5. ๐Ÿ”Ž Querying the DOM
      6. ๐ŸŽฌ Events
      7. ๐Ÿ“ค Reacting to events
      8. ๐Ÿ“ˆ Check progress
      9. ๐Ÿท๏ธ Updating the interface
      Implementing Wordle

        JS3

        UI Components
        1. ๐Ÿ’พ โžก๏ธ ๐Ÿ’ป Data to UI
        2. ๐Ÿ“ฝ๏ธ Cinema listings
        3. ๐Ÿ’ฝ Single datum
        4. ๐Ÿงฑ Composing elements
        5. ๐Ÿงผ Simplifying element creation
        6. ๐Ÿฑ Simplifying element creation
        7. ๐Ÿƒ Building a component
        8. ๐Ÿ‘ญ๐Ÿพ One to one
        9. ๐Ÿ—บ๏ธ Using map
        State and Rendering
        1. ๐Ÿช„ Reacting to user input
        2. ๐Ÿงฉ Break down the problem
        3. ๐Ÿ”Ž Identifying state
        4. ๐Ÿงผ Refactoring to state+render
        5. ๐Ÿ†• Introducing new state
        6. ๐ŸŽฑ Rendering based on state
        7. ๐Ÿฆป๐Ÿป Capturing the user event
        Fetch and Asynchrony
        1. ๐Ÿ• Fetching data
        2. ๐Ÿ—“๏ธ Latency
        3. โณ Asynchrony : outside time
        4. ๐Ÿชƒ Callbacks
        5. ๐ŸŒ Requesting from a server side API
        Promises and async/await
        1. ๐Ÿซฑ๐Ÿฟโ€๐Ÿซฒ๐Ÿฝ Promises
        2. ๐Ÿช† .then()
        3. ๐Ÿฌ async/await
        4. ๐ŸฅŽ try/catch
        5. ๐Ÿ• ๐ŸŽž๏ธ fetch films

        Frameworks

        React: Components
        1. ๐Ÿช„ What is React
        2. ๐Ÿงฉ Components
        3. ๐Ÿšข Importing and Exporting
        4. ๐Ÿฌ JSX syntactic sugar
        5. ๐Ÿ‡ Embedding JavaScript
        6. ๐Ÿ“ฆ Props
        7. ๐Ÿ‘จ๐Ÿผโ€๐ŸŽจ Rendering
        8. ๐Ÿ”‘ Keys
        React: State
        1. ๐Ÿฆป๐Ÿผ Handling events
        2. ๐Ÿšฆ State
        3. ๐Ÿชž Re-Rendering
        React: Fetch, Effects, and Forms
        1. ๐Ÿ• Fetching data
        2. ๐Ÿคน๐Ÿผ Synchronising with effects
        3. ๐Ÿ• ๐ŸŽณ Fetching data with Effects
        4. ๐Ÿ“‹ Working with forms
        5. ๐Ÿ—‚๏ธ Forms with multiple fields
        6. ๐Ÿชค Controlled Components
        React Router
        1. ๐Ÿš React Router

        Servers

        Node and Express
        1. Introduction to Express
        2. Make a Node Project
        3. Building the server
        4. Communicating with the server
        5. Routing
        6. Query Parameters
        GET and POST
        1. CRUD
        2. ๐Ÿ• GET
        3. ๐Ÿ• GET single movie
        4. ๐Ÿ“จ POST
        PUT, and Testing APIs
        1. CRUD Again
        2. ๐Ÿ“จ PUT
        3. ๐Ÿ’ช๐Ÿพ CRUD Challenges
        4. ๐Ÿ“ฎ ๐Ÿงช Test Examples in Postman
        Build Wordle
        1. Play Wordle

        Databases

        Introduction to databases
        1. Introduction to databases
        2. Introduction to PostgreSQL
        3. Communicating with the database using SQL
        SELECTing data
        1. Using Aggregate Functions
        2. Inserting, Updating and Deleting Rows
        3. Joining Tables
        4. Creating a table
        5. Defining Primary and Foreign Keys
        6. Integration with NodeJS