Book following the book The Pragmatic Programmer by David Thomas and Andrew Hunt
- Early adopter/fast adapter
- Inquisiive
- Critical thinker
- Realistic
- Jack of all trades
Tips:
- Care About Your Craft
- Think! About Your Work
-
It's Your Life
Tip: You Have Agency
-
The Cat Ate My Source Code
- Team Trust
- Take Responsibility
Tip: Provide Options, Don't Make Lame Excuses
-
Software Entropy
Tip: Don't Live with Broken Windows
-
First, Do No Harm
-
Stone Soup and Boiled Frogs
Tip: Be a Catalyst for a Change
Tip: Remember the Big Picture
-
Good-Enough Software
- Involve your users in the trade-off
Tip: Make quality a requirement issue
- Know when to stop
- Involve your users in the trade-off
-
Your Knowledge Portfolio
An investement in knowledge always pays the best interest. Benjamin Franklin
- Serious investors invest regularly - as a habit
- Diversification is the key to long-term success
- Smart investors balance their portfolios between conservatives and high-risk, high-reward investments
- Investors try to buy low and sell high for maximum return
- Portolios should be reviewed and rebalanced periodically
- Building your portfolio
- Invest regularly
- Diversify
- Manage risks
- Buy low, sell high
- Review and rebalance
Tip: Invest Regularly in Your Portfolio
- Opportunities for learning
- Critical Thinking
Tip: Critical Analyze What You Read and Hear
- Who does this benefit?
- What's the context?
- When or Where would this work?
- Why is this a problem?
-
Communicate
Quote: I believe that it is better to be looked over than it is to be overlooked. - Mae West
- Know your audience
- Know what you want to say
- Choose your moment
- Choose a style
- Make it look good
- Involve the audience
- Be a listener
- Get back to people
Tip: It's both what you say and the way you say it
- Documentation
Tip: Build documentation in, don't bold it on
Book recommendations about communications within teams
Tip: Good design is easier to change than bad design
- ETC is a value, not a rule
Tip: DRY - Don't repeat yourself
- Not all code duplication is knowledge duplication
- Duplication in documentation
- DRY violation in data
- Representational duplication
- Duplication across internal APIs
- Duplication across external APIs
- Duplication with data sources
- Interdeveloper duplication
Tip: Make it easy to reuse
- What is orthogonality?
- A nonorthogonal system
- Benefits of orthogonality
Tip: Eliminate effects between unrelated things
- Gain productivity
- Reduce risk
- Design
- Toolkit and libraries
- Coding
- Testing
- Documentation
- Living with orthogonality
Quote: Nothing is more dangerous than an idea if it's the only one you have. - Emil-Auguste Chartier
- Reversibility
Tip: There are no final decisions
- Flexible Architecture
Tip: Forgo following Fads
- Code that glows in the dark
Tip: Use tracer bullets to find the target
- Tracer bullets don't always hit their target
- Tracer code versus prototyping
- Things to prototype
- Architecture
- New functionality in an existing system
- Structure or content of external data
- Third-party tools or components
- Performance issues
- User interface design
Tip: Prototype to learn
- How to use prototypes
- Prototyping architecture
- How not to use prototypes
Tip: Program close to the problem domain
- Some real-world domain languages
- RSpec
- Cucumber
- Phoenix Routes
- Ansible
- Chracteristics of domain languages
- Trade-offs between internal and external languages
- An internal domain language on the cheap
Tips: Estimate to avoid surprises
- How acurate is acurate enough?
- Where do esitmates come from?
- Understand what is being asked
- Build a model of the system
- Break th model into components
- Give each parameter a value
- Calculate the answear
- Keep track of your estimation process
- Estimating project schedule
- Painting the missile
- Eating the elephant
Tip: Iterate the schedule with the code
- What to say when asked for an extimate -
I'll get back to you.
- What is plain text?
'Tip: Keep knowledge in plain text' - The power of text
- Insurance against obsolence
- Leverage
- Easier testing
- Lowest common denominator
Tip: Use the power of the command shell
- A shell of your own
Tip: Achieve editor fluency
- What does 'Fluent' mean?
- Moving towards fluency
- Growing your editor