What separates successful tech founders and revered development gurus from failed entrepreneurs and your average, run-of-the-mill developer? One thing I know for sure. Focus.
Believing otherwise can be easy, though. You might just chalk their accomplishments up as the fruits of gifted geniuses whose skill sets are far out of your reach. In reality, however, their accomplishments are the result of consistent, intense focus. Truthfully, all the people you look up to are nothing more than just that: people.
Still, these people have a remarkable ability to form a vision in their minds and dedicate themselves to making it a reality, allowing that goal to drive consistent action. This vision allows them to avoid distraction and persevere in the midst of adversity.
The good news is that you can always catch up. You just need to cultivate more focus. I’m not the best developer in the world myself, but I’m definitely focused. That focus has allowed me to succeed not only in development but in many other facets of my life. So, here are three simple ideas to help you become a more focused, more effective developer.
3 Mental Habits of Effective Developers
- Don’t focus on what you deserve..
- You don’t need more time.
- Cultivate the most useful form of patience.
1. Don’t Focus on What You Deserve
Many developers spend far too much time focusing on the wrong things. Our minds linger on what we feel they deserve. We believe we should be praised for our accomplishments. We expend a great deal of energy on complaining about the task at hand, how underqualified we are, how impossible a task is, or the unrealistic nature of the deadlines ahead of us. We unconsciously limit our own potential through self-limiting beliefs that, in turn, stagnate our growth and potential.
Every second spent complaining is time wasted. Narrowing your focus to what you think you deserve only begets procrastination and weak-mindedness. When your focus is misplaced like this, your energy gets sapped from more productive uses. Instead, you focus on petty jealousies and insignificant details instead of your actual job. When you’re in that position, you provide little value, and it’s hard to garner respect and trust from your colleagues.
The truth is that you don’t deserve a raise. You don’t deserve respect. You don’t deserve responsibility. You earn those things. That’s what you should really set your sights on. Not on what you deserve, but what you can earn.
When you focus on what you can earn, you will stop worrying about all the external factors that affect you. You will then begin to pay more attention to the things that are within your control. When you focus on what you can control, you can take thoughtful, effective action that will allow you to really prove your worth to yourself, your colleagues and your business. You can develop with purpose , seeing obstacles as hurdles to overcome rather than obstructions to your career. Implementing this outlook has bolstered my coding practice and fortitude as a developer in a plethora of ways. This perspective leads to the ultimate form of focus.
2. You Don’t Need More Time
Lack of time isn’t staggering your progress. The actual problem is what you do with the time that you have. Because of this inefficiency, we often find ourselves begging for more time, immensely stressed under the weight of a deadline for any given project, task or deployment.
Sometimes, you actually may not be able to accomplish everything you’re tasked with in the allotted time frame, but that’s okay. In these cases, you just need to reframe your approach and aim to deliver as much as possible in the time available to you. Sometimes, though, an increased time scale for getting things done just provides you with grounds to procrastinate further anyways. This is kind of like being given a homework assignment four weeks before the deadline, but you only decide to work on it a couple of days before it needs to be finished.
Before throwing more time at a problem, however, you first need to apply more focused action. Given that taking consistent action is usually the issue at hand, you can adopt a few different methods that make doing so effortless.
First, and most importantly, you need to gain absolute clarity on the problem at hand. Spend time planning your process, visualizing the end goal, and figuring out every single feature necessary to make your component a success. When you don’t know exactly where you’re headed, you’re easy prey for distraction. What you need is vision.
Next, you need to ruthlessly identify and eliminate recurring distractions that steal away your time and interrupt your attention. Do you find yourself regularly checking social media, reading articles, or cycling through meaningless tabs on your monitor instead of writing the code you need to write? Is the constant stream of buzzing notifications from your phone and email breaking your flow? Hone in on those small-time sucks and eliminate them. One method that’s worked for me is simply placing my phone in another room while I work and scheduling tiny breaks in which I allow myself to get distracted for a couple of minutes.
We often feel the need to be motivated or inspired before we are capable of taking action, right? The belief that we need motivation is a hindrance because it allows our productivity to depend on external factors.
To avoid this problem, implement the power of the “Do-Something Principle.” This dictum states that action, inspiration and motivation are all triggered by one another in an endless loop with action as the most reliable and crucial trigger. Action begets inspiration and emotional reaction which begets the motivation for your future actions. This loop is the grounds for building a habit of consistent action.
3. Cultivate the Most Useful Form of Patience
Lack of progress on a project can be discouraging. So, you could easily declare that the success of a project or a startup is all just a matter of time. Building quickly and then waiting to hear feedback about potential bugs, scalability issues, or further extensions is tempting. Patience, in development, is a form of idleness.
Patience implies waiting for things to improve on their own. Persistence, on the other hand, involves keeping your head down and continuing to work when things take longer than you expect. Being patient isn’t enough. Rather, you must be persistent.
In psychology, studies have shown that there are two fundamental determinants of success: self-control (i.e., being able to control daily distractions) and grit (i.e., being able to persevere despite major setbacks). Separated into time scales, you should employ self-control on a daily basis as a means of managing impulsive decision-making so that the code you write is thoughtfully constructed. The amount of self-control you have translates into your ability to be persistent, focused, and patient with the process of development. That’s why grit is not something you can simply build overnight. Instead, it’s a long-term quality that you must hone and deploy over many years. Grit allows you to hurdle over your largest obstacles by finding alternative ways of doing things after rejection and failure.
When looking at development, take a step back and adopt a broader view of a problem. Think about the scalability and extension of a component and the teammates who will need to modify your code. Consider the potential impact the component has on the existing codebase and audience. Try to foresee all the problems that might arise once the component is deployed. By keeping all these things in mind, you become better able to handle future hardships and to build more resilient software.
In essence, in order to be effective in the long term, you need to code with purpose. Your code should reflect the fact that you’ve thought critically about the problem. When you think critically about a problem, you become soberly aware of everything that you need to put into a component. Once you gain that clarity, focus then becomes second nature. When you’re focused on the singular outcome that you need to achieve, you become motivated to build that component exactly as you see it. That component no longer just becomes a task that needs to be fulfilled, but rather a reflection of your own creativity and mind. It becomes yours.
Sharpen Your Focus
Focus and effectiveness aren’t results reserved solely for the best of us. You can cultivate focus through continuous, meaningful action . Anyone can achieve it.
It’s not enough to simply develop something. Rather, you should always aim to develop every project that you’re assigned or pursuing with the goal to make it one of the greatest things you’ve had the chance to build. It doesn’t matter whether or not it’s a test suite, a tool, an interface, or some complex backend operation.
Concentrate on what you can earn, not what you deserve. Before you beg for more time, first eliminate what’s distracting you. Instead of being patient or fast, be persistent and thoughtful with everything you build. By implementing each of these three ideas into your daily work, perhaps you’ll find yourself more focused and effective than you’ve ever been.