A Review of 'The Battle Hardened Developer': Habits and Mindsets for Sustainable Growth
Not long ago, I visited the Kyobo Bookstore in Gwanghwamun. Being a developer by trade, I have a habit of always visiting the IT book section whenever I go to a bookstore. It’s not necessarily because there is a specific book I want to buy, but rather to see what the current trends are. While browsing, I suddenly noticed a book with a very emotional and soft title and cover, which seemed quite out of place in the developer section.

Link: The Battle Hardened Developer - Fiodar Sazanavets
Upon looking it up, it didn’t seem to be a very famous book, but the table of contents was quite provocative. In particular, the chapter titled “Social Media and the Inner Destroyer” made this book very intriguing to me. In fact, the profession of a developer is very vulnerable to social media. Of course, there are many people who are inherently uninterested in the stories of others, or who naturally drift away when work piles up. However, since it is a job that involves spending much more time in front of a computer than others, a momentary mouse click can easily evolve into an endless scroll through feeds.
Sometimes, there are places that even encourage this. Nowadays, social media has gone beyond being just a drug-like entity that wastes time; it also plays the role of personalized news delivering stimulating information most rapidly. Therefore, many people continuously monitor and participate in numerous platforms like X (Twitter), Threads, and Telegram.
While this appearance can be seen as an extension of work in some ways, on the other hand, it forces us to walk a tightrope where we justify it as part of the job. The moment we slip into a place that distracts us for a second, unlike our original purpose of checking what useful and substantial latest information has been uploaded, we might fall into stimulating and addictive content, unable to escape the feed for hours.
The author of this book is a senior developer who has worked at good companies for quite a long time. In this book, the author explains the attitudes, habits, and ways of working based on the experiences he felt while working as a developer. Unlike the majority of books that explain developer guides for better companies, careers, and salaries, this book explains what mindset and habits one should have during working hours to achieve more effective results.
While reading this book, there were over 90 parts that resonated with me and I underlined. Here is a summary of some of them:
-
Deep Work: Since programming requires intellectual thinking, deep work—fully focusing—is highly required. The hardest part of deep work is starting; once you begin a task, you need to immerse yourself in it for at least 15-20 minutes. This is because changes in mental state happen spontaneously, not when we think about them consciously. Do not hesitate about entering deep work at this time; just start the activity. If you fail to enter a state of flow, it is better to take a rest.
-
Enjoying Flow: All top-performing developers enjoyed the state of flow through deep work. Distracting thoughts may occur in the middle; instead of criticizing this, acknowledge and accept it, then move on. The amount of time most people can maintain conscious concentration is only about a couple of hours a day.
-
Adjusting Difficulty: It is difficult to enter a state of flow if the task is too hard or too easy for you. Therefore, we must work while steadily increasing the difficulty level to experience flow frequently. This not only makes you better at your job but also provides the benefits of a growth mindset and lifelong learning. Of course, the speed of work can also increase.
-
Separating Work and Rest (Remote Work): If you work remotely, you must be able to mentally separate your workspace from your resting space. One good tip is to “take a walk around the neighborhood before starting work and then come home to work.” This can psychologically mark the beginning of the day. Conversely, when work ends, behave in the same way as you did at the start. This allows you to psychologically mark the end of the day as well.
-
Building Good Habits: To become a good developer, you must cultivate good habits. Habits like self-control are essential; procrastination is fatal for developers. Time spent procrastinating is time not spent on developing skills, and the more you delay, the more your professional development lags. Additionally, if there is a situation where you need to learn something, you must force yourself to start that learning. Initially, you will spend a lot of energy on the action of starting, but over time, it becomes an unconscious habit.
-
Importance of Rest: Recognize the importance of rest. Recharging is crucial to a daily routine. Complete separation from electronic devices is necessary during time with family, weekends, and vacations. In particular, it is good to cultivate the habit of regularly reviewing what thoughts and actions you had during the day. This allows you to quickly spot unwanted behavioral patterns and prevent them from becoming habits. Meditating for about 10-30 minutes a day is also a great help in overcoming negative habits.
-
Continuous Learning: You should record best practices obtained through books and blog posts and embody code that gets progressively better by reflecting it in your own code. It is very helpful to set a specific time for this learning and do it periodically to make it a consistent routine.
-
Journaling: Cultivate the habit of recording your day (journal). You should record what actions you took during the day, even if you are not proud of them.
-
The Average of Five People: The average of the five people you spend the most time with makes you. This is because we absorb other people’s thoughts while interacting with them. In other words, we can and should consciously choose whom to spend time with. Try to enter a good echo chamber (group). Spend time with people who are helpful to you.
-
Helpful Beliefs: It is much more important to have core beliefs that are helpful to you than core beliefs that are objectively considered correct.
-
Social Media Detox: At least one day a week, you must completely detox from social media. Social media puts my consciousness into autopilot mode—a state where I waste time regardless of my will. If you feel you are wasting time, leave the app immediately. If necessary, be prepared not to use the app for a few days.
-
Constructive Arguments: Engage in arguments only when you think there is a real problem with the other person’s opinion. Rather, it is important to keep open the possibility that you might be wrong during the argument process. Instead of blindly attacking the opponent’s perspective, think of it as participating in a discussion through meaningful questions.
-
Adding Your Thoughts: Do not share things as they are; add your own thoughts. It is fine to briefly explain what the author is trying to say. Alternatively, it is important to express your thoughts by writing down your opinions, such as what you liked or didn’t like about the content.
-
Extreme Ownership: We must have extreme ownership. This is obtained when we make intentional efforts, and it completely changes our identity and outlook on life. It helps us fix our problems, evaluate past mistakes, gain trust from colleagues or superiors, and achieve what we want beyond the realistic limits of life. Extreme ownership is the concept of taking responsibility for everything happening around me. Even if an event occurs outside of my control, I assume that I made a series of choices that led to this result. Even in uncontrollable situations, I can control how I react to them.
-
Humility in Ownership: Extreme ownership involves putting aside your ego and humbly admitting failure. It is different from showing a servile attitude or apologizing excessively. It focuses on solving the problem.
-
Prioritizing Health: You must prioritize your mental and physical health over the company. Especially, increasing your workload to the point of burnout is not good.
-
Monk Mode (Essentialism): The monk mentality means designing your day solely with activities to achieve your goals. Completely exclude all activities that do not help achieve your goals. List your daily routine and actively eliminate distractions. At this time, every activity included in the routine must have a purpose. Through this, we can eliminate hesitation in life and avoid falling into analysis paralysis.
-
Uncompromising Routine: The moment we nail down that the created routine is non-negotiable, we stop worrying about what to do. Our day is planned, and we just have to selectively perform the activities on the list at the set times. If you set a time dedicated to productive activities and do not compromise, you can achieve much more than people who handle work as it comes. If something unexpected happens or you fail to estimate the work accurately, modify the schedule. Even if it was a planned task but you judged it actually unimportant, or you couldn’t finish the work, just modify the schedule. The conclusion is that you can achieve much more than when there is no system.
-
Microtasks: Develop the habit of breaking down large chunks of work into the smallest indivisible units, or microtasks. The hardest part of a microtask is that it is difficult to clearly distinguish where to start. When you do microtasks, you can trick your brain into seeing the work as much smaller and easier, preventing your subconscious from sabotaging your effort to complete it. Through this, you can easily gain momentum and prevent work interruptions for planning. However, the plan does not have to be perfect. Even if you didn’t divide it exactly, just correct it. Generally, one feature is appropriate to be one microtask. Using methods like the Pomodoro technique allows you to apply microtasks effectively.
-
Planning Tomorrow: It is good to end the day by planning what to do tomorrow. Just because you invest more than the given resources into a task doesn’t mean it will be completed efficiently (Parkinson’s Law). In other words, if you have sufficiently filled the given amount for the day, it is also important to plan for tomorrow and boldly take a rest.
There are truly many self-development books in bookstores, especially books for the growth of developers. If you are a junior developer, or even a senior developer who is concerned about more fundamental growth, I highly recommend reading this book at least once.