User Story Change in the Valley of Despair Begins With Learning

User Story: Valley of Despair - Change Begins with Learning #

Hello, I am Roger, currently serving as the lead backend developer for a game company.

It’s been almost ten years since I started working. As a person with fairly average learning capabilities since childhood, my history of battling through levels and increasing skills has been pretty painful.

I graduated in 2013 with a major in Software Engineering from a teacher’s college. In my senior year, I went through three months of continuous interviews and written tests during campus recruitment, and barely managed to secure a job doing backend development for a card game, signing up to move to Shenzhen. Less than half a month into my internship, I began to suffer from insomnia because I had never studied deeply in school; I lacked professional knowledge and could barely understand code. At the time, there weren’t many channels for help, so I couldn’t get into a working state and was suffering a lot.

Even if we have a wealth of knowledge, when switching to a new company, there will definitely be a lot of content to learn and master, and the process is bound to be very painful and tedious, and this feeling becomes very obvious with each job change.

After suffering from insomnia for half a month, I approached the department leader to ask for a change in position, expressing my feeling of being unsuited for development work. The leader patiently guided me and asked my mentor to give me more attention. He explained that while my technical skills were weak, they were obviously more fitting for me than a zero-experience planning role. After hesitating, I decided to give it another try for a while.

But everyone in the department was incredibly busy at the time, and other colleagues simply had no time to deal with my confusion. Out of desperation, I began to seek solutions directly in the company’s technical group chat. At first, no one was willing to pay me any attention, and naturally, I felt uncomfortable, but I persisted. Maybe it was because I asked too often, but sometimes some kind colleagues were willing to help me with my questions. I quietly took note of some of the experts’ names and would go directly to them with problems later on, usually getting them resolved quickly.

While I could consult the experts for difficult problems, the basic knowledge I lacked still had to be tackled bit by bit. For a graduate, there’s too much to learn.

For technologies that I knew would be needed soon, I would prioritize and learn them quickly. An example that left a deep impression on me was when the project needed to use Redis. I spent less than four hours in the evening watching tutorial videos and, with the good habit of immediately practicing after learning, I mastered all of the high-frequency command usage. It was then I realized how immediately practicing after learning could deepen my memory. The tasks that previously seemed difficult were quickly mastered with interest and good study habits.

Besides common tools, there were also data structures and algorithms, computer networks, computer organization principles, compiler principles, and a series of basic skills. The feedback cycle for learning these was especially long. In actual work, the longer you’ve been in the field, the more important these pieces of knowledge prove to be. We need N years of work experience, not N repetitions of the same year of experience.

I’ve heard many people complain: “The experts mastered these basics back in university, and only after working for so many years did we start trying to catch up. It’s hard to remember what we learn, and it’s seldom used, so we might as well slack off.” In fact, even for those who come from a specialized background, schools teach almost entirely superficial knowledge, and there are relatively few opportunities to really get hands-on experience. It’s only after making continuous mistakes at work that one realizes the importance of these basic skills.

For mastering the basics, my plan is to set goals for each at the beginning of the year and review them at the end of the year. “The Three-Body Problem” says: “A team of ants constantly carries rice-sized pebbles, and given a billion years, they could move Mount Tai. If time is stretched long enough, life is much stronger than rocks and metals, and more powerful than hurricanes and volcanoes.”

However, maintaining good habits is very challenging, so it’s important to start with targets that aren’t too difficult. Break big goals into smaller ones and achieve them step by step. Don’t get stuck on one task for too long, as it can lead to discouragement and abandonment. Be flexible about the content you need to learn during the process.

I personally prefer reading relevant classic books or taking courses from top universities on iCourse. The advantage is that there’s a wealth of course resources, and I can freely switch between courses from favorite universities. The downside is these courses tend to be outdated. Fortunately, platforms like Geek Time can perfectly solve these issues.

Long-term plans like these can easily lead to a loss of interest in learning. A good way to maintain interest over the long term is to balance solidifying your basics while also planning to learn new knowledge. For example, you could set a goal every one or two years to learn the hottest programming language or new technology and keep up with new trends. Care for yourself and for the world. Gentlemen aren’t constrained by specific skills but develop in a well-rounded manner, enhancing their resilience and becoming more anti-fragile.

So far in our chat, you might think I’ve leveled up to be an expert, but it’s not that simple. What I’ve discussed is the summary of my learning journey over the past nearly ten years.

