Course Wrapup
Lecture Notes for CS 190
Spring 2016
John Ousterhout
- 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)
- Learn to recognize red flags, so you can provide feedback for yourself
- What to do you when you get into a company?
- Many companies don't care about software design, will pressure
you to do a quick-and-dirty job.
- 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 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?
- Look at their faces: engineers are bad liars
- Do as much as you can in your own code:
- Write documentation ("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 mutual code reviews with other young engineers,
if there aren't any already
- Offer to help train future new hires
- As you get more senior, use your influence to change the
organization:
- Code reviews
- Unit tests
- Documentation
- Coding standards