Skip navigation

bafonins.xyz
↵ All articles

Copywork for Programmers

Table of contents

Introduction

Copywork, traditionally a learning method in the arts and literature, involves mimicking the work of others to grasp their techniques and styles. When diving into a new job, I have found this method particularly effective for understanding a company’s codebase. This guide reflects on my approach, hoping to offer fellow developers a tool for their learning arsenal.

Why Copywork?

Upon joining a new company, the initial challenge is usually the codebase (assuming that the rest of the onboarding process went well 😅). It is vast, complex, and like a new language filled with its unique idioms and syntax. My strategy? Copywork. By selecting and typing out merged pull requests, I immerse myself in the new digital dialect. This method is not just about rote copying; it is a deep dive into understanding decision-making, coding styles, and problem-solving approaches specific to my new team.

The Process

  1. Selecting Pull Requests: I choose merged pull requests that have proper acceptance criteria defined and are neither too small nor overwhelming. They should be just right to cover significant code changes without drowning in them.
  2. Typing it Out: The real work is in the manual entry. As I type, I pay attention to every detail, questioning each decision and structure. This active engagement uncovers the rationale behind certain patterns and practices.
  3. Reflection: After copying, I take time to reflect. What did I learn? How could this approach be optimized? This step is crucial for moving from mere copying to deep understanding and eventual innovation.

Note: Copywork in coding is not about plagiarism. The goal is learning and understanding, not passing off someone else’s work as your own. It is a method to accelerate your integration into a new development environment and foster a culture of continuous improvement and adaptation.

Conclusion

Every time I join a new company, copywork is my go-to method for getting up to speed with the codebase. It bridges the gap between unfamiliarity and competence, allowing for a smoother transition and quicker contributions to the team. Try integrating copywork into your next onboarding process, and witness firsthand its impact on your coding fluency and problem-solving skills.