7 Habits that Programmers Must Have!
Tags: programmers, habit, productivity
Published: 2024-06-11 02:46:01

## Introduction
As a programmer, you know that your work requires high focus, so it often takes up a lot of your time. Yes, this also happens to me, I spend a lot of time doing tasks but sometimes the results don't meet expectations. I realized several things that I had gained from my work experience and insights from my colleagues, and there was a book that was interesting and very helpful in improving my habits.

Did you know that we live by following patterns and habits that we do every day, these habits will influence the results of our goals. So if you want to change your life and achieve what you want, the first thing you have to do is change your habits. Stephen R. Covey in his book _**7 Habits of Highly Effective People**_ says that: “_the way we see the world is entirely based on our own perceptions._”

Instead of looking at the world that is so big for us, let's look at the smaller things first and relate to our daily activities. Yup, that's right, I want to share from my perspective as a programmer. There are several habits you should know to increase productivity when working as a programmer. Some of these things are also based on my experience, so the results may be different for you, but believe me, this will be useful if you practice it well. OK, let's get started!


**1. Be Proactive**
In his book, Covey describes the two-circle types of people that exist in our lives. **Circle of concern** which is a circle containing things outside our control. Meanwhile, the smaller circle is the **circle of influence**, which contains things that we can control.


![Proactive and Reactive](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p50j7r9vgw6hhipidjz2.png)


Based on these two circles, **reactive** people will think more about the **circle of concern** while **proactive** people focus more on the **circle of influence**. It's the same with programmers, among us there are definitely two types of people. 

There are **reactive programmers** who are busy with things that cannot be controlled such as office conditions, and company finances, they even believe that their career can be determined by the video "_How to Become the Best Programmer in Three Months_". On the other hand, there are also **proactive programmers** who choose to practice, try several interviews and competitions, to open up opportunities to become a programmer or whatever their dream job.

Proactive people know they need to know external things, but they are the ones who are responsible for their careers. In other words, to be proactive you can focus more on looking for inspiration from within yourself and you can control it without ignoring important things outside of yourself rather than just expecting other people to give you a "_magic recipe_".


**2. Begin With the End in Mind**
Many of us spend our lives going with the flow and we don't even know our purpose. So all we have is hope which is not a good strategy in any case. Stephen Covey says "Start with the end in mind" In other words, in doing anything, including starting a project, you must determine clear measures of success and a plan to achieve them.

![Begin With the End in Mind](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b1bbrkhtnd78rarqcfd8.png)

If you apply this to programming, whenever you start a new project, you'll take the time to understand the final product. What are the functional and non-functional requirements of the features to be built?

I remember someone saying software engineering is the art of making trade-offs. There are rarely right and wrong answers but rather a matter of determining the different types of design, and what the pros and cons are in a given case. Believe it or not, I have experienced that spending 30 minutes on careful planning can save you more than 10 hours of programming.

> “People are working harder than ever, but because they lack clarity and vision, they aren’t getting very far. They, in essence, are pushing a rope with all of their might.” Dr. Stephen R. Covey

Of course, this is not easy because every plan can go wrong, I also fell into it several times. But this is still much better than not planning anything at all.



**3. Put First Things First**
Having the ability to choose what is important and what is not is also an effective habit. By being able to sort your interests according to your needs, you will be able to prioritize the order of work that will be done first.

This habit is closely related to time management. Covey advises us to do the main thing based on the four quadrants he created which he called the Eisenhower Matrix.

![Eisenhower Matrix](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hv4j1roh5p3f4gaw52uc.png)

Previously I thought this quadrant was not that important for my tasks. And it turns out that this is often ignored by most programmers. When I worked as a Software Engineer, I was constantly bombarded by bugs that needed to be resolved. On the other hand, I also have long-term projects to complete.

When you are under so much pressure, you will forget to learn. So if your code has a problem, you just want to go to Google or use AI and copy-paste the solution without really understanding it. Yes, truly understanding the cause of the problem is important for learning, but it is not urgent. For many programmers, learning stops as our careers progress. That's why you need to pay attention to the tasks that fall into this quadrant and schedule specific times for your long-term success. In other words, prioritize and achieve your most important goals rather than constantly reacting to urgency.

