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