There are a large number of good
resources devoted to the development of technical skills of literate programming. However, only a
few of them give an idea of ​​the knowledge that comes only with experience. In this material we have collected tips that will help improve your productivity, allow you to work better and think faster in the development process.
/ photo hackNY.org CCAbout important and banal: food, sleep, their quantity and quality
Anyone who is serious about his work in the field of software (and in any other) should take care of his body. As Ken Robinson, an adviser on the development of creative thinking, said, people spend too much time on domestic issues, so they do not pay attention to health. Projecting Ken’s opinion on software development, Livio De La Cruz, a former Microsoft employee and now a freelancer and a Unity3D programmer, says that programmers underestimate the impact their physical condition has on work performance.
')
Programming is work that requires concentration and energy, and where does it come from if the developer is regularly lacking in sleep or is not eating well. In order to maintain high-level performance and think clearly and quickly, try to adhere to the regime (of course, there is no need for the most severe discipline - but the absence of any kind of routine can really undermine your strength).
Developers often work at "inopportune times" - late in the evening or at night. If this is not a necessary measure, when it comes to the third part-time job, which is completely impossible to do at any other time, still try to transfer the bulk of the work to the “bright hours”.
In addition to sleep, it is worth (no matter how trite) to remember about nutrition. Do not underestimate the power of breakfast - it provides the body with fuel and activates the body after sleep. Without breakfast, you are like a car without fuel - you will not go anywhere. Morning food allows you to restore the level of glucose necessary for the functioning of the brain. According to the
research conducted , people who eat breakfast are less susceptible to stress, are happier and have better memory and concentration than those who skip this meal.
As for the later time of the day, dietitians
recommend eating about every three hours (plus or minus depending on your rhythm of life). With this approach, the blood sugar level is maintained at a normal level, and you will not feel sleepy, which will certainly add productivity. Regular meals not only provide you with energy to solve important problems, but also help maintain a good mood. Therefore, those who are in the heat of work forgets about hunger,
experts advise to even set an alarm clock so as not to miss lunchtime.
It is also worth a few words to say about water. Specialists from the University of East London and the University of Westminster in the UK
conducted a study and analyzed the potential effects of water on the cognitive functions and mood of a person. They were able to establish that drinking water improves the performance of our brain.
According to Dr. Caroline Edmonds (Caroline Edmonds), the lead author of the study, taking a glass of water before performing intellectual activities can speed up the work of the brain by 14%. Scientists also emphasize that drinking water improves mood. When participants in the experiment were dehydrated, they seemed tense and sad. In this regard, many
advise to keep on your table a bottle of plain water - unlike tea, coffee or juice, it does not have any negative health effects.
Pro planning: take breaks
People often plan their daily work routine as if they would work equally well throughout it. However, you need to consider the body's energy reserves, which determine how long your productivity will remain at a high level.
Just like a runner gets tired during a marathon, your concentration will decrease during continuous work. One of the residents of the Stack Exchange platform
notes that for an 8-hour working day it’s worth taking at least two breaks of 15 minutes and one big lunch break per hour. Short pauses during the working day stimulate your mental activity: when you know that there is a little rest ahead of you, it becomes much easier to work.
A good option would be to work on timers, which would inform you that it is time to take a break. A short rest will charge you with energy and give new strength to solve current problems. The user of the social service Quora Pallavi Ghosh (Pallavi Ghosh)
says that even minimal physical activity helps her to invigorate herself during the holidays: to get up from the computer, to take a walk, to “shake up” a lingering body. It would be nice to pay attention to charging for the eyes, so that they also relax a little.
During a break, it is useful to concentrate on things that are not related to work (this helps to use the break with maximum efficiency - and return to the workplace with new forces). If, however, your thoughts do not want to go far from the subject of programming, then you should pay attention to various puzzles and games for developers. Reddit users
suggested several options.
About motivation: learn how to set yourself up for work
The previous point was about how to get away from work, now let's talk about how to get back to it. Deep breathing helps to enter the zone of concentration. Imagine you are a weight lifter who is going to lift a lot of weight. An interesting way of returning to the “working state” in 7 minutes is offered by the author of Layhhaker, Lera Merzlyakova, you can learn more about it
here .
Also, habits can help to get back to business - if you like to twist something in your hands while writing code, then just start doing it, and the brain will automatically reorganize and direct your thoughts in the right direction.
For music lovers, the good news will be that
energetic music helps
to shake and tune yourself into active actions - however, having tuned in to the working mood, it is better to switch to something quieter or work in silence. This will avoid the appearance of the illusion of multitasking - an attempt to perform several tasks at once (and thoughtful listening to complex, dynamic compositions is not such an easy task for your brain) during work reduces the level of your concentration.
About restrictions: do not work more than 8 hours a day
When you force yourself to work only a strictly defined amount of time, you begin to do more. Knowing that you have time to complete the task in the evening, you prokrastiruete and postpone the case for later. If time is limited - you use every given hour to the maximum. There are many
stories when people who worked overtime started to work less hours to spend the evening with their family, but, to their surprise, their productivity only increased.
If for some reason you are still out of the schedule, then perhaps you should pay attention to the practice of time management. A good series of time management tips was
brought by Oliver Emberton, a programmer and founder of Silktide. There are many interesting things on a similar topic in his blog.
About order: write down ideas, take notes
Small notes will not let you forget something important and just help you organize your own ideas. Since this activity is very personal, it is worth experimenting with various specialized tools. Reddit users include Evernote, Onenote and TheBrain as the best applications for organizing the day's work.
A good programmer must know the limits of his own memory: the worst thing in ideas is that you don’t even notice how they disappear from your head. As Jesse Schell, analyst and executive director of Schell Games, wrote in The Art of Game Design.
Pro engagement: think about what you are doing
One of the easiest ways to waste time is “right off the bat” to get down to the task. The first decision that comes to mind is often not the best. Moreover, in the process of thinking, you can come to the conclusion that the problem that you have been trying to solve so much is not a problem at all, and you do not have to waste time on it. Psychologist Daniel Kahneman, in his
book Thinking, Fast and Slow, writes about this ability of our brain to act quickly and irrationally.
Experts who “cook” in the field of development for some time,
note that you should first study the pros and cons of different approaches, and then choose the one that best suits the specific situation. It is worth assessing which solution will be the most reliable, which one is the simplest, and so on, that is, look at several possible alternatives. It also makes sense to draw small diagrams that would explain the advantages and disadvantages of each method in question (do you carry a notebook for writing ideas with you?).
If you decide to use the capabilities of an unknown framework, it is worthwhile to estimate in advance how difficult it will be to learn. Ask yourself, is the result worth the time spent? Also ask yourself, will it be easy to maintain this code? On this topic, a good material was written by a programmer and blogger Egor Bugaenko. You can see his
article Nine Steps to Start a Software Project.
About short routes: know when to cut a path
Many would agree that the solution that most efficiently uses resources is sometimes not worth wasting precious time on it — it is enough to simply “rivet” an application that does the work it needs.
If you just want to check the function for "viability", then it makes no sense to immediately implement it in and out. Polish everything later, if you (or someone else) have a taste for the new “feature”. Knowing when to cut the path and complete the task as quickly as possible by sacrificing certain functions is a difficult skill that is worth learning. It requires a clear understanding of what you are currently working on, but it will save quite a lot of precious time.
Pro vision: master the art of debugging
A strong influence on your programming skills has the ability to find and fix errors. At the same time, several factors affect the speed of correcting bugs, for example, experience, the ability to remain calm in difficult situations, an understanding of the technologies used, and so on.
Debugging is an important part of the software development process, so you need to put extra time on it in your schedule. It is worth doing this even if you are 100% sure of the implementation of a task, because in any situation there may be unforeseen difficulties caused by no fault of yours.
A good skill is the ability to predict the appearance of bugs and avoid them before they spoil everything. Almost every programmer has a habit of asking himself: “What happens if ...?”. You just need to take another step forward and think about far-reaching consequences.
Again, about the order: take time to "clean up the code"
Working in a dirty code is like living in a mess. You constantly stumble over scattered things, and over there that heap of socks smacks well. It is important to understand that clutter is a natural side programming process, but just as you clean the kitchen after cooking, it is worth putting the code in order after implementing several functions.
A “clean” code is a formatted code in which there is no “garbage”, and the functions are located in logical places. For these reasons, high-quality refactoring may require you to change the code structure and rework class dependencies. It is also worth paying attention to the comments, as they tend to become obsolete.
Refactoring gives a useful side effect. Reading and reorganizing the code, you begin to understand it better. When you remember that where it lies and what it does, it becomes much easier to look for mistakes. Elliot Chance, an engineer at Kounta,
adds that it will be good if you train yourself to write simple code right away. The more lines you write, the "lazier" the program will be. It would be nice to spend a little time, but find a simpler and more elegant solution.
Experience sharing: read blogs and programming forums
Exploring programming sites and forums, you will show yourself and learn from others - this is a good way to remember long-forgotten topics, functions, techniques. So, you can gain knowledge in a question that you yourself might never have encountered. It is known for certain that when answering a question, the one who responds first wins.
Also read blogs, preferably more often. Quora resident and engineer Alex Kamil (Alex Kamil) provides an exhaustive
list of interesting blogs, perhaps you should explore it [another
list is on GitHub]. Of the most famous resources, Coding Horror and Joel on Software should be highlighted. From Russian-speaking - Habr, of course.