**4.Think Win-Win**
One person's **gain** is another person's **loss** - this idea is very familiar in our brains probably because of the various competitions and sporting events that we usually watch. In this book, Dr. Covey considers it important to develop an "abundance mentality". That is, believing that there are enough resources and opportunities for everyone to succeed. This mindset is crucial to having a successful career as a Software Engineer. We work alongside other engineers and people in other job functions such as Data Science and Product Management.

![Win-Win Agreement](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w1thqzuw744a9usc2ezo.png)

Being able to collaborate effectively is one of the main skills you need to have. So, it is very important to be able to rise above personal career goals and have a win-win mindset for the team. Not just winning yourself by making other people lose, or giving in to others so they win, or even making other people lose because we also lose.

Getting used to always thinking about being able to win over many parties will make us always try to achieve the best results. More than that, this also greatly affects our relationships with other people in the long term.

To build good relationships in the long term, we need to establish relationships with many people. Through **think win-win** this will help us build a good reputation or image in the future and will make our work more effective in the longer term.

**5. Seek First to Understand, Then to Be Understood**
Are you the type of person who is busy asking for your own feedback long before giving someone else a chance? This is not something Stephen Covey recommends.

![Seek First to Understand, Then to Be Understood](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bg3uigm6p7xm7h9stc7v.png)

In order to be understood by other people, the first thing we need to do is **understand other people first**. Effective people will be able to have great empathy and respect other people by understanding them.

But how does this apply to programmers? In addition to verbal communication, engineers also use their code to communicate with each other. Effective programmers understand the importance of **empathy** in coding. They prioritize clarity in their code to ensure that others, including themselves in the future, can understand and maintain it easily.

Apart from other engineers, programmers also communicate with end users through their products. Effective programmers prioritize user experience by putting themselves in the end user's shoes. They anticipate user needs, design interfaces that deliver, and create error messages that guide users instead of confusing them.

**6. Synergize**
People who are able to synergize well with fellow humans will be effective people. Through good relationships and collaboration, you can create better solutions than if you only relied on yourself. Mathematically 1 + 1 = 2. But in life, if the synergy is right, it can be 1 + 1 = 10.

![Synergize](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lb8uq52jfzpkl28kyp32.png)

In his book, Dr. Covey emphasizes the importance of appreciating differences and using them to create a whole that is greater than the sum of its parts. So it's about getting the most out of every team member to create a product that users love. Effective programmers adopt **collaborative** coding practices, such as code reviews, pair programming, and other knowledge sharing. By combining individual skills and insights, teams can build more powerful, efficient, and innovative products.

Even though it is not easy, especially for programmers, most of whom work individually, by getting used to this, we can not only become independent figures but can also become people who can work together and collaborate well with anyone.

**7. Sharpen the Saw**
Effective people will continue to practice things in their lives so that they continue to progress and develop well. Covey said there are four main things that we must hone in our lives; _**body, heart, mental, and spiritual**_. Yes, in general, this is very important for life in any field. But let's try to focus on something more specific.

![Sharpen the Saw](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f2tj8no1yezmseadugi4.png)

For programmers, this is the most important habit. To understand this habit, let's imagine there are two workers trying to chop wood. The first worker was a young man who continued chopping wood for the entire 8-hour shift without stopping. The second worker was an older man who needed a 10-minute break every hour, in between which he took time to sharpen his saw. If you think an older man will chop more wood, then you have understood this habit.

As a programmer, you will be faced with so many new technologies. Effective programmers understand the importance of **continuous learning**. Sharpening the saw involves investing time in acquiring new skills, staying updated on industry trends, and exploring new technologies. Effective programmers must make time for professional development by practicing, attending conferences, participating in programming communities, and so on. This habit can help us adapt to technological advances.


**Conclusions**
Sometimes, without us realizing it, bad habits more or less influence our lives to become ineffective. However, a habit that has been carried out continuously for too long will be difficult to break.

This is what we need to understand if we want to change our lives for the better, starting from changing our views to changing our habits. The implementation of these 7 habits as said by Stephen R. Covey will help us change our lives much more effectively and meaningfully.

It is not enough just to understand these habits, but we must all apply them, because each point is equally important and interrelated. Because only by living an effective life can we ease the path to greater success.

**References**
[franklincovey](https://www.franklincovey.com/the-7-habits/)
[The 7 Habits of Highly Effective People](https://books.google.co.id/books?id=36V_PAAACAAJ&hl=id&source=gbs_book_other_versions_r&cad=1)