A Slim Book Every Junior Developer Needs To Read - Apprenticeship Patterns

Apprenticeship-patterns

Apprenticeship Patterns by Dave Hoover & Ade Oshineye

As a rule, each step should have a feeling of entrance. This is beginner's mind: the stage of becoming.
-- Shunryu Suzuki, Zen Mind, Beginner's mind

This book is suitable for: those who want to switch careers to software development, IT students about to enter the workplace, programmers in internship stage, protege developers, people who are enthusiastic in the craft of software development, and aspiring developers who want to further improve their skills.

Readers can read this book with a relaxed mind. This book is not a book about how to design or build software. It is a book about designing the beginning of your career as a software developer and help you to become great at what you do. Excluding the Introduction and Conclusion, there are five chapters: “Chapter 2 Emptying Cup”, “Chapter 3 Walking the Long Road”, “Chapter 4 Accurate Self-assessment”, “Chapter 5 Perpetual Learning”, and “Chapter 6 Construct your Curriculum”. In total there are 35 “patterns”, and each pattern is like an individual card containing “context”, “problem”, “solution”, and “action” etc. If you are not in a hurry to “finish reading” and return this book back to the library like me (thanks Future Makers Academy!), then you can treat this book as a reference book on your career development path, and refer to the corresponding “pattern” when you encounter specific problems.

My top ten favourite “apprenticeship patterns”:

Your first language

  • One of the fundamental ways to improve the experience of learning your first language is to have an actual problem to solve. (e.g. build a website or create a simple console game)
  • By far the best way to learn a language is to work with an expert in it. You can learn a language on your own, but unless you interact with experts, it may take longer to grasp the spirit of the language.
  • For several years, your first language will be the framework against which you learn other languages. The better you know your first language, the easier it will be to learn your next language.

Concrete skills

  • A developer should acquire and possess some specific tools and technologies. (such as JavaScript, basic web design skills, etc.), which will make your team believe that you are able to contribute.
  • Get in a habit of going through your own CV on a regular basis. As you do so, extract the concrete skills into a separate list. (A quick way to do it is to update the skill list on your LinkedIn profile)

Expose your ignorance

  • “Tomorrow I need to look stupider and feel better about it. This staying quiet and trying to guess what’s going on isn’t working so well.” – Jake Scruggs
  • Write down five things about your work that you don’t understand.

Nurture your passion

  • When you feel exhausted, what you need to do is to nurture your passion for the craft.
  • Work on what you like. Find something at work that interest you, or dedicate some time outside of work to build some Breakable Toys
  • Study the Classics and immerse yourself in great literature in the field when your passion is stifled.

Find mentors

  • When you need help and guidance, try to seek out those who have gone ahead of you and strive to learn from them.
  • Willing to provide mentoring to those who seek it from you, passing along what you have learned from your mentors

Expand your bandwidth

  • Sometimes it is necessary to develop some methods and skills to efficiently acquire, understand, maintain and apply new knowledge.
  • Seek new knowledge and experience from multiple dimensions: such as paying attention to online tutorials, communicating with authors, participating in conferences, etc.

Breakable Toys

  • Design and build a toy system, and use a relatively private space to seek failure. (A safe place to make mistakes)
  • Make the toy system relevant and useful to your apprentice experience (such as a wiki, calendar or address book)
  • Good habit: Every time you learn a new language, use it to create a game.

Record what you learn

  • Use a blog to record the lessons you learned.
  • Tools for maintaining records are also important Breakable Toys. (e.g. personal Tech blog!)

Share what you learn

  • In the early stages of the apprenticeship, develop a habit of regularly sharing the things that you learned. (write posts on Tech Blog, organise buddy catch-up meetings, etc.)
  • Teaching others is a very powerful learning method. (“When one teaches, two learn.”)

Reading List

  • Maintain a “reading list”, keep track of the books you intend to read, and record the books you have read.
  • You can store this list in your blog and keep the file updated.

Originally published in my blog 😊:

Lanzhou's Tech Blog: A Slim Book Every Junior Developer Needs To Read - Apprenticeship Patterns

Thank you, I will have a read of your blog about the book 😊

To view or add a comment, sign in

Others also viewed

Explore content categories