Course overview
Objective
The objective of this course is to train people to get a good job in technology.
Pre-requisites of this course is having completed Code Your Future’s Intro to Programming course which teaches the basics of programming with JavaScript, Python, and SQL.
Outcomes of this course are that you can write high quality code in a language and take a further course to specialise for a job role in tech.
Modules
π§° Tools
- π Binary and hexadecimal numbers
- π CPU and memory
- π» Shell tools
- π» cat
- π» man pages
- π» ls
- π» wc
- π» grep
- π» sed
- π» awk
- π Programming language concepts
- π Bitwise operators
- βοΈ Comparing programming languages
- π» Shell pipelines
- π» grep in pipelines
- π» sort and uniq
- π» head and tail
- π» tr
- β jq
- β NodeJS
- π Using dependencies from npm
- π Installing dependencies with npm
- π» Operating systems
- π» Single-use data analysis programs
- π Comparing JavaScript and Python
- π Converting JavaScript to Python
- π Virtual environments
- π Using Python dependencies
π₯ Logic
- π§ Introduction
- π₯ Deduction
- π± Induction
- π Abduction
- πΊοΈ The Problem Domain
- β Falsification
- βοΈ Bisection
- π Boolean Logic
- π 1000 Bottles of Wine
- π Binary Information Theory
𧩠Decomposition
β±οΈ Backends and Frontends
- π Read about the Internet
- π Read about the world-wide web
- β Limitations of frontends
- β What is a backend?
- π§ Backend statefulness
- β Limitations of backends
- β Responsibilities of frontends, backends, and databases
- βοΈ Design a frontend and backend
- β¨οΈ Write a frontend and backend
- β¬οΈ Deploy a frontend and backend
- π Data validation
- π Chat application requirements
- π§ Making a non-live chat application
- β‘οΈ Deploying the chat application
- β Limitations of a single request/response
- π§βπ¬ Designing a streaming API
- π Repeated client requests for updates
- β³ Long-polling
- π Different experiences for different users
- π Extracting common functionality
- π Extracting a middleware
- π«οΈ Coming soon
πΊοΈ Legacy code
- π Understanding existing code
- π Debugging existing code
- π Fixing existing code
- π Extending existing code
πͺ Complexity
β±οΈ Memory and CPU
- π Memory consumption
- π Big-O
- π "Expensive" Operations
- π Pre-computing
β±οΈ Caches and trade-offs
- π Trade-offs
- π Network as a bottleneck
- π Caching