Finally settling into work after three tough years in Shenzhen, I faced the separation with my wife, which couldn’t be a long-term plan, so I chose to move back to Xi’an.

After changing my job, new pains came, and I found there were lots of new things to learn again. The working environment was not at all what I had imagined, with unprofessional colleagues and an incomprehensible corporate culture, accompanied by a three-hour commute. Every day, I was full of resentment, and my relationship with my family suffered terribly. I felt disconnected, and at one point, I was so stressed that I was frequently running a fever and even had to rest in the hospital for half a month.

I am grateful for the hospital stay; resting at ten at night, waking up at six in the morning, I had plenty of sleep without the pressure of work. I had plenty of time to reflect on various issues. It was the most comfortable period since I started working. My wife accompanied me throughout the hospital stay, and, to my surprise, even colleagues with whom I had a very poor relationship came to visit.

After being discharged, I decided to change: improve relationships with colleagues, care more for my family’s feelings, and try to quit smoking. But the actual feeling was willing but powerless; although I tried, my colleagues still kept their distance, the kids hardly wanted to spend time with me, and I failed to quit smoking.

A year passed, and after a tonsillectomy, I had another break in the hospital. I suddenly realized that although I had tried hard, perhaps my methods were still wrong. I needed to find a way to help myself. At this time, by coincidence, my wife recommended to me a course by Fan Deng on “Replicable Communication Skills,” which I found quite interesting. This course completely changed my subsequent life.

Due to lack of time, I began listening to explanations of various classic books, learning useful theories and methods. Some influential books for me were “Nonviolent Communication,” “Crucial Conversations,” “Mindset: The New Psychology of Success,” “Peak: Secrets from the New Science of Expertise,” “Brain Rules,” and “Intimate Relationships,” among others.

With willingness, plus theory and methods, what remained was execution. I had more quality time with my family—they gave me love and tolerance, providing me more joy and motivation each day. Spending time with them also made me passionate about work and learning. Applying the patience I learned with my children to interactions with colleagues improved the work atmosphere. Family and work don’t have to conflict. Balancing them, I feel happier each day than the last.

Life is always full of challenges. Just when I thought I had mastered controlling my emotions and knew how to interact with people, I still had a major conflict with a new colleague. Even so, I believed I could quickly adjust my mindset and quickly pulled myself back from the brink of collapse after reviewing some books. And precisely because of this experience, I was also able to quit smoking successfully.

In the process of continuously leveling up, I’ve encountered many problems. Often, with a fully packed work schedule, I couldn’t even find time to study. But that couldn’t be an excuse not to grow. There are so many ways to learn: reading books, watching videos, reading columns, reviewing source code, participating in various online and offline sharing events, etc. The key is to find the method that suits your current state the best. Even as I write these words, my five-month-old younger son is in my arms while my wife tutors our older son on his homework.

Earlier I mentioned setting annual goals for each area. This year, my new language learning goal is Rust. You might think that for someone who has nearly ten years of work experience, learning Rust would be smooth, right? Actually, that’s not the case; many concepts require repetition and digestion to comprehend properly.

I read the Chinese translation of “The Book” at the start of the year, and tried writing a very simple command-line program, which took me three to four hours, mostly in a struggle with the compiler. In March, I reread the English version, executing all the source code personally. Even after all these, I still hadn’t truly mastered it or could fluently write Rust code.

In September, I took a video course by “Craftsman Software” on Bilibili, which was like reviewing the book content via video, which improved my understanding of some points that were initially unclear. I personally prefer video explanations; even though learning took longer, the dual impact of visual and auditory memory made it more resonant.

Although I’ve roughly gotten the hang of the basics, applying Rust in the workplace is still a long way off.

Later, I was very lucky to come across Teacher Chen’s column, and after seeing the catalog, I immediately purchased it. The content in his column can almost be perfectly integrated into actual work, and coupled with hands-on exercises, the learning effect is very noticeable. I believe that after completing the course, I can attempt to use Rust in projects.

Lastly, I want to say, learning Rust is definitely a long journey. The process will be exceedingly difficult, and there will be content we can’t grasp smoothly at first, but as long as we don’t give up, we can overcome these temporary challenges with repeated study and hands-on practice. I’m confident that we can all reach the destination successfully. Keep it up, and let’s encourage each other!