Skip to content

Instantly share code, notes, and snippets.

@ecmendenhall
Created June 18, 2017 22:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ecmendenhall/69dddadca906d3602f657853196a36da to your computer and use it in GitHub Desktop.
Save ecmendenhall/69dddadca906d3602f657853196a36da to your computer and use it in GitHub Desktop.
Technical Cohort Goals

Accountability Partner

  • Colin

25 Goals:

  • Reimplement a nontrivial text-processing tool from scratch. (grep, sed, diff)
  • Reimplement a nontrivial process-related tool from scratch. (ps, top, lsof, kill)
  • Reimplement a nontrivial filesystem-related tool from scratch. (mv, chmod, chown)
  • Reimplement a nontrivial networking-related tool from scratch. (telnet, ftp, curl/wget)
  • Write my own kernel module
  • Write my own device driver
  • Learn modern C (including tools and patterns for writing safe C).
  • Learn a modern non-C systems programming language (Rust)
  • Modify and install a kernel from scratch
  • Contribute a change to the Linux kernel
  • Understand basic assembly
  • Learn to use gdb
  • Read through K&R and a "modern C" companion
  • Learn to use ptrace/strace/dtrace
  • Give a talk/workshop on C for beginners
  • Document everything in a blog/journal
  • Start live streaming coding sessions
  • Write a blog-over-telnet service
  • Learn valgrind
  • Write a nontrivial application that uses some other library (libcurl, libcurses)
  • Do some of the stuff above in Rust
  • Do some of the stuff above in Go
  • Do some of the stuff above in a crazier language like OCaml or Haskell
  • Replace lighttpd with my own implementation on personal.pizza
  • Put together a talk on C for non-C programmers

5 Goals:

  • Learn modern C (including tools and patterns for writing safe C).
  • Reimplement a nontrivial text-processing tool from scratch. (grep, sed, diff)
  • Reimplement a nontrivial process-related tool from scratch. (ps, top, lsof, kill)
  • Reimplement a nontrivial networking-related tool from scratch. (telnet, ftp, curl/wget)
  • Contribute a change to the Linux (or BSD or whatever) kernel
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment