Review Book of The Effective Engineer

October 13, 2024 (1y ago)

by Satrya

Chapter 1: Outlining the mindset of leverage#

  • Leverage = Impact Produced / Time Invested
  • Leverage is the return on investment (ROI) for the effort that’s put in.
  • Effective engineer != working more hours.
  • Increase the numerator (impact), keep the denominator small (time).
  • Pareto principle or 80-20 — 80% impact comes from 20% of the work.
  • Onboarding new hires is high ROI activity.
  • High Output Management book, Andrew Grove said — leverage is the amount of value that you produce per unit time, can only be increased in 3 ways
    1. By reducing the time it takes to complete a certain activity.
    2. By increasing the output of a particular activity.
    3. By shifting to higher-leverage activities.
  • Focus on high-leverage activities.

Chapter 2: How both Optimizing for Learning#

  • Optimizing for learning is a high-leverage activity for the effective engineer

  • Adopt a Growth Mindset — believe that people can culitvate and grow the intelligence and skills through effort; view challenges and failures as opportunities to learn.

    • accepting responsibility for each aspect of a situationthat you can change — anything from improving your conversational skills to mastering a new engineering foucs — rather than blaming failures and shortcomings on things outside your control.
    • making your own story — means investing in your rate learning.
  • invest in your rate of learning — learning like interset, also compounds.

    • 3 takeways:
      1. Learning follows an exponential growth curve — give foundation, enabling to gain more knowledge even faster.
      2. The earlier optimize for learning, the more time learning has to compound. A good first job, make it easier to get a better second job.
      3. Due to compounding, even small deltas in learning rate make a big difference over the long run.
    • prioritise learning over profitablity to increase the chances of success.
    • improve just 1% per day and build upon that every single day — 37x better, not 365% (3.64%) better
    • invest time in activities with the highest learning rate.
  • Seek work environment conducive to learning

  • 6 major factors to consider for job:

    1. Fast Growth — providing ample opportunities to make a big impact and to increase responsibility.
    2. Training — strong onboarding programs demonstrate that the organization prioritize training new employees.
    3. Opennes — look for a culture of curiosity, where everyone is encouraged to ask questions, coupled with a culutre of opnnes, where feedback and information is shared proactively.
    4. Pace — a work environment that iterates quickly provides a faster feedback cycle and enbales to learn at a faster rate. Push yourself, but also find a pace that's sustainable in the long run.
    5. People — surrounding with people who are smarter, more talented, and more creaative means potential teachers and mentors.
    6. Autonomy — the freedom to choose what to work on and how to do it. as long as have the support that need to use that freedom effecively.
  • Dedicate time on the job to develop new skills — use 20% time a weekf to develop a skill at work.

    1. study code for core abstractions written by the best engineers at company.
    2. write more code.
    3. Go through any technical, educational material available internally.
    4. Master the programming languages that you use. — read a good book or two on them. understand advanced concepts. Make sure that at least one of your language is a scripting language (e.g Python or Ruby), so that can use ot as Swiss army knife for quick taks.
    5. Send your code reviews to the harshes critics — optimize for getting good, thoughtful feedback rather than for lowering the barrier to getting work checked in.
    6. Enroll in classes on areas where you want to improve.
    7. Participate in design discussions of projects you're interested in — do not wait for an invitation, just being silent observer.
    8. work on a diversity of projects — the interleaved practice of different skills is more effective than repeated, massed practice of a single skill at preparing people to tackle unfamiliar problems.
    9. Make sure on a team with at least a few senior engineers whom you can learn from. If not considering chaning projects or teams.
    10. Jump fearlessly into code you don't know — in the practice of digging into things you don't know, you get better at coding.
  • Always be learning — research in positive psychology shows that continual learning is inextricably linked with increased happiness.

    • Many ways to learng and grown in whatever you love to do. 10 starting points to help inspire a habit of learning outside of the workplace:
      1. Learn new programming language and frameworks — set a goals to spend time an master them.
      2. Invest in skills that are in high demand — evaluate the current industry trends and demand for skills.
      3. Read books — it offers a way to learn from the lessons and mistakes of others; can re-apply the knowledge without having to strat from scratch.
      4. Join a discussion group — providing members with a structured opportunities to improve themselves.
      5. Attend talks, conferences, and meetups — attend targeted conferences to get more familiar with industry trends and to meet people who share our interests.
      6. Build and maintain a strong network of relationships — the more people they meet, the greater opportunity they have of running into someone who could have a positive effect on their lives.
      7. Follow bloggers who teach — subscribe to blog newsletters and learn ways to shortcut around the mistakes that they've made.
      8. Write to teach — gain a deeper understanding ideas by teaching people with writing. Writing also provides an opportunity for mindful reflection on what you've learned.
      9. Tinker on side projects — creativity stems from combining existing and often disparate ideas in new ways.
      10. Pursue what you love — spent time with doing what you love. let that passion fuel your motivation to learn and to grow.
  • Key takeways from optimize for learning;

    1. Own your story — focus on changes that are within your sphare of influence rather than wasting energy on blaming the parts that you can't control.

    2. Don't shortchange your learning rate — learning compounds like interest, the more you learn, the easier it's apply prior insights and lessons to learn new things.

Chapter 3: Regular prioritization to accelerate growth and make the most of our time#

  • 📝

Chapter 4: Iterating Quickly#

  • 📝

Chapter 5: Measuring wh#

  • 📝