Truly Slacking Off for Two Weeks
To be honest, I haven’t done much in the past two weeks. Except for meeting deadlines, I didn’t actively seek to learn more. Usually, I swim 1000m at PAC in the morning, spend a half day in the E7 study room, then go home in the afternoon to rest and take care of work matters. My self-discipline seemed to have disappeared. I spent a week on algorithm classes, looked at various materials, and suddenly gained a new understanding of my job…
Gradually Figuring Out What I Want to Do
It all started on the night of the 19th (two weeks ago). That night, I realized that to enter a large internet company as a programmer, understanding algorithms is a crucial stepping stone. Also, considering that I need to start job hunting at the beginning of next semester, unlike the last semester where I found a job at the very end, I realized that time is running out for me.
Understanding the difference in efficiency between blindly solving problems and systematic learning, I went straight to Bilibili to find courses. Luckily, I came across a course on algorithms by Lao Li, which turned out to be very suitable for me. I devoted myself to it. The whole of last week was spent devouring this course; even in my sleep, I felt like I was surrounded by binary trees. After a week, halfway through the course, my motivation began to fade, and I started to passively watch some entertainment videos.
One day, I stumbled upon a course on computer systems at Nanjing University. After listening to one lecture, the introduction made me realize some things and reflect on my original intention of studying computer science.
Why Did I Choose to Study Computer Science in the First Place?
Certainly, a good salary was one of the reasons, but there was a joke that came to mind:
T: How’s your writing?
Me: To be honest, I studied engineering because I was bad at writing.
T: What would you have studied otherwise?
Me: [Speechless]
I often pondered on this question: “If I didn’t study computer science, what would I study?” And every time, the answer was null
. Then I suddenly realized that I actually love using computers, enjoying the sense of accomplishment from creating little tools on my own computer. My original intention for studying computer science was to be able to use it more effectively, to better control it for my own tasks.
Fun fact: The original purpose of writing a blog was to share computer usage tips, to make using a computer not a torture but an efficient way to do things
However, I later found out that the internet is not lacking in this area of knowledge, and my blog theme shifted a bit due to my laziness
Another reason for entering the engineering field should be the numerous excellent engineers I saw on YouTube, like Stuff Made Here, Mark Rober, and domestically, Zhihui Jun. I hope to be like them in the future, able to freely turn ideas into reality.
It is precisely because of this original intention that I tried to build my own server, run some ready-made programs on a Raspberry Pi, even set up a server myself, and installed an Ubuntu server system. It is also because of this intention that I started thinking about learning about operations, as many ready-made tools online often need to be run on private servers to be useful for oneself.
My research on VPN in the past allowed me to come into contact with VPS and cloud services, to some extent, which contributed to me landing my current Service Engineering job.
However, halfway through this work term, I realized that this job might not be my ideal job. Yes, this job is similar to other IT jobs, requiring me to constantly learn new tools. But using a tool is simple; understanding the principles behind the tool is what makes it useful. I obviously lean towards the latter—I don’t like the feeling of being in the dark because that floating feeling in the air will eventually lead to a fall due to an unstable foundation. I think as an undergraduate, I should not stop here.
So, what I really need is to systematically build a solid foundation in computer science, starting from mathematics, circuits, moving up to computer systems, algorithms, and other higher levels of abstraction.