Learn: Basics

1. Topics

  • computing
  • binary
  • cpu
  • kernel
  • open source
  • linux
  • assembly
  • algorithms
  • runtime
  • compiler
  • gpu
  • memory
  • networking
  • internet
  • development
  • software
  • apps

2. Find answers to...

  • What is a computer?
  • How do computers run?
  • What is assembly language, C/C++, interpreted languages, runtime, compilers?
  • What are containers, docker, Kubernetes?
  • What are lower and higher level languages?
  • What languages work best for prototyping, speed/performance, large teams/apps, web interactivity, data science, scaling up?
  • What is the cloud, compute, storage?
  • What is on-premises?
  • What is virtualization, virtual machines, hypervisors, key management systems?
  • What are APIs/services, monoliths, microservices?
  • What are the advantages and disadvantages of monolithic vs microservice architectures?
  • What are low code, no code, and WYSIWYG tools?
  • How do you solve problems with computers and code?

3. Objectives

  • Understand the Basics of Computer Science and Engineering
  • Figure out the building blocks necessary to build modern apps, services, systems, platforms
  • Comprehend the broad differences between programming languages
  • Know what constitutes modern, digital infrastructure
  • Explore cloud computing, cloud storage, virtualization and cloud infrastructure management tools
  • Learn how reasonable people think about the best tools for which use-cases, e.g. Rust instead of Python

4. My Observations

  • The hardest part of building software is not coding, it's requirements
  • Requirements are usually specified by business owners who have no idea the complexity involved with every extra word included on the spec sheet
  • Trade-offs need to be made after considering tech stacks, cost, manpower, security, timeline, business risks, policy blockers
  • But none of these can be done with poor understanding of foundational technologies that make the web tick
  • If you're good enough, you can use any language/framework/libraries to build crazy stuff, but doing so can be inefficient and low ROI
  • Almost all architectures/tools/frameworks are good at some stuff and lacking in others - the key is to make informed choices for the problem we're solving, not be dogmatic
  • Business processes, service processes, policies can block technical and lead to unnecessary poor outcomes

5. Courses

6. Readings

7. Watch on Youtube