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. ๐Ÿ“– How Computer really work? Chapter 1 & 2
  4. ๐Ÿ’ป Shell tools
  5. ๐Ÿ’ป cat
  6. ๐Ÿ’ป man pages
  7. ๐Ÿ’ป ls
  8. ๐Ÿ’ป wc
  9. ๐Ÿ’ป grep
  10. ๐Ÿ’ป sed
  11. ๐Ÿ’ป 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 Legacy Code
  2. ๐Ÿ—ฟ Fear and logic
  3. ๐Ÿงญ Finding things
  4. ๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ๐Ÿ‡ฌ๐Ÿ‡ง Identifying patterns
  5. ๐Ÿ› Debugging: Proposing and Discarding Hypotheses
  6. ๐Ÿงช Capturing behaviour in tests
  7. ๐Ÿ”ง Fixing: Targeted Changes with Test Support
  8. ๐ŸŒฑ Extending: Adding Features the Right Way

๐Ÿช† Complexity

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