Epilogue Wishing You a Thornless Path Ahead

Epilogue Wishing You a Thornless Path Ahead #

Hello, I am Haolin.

This column is coming to an end.

About half a year ago (in the second quarter of 2018), Guo Lei, the editor-in-chief of Geek Time, approached me with the idea of writing a technical column about the Go language.

At that time, I was still working as the head of big data at Qingsongchou, managing four technical teams. I was very busy every day and it seemed like I didn’t have any spare energy to write a column with strict requirements on both time and quality.

Guo Lei and I have known each other for a long time, so I firmly said at the time, “I can’t write it, I don’t have the time.” Of course, if I stayed up all night for consecutive days, I might be able to write it, just like when I wrote the book “Go Concurrency Programming in Practice.”

However, at the end of 2017, I had already experienced a life-threatening episode due to acute pancreatitis, so I needed to be very careful and rest. Therefore, after giving it some thought, I decided it would be better to be cautious.

Perhaps it was a coincidence, or perhaps it was destined, but in June 2018, my pancreatitis relapsed. At that time, I was still interviewing for jobs and was in such pain that I couldn’t even stand up straight, but I persevered and completed the interviews.

Later, while waiting for the diagnosis results at the hospital, my third thought was unexpectedly “maybe I will have time to write that column now.” Looking back now, my initial idea was too simple.

However, this column eventually evolved into a collaboration. Thanks to Guo Lei’s persistence and support, as well as the generosity and multiple assistance from Geek Time, after going through a lot of difficulties, this column has finally been completed. I am very happy and relieved about this.

How to write a column #

When writing this column, I have made every effort to ensure that each sentence is accurate and have incorporated my latest research findings and personal understanding.

Therefore, even for myself, this column has great value and significance. Writing this column has pushed me to carefully read through the latest version of the Go language source code.

I set a goal for myself regarding the quality of the articles. What I wanted to ensure is that the quality of each article in the column should not fall below this goal.

Indeed, there is only a goal here, and no bottom line. Personally, when it comes to things with clear boundaries, I do not like to set bottom lines. Because once there is a bottom line, it is often difficult to achieve higher goals. Such double standards make the goal seem illusory.

To achieve this goal, I almost always have to consult a considerable amount of Go language source code when writing each article, to ensure every detail. Each version of the Go language has some changes in its internal source code, so past experience can only serve as a reference and cannot be relied upon entirely.

I need to thoroughly understand (or adjust my understanding), focus on recording and thinking, and then provide an integrated interpretation. After completing all of these, I will incorporate the essence into the article.

I believe that no matter how small or big someone’s achievements are, they need to be accomplished through effort and hardship. Many of the people I have worked with know that I am not someone who easily gives promises. However, once I make a promise, I will go all out to fulfill it.

Most of the time, I do not feel like I am pushing myself, but others (especially my family) tell me “this is you pushing yourself.” Now looking back, I realize that relying solely on bursts of energy to succeed is incorrect. Work should be smooth, after all, “polishing things” requires being “gentle and quiet”.

Column Still Has Flaws #

Although all the articles in this column have been completed, there are still some flaws in the presentation due to my energy constraints.

For example, there are no accompanying illustrations and no answers to the reflection questions. I have already explained this matter several times in the comments section of the Geek Time App.

However, in order to ensure that everyone is informed, I will reiterate here: I will spend a few more months adding illustrations to this column and providing brief answers to all the reflection questions.

I have already started drawing some pictures, and once they are completed, they will be updated synchronously in the articles. You can also go back and reread them.

(Currently in progress)

The order of my updates will be illustrations first, followed by the reflection question answers. Due to my limited energy, I will strive to complete the updates before the Spring Festival next year. I hope everyone can understand.

The Road Ahead #

Everyone’s path is different, even if they are doing the exact same thing. The road ahead can only be created by yourself, but I hope this column can serve as a guiding light for you. Personally, I believe that at least for most readers, my wish has been fulfilled. What do you think? Have you gained enough already?

Regardless, as long as you still want to continue on the glorious path of Go programming, it’s definitely right to actively join a vibrant and passionate technical community. I believe that Geek Time will be such a community. And of course, our “GoHackers” community as well.

In the very end, I want to express my gratitude. I sincerely thank my family! If it weren’t for them, let alone writing this column, it would probably be a luxury for me to sit in front of the computer and type articles. I also want to thank everyone who has helped me along the way. And to all of you who are reading this article, you are my biggest motivation to write.

Alright, I’ll stop here for now. There will be more opportunities ahead. Lastly, I wish you successful learning and conquer all obstacles on the road to becoming a technical guru, invincible in all aspects!

Click here to view the detailed code accompanying the Go language column articles.