• Team Roles ● Project management ● Coding ● Testing ● Coordinating
  • API
    • An API is stateful if the output of a request can depend on knowledge established between the client and server in previous interactions
    • blob = Binary Large OBject (aka usually not text)
  • Terminal
    • tree prints the tree structure of the current directory
    • Use less filename to get a scrollable view of filename
    • command1 || command2 runs command2 only if command1 failed
    • When redirecting output, Replacing > with >> results in the output being appended to the file instead of overwriting
    • To kill all processes created by a specific program, run killall program_name
    • Subshells
      • $(commands) runs commands in a “subshellˮ and the resulting value contains the contents of both stdout and stderr generated by commands
      • A subshell has access to all the variables of the parent, but any new changes it makes wonʼt affect the parent
  • Testing
    • Test Driven Development. Write tests before code.
    • layered testing strategies
      • testing for large projects
        • Core functionality is safeguarded with ● unit tests ● integration tests
        • Stability is ensured with ● regression tests ● performance tests ● compatibility tests
        • Real-world scenarios are validated through ● acceptance tests ● usability tests ● exploratory testing
      • testing for small projects
        • Unit
          • Create a table of “behaviors - input - output”
        • Integration
          • Ensures that different parts of the system work together correctly.
        • Functional
          • Focus on core user flows such as login, registration.
        • Regression
          • Ensure that new changes don't break existing functionality.
        • Exploratory
          • Uncover issues by manually simulating real-world use cases.
  • Workload estimate
    • PERT (Program Evaluation Review Technique): Te =(O+4M+P )/6 Where: ● O is the Optimistic time (the best-case scenario). ● M is the Most likely time (the most probable duration). ● P is the Pessimistic time (the worst-case scenario)
  • Agile: iteration, flexibility, and delivering value
    • Four Core Values (-2001)
      • Individuals and interactions over processes and tools
      • Working software over comprehensive documentation
      • Customer collaboration over contract negotiation
      • Responding to change over following a plan
    • Scrum
    • Extreme Programming (XP)
      • Pair programming
      • Test-Driven Development (TDD)
    • Kanban
      • Visualizing workflow