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

  1. Acceptable AI Use
  2. Create a work folder
  3. Check Git Installation
  4. Version control software
  5. Sharing history
  6. Configuring Git with VSCode

Onboarding

  1. Inspecting a commit
  2. Inspecting previous versions
  3. Forking a repository
  4. Working locally
  5. Viewing files from a git clone
  6. Branching
  7. Merging
  8. Form building
  1. Install a UNIX based operating system
  2. Install Node with nvm
  3. Interacting with computers
  4. Using an interface
  5. Terminal interface
  6. Prep Directory
  7. Running scripts
  8. Classifying data
  9. Saving expressions
  10. Comparing current and target output
  11. Conditionally executing code
  12. Errors
  13. Interpreting errors
  14. Interpreting this error
  15. Fixing the error
  1. Interview Introductions
  2. Functions
  3. Planning a function
  4. Declaring functions
  5. Scope
  6. Returning from a function
  7. Parameterising a function
  8. Refactoring
  9. Throwing Errors
  10. Breaking Down a Problem
  11. Undoing a Commit
  12. Ignoring Files

Structuring and testing data

  1. Evaluating expressions
  2. Prep Directory
  3. Saving expressions
  4. Declarations and statements
  5. Functions
  6. Running scripts
  7. Logging
  8. Errors
  9. Percentages
  10. Declaring functions
  11. Playing computer
  12. Scope
  13. Returning from a function
  14. Reusing the function
  15. Parameterising a function
  16. Solving Problems with Functions
  1. Comparing current and target output
  2. Writing an assertion
  3. Forming sub-goals
  4. Accessing strings
  5. Refactoring repetition
  6. 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. Dead Code
  9. Generalising further
  10. Anonymous functions
  11. Arrow functions
  12. Testing Workshop

Data groups

  1. Prep Directory
  2. Creating test files
  3. Grouping data
  4. Arrays
  5. Iteration
  6. References
  7. Mutation
  8. Side effects
  9. Arrays Workshop
  10. Fail Fast Prep
  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
  9. Prep Conflict Resolution
  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. Auditing changes to the DOM
  10. Refactor

Data flows

  1. How the internet works
  2. Usability Workshop Pre-reading
  3. Rendering Data as UI
  4. Composing elements
  5. Creating elements with functions
  6. Creating elements with <template>
  7. Reusable components
  8. 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