10x developer
Books,  code

How to become a 10x developer

Every employer wants a 10x developer — an elite developer that is able to produce code ten times faster and better than their peers. They are an elusive select few that is able to command higher paychecks and can snap up jobs faster than anyone.

But being a 10x developer is relative.

It’s all about perspective

If the team is weak or are mostly made up of juniors, a semi proficient developer can be viewed as a 10x developer. If you take the big fish and put them in a bigger pond, you’ll find that they’re not as effective or efficient as those in the newer and more challenging environment.

Nevertheless, it’s still possible to be a 10x developer in any environment — if you keep using yourself as the baseline to assess against.

The Japanese have a concept called kaizen — or continuous improvement. Mathematically, if you improve yourself at a rate of 1% daily, you’ll be 100% better in approximately 70 days. This means that the starting point youcompound approximately every 70 days. If you consistently this up, you’ll be a 10x developer that’s a proper big fish in any pond no time.

Theoretical self-improvement mathematics aside, here are some things you can do to contribute to your continuous learning journey.

Start with the big ideas

Programming’s purpose is to codify the world through a series of patterns written in a particular set of syntax based rules. Anyone can learn to program — but what’s often missing is efficient code grammar and effective style. New developers tend to ‘waffle’ with their code, resulting in convoluted garbage code that are prone to bugs.

People always say write your code in a concise and elegant manner — what does that actually mean?

To write concise and elegant code means to embed your code with effective patterns and paradigms that’s been tried, tested and deemed as the current best solution for a particular scenario or set of conditions. For a x10 developer, this process is second nature.

So what are these effective patterns and paradigms?

The two big ideas that can transform the efficiency of your code are functional and object oriented programming patterns. Approach both ideas with a neutral mindset because there is a lot of vocal advocates that will do their best to discredit the other. Both patterns are not 100% perfect for every occasion but understanding how to use both can help you determine which is the most appropriate solution for your required conditions.

Application of SOLID ideas is also another pattern that can help alleviate messy code, bring structure and allow your work to have a standardized method of communication between developers.

Having knowledge of your language’s methods and structures can also make you a better developer in the long run. You don’t have to understand everything or know how to use them. Awareness of their existence is often enough as a starting point until the opportunity arises to use them in context.

Follow the industry leaders

There are a handful of industry leaders that are also prolific content creators. Martin Fowler is the one of the most cited code influencer. Other big names include Robert C. Martin, Alistair Cockburn, Kent Beck, Grady Booch, Eric Gamma, Gregor Hohpe, Craig Larman, Neal Ford, Douglas Crockford and Brendan Eich.

They are the movers and shakers in the industry — the ones that are talking endlessly about the issues, the solutions and potential ways to look at, create and consume code. Their talks and ideas are generally language agnostic — meaning that anyone from any discipline can consume their ideas.

Their talks and presentations are often recorded and posted on YouTube. Here are a few helpful channels that you can listen to in your between time.

The talks recorded and posted in these channels often cover big ideas that can be applied to your day to day coding activities.

Read some books

Despite technology and its constant new release schedules, tech books are not quite as obsolete as we may think they are. There are certain ‘classics’ that is akin to the Charles Dickens of technology must reads.

These books are even more vital towards creating code that has a solid foundation and better view of how things fit together. While online tutorials are great, books give a better in-depth and holistic bird’s eye view. Reading tech books is also a good way to expand your knowledge domains and give you dots to connect in the future.

Here are a my top ten recommended reads.

1. Domain-Driven Design Reference: Tackling Complexity in the Heart of Software 

by Eric Evans

This book isn’t just about code. It’s also about how to organize your teams and design your system based on the conditions rather than conform the conditions to the code. This book is one of the best staple reads for anyone that crafts code.

2. Clean Code: A Handbook of Agile Software Craftsmanship

by Robert C. Martin

Clean code focuses on functions, classes and code smell. Although a word of warning, examples are in Java and some of the illustrated ideas are not applicable and transferable to other languages. Nevertheless, if you want to upgrade yourself as a developer, it’s still pretty decent reading material.

3. Structure and Interpretation of Computer Programs

by Harold Abelson, Gerald Jay Sussman and Julie Sussman

This book is often prescribed in computer science classes and for good reason — the authors set out to change the way you think about programming. It does have a bit of mathematics in it but if you can get past this, it will make you a better programmer in contrast to just being a mere coder.

4. Head First Design Patterns — A Brain-Friendly Guide 

by Eric Freeman, Bert Bates, Kathy Sierra and Elisabeth Robson

If reading tech books isn’t really your thing, this book is akin to a paperback version of your online tutorials — but more in-depth and with a holistic view of design patterns in one place.

5. The Pragmatic Programmer: From Journeyman to Master 

by Andrew Hunt and David Thomas

Although originally published in 1999, the thoughts and methods of thinking in this book has tested itself against time. This book isn’t about the code but about problem solving and how to get to a effective and efficient solution in a way that is language agnostic.

6. The Mythical Man-Month

by Frederick P. Brooks Jr.

This book is a bit dated but the lessons that the author illustrates has a timeless quality about it that makes it still one of the most popular recommended reads in programming. It presents ideas that every lead architect and project manager should have in the back of their minds and can make your code life easier in the long run.

7. Refactoring to Patterns 

by Joshua Kerievsky

This books is best consumed after you’ve understood and mastered the common patterns. This is because it won’t teach you those patterns but how to transform code into something that is more standardized against industry expectations.

8. Agile Estimating and Planning 

by Mike Cohn

You can’t escape agile and this book focuses on agile delivery from a software perspective. There’s a lot of talk about agile but it’s usually for management. There isn’t actually a proper guide out in the wild that is known to hit agile from a software first approach. Mike Cohn does exactly just that with this book.

9. Test Driven Development

by Kent Beck

Everyone talks about test driven development but not many truly understand what it is and how to go about doing it. This book comprehensively goes through the thought processes and technicalities of performing TDD correctly.

10. Cracking the Coding Interview: 150 Programming Questions and Solutions 

by Gayle Laakmann McDowell

Even if you’re not going in for an interview, the questions and answers with provide you with better insights onto how things work and why it works. It also doubles up as a good guide on programming principles and gives a comprehensive view over the discipline.

Final words

The journey towards becoming a 10x developer is an endless one and never quite complete if you keep using yourself as the baseline for improvement. There will always be someone who is better than you — and those who are less effective and efficient.

Externally, where you stand is relative to where everyone else is. You just need to keep learning and improving to a point where what you know has surpassed the speed of change. By learning the foundation and advanced theories of code, it puts you up as a much more effective and efficient developer by default.

This post was originally published on my Medium account behind the paywall – republished and made to you free for your enjoyment here on dechalert.co

I am currently embarking on a Prototype Year to experiment my way into a life I want. This space is for documenting that journey.

Leave a Reply

Your email address will not be published. Required fields are marked *