I am FK, I've been a programmer for 5 years, and currently focus on Example. Lately I've been browsing Zhihu and feel I should write something; perhaps later it can serve as my memoir.
After thinking it over, let me start with how I learned programming in college!!!
I graduated from a second-tier university in Fujian, majoring in biotechnology (next time don't ask me whether a non-CS major is suitable for learning programming). In my sophomore year, I resolutely abandoned "the most promising major of the 21st century (apparently the biggest lie) - biology", and went to the library to borrow a copy of C Programming Language (by Tan Haoqiang).

When I got it, I was extremely excited, feeling that once I learned it, I could find a good job and earn some money. But I didn't think about reaching the peak of life, becoming a CEO, marrying a rich and beautiful woman, or anything like that.
Next, following the tutorial in the book, I started installing the C language compilation environment. Then I saw the first program in the book: "Hello World!". To output this "Hello World!", I followed the book's instructions and clumsily typed it letter by letter into the compiler. At the time, I didn't know whether learning this way was right, but I just went along with it.
After typing it, I immediately clicked the run button, thinking I was about to become amazing and embark on the hacker path. Gee, after execution, instead of outputting "Hello World!", a bunch of messy stuff appeared. I had no idea what was going on. I went back and "carefully" compared it again. Damn, it was correct, exactly the same. Could Tan Haoqiang have made a mistake?
Then I spent another half hour, eyes wide open, extremely focused (as if the world had gone quiet), comparing my code with the code in the book. I found that some semicolons, curly braces, and other symbols were missing. It was only then that I realized how unreliable my "carefulness" was. After struggling all morning, I finally output the long-awaited "Hello World!".
Suddenly two people popped into my head; let's call them A and B:
- A: Why learn programming? It's so hard. After a whole morning, you've only output this piece of crap. Why not just play a round of Warcraft III: The Frozen Throne?
- B: Don't you want to find a job and make money? Since you've chosen this, don't give up.
- A: You're only a sophomore now, why worry about so much? Just have fun first...
- B: Your situation doesn't allow you to just play...
At that time, when I thought about how my tuition fees were scraped together by my family from everywhere, I realized I still had to focus on finding a job and earning money to lighten the burden on my family. So I didn't overthink it and truly entered the stage of learning C:
At that time, because there were very few classmates around to discuss with, I basically typed out the programs from the book letter by letter (thinking back, it was pretty dumb). It wasn't like today's IDEs that directly provide autocomplete hints. In this way, I spent two months learning C language variables, loops, conditional statements, etc. The most headache-inducing part was pointers later on; I researched them for a long time but still couldn't understand them...
In the end, I only learned a smattering of C...
... (to be continued)