๐ฆ 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
๐ User focused data
โฑ๏ธ Version control
- Version control software
- Sharing history
- Inspecting a commit
- Inspecting previous versions
- Forking a repository
- Working locally
- Viewing files from a git clone
- Branching
- Form building
- Databases with Google Sheets
- Accessibility audit
๐ฅ Structuring and testing data
โฑ๏ธ Programming fundamentals
- ๐ท๏ธ 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
- โ๏ธ Comparing current and target output
- โ๏ธ Writing an assertion
- ๐ Interpreting errors
- ๐ง Interpreting this error
- ๐ Reusing variable names
- โ Conditionally executing code
- ๐ง Forming sub-goals
- ๐งถ Accessing strings
- ๐งน Refactoring repetition
- ๐ฌ Identifying missing tests
โฑ๏ธ Test cases with Jest
- ๐ผ๏ธ Testing frameworks
- ๐ Starting a project
- ๐ฆ Using packages
- ๐ Installing Jest
- ๐๏ธ Jest's Application Programming Interface
- ๐ผ First test case
- โ โ Interpreting feedback
- ๐๏ธ Generalising further
- ๐ท๏ธ Anonymous functions
- โก๏ธ Arrow functions
๐ฃ Data groups
- ๐พ 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
- โฐ Timers
- ๐ฌ DOM events
- ๐ค Reacting to events
- ๐งฉ Refactor
๐ฅ Data flows
โฑ๏ธ 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
- ๐ Re-rendering
- ๐ Actually re-rendering
โฑ๏ธ Fetch and Asynchrony
- ๐ Fetching data
- ๐๏ธ Latency
- โณ Asynchrony : outside time
- ๐ช Callbacks
- ๐ Requesting from a server side API
- ๐ซฑ๐ฟโ๐ซฒ๐ฝ Promises
- ๐ช .then()
- ๐ฌ async/await
- ๐ ๐๏ธ fetch films