Why Good Programming is Important
Learning to Code is Only a Starting Place
Importance of Low-Level Knowledge
Coding, Programming, Engineering, and Computer Science
1
THE INTERNAL LANGUAGE OF COMPUTERS
Representing Integers Using Bits
The IEEE Floating-Point Standard
Easier Ways to Work with Binary Numbers
The American Standard Code for Information Interchange
The Evolution of Other Standards
Unicode Transformation Format 8-bit
Using Characters to Represent Numbers
The Case for Digital Computers
The Difference Between Analog and Digital
Digital Makes for More Stable Devices
Why Bits Are Used Instead of Digits
Using Plumbing to Understand Electricity
Improving Noise Immunity with Hysteresis
Building More Complicated Circuits
Memory Organization and Addressing
Flash Memory and Solid State Disks
Error Detection and Correction
Data Paths and Control Signals
RISC vs. CISC Instruction Sets
Microprocessors and Microcomputers
Procedures, Subroutines, and Functions
Memory Hierarchy and Performance
More Efficient Memory Allocation
10
APPLICATION AND SYSTEM PROGRAMMING
Guess the Animal Version 1: HTML and JavaScript
Terminals and the Command Line
Better Code Through Good Abstractions
11
SHORTCUTS AND APPROXIMATIONS
12
DEADLOCKS AND RACE CONDITIONS
Short-Term Lock Implementation
Asynchronous Functions and Promises
Overview of Security and Privacy
Authentication and Authorization
Generating Good Random Numbers Is Hard
Extreme Cleverness Is Your Enemy
Dynamic Memory Allocation Isn’t Your Friend
Garbage Collection Is Not Your Friend Either
Working with Different Personalities
3.140.185.170