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

  1. πŸ“– Binary and hexadecimal numbers
  2. πŸ“– CPU and memory
  3. πŸ’» Shell tools
  4. πŸ’» cat
  5. πŸ’» man pages
  6. πŸ’» ls
  7. πŸ’» wc
  8. πŸ’» grep
  9. πŸ’» sed
  10. πŸ’» awk
  1. πŸ“– Programming language concepts
  2. πŸ“– Bitwise operators
  3. βš–οΈ Comparing programming languages
  4. πŸ’» Shell pipelines
  5. πŸ’» grep in pipelines
  6. πŸ’» sort and uniq
  7. πŸ’» head and tail
  8. πŸ’» tr
  9. ❓ jq
  1. ❓ NodeJS
  2. πŸ“š Using dependencies from npm
  3. πŸ“š Installing dependencies with npm
  4. πŸ’» Operating systems
  1. πŸ’» Single-use data analysis programs
  2. πŸ“– Comparing JavaScript and Python
  3. πŸ“– Converting JavaScript to Python
  4. πŸ“– Virtual environments
  5. πŸ“– Using Python dependencies

πŸš₯ Logic

  1. 🧠 Introduction
  2. πŸš₯ Deduction
  3. 🍱 Induction
  4. πŸ”Ž Abduction
  5. πŸ—ΊοΈ The Problem Domain
  6. ❌ Falsification
  7. βœ‚οΈ Bisection
  8. 🎭 Boolean Logic
  9. πŸ€ 1000 Bottles of Wine
  10. πŸ€ Binary Information Theory

🧩 Decomposition

  1. πŸ“– Read about the Internet
  2. πŸ“– Read about the world-wide web
  3. βœ‹ Limitations of frontends
  4. ❓ What is a backend?
  5. 🧠 Backend statefulness
  6. βœ‹ Limitations of backends
  7. ❓ Responsibilities of frontends, backends, and databases
  8. ✏️ Design a frontend and backend
  9. ⌨️ Write a frontend and backend
  10. ⬆️ Deploy a frontend and backend
  1. πŸ”Ž Data validation
  2. πŸ“ Chat application requirements
  3. 🚧 Making a non-live chat application
  4. ➑️ Deploying the chat application
  5. βœ‹ Limitations of a single request/response
  6. πŸ§‘β€πŸ”¬ Designing a streaming API
  7. πŸ”„ Repeated client requests for updates
  8. ⏳ Long-polling
  1. πŸ“– Different experiences for different users
  2. πŸ“– Extracting common functionality
  3. πŸ“– Extracting a middleware
  1. 🌫️ Coming soon

πŸ—ΊοΈ Legacy code

  1. πŸ“– Understanding existing code
  2. πŸ“– Debugging existing code
  3. πŸ“– Fixing existing code
  4. πŸ“– Extending existing code

πŸͺ† Complexity

  1. πŸ“– Memory consumption
  2. πŸ“– Big-O
  3. πŸ“– "Expensive" Operations
  4. πŸ“– Pre-computing
  1. πŸ“– Trade-offs
  2. πŸ“– Network as a bottleneck
  3. πŸ“– Caching