Becoming the best developer in the world

Becoming the best developer in the world

Along with the monolithic rise in front end development has come an exponential growth in the libraries, frameworks, transpilers, and pre- and post-processors used to do our jobs. For juniors and veterans alike, the plethora of choice can be problematic when figuring out how to create impactful work.

It feels like the industry as a whole suffers from a collective sort of FOMO.Still using Browserify? If you don’t switch to Webpack you are basically dead. Writing JS in ES5? If you don’t learn ES6 and start using Babel tomorrow the apocalypse will be your fault. And 😂 you’re still using Babel?Typescript won, duh.

Becoming your best in a world of infinite options

If you are now feeling nervous about your future as a developer, don’t worry. Yes, change is rapid, winners are fleeting, and figuring out the right tool for your project is increasingly difficult to determine (in an industry of one size fits all solutions).

Despite all of this, you can still become the best developer in the ‘world’ by putting the following into practice:

1. Redefine your world

The first step to becoming the best in the world is to throw away your idea of what ‘world’ means.

The secret to being the best in the world is to make the ‘world’ smaller. — Seth Godin

In other words, stop trying to learn everything. When you find something that you’re passionate about, go deep! Maybe it’s accessibility, maybe it’s writing CSS at scale, or maybe you love making websites for local coffee shops. Whatever it is, make this your world, and focus 80% of your learning here. Use the remaining 20% to be aware of industry trends to keep yourself resilient to fundamental shifts.

At Shopify, some people are dedicated to modern Javascript development, while others may focus on image optimization, web performance, developing UI patterns, and many other specializations. All of these people have successful careers as developers despite not knowing everything.

2. Focus on fundamentals

In a world where we have layer upon layer of abstraction, the best thing I can suggest is to cut through these layers and understand the fundamentals.

Learning about React and Flux architecture is great, and extremely valuable,but without a solid foundational knowledge about Javascript, or functional programming, you may find yourself hitting walls when it comes to debugging, or understanding how to design a larger application.

In the same way, something like Ruby on Rails allows for incredibly expressive application development, but without some understanding of Ruby, object-oriented programming, or basic design patterns, you’ll hit walls once you move beyond the basics.

3. Understand why companies hire developers

At the start of every day, remind yourself why you got hired:

The person who has decided to bring on one more engineer is not doing it because they love having a geek around the room, they are doing it because adding the geek allows them to complete a project (or projects) which will add revenue or decrease costs. — Kalzumeus

Your success as a developer is not determined by the tools that you use, or even the style of your code, it is the business impact that your code has on the company or project you’re working on. A reductionist analogy could be that if developer A writes beautiful code that results in $10 in additional value, and developer B writes abhorrent code that results in $100 in additional value, developer B is a better developer.

On Shopify’s growth team we talk about this a lot — everyone on the growth team is obsessed with one single goal (growth!!); what they bring to the table to help achieve this goal depends on their background (code, design, etc).

The power of focus

Becoming a developer means assuming a life of continuous learning and growth. With this also comes the reality that there will never be enough time to learn all of the things. But hopefully by keeping these few points in mind the journey ahead can be more focused and impactful.