- Focus and Deep Work — Your Secret Weapons to Becoming a 10X Developer
- Bar Franek
- The Nuggets translation Project
- Permanent link to this article: github.com/xitu/gold-m…
- Translator: In the book
- Proofread by: Moonliujk, Weibinzhu
“Women at Work” – posted on Unsplash by RawPixel
Or how to become one of those high-earning, “10x rock star ninja” developers that companies like to hire
If you’re working hard, or if you’re a junior developer in need of attention and improvement, or if you’re a lead developer looking for a better pace, or if you’re even fresh out of college, it doesn’t matter if your company is a startup or a mature company.
As long as you’re a programmer, no skill is more important to your success than focus and deep work.
From Cal Newport’s book Deep Work:
“The assumption about deep work is that the ability to do deep work will become rarer and, at the same time, more and more economically valuable. The few people who develop this ability and make it the core of their working lives will do well in the future.”
- Deep Work p.14
I’m going to use some of the ideas from Deep Work and combine them with my thoughts on how to be a successful, demand-tested developer. If you happen to be in the technical field, at any level, I highly recommend you read on.
From being afraid of coding to leading developers
I am a self-taught programmer. But I didn’t start programming until I was in my late 20s. I always thought of myself as an artist and thought I would eventually get into the creative field.
I did it. After college, I started a graphics and web design company for small local businesses. I am an expert in PhotoShop and am familiar with HTML and CSS.
Ironically, I had to outsource even a line of PHP code.
For a long time I was petrified by code and left it to people with computer science degrees.
“One wrong click and the business relationship with the user could be compromised” — I had thought before. To be honest, this idea is not too far-fetched (since FTP commits cannot be rolled back before version control is used).
Today, I’m the chief r&d officer for a Fortune 50 company, developing products that provide entertainment to millions of people.
How did I get to this position in just a few years? 🤔
My “secret” is focus and depth. There’s nothing special about me. I spent a lot of time training myself how to focus on a particular thing for a long time without distraction.
Coding is an art
Programming is a creative pursuit.
To the average person, it may seem technical and boring, but you’re a creator. You’re creating something out of nothing. That “nothing” can be an idea in your head for an App or a functional requirement from a product manager.
That thing doesn’t exist yet, but you’re going to make it happen. Not with paint or text, but codes (well, codes are also words, only they are not reserved words).
If you have any desire to increase productivity, then you must practice more.
The quality and quantity of your output increases when you are better able to consciously maintain focus for longer periods of time.
Art, music and writing all require long periods of uninterrupted attention, which thickens the myelin sheath at the synapses between brain cells. Programming is no exception.
You’ll get better with practice and time, and if you can make your practice more efficient, you’ll get better in less time.
Yes, you can be a 10x developer (but 5x, 2x and 1x are also strong)
For the record, I hate buzzwords like “rock star”, “ninja” and “10x developer”. Every developer doesn’t like them, but companies and recruiters love to use them.
It’s cheesy, but there’s a lot of truth behind the “10x developer” concept.
It doesn’t mean one person can replace 10. It means that some developers can get more work done in less time and with better quality. Being able to do this consistently for a long time without having to work harder than anyone else.
Power is not a gift, you are not born with it, and it is not something you can “unlock”. It is a skill that you can, and must, practice and train.
I’ve done this dozens of times with recruiters, and I’ll tell you that any company wants to have a full team of 10x productive developers, but that’s not realistic.
There are more open positions available than qualified developers. It is hard enough for companies to find a qualified developer to fill the gap, let alone one that is multiple times more efficient.
“Senior managers believe that a lack of quality development talent is one of the biggest potential threats to their growth” — the Developer factor
It’s really hard to find good people.
Most companies would kill for a 10x developer, but they’re happy to hire a 5x, 2x, or even 1x developer.
The 1x developer (yes, I invented it) is the kind of person who can just meet the hiring needs, no more, no less. Honestly, any company is already happy. Much has been written about the astronomical costs of bad hiring.
Double your programming skills with focus and deep work in two steps
It’s time to step up your career ladder. There are many opportunities to be employed and thrive in a career you love.
If you’re entrepreneurial, the same applies. Because what matters more is that the time in your life is spent productively.
That’s how you go from junior developer to senior developer. This is how you go from 0.5 x developer to 5 x developer. How do you make sure a project works when you only have 10 hours a week?
Hell, that’s how you live.
“So to stay relevant, you have to quickly master the art of learning complex things quickly. This task requires deep work. If you don’t develop this ability, you risk falling behind as the technology world advances.”
- Deep work P.13
Learning to focus is hard.
The first thing you need to realize is that learning to focus is not that easy. You can’t produce high-quality code right from the start. Especially the fact that you never fully understood how easily people are distracted.
Focus takes practice. Anything that takes practice is hard. If you don’t need to practice, you’re probably pretty good at it anyway.
You’ll struggle. That’s okay. We’ll start small.
Don’t confuse busyness with productivity.
Deep work is not about locking yourself in a dark room and forcing you to wander aimlessly through code logic for 14 hours. Just because you’re doing something, doesn’t mean it’s worth it.
You need to figure out what’s important and what’s not. That’s a little off topic. If you’re going to take the time to learn how to focus, do something that has a high return on the effort.
It’s like the sun and a magnifying glass.
Distracted work is like the sun, with energy radiating in different directions. You can stand in the sun and not get burned.
Learn to focus scattered energy with a magnifying glass, and your damage can range from 0 to 10. We want to use limited power to do the most important things possible (the sun will set).
Step one — Avoid distractions
Multitasking is a lie. If you think you can write high-quality code while checking Slack messages or reading news in another window, you’re fooling yourself.
We live in a world of distractions. The technology we’re looking at is a double-edged sword. There isn’t any pleasurable dopamine in the new notifications.
“Cool, I saw Hamilton’s post was liked.” — It’s bad for your ability to focus.
Eliminating distractions is the foundation of focused, in-depth work.
- If you are not in the onCall location, please mute your phone or turn it off. I use the Forest app to stop me from using my phone. You can also place the phone face down out of reach.
- Turn off Slack. This works great for me because I’m obsessive-compulsive and I always want to empty my unread messages. Most messages are actually noise, so it’s good to turn it off.
- Turn off other apps that constantly pop up notifications that bother you, like Outlook.
- This one is the hardest – close any browser window that is not relevant to your task. Close all your favorite websites right now. I love the HeyFocus app($20) but there are plenty of free extensions.
- Wear headphones — they’ll keep you from being interrupted (hopefully), and listening to the same album over and over again is a great way to focus. It can be used as a kick-off ritual (signaling to your brain that it’s time to work) or just going with the flow (music can put you in a good mood). Either way, there are plenty of developers who believe it works.
Step 2 — The Pomodoro Technique (Secret Weapon)
Roychan Kruawan at Unsplash: “A Bunch of Productivity”
When you realize to your horror that you can’t go eight hours without any distractions, don’t worry. We’ll use the Pomodoro technique to break up the day.
There are many productivity techniques, but my favorite is the Pomodoro Technique, which I’ll introduce to you as a starting point.
If you want official information, please check out The Pomodoro Technique book, you can get more detailed and more organized content.
Work for 25 minutes (one tomato clock)
We’ll work for 25 minutes, uninterrupted, doing one thing. This part of the job is a “tomato clock”.
Use a timer. I used to use an old hourglass. If you want to become a real tomato clock lover, use a professional tomato timer.
Then take a 5-minute break
You have to leave during breaks, get some water, do some hacking news, go to the bathroom, etc. No matter what you do, the work is over. No work at all.
A tomato clock only does one thing
You can fix a bug, plan a new feature, or start a video series on learning about a new framework.
If the task is too big (like “Make an app”) then you have to break the task down into smaller pieces that take about 25 minutes.
Some tasks take a lot of tomato hours to complete. It might take three tomato hours to write a feature and two tomato hours to write a test.
Or you might need to batch a lot of similar small tasks into a tomato clock (like completing the responses in the first five JIRA’s).
The key tasks must be of the same type.
By the way, the main reason we procrastinate is that we are overwhelmed with huge, insurmountable tasks. If your goal is to “write a book,” you’ll never know where to start. When you break it down into smaller chunks, such as “Write an outline” or “Write 300 words,” the task path becomes clearer and more feasible. It’s easier to get started.
While this article has always been about being a better developer, not procrastinating, the truth is that a lot of times they are the same thing.
Work without distractions
Look at step one. If you get distracted, this time the tomato clock is out and you have to start the clock again.
Work Your Way Up to 25 Minutes
Work time increased to 25 minutes
If you’ve never done this before, 25 minutes can be tough. Start with 10 minutes and work your way up. Next time 15 minutes, then 20 minutes, then 25 minutes.
You can increase the time by 55 minutes if you are already familiar with the routine.
Slowly increase the number of tomato plants you can finish each day
The first time you try to work without distractions, 25 minutes a day may be your limit. it doesn’t matter Add a little more every day and keep working on it.
How does this make me a better developer?
Let’s be realistic. It doesn’t help your career by jumping from code editor to chat room to email to real life conversation.
You might seem busy, and you might even commit some code once in a while.
But the truth is that a few hours of deep, undistracted work produces high-quality output compared to a full day of distracting work.
Start with a tomato clock. Until you can connect several tomato clocks together.
Then you can string together days of tomato clocks.
Then come week moon.
You’ll find that you can get into the zone more easily and more often.
It’s precious. This is the “aha” moment. This is the breakthrough moment.
It’s when the difficulties that were hanging over you become easier.
This is when your programming skills grow exponentially.
The demand for good, qualified programmers is higher than ever. The surest path to success is to get deep, focused work.
Give it a try and let me know what you think. If you have other productivity techniques, please post them below!
If you find any mistakes in your translation or other areas that need to be improved, you are welcome to the Nuggets Translation Program to revise and PR your translation, and you can also get the corresponding reward points. The permanent link to this article at the beginning of this article is the MarkDown link to this article on GitHub.
The Nuggets Translation Project is a community that translates quality Internet technical articles from English sharing articles on nuggets. The content covers Android, iOS, front-end, back-end, blockchain, products, design, artificial intelligence and other fields. If you want to see more high-quality translation, please continue to pay attention to the Translation plan of Digging Gold, the official Weibo, Zhihu column.