Skip to content

Instantly share code, notes, and snippets.

@Auraelius
Last active May 6, 2020 00:02
Show Gist options
  • Save Auraelius/73bcacda1ba86dbdb88f3282137e6805 to your computer and use it in GitHub Desktop.
Save Auraelius/73bcacda1ba86dbdb88f3282137e6805 to your computer and use it in GitHub Desktop.
software engineering through four frames of perception

I tend to see software engineering through four frames of perception:

  • Technology
  • Technique
  • Tools
  • Teamwork

Technology:

  • Programming language - you will learn many before you're done
  • Libraries - learning libraries is the biggest part of web development
  • Network protocols - mostly HTTP/HTTPS
  • Databases - Relational (SQL), non-SQL, GraphQL
  • Constantly changing

Technique

  • Researching libraries - need to learn how to read difficult material for detail
  • Dealing with masses of text - again: reading for detail; watching delimiters
  • Architecture - arranging files, components, and subsystems to make systems better
  • Object-oriented programming - encapsulating all relevant data and behaviors into objects
  • Functional programming - functions as first-class data types
  • Asynchronous programming - simple code to handle complicated sequences
  • Test-driven design - turning failure into an asset
  • Refactoring - changing the implementation without changing the inputs & outputs
  • Abstraction, encapsulation, separation of concerns, and other CS concepts
  • Changes less quickly

Tools

  • Editor/debugger
  • Command line (several varieties and dialects)
  • REPL (node cli, browser console, etc.)
  • npm
  • Postman
  • dBeaver/pgsql
  • Constantly changing

Teamwork

(From small to big)

  • Pairing - Hardest to do, most immediately useful
  • Development team - Learning from and influencing your peers
  • Company - Understanding how engineering works with the rest of the business
  • Profession/community - It has never been a better time to learn software
  • Based on human nature
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment