Hacks for Hackers: Productivity Techniques for Coders

Hacks for Hackers: Productivity Techniques for Coders

"Men of genius themselves were great only by bringing all their power to bear on the point on which they had decided to show their full measure"

- Antonin-Dalmace Sertillanges, Intellectual Life

Setting up the stage...

We are in the early throes of Great Restructuring, what this means is we have taken a shift towards an Information economy, more and more of our population are knowledge workers, and thus the need for skilled and efficient workers has drastically increased. To remain valuable in our economy, and to thrive in this growing economy, therefore, you must master the art of quickly learning complicated things.

In today's Information economy, the ability to focus and produce work at an elite level is becoming a key currency. We must cultivate an ability to produce valuable output in today's increasingly distracted world. And if we don't cultivate this ability we're likely to fall behind as our technologies are racing ahead. This blog is best described as an attempt to formalize and explain why and how one should work to produce work of stunning originality.

Why do we need productivity in the first place?

Let me explain to you all with a little story showing the growth of Technology.

It dates back to the 6th Century when the game of Chess was invented. The inventor of the game then shows his creation to the country's ruler. The ruler was so impressed by his work that he made the inventor decide his own reward. The clever man asks for a reward of rice, "with the amount on each square doubling from the previous, which illustrates the concept of exponential growth". The Emperor agrees with the decision, deeming the reward inadequate. He eventually realizes that the constant doubling leads to incredibly large numbers. In certain versions of the story, the emperor is so angry at being tricked that he kills the inventor by cutting off his head.

Chess board showing grains

After 32 squares, the emperor provided the inventor with approximately 4 billion grains of rice. As they progressed through the second half of the chessboard, one of them ran into difficulties. Even now as we move into the second half of the chessboard, we understand, how technology and business are currently in the phase of exponential growth where we are starting to see significant advancements like autonomous cars and high-quality machine translation. The idea is that exponential growth is misleading because it starts small and unnoticeable, but as time passes, it defies our understanding and predictions.

"We are being affected with a new disease of which some readers may not yet have heard the name, but of which they will hear a great deal in the years to come- namely, technological unemployment. This means unemployment due to our discovery of means of economizing the use of labour outrunning the pace at which we can find new uses for labour."

-John Maynard Keynes, 1930

As technology progresses, machines are increasingly able to perform tasks that were previously done by human workers. This trend is likely to continue in the future, leading to a decrease in wages for unskilled workers. The gap between machine and human abilities is highly likely to increase as these Intelligent machines improve. Now to put it straight big employers, are more likely to hire these Intelligent machines instead of new people. And just because of this, an increasing number of people will lose in the new economy as their skills will become automatable, but there will be some who will become much more valuable and therefore rewarded. During this Great Restructuring according to MIT economists, Erik Brynjlofsson and Andrew McAfee, three groups will have a particular advantage:

  • High-skilled workers: those who can work well and creatively will intelligent machines,

  • Superstars: those who are stars in their field and,

  • Capital: those with access to capital.

What stops us from being productive?

"What the Net seems to be doing is chipping away my capacity for concentration and contemplation"

- Nicholas Carr, Jornalist

We are currently in the age of network tools. Network tools include social networks like Facebook, Twitter, Instagram, and infotainment sites like Reddit and BuzzFeed. While using these apps our brains is receiving frequent hits of distraction, constantly sending and receiving messages like human routers. It might seem harmless to check your phone, reply to a message, or anything but in reality, this quick check introduces a new target for your attention. Additionally, by encountering messages that cannot be addressed immediately (which is typically the case), you will be compelled to return to your primary task with a secondary task remaining unresolved.

In the fall of 2017, Sean Parker, the founding president of Facebook, spoke candidly: The thought process that went into building these applications, Facebook being the first of them, . . . was all about: “How do we consume as much of your time and conscious attention as possible?” And that means that we need to sort of give you a little dopamine hit every once in a while because someone liked or commented on a photo or a post or whatever.

Reference: Axios article

In a study by Sophie Leroy, a business professor at the University of Minnesota, she introduced an effect called "attention residue". She explains- a portion of your focus remains preoccupied with the initial task. This residue becomes particularly pronounced if you were engaged in a low-intensity, unstructured task prior to switching, but even if you complete Task A before moving on, your attention remains divided for some time.

The more severe the residue, the poorer the performance. This attention residue stops us from being productive and potentially devastates our performance.

Techniques for increasing productivity in coding

Coding is pretty hard, before starting their first job, many new developers spend four years in college studying the basics of programming. To produce an output that is stunning and original you need to be productive, here are some tips you can use to be productive:

  1. Keyboard shortcuts and tools: Keyboard shortcuts and tools are a great way to increase productivity when coding. Here are a few examples:

    • Text editors and IDEs often have built-in keyboard shortcuts that allow you to quickly perform common tasks such as saving a file, commenting out code, or running a program.

    • Utilizing keyboard shortcuts for frequently used commands such as copy, paste, undo, and redo can save time and decrease the need to rely on the mouse.

  2. Use of Code snippets and templates: Code snippets and templates are a useful technique for increasing productivity in coding.

    • Code snippets are small pieces of code that can be quickly inserted into a program, rather than having to type out the code manually. This can save time and reduce the need for repetitive coding tasks. Many text editors and IDEs have built-in support for code snippets, and they can also be created and shared by individual developers.

    • Templates are similar to code snippets, but they are larger pieces of code that can be used as a starting point for a new project or function. Templates can include standard structure for a program, common libraries or modules, and other elements that are frequently used in a particular type of project.

Best practices and methods to actually work smarter and to be more productive

#1 Shift your focus from setting goals to implementing systems

Let us understand this by the definition of both Goals and Systems. Goals are the end destination, while systems are the roadmap to get there. Goals reflect what you want to achieve, while systems outline the actions and processes needed to reach them. I think these two examples are enough to make you understand the difference between the Goal and System. Now, let's focus on what I meant when I said, "Focus on the systems".

"The purpose of setting goals is to win the game. The purpose of building systems is to continue playing the game."

- James Clear, Atomic Habit

As we have limited control over external factors, it's essential to focus on systems instead of goals. Goals are often dependent on unpredictable variables such as the future, other people's actions, the economy, and the environment. Systems, on the other hand, allow us to focus on the aspects we can control and put in place a plan to achieve our objectives. So one should focus entirely on building Systems rather than setting Goals.

#2 Premarck's Principle

"More probable behaviors will reinforce less probable behaviors."

- Premarck's Principle or Theory of reinforcement

I think you all might be familiar with this idea but not with the name, our Parents and other elder people in our family might have implemented this on us when we were younger. Let's take an example to understand this: You definitely might have heard this statement once in your childhood, "If you study for 2 hours, I'll let you use your phone." or "You'll get what you want if you are able to score 90% in boards".

These statements sound familiar, right? These are all the examples everyone might have heard in his/her childhood. So is it late to apply these statements again? I don't think so. One can use Premarck's principle as Temptation Bundling to achieve what one wants and can also be more productive if used efficiently.

#3 Pomodoro Technique

It dates back to the late 1980s when Francesco Cirillo developed this technique. The basic idea revolving around this technique is to use time as a reminder to stick to the task at hand and to take frequent breaks to avoid burnout. This method is widely adapted and can be used to improve focus and productivity. It consists of the following steps:

  • Pick a task that you want to complete and which is of utmost importance.

  • Set the timer (25 minutes).

  • Work on the particular task until the timer rings.

  • Take a short break (3-5 minutes) to rest and avoid burnout.

  • Every four "pomodoros," or "sets" i.e after every 1 hour, take a longer break (15-30 minutes).

  • Repeat the process.

#4 Eat that frog

"If the first thing you do each morning is to eat a live frog, you can go through the day with the satisfaction of knowing that that is probably the worst thing that is going to happen to you all day long."

- Mark Twain

The strategy suggests starting the day by addressing the most critical and challenging task, the belief is that by finishing the most challenging task early in the morning, it will provide a sense of achievement and increase motivation to complete the rest of the task list.

We can use "Eat the Frog" technique by using these steps:

  • Identify the most important and challenging task of the day.

  • Set aside a dedicated block of time to work on that task, ideally first thing in the morning when your energy and focus are at their highest.

  • Work deeply on the task until it is completed.

  • Once the frog is eaten, the rest of the day's tasks will feel less daunting.

Conclusion

It's also important to note that productivity is a skill that can be learned and improved over time. By setting clear goals and priorities, staying organized, automating repetitive tasks, and continuously learning and improving skills, developers can increase their productivity and achieve better results in their coding projects.

Thanks for reading.✨ This is my very first blog on hashnode, and this blog is a part of the #wemakedevs blogging challenge. I was quite inspired by Kunal Kushwaha and the work he's doing for our community. Kudos to him..💪