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

    1. Overcoming Blockers
    2. Code.org
    3. CYF Blocks

      ๐Ÿ“‡ HTML-CSS

      1. Recap HTML and CSS
      2. What is HTML?
      1. What Is CSS
        1. What are components?

        ๐Ÿฅš JS1

        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
        1. ๐Ÿงฉ Percentages
        2. ๐Ÿช„ Declaring functions
        3. ๐ŸŽฎ Playing computer
        4. ๐Ÿ”ญ Scope
        5. ๐Ÿ“ค Returning from a function
        6. โ™ป๏ธ Reusing the function
        7. ๐Ÿท๏ธ Parameterising a function
        1. โš–๏ธ Comparing current and target output
        2. โœ๏ธ Writing an assertion
        3. โ“ Conditionally executing code
        4. ๐Ÿง  Forming sub-goals
        5. ๐Ÿงถ Accessing strings
        6. ๐Ÿ—๏ธ Assembling the parts
        1. ๐Ÿ–ผ๏ธ Testing frameworks
        2. ๐ŸŽ’ Starting a project
        3. ๐Ÿ“ฆ Using packages
        4. ๐Ÿƒ Installing Jest
        5. ๐ŸŽ›๏ธ Jest's Application Programming Interface
        6. ๐Ÿ’ผ First test case
        7. โœ… โŒ Interpreting feedback
        8. ๐Ÿ—„๏ธ Generalising further

        ๐Ÿฃ JS2

        1. ๐Ÿ’พ Grouping data
        2. ๐Ÿ“œ Arrays
        3. ๐Ÿ” Iteration
        4. ๐Ÿค References
        5. ๐Ÿ”€ Mutation
        6. โš ๏ธ Side effects
        1. ๐Ÿ“ Ordered data
        2. ๐Ÿ—๏ธ Key-value pairs
        3. ๐Ÿšช Accessing properties
        4. โ“๐Ÿชข Query strings
        5. โ“ Parsing a single key-value pair
        6. [ ] Access with variables
        7. โ“โ“โ“ Parsing multiple parameters
        1. ๐Ÿ’ป User interfaces
        2. ๐Ÿ›‘ Implenenting a character limit
        3. ๐ŸŒฒ The DOM
        4. ๐Ÿ”Ž Querying the DOM
        5. ๐Ÿท๏ธ Updating the interface
        6. ๐ŸŽฌ DOM events
        7. ๐Ÿ“ค Reacting to events
        8. ๐Ÿงฉ Refactor

          ๐Ÿฅ JS3

          1. ๐Ÿ’พ โžก๏ธ ๐Ÿ’ป Rendering Data as UI
          2. ๐Ÿงฑ Composing elements
          3. ๐Ÿงผ Creating elements with functions
          4. ๐Ÿฑ Creating elements with <template>
          5. ๐Ÿƒ Reusable components
          6. ๐Ÿ—บ๏ธ Using map
          1. ๐Ÿช„ Reacting to user input
          2. ๐Ÿ”Ž Identifying state
          3. ๐Ÿงผ Refactoring to state+render
          4. ๐Ÿ†• Introducing new state
          5. ๐ŸŽฑ Rendering based on state
          6. ๐Ÿฆป๐Ÿป Capturing the user event
          1. ๐Ÿ• Fetching data
          2. ๐Ÿ—“๏ธ Latency
          3. โณ Asynchrony : outside time
          4. ๐Ÿชƒ Callbacks
          5. ๐ŸŒ Requesting from a server side API
          1. ๐Ÿซฑ๐Ÿฟโ€๐Ÿซฒ๐Ÿฝ Promises
          2. ๐Ÿช† .then()
          3. ๐Ÿฌ async/await
          4. ๐ŸฅŽ try/catch
          5. ๐Ÿ• ๐ŸŽž๏ธ fetch films

          ๐Ÿช„ Frameworks

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

          ๐Ÿ”Œ Servers

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

          ๐Ÿ’พ Databases

          1. Introduction to databases
          2. Introduction to PostgreSQL
          3. Communicating with the database using SQL
          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