Home Executing Apprenticeship Pattern
Post
Cancel

Executing Apprenticeship Pattern

book link: https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/

New concepts

  • Contribute to online communities.
    • I mostly learn new things on my own. And I use all the online communities as a form to look up questions, but never really have the patience to answer other ppl’s questions. Time to change that.
  • Share what you have learned via blogs and connecting to the author.
    • I finished reading this book half a year ago without writing a blog. tbh I remember nothing about this book now. By writing a blog, I’m hoping to convert what I read into what I gain.
  • Be picky about things I practice.
    • Since there are numerous online tutorials and ofc leetcode, I found it’s easier for me to make progress in job search compared to actually working. When job searching, I just repeat those defined practices and progress daily. But now at work, I suddenly lost track of what to practice. I read articles, try new tools, yes. But I’m not deliberately practicing anything. Time to change that by:
      • Reading technical books and taking courses.
      • Writing out what I have learned or making anki cards about new concepts.

Action Items

Think/Reflect

To look into the future

  • Collect resumes of people who I respect. Identify the skills that I want to gain and plan a toy project to demonstrate that skill.
  • Plan my career with this question: Imagine 40 years later, when I am writing a summary of my professional life, what would I want to write?

To look back to the past

  • Define the metrics to measure the complexity of my project by reflecting on these questions:
    • What is the biggest project I have ever worked on in terms of lines of code and number of developers?
    • What is the biggest codebase I have ever built on my own?
  • Draw a personal practice map. Consciously write things I do and think about connections between them. Identify the efforts and the payoff for the things I do.

Connect with people

  • Start a blog and write/read blogs that interest you.
  • [Will be hard for me] Start a study group using the knowledge hydrant pattern language from Joshua Kerievsky’s paper “A Pattern Language for Study Group”
  • Find another software engineer and sit next to them to solve a problem together.
  • Start reading technical books. Contact the author with some questions & appreciation after you’re finished the book.
  • Subscribe to a moderately high-traffic online mailing list and try to answer people’s questions by reproducing their issues.

Go dig deeper on your own

  • Consistently assign time to learn new things.
  • Avoid practicing the wrong things. Use classic and well-sorted material as the practice source, such as courses, textbooks and the classics.
  • Pick a sophisticated open source project (I would be interested in spark, beam). Browse the project’s source, noting the ideas that are new to you and write a blog post describing the architecture of the system and emphasize the new ideas you learned.
This post is licensed under CC BY 4.0 by the author.