Intro


As a undergraduate who majors in computer science, I was focusing on learning prgramming languages, popular frameworks, university or online lectures in the last three years. My past learning goal was to get myself into the computer science field as well as build a solid theory foundation on which I can step and thrive in my future career. Therefore, most of the books that I read in this period can be categorised into so-called “tool-books” or “textbooks”. Those books taught me how to util a tool - for example, how to code in Java - just like teaching a soldier how to use a sword. However, if you want to be a real sword master, it is definitely not enough to merely know how to spike your enemy with it. I believe, the threshold of being any kind of master in life is whether you encounter the moment when you start to shape and form your own philosophy into the object that you are interested in and passioned about. Hence, I am here, wrting down this reflecting doc, on the very first book in the new chapter of my learning journey: “The Pragmatic Programmer”.

In short words, this book teaches you how to become a better programmer, technically and non-technically. The authors share useful tips along with demonstrations. Undoubtedly, this book is not a collection of tips, but, I will adopt their pattern and share my own thought on each tip. Hope you enjoy it!


Tips

Tip 1: Care About Your Craft

You can only make something if you truly love it. I have invested huge amount of time and resource into becoming a great programmer simply because I LOVE coding.

Tip 2: Think! About Your Work

Critical thinking is envolved everywhere in your life if you want to be an efficient player in the game of the world. Think about the options when you make a move. Think about the consequence of your choices. Think about why the things work in their ways. Children learn faster because they never stop asking. So be you.

Tip 3: Provide Options. Don’t Make Lame Execuses

As the all-known quote says: “Keep Calm and Carry On”. When you face a challenge or a difficulty, your first intuition should be coming up with a solution towards it instead of making excuses or blaming yourself / others.

Tip 4: Don’t Live with Broken Windows

No 摆烂 (Let rot rots).

Tip 5: Be a Catalyst for Change

Tip 6: Remember the Big Picture

People love stories. Storytelling is one of the most important skills that we should master in today’s world. If you believe you have taken a glimpse of a future success, action fast to produce a MVP (minimal valuable product), bring it to the customer, grab them on your boat by adding little spicy 😈 unintentionally.

Reversely, you have to remind yourself to focus on the right track. You are your own customers. Sometimes small changes can misguide your direction when they accumulate by time. Therefore, you have to review yourself often. Remember what is your motivation. Question yourself what you’ve done wrong and correctly.

Tip 7: Make Quality a Requirements Issue

Better is greater than the best. Stop being a victim of perfectionism. Definitly not fall into the situation that you stop developing just because you think you are not good enough to make the “perfect” product.

Tip 8: Invest Regularly in Your Knowledge Portfolio

Computer scientists are required to learn constantly life-long. Or we should say every individual should be like that. Technologies are envovling fast and so are we. The more you learn, the better you can understand the principles of the computers. It’s not only benefitial to your capability in the computer science field, but more importantly it can guide you how to be a better man (computing is just a mapping of the real world, right?). Diversity and depth all matter in terms of your knowledge base.

It doesn’t matter how many hours you learn a day, the thing that really matters is to learn everyday without breaks, regardless how much you learn per day. We can’t run all the time, but we do walk every day. It’s a life journey, so try to make it enjoyable, brace the fact , and start to love doing it instead of considering it as an item on your to-do-list.

Know what you don’t know is important. It’s crucial to know where to find the resource to update yourself. Thanks to today’s Internet we can find huge amount of resources that may be helpful. If you happen to know something interesting and valuable, please contact the author (me of course), lots of thanks.

Tip 9: Critically Analyse What You Read and Hear

Evaluate the learning resource that you find before rushing into it.

Tip 10: It’s both What You Say and the Way You Say It

Communication is the key as long as you are not living alone. Know yourself and know you audience when you communicate.

Tip 11: DRY — Don’t Repeat Yourself

Tip 12: Make It Easy to Reuse

Duplication generates errors. Wrapping common logics into functions instead of copy and paste everywhere. Deriving variables instead of declaring them. Refactoring your code base instead of leaving “broken windows” in it. Communicating with you teammates often. Setting up a DRY culture in your team.

Tip 13: