Books

The Linux Command Line: A Complete Introduction by William Shotts (goodreads.com)

Skimmed through this one and would definitely recommend it to new developers looking to get familiar with Linux. The book’s comprehensive, practical approach makes it a great resource for learning the ropes.

Articles

Algorithms we develop software by (grantslatton.com)

Conceptually (at least) valueble set of methodologies when think software development as pathfinding in a problem space. In a summery

  • Write everything twice

    Solve the problem, stash code into a branch, rewrite again (keep the unit test you wrote) for 2x highter quaility codefor 1.25x the time.

  • “Gun to the head” heuristic

    Let’s say you save a task that take 2 weeks to implement. Ask the question what would you do if someone has a gun to your head do this in 24 hours. Work on that approach first.

On writing well (zodvik.com)

Checklist to bring absolute charity to your writings.

  • Use fewer than 30 words per sentence.
  • Check for words you can remove from a parse. If meaning remains clear, just remove it.
  • Check for terms your audience may not be familiar with and remove them or explain the terms along with usage.
  • Check for adjectives that can be replaced with data or details.
  • Ask the question “So what?” to every sentence you write.
  • Rewrite sentences to use active voice over pasive voice.
  • Check for obseolete data and replace them with non-obselete data (etc. replace in 2 weeks with exact date).