Course overview

4 modules of 3 sprints delivered over 12-16 weeks

Objective

The objective of this course is to give people with no prior software development experience an introduction to programming and thinking about data. Common next-steps after this course are to get an entry level job in tech or IT, or to continue learning more advanced software engineering techniques to prepare for a software engineering job.

Primarily this is achieved by teaching programming concepts with JavaScript and Python and data concepts with SQL in spreadsheets. We also focus on professional development skills such as communicating effectively and working well on a team.

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

Welcome to Code Your Future

    Onboarding

    1. GitHub.dev
    2. Install VSCode
    3. Check Git installation
    4. Create a work folder
    5. Version control software
    6. Sharing history
    7. Inspecting a commit
    8. Inspecting previous versions
    9. Forking a repository
    10. Working locally
    11. Viewing files from a git clone
    12. Branching
    1. Form building
    2. Databases with Google Sheets
    1. Accessibility audit
    2. Interview Introductions

    Structuring and testing data

    1. Interacting with computers
    2. Using an interface
    3. Terminal interface
    4. Classifying data
    5. Evaluating expressions
    6. Prep dir
    7. Saving expressions
    8. Declarations and statements
    9. Functions
    10. Running scripts
    11. Logging
    12. Errors
    13. Percentages
    14. Declaring functions
    15. Playing computer
    16. Scope
    17. Returning from a function
    18. Reusing the function
    19. Parameterising a function
    20. Solving Problems with Functions
    1. Comparing current and target output
    2. Writing an assertion
    3. Interpreting errors
    4. Interpreting this error
    5. Reusing variable names
    6. Conditionally executing code
    7. Forming sub-goals
    8. Accessing strings
    9. Refactoring repetition
    10. Identifying missing tests
    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
    9. Anonymous functions
    10. Arrow functions
    11. Testing Workshop

    Data groups

    1. Prep dir
    2. Creating test files
    3. Grouping data
    4. Arrays
    5. Iteration
    6. References
    7. Mutation
    8. Side effects
    9. Arrays Workshop
    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
    8. Objects Workshop
    1. User interfaces
    2. Implementing a character limit
    3. The DOM
    4. Querying the DOM
    5. Updating the interface
    6. Timers
    7. DOM events
    8. Reacting to events
    9. Refactor

    Data flows

    1. How the internet works
    2. Rendering Data as UI
    3. Composing elements
    4. Creating elements with functions
    5. Creating elements with <template>
    6. Reusable components
    7. Using map
    1. Gathering requirements
    2. Reacting to user input
    3. Identifying state
    4. Refactoring to state+render
    5. Introducing new state
    6. Rendering based on state
    7. Capturing the user event
    8. Re-rendering
    9. Actually re-rendering
    1. Fetching data
    2. Latency
    3. Synchronous execution
    4. Callbacks
    5. Requesting from a server side API
    6. Promises
    7. .then()
    8. async/await
    9. Fetch Films