🏫
Obvious University
Website
  • 👋Welcome to Obvious University!
  • Strategy
    • Sprints
      • 1️⃣Map
      • 2️⃣Sketch
      • 3️⃣Decide
      • 4️⃣Prototype
      • 5️⃣Test
    • Benchmarking
    • Research
      • 1️⃣Research guide
      • 2️⃣How to recruit users
      • 3️⃣How to conduct an interview well
      • 4️⃣How to take notes
      • 5️⃣How to prep for remote research
      • 6️⃣How to throw a watch party
      • 7️⃣How to create artefacts
  • Working with Features
    • Building with AI
      • 1️⃣Understand the tech
      • 2️⃣Map your product
      • 3️⃣Build a proof of concept
      • 4️⃣LLM Inputs
      • 5️⃣LLM Responses
    • Building Help and Support
      • 1️⃣How to scope a support experience
      • 2️⃣How to design discovery for support
      • 3️⃣How to design a support centre
      • 4️⃣How to write good support articles
  • Product Design
    • Microcopy
      • 1️⃣How to write well
      • 2️⃣How to write phrases
      • 3️⃣How to write messages
      • 4️⃣How to create a voice
    • Typography
      • 1️⃣How to compose type
      • 2️⃣How to create a type scale
      • 3️⃣How to pick typefaces
      • 4️⃣How to pair typefaces
    • Design System
      • 1️⃣Introduction to design systems
      • 2️⃣How to audit a design system
      • 3️⃣How to run a design system pilot
      • 4️⃣How to set up a design foundation
      • 5️⃣How to build components
      • 6️⃣How to document a design system
      • 7️⃣How to enable adoption and govern a design system
    • Mobile Engineering
      • 1️⃣Trunk based development
      • 2️⃣Agile development terminology
      • 3️⃣Git commit messages
      • 4️⃣Code review and pull requests
      • 5️⃣Readings
  • Delivery
    • Project Management
    • Collaboration
  • Hiring and Growth
    • Growth
      • 1️⃣Design growth framework
      • 2️⃣How to give ongoing feedback
      • 3️⃣How to check-in every quarter
      • 4️⃣How to address underperformance
      • 5️⃣FAQs
    • Hiring and careers
      • 1️⃣The Hiring Process
      • 2️⃣Diverse and Inclusive Hiring
  • PEOPLE EXPERIENCE
    • Benefits and Perks
      • 1️⃣Paid time off
      • 2️⃣Insurance and healthcare
      • 3️⃣Continuing education
      • 4️⃣Speaking at conferences
    • Starting at Obvious
      • 1️⃣Introducing Obvious
      • 2️⃣Set up your workspace
      • 3️⃣Onboarding
      • 4️⃣Finances
      • 5️⃣Code of Conduct
    • Employment policies
      • 1️⃣Equal opportunity employment
      • 2️⃣At-will employment
      • 3️⃣Employee records and privacy
      • 4️⃣Prevention of sexual harassment
      • 5️⃣Drugs and alcohol
      • 6️⃣Fraternisation
      • 7️⃣Non-compete and non-solicitation
      • 8️⃣Non-disclosure
Powered by GitBook
On this page
  • History
  • For early programmers
  • People, teams & projects
  • Computer science & meta
  • Software engineering
  • Agile & related processes
  • Release engineering
  • Android / Java / Kotlin
  • Web / JavaScript
  • Object-oriented programming
  • Testing
  • Front-end state management
  1. Product Design
  2. Mobile Engineering

Readings

PreviousCode review and pull requestsNextProject Management

Last updated 1 year ago

History

  • Hackers: Heroes of the Computer Revolution by Steven Levy

  • The Soul of a New Machine by Tracy Kidder

  • Revolution OS (documentary movie) (2001)

  • Pratul’s


For early programmers


People, teams & projects

  • Radical Candor by Kim Malone Scott

  • The Mythical Man Month by Frederick Brooks

  • Peopleware: Productive Projects and Teams by Tom DeMarco, Tim Lister

  • The Manager's Path by Camille Fournier


Computer science & meta

  • Conceptual Blockbusting by James L. Adams

  • Code Complete 2 by Steve McConnell

  • Programming Pearls by Jon L. Bentley

  • The Practice of Programming by Brian W. Kernighan, Rob Pike


Software engineering

  • Working Effectively with Legacy Code by Michael Feathers

  • Practical Object Oriented Design Patterns: in Ruby by Sandi Metz

  • Test Driven Development: By Example by Kent Beck


Agile & related processes

  • User Stories Applied: For Agile Software Development by Mike Cohn

  • Software Estimation: Demystifying the Black Art by Steve McConnell


Release engineering

  • The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win by Gene Kim, Kevin Behr, George Spafford

  • Accelerate: The Science of Lean Software and DevOps by Nicole Forsgren, Jez Humble, Gene Kim

  • Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble, David Farley


Android / Java / Kotlin

  • Reactive Programming with RxJava by Tomasz Nurkiewicz, Ben Christensen

  • Effective Java by Joshua Bloch

  • Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

  • Androids: The Team That Built the Android Operating System by Chet Hasse


Web / JavaScript

  • Eloquent JavaScript by Marijn Haverbeke


Object-oriented programming


Testing


Front-end state management


Get better at programming by learning how things work - by Julia Evans

5️⃣
software engineering favourites
Get better at programming by learning how things work
How to ask good questions
Moving faster
https://www.youtube.com/watch?v=PUv66718DII
https://jvns.ca/blog/learn-how-things-work/
Writing system software: code comments.