The Courage to Be Disliked: A Senior Engineer’s Must-Read?
Overhyped but effective, this book tackles the core career roadblocks every software engineer faces.
Last Thursday morning, I sat staring at 17 harsh comments on a Pull Request, my heart rate spiking and a fierce urge to get into a shouting match with the Tech Lead boiling up. That was the moment I pulled “The Courage to Be Disliked” out from the corner of my shelf—a book I once dismissed as “cheap philosophy” three years ago—to reread it with a completely different mindset.
🧠 Adlerian Psychology Amidst the Lines of Code
Most of us software engineers are trained to solve computer problems, yet we spiral when faced with human ones. Once you climb to a Senior position, you realize that coding only accounts for 30% of the job. The remaining 70% is negotiating with Product Managers (PMs), reviewing code for Juniors, and defending system architecture against unreasonable demands.
This is exactly where Alfred Adler’s philosophy—interpreted in this book—comes into play. Unlike Freud, who argued that the past determines the present, Adler asserts that all human problems stem from interpersonal relationships.
The book doesn’t teach you how to be a jerk. It teaches you the concept of “Separation of Tasks”—a design pattern for the mind.
🎭 The Illusion of Validation
When your code is not you
A common affliction among techies is tying our egos tightly to our lines of code. When someone criticizes your architecture, you feel like they are criticizing you as a person.
Adler shatters this illusion with a cold splash of water: You do not live to meet the expectations of others. If you design an optimized system but the PM dislikes it because it takes an extra 2 days, their frustration is their task. Protecting the project’s quality is your task. This separation is identical to the principle in Tư Duy Kiến Trúc Hệ Thống: Đừng Mắc Bẫy—each module minds its own business.
⚔️ Separation of Tasks: Muting Slack Notifications in Your Head
Your bug, your responsibility
Let’s take a real-world example. Recently, my team used Claude Sonnet 4.6 to auto-generate boilerplate code. A Junior developer copy-pasted it wholesale without checking, causing a production error.
My old reflex would have been to jump in and fix it for him to keep the peace, or feel guilty that I didn’t review the PR thoroughly enough. The Adlerian reflex: Point out the error and require him to fix it himself. His frustration at being made to redo the work is his “task.” Maintaining code standards is my “task.” Refusing to carry the weight of others’ emotions saves you the energy to actually get work done.
The Courage to Be Disliked
🛒 Check Price & Buy Now on Shopee →* Affiliate link — price remains the same for you
⚠️ Fatal Flaws of the Book
A philosophy that can be extreme and toxic
I only give this book 3.2 stars because of some unavoidable flaws. The book is written in a dialogue format between a Philosopher and a Youth. The way the Philosopher corners the Youth and completely denies the concept of “trauma” can sometimes veer into victim-blaming.
If you are dealing with severe psychological issues, this book might make things worse. It is only useful when used as a tool for setting boundaries at work, rather than a bible for your entire worldview. Sometimes, finding meaning in work through different lenses, like in Sự thật trần trụi về ‘The Pathless Path’, offers better healing.
⚖️ Comparing Work Mindsets
| Situation | Traditional Thinking (Freud) | Separative Thinking (Adler) | Real-world Result |
|---|---|---|---|
| PM pushes unreasonable deadline | Grinding all night to please the PM | Clearly state risks, refuse the deadline | Initial grumbling, but no “garbage” code |
| Criticized on a PR | Taking it personally, arguing back | Accept mistakes if right, ignore if wrong | Keep a cool head |
| Junior asks questions constantly | Hand-holding out of obligation | Provide documentation, require research | Junior becomes more independent |
🛠️ Practical Application for Your Next Sprint
I’m not suggesting you bring this book to the office and start preaching. Apply it quietly:
- Draw lines of responsibility: When taking a task, immediately identify what you control (code quality, estimated time) and what you don’t (boss’s emotions, changing requirements).
- Stop over-explaining: When you say “No” to a garbage feature, say it professionally. Don’t go in circles apologizing just to make them hate you less.
- Accept the friction: The fact that someone is unhappy with you in a technical meeting is often a signal that you are doing your job of protecting your system correctly.
❓ Frequently Asked Questions
Will I become a team rebel after reading this?
No. Adler teaches freedom from pressure, not rebellion. You still collaborate and communicate; you just no longer grovel or fear being judged.
Is the dialogue format easy to read?
It’s quite exhausting. The Youth in the book frequently screams and argues illogically. You need patience to push through the first 50 pages to get used to the rhythm.
Should Junior engineers read this?
Yes, but read it with a critical mind. At a Junior level, you still have a lot to learn; don’t use “separation of tasks” as an excuse to ignore feedback from those who came before you.
🎯 Conclusion
“The Courage to Be Disliked” is not a perfect book, and its dialogue format is a true test of patience. But for a Senior Engineer burnt out by office politics and useless meetings, it provides a sharp mental framework. Daring to be disliked isn’t about being a jerk. Daring to be disliked is having the courage to do your job professionally, regardless of whether someone rolls their eyes in the conference room.
You might also like
Quitting the Corporate Path for Solo Dev: Reality Check
Trading a Senior role for indie building isn't the rosy dream social media makes it out to be.
Reading with AI: Faster, but Hollow?
AI summaries save time, but at the cost of destroying the soul of the reading experience.
Cursor vs GitHub Copilot: Don't Just Follow the Hype
A real-world comparison to find which AI tool truly speeds up your workflow without compromising your coding logic.