Are you looking for time to become a better programmer?

There is no time to do everything. At least that's what you feel? There is no time to learn all the things you think are necessary to become better. There is no time to go back and refactor those ugly code pieces. It works and the deadline is approaching. There is no time to write unit tests for all. There is no time to write a guide or comment for the next person who will maintain what you wrote. There is no time to think. No time to breathe. Do not have time!

Well, if you take the time to read this article, I promise that you will find yourself more time, devoted to the important things.

I used to think that the only way to become a good programmer is to work until I'm sick. My health, friendship, and family are all affected. Understanding the 5 facts about time management for a programmer saved me.

1. You don't need to learn everything new in a certain order.

There is no question when a good programmer always has to learn, but concentrating on learning can make a big difference to the amount of time you spend.

First, don't be fooled by the headlines in tech blogs that a new standard is released every 37 seconds. Most technologies, frameworks, new features will never be used and you will never know them. Because it will take a lot of time for them to be used in practice than in the blogosphere. Big companies have invested more in their technology stack than small technology startups, they are not risking to flip a coin. So relax, your career is safe.

Focus on learning in the 3 areas below, in the order listed:

1. Basic knowledge – It's much easier to learn a new skill when you really master the basics. For example, if you deeply understand JavaScript, you can master all new JavaScript frameworks quickly. If you deeply understand object-oriented programming, you can also master a new object-oriented language quickly. Deep learning of basic knowledge will increase learning effectiveness 10 times. Always focus to improve basic knowledge first.

2. Learn the latest features / versions in the technology stack you regularly use – These tools will put food on the table for you and your family. When new versions of these tools are released, investing time to learn them is very valuable.

3. Learn technologies that are supported by market leaders – If big companies like Google, Facebook, or Microsoft offer something new and start getting interested, it's worth considering. . There are hundreds of JavaScript frameworks that compete with each other for attention, and Angular and React appear to kick them off the map. I am not saying that they will not turn upside down and become the next big thing but more often, unnamed technologies often disappear quickly.

Study time is part of your schedule. Set up an amount of time to learn everyday. It doesn't need too much, even just 25 minutes to read and test daily is enough.

2. Good code writing takes less time than bad code, but it doesn't feel this way.

You often perceive the time you spend on a new feature when your code runs. But that's just the beginning. The time spent on a feature includes time to fix the error later, time to refactor and work with other relevant code around the design you created when deploying that feature. When you begin to understand the time you have invested in this way, it becomes clear that, in the long run, fewer errors and better designs are a worthwhile investment.

There are two things you can do, which will minimize errors and help make design better.

1. Test-driven development . Write the test first, then write the test code. This not only helps with fewer errors but also makes the design better, because when you have a good structure in a testable way, you will create smaller, simpler functions with fewer dependencies. .

2. Use a repetitive design method . Don't take the time to make the code perfect before you take the time to try to make the code work. You will never, do it right the first time. You need to type your fingers on the keyboard and create the code, run and do what you want. The problem is that programmers tend to have two common mistakes: either they spend too much time thinking and not having enough time to do something real, or they don't spend enough time Time to improve their first solution. Here is the first-ever mantra by Kent Beck : "make it run, make it right, make it fast."

3. Working 24/7 does not help you become a hero. Please manage the expectations.

This is one of those things that almost killed me. I used to agree and accept all the crazy timelines given by the boss or customer. I'm afraid to say "no". I'm afraid to let anyone down. I will do whatever is delivered. I sleep right under my desk, drinking lots of coffee so I can work continuously for 40 hours.

I saw myself for the first time as a star. I did a great thing and felt like a hero. But I have set an impossible expectation. Doing so is unsustainable. After all, I started to get exhausted, sick, and delayed the deadline. I started to be reputable as an unreliable and unreliable person. That is a bad news.

I finally understood, and that's what you should accept to learn. A true hero who is consistent and reliable. They say what they will do and do what they say. The only way to become a hero is to manage expectations.

You need to manage the timelines to always provide high quality products with accurate time. This is extremely difficult at first. It means you have to say "no".

When you start, your boss and customers will be dissatisfied, but when you show that you are completely reliable, everything will start to change.

Over time, other developers will delay the deadline, complete the work in a negligent and unreliable manner. You will then become a hero in your group. In fact, learning this helps me become one of the leading consultants in my market. I have built a reputation for quality and on time, because I was strong in managing expectations.

4. Not all time spent on "improving" the code has the same ROI

Time is an investment. Like all investments, you expect a return on your investment costs. You should get back at least equal to the investment amount and hope to get more than the value you spent.

We said "make it run, get it right, make it fast". It is a good spell but also a trap: "right" does not mean perfect, and "fast" does not mean as fast as possible.

"Right" means the code works consistently and easily refactor. "Fast" means fast execution speed does not adversely affect user experience. The most important thing is that your application makes users feel fast.

So, don't waste it by trying to save time for a less-used function, or try to reduce a few mini-seconds on something that has outpaced people's blinking speed (~ 300ms). Don't waste time trying to refactor running code, well structured just because you've learned some new techniques or methods that you convince yourself to suddenly turn around and apply to your stuff. Accomplished.

5. Schedule a break to help you work more effectively

This is very difficult for me to accept and learn. How can you become more effective when you don't spend all your time working? Yes, it is true.

According to Allison Gabriel, an assistant professor of management at Virginia Commonwealth University who studies the employment needs and motivation of employees, "Many studies say we have limited resources. When you use resources for a long time, you become ineffective. If you run out, performance will decrease. You have the ability to focus less and have difficulty solving tasks. ”

Always work in stressful situations, such as stress, fatigue, and negative moods. Will reduce your concentration, your physical and mental resources.

The brain has the ability to regulate itself to follow discipline, but it will weaken with each self-control exercise of the day. That is loss and need to supplement. If not added, it will become less effective when handling tasks, focusing and solving problems.

Your brain and body need to rest, whether you want it or not. So, schedule a break. Real planning and putting on your schedule the time off. This allows you to rest without feeling anxious about it. You will accept it more easily because you know that you have planned a break.

Share the news now