The Pragmatic Programmer — Oct

He Lin
4 min readFeb 11, 2022
Photo by James Harrison on Unsplash

Table of Contents

  • Pragmatic Programmers’ Mindset
  • The Most Important Lesson

Pragmatic Programmers’ Mindset

When I was 19 years old, I entered the world of programming. Given the then searching skill and no one guide me how to learn about programming fast and effective, I spent 3 months learning Java (a programming language).

After that, I started to code something out using Java. I was very frustrated when I couldn’t find a way to get the program running. Then if things started to work, it always came with bugs.

It was until I first found the book “The Pragmatic Programmer”.

First thing first, set your mindset right, dear programmers.

It’s always easy to get off the rail if you build something or learn something alone without proper guidance. It could be the irresponsible assignment groupmate makes you play the finger-pointing all time until the team fail to complete the project. It could be the spaghetti code in the project makes you lose hope in shipping high-standard code. It could be the endless bugs make you no longer feel passionate about being a programmer.

In the book, the authors define the correct mindset that a pragmatic programmer posses

  • They take responsibility of their work instead of making lame excuses
  • They never compromise the quality of software by leaving the “broken windows” (bad designs, wrong decisions, or poor code) unrepaired
  • They know no single software exists with zero bugs

And many more underlying cornerstones that make a programmer a great programmer.

The book saves me from complaining and feeling upset about the software development. For example, I start to acknowledge “debugging” is merely problem-solving. It’s not that you always write a software with full of bugs, it’s the nature that humans always make mistakes when writing program. Maybe it’s those complexities contributes to the high salary of software engineers.

The Most Important Lesson

The only constant in life is change. The only way to become better is to learn constantly and embrace change.

Let me borrow the idea of “Knowledge Portfolio” from the book. As an investor, you may have your investments in different funds to lower the risk of betting on the wrong market. In contrast, you may invest all your money in a single field e.g. Bitcoin if you have 100% confidence in the rise of Bitcoin.

The total amount that you pour into different investments shows how do you allocate your resources to maximise the return out of your fortune.

While as a programmer (or any other career), your fortune is your time and energy. How you allocate your time and energy to learn different tools or technology decides the overview of your “Knowledge portfolio”.

From the book, there’re 5 steps to building a strong portfolio.

  1. Invest regularly: Invest your time in something you wish to master daily. If you get 1% better each day, over 1 year you will be amazed by the 37x improvement you’ve made. Maybe you want to master competitive programming? Solve LeetCode daily questions.
  2. Diversify: Build habits to keep the latest information coming in. One simple trick is to immerse yourself into a community of like-minded people. From the information you get, play around with the latest technologies, discuss with others to spark new ideas. This should be a subconscious process if you successfully expose yourself to different channels of information. Here’re some suggestions

3. Manage risk: In financial market, high risk always comes with high reward. The same goes to technology field. Do you think Solidity is going to be a powerful language to the future of finance? If yes, you may want to spend 15% of time to explore and learn the language. In other words, if something is new to the market, everyone is talking about it, you may want to look into the tool and decide yourself if this worths your time to explore.

If you notice a language is poorly supported and everyone is criticising it, you’ve noticed a red flag. Why bother to learn something which no longer in demand?

Of course there’re “stocks” that remain in high demand in years if not decades. After all, programming is different from financial investment. Learning skills to build a mobile application most likely will not get you jobless since everyone will be still using mobile devices in upcoming years.

4. Buy low, sell high: From the 3rd step (Manage risk), you may notice certain tools that come with little comments from the market or market are debating the usefulness of the technology innovation. Then it’s your turn to apply critical thinking to decide: will programmers with this skill get a handsome pay in the upcoming years?

If your answer is yes, it may be worth your time to “buy in” and harvest your rewards (sell high) in future if you are right.

5. Review and rebalance: If you think you’re paying too much attention to mobile application, maybe try explore the field of website building to diversify your portfolio?

The book comes with tonnes of “Tips” that will come in handy when bumping into different issues. It’s like a help guide to clear your doubt. The topics involved include:

  • Programmer’s tool (Editor, Shell, Text Manipulation and so on)
  • Software project (Requirements, Prototype)
  • Team (Automation, Communication)

You may read the chapters randomly or just pick one chapter to get insight to write a better program.

Thanks for reading.

--

--