Learn the command-line using bash.
- history and philosophy
- directories and files
- environment variables
- flags
- absolute and reltive paths
- interpolation, expansion, and math
- file redirects and pipes
- pipeline tools
- quotes
- scripts
- permissions
- jobs and processes
Learn the basics of vim, a powerful command-line text editor.
- understanding modes
- the language of vim
- moving around
- search and replace
- select cut paste
- vi is everywhere
Use regular expressions to solve problems.
- metacharacters
- character classes
- groups and repetition
- capture groups
- backreferences
- match, replace, split
How does networking work? What is TCP, HTTP?
- use curl and netcat
- learn about text-based network protocols such as http, irc, and email
- write tcp and http servers and clients using node.js
- inspect real packets with tshark/wireshark
Use the stream API in node to shuffle data around.
- learn the stream types: readable, writable, transform, duplex
- streaming core APIs
- use stream modules from npm to build streaming pipelines
- streaming transports in node and the browser: websockets, webrtc, tcp
- building symmetric streaming protocols
Use leveldb in node and the browser to persist data. Leveldb has a vast ecosystem of modular packages to enhance its functionality.
- get/put/batch/createReadStream
- thinking lexicographically
- leveldb API conventions
- handy modules: subleveldown, level-live-stream
- leveldb in the browser with indexedDB
- hyperlog, materialized views, and data replication
Learn how to use node core APIs and libsodium/nacl in node and the browser.
- hashes
- symmetric vs asymmetric crypto
- keypairs
- sign/verify
- box/secretbox
- identity systems
- crypto in p2p: hyperlog, bep44, ipfs, dat, bitcoin
Learn how to write tests for node and the browser.
- testable API design
- TAP consumers and producers
- testing in the browser
- testing workflows