Course Wrapup

Key ideas and red flags: see slides

This class is just a beginning

  • Goal for this class: start the process
  • To keep learning, need experience and feedback:
    • Try something hard enough to push you outside your comfort zone
    • Make mistakes
    • Get feedback (ideally, from an expert)
    • Rework to improve
  • How to get feedback?
    • Code reviews (ideally, with experts)
  • Reviewing other people's code also helps
    • Learn to recognize red flags
  • Learn to provide feedback for yourself
  • Be curious

What to do you when you get into a company?

  • Many companies don't care about software design
  • As a fresh-college grad, it may not be possible for you to change the organization.
  • When interviewing for jobs, look for a company that cares about software design:
    • Ask to see code.
    • Ask tough and specific questions:
      • Is any time budgeted for code cleanup and refactoring?
      • Does management care about code quality? Give an example
      • Does management set reasonable project schedules?
  • Do as much as you can in your own code:
    • Write documentation, even if people say it's silly ("it helps me organize my thoughts")
    • Take a little extra time to design carefully
    • Take time to clean up as you make changes
  • Keep developing your own design skills
  • Look for opportunities to influence the organization
    • Start code reviews with other engineers, if there aren't any already
    • Offer to help train new hires
  • As you get more senior, use your influence to change the organization:
    • Code reviews: discuss design, not just style standards
    • Unit tests
    • Documentation
    • Coding standards