【May 2021, Spring Recruitment has basically come to an end】
💬 Let me introduce my situation first. I am a non-major student, with a 211 master's degree and a research direction in fault diagnosis of rail circuit. The surprises that computer science has brought to my life have ignited my passion to enter the internet industry. However, during the fall recruitment, I was torn between pursuing a PhD and looking for a job, and ultimately did not succeed in applying for a PhD, resulting in a fall recruitment record of 0. This outcome made me more aware of the gap, so after some struggles, I began participating in the spring recruitment, and fortunately, I gained some results in the spring recruitment. Therefore, I want to share my journey from 0 OFFER in fall recruitment to 7 OFFERS in spring recruitment.
🧱 Of course, my abilities are still far from enough (my hair is still intact, and I still have potential), but compared to my performance in the fall recruitment, I have made some progress, and I want to document this period of growth and share my experiences with those who may need it, the ones on the journey
~
🎤 The article is mainly divided into two key points, the timeline of changing careers, insights (in learning, interviews, tips), and conclusion, so please read patiently~
😊 It will take about 10 minutes to read this article, and you will gain 5️⃣ learning methods, 6️⃣ interview tips, and 7️⃣ friendly reminders!
Here are the 7 OFFERS I have received so far:

In the end, based on my preference for the company, I chose Shopee and became a small shrimp.
- Exploring Shopee's Shenzhen Headquarters——Lagou
- Why Join Shopee?——Shopee Official Website
Two Key Points#
Learn, learn, learn; choose, choose, choose
This is the biggest key to this change. I hope that after reading the full text, you can remember these two key points, and my article will not be in vain~
📕 Learning: About 6 months of studying computer systems, the learning process is recorded in my blog
🔀 Choosing: I switched from applying for algorithm positions to applying for development positions, as the competition for algorithm positions is just too fierce... the big shots~ In this spring recruitment, I applied to a total of 21 companies, and 13 of them entered the process.
Timeline of Changing Careers#
🥁 The story begins at the end of my first year of graduate school in 2019. Please do not blame me for being verbose; I will first introduce my basic situation for your reference:

⚪ Origin: I became interested in artificial intelligence due to the classification algorithms used in my research topic.
🏃 Experience
1️⃣ I applied for an internship in Huawei's image direction and encountered an enthusiastic supervisor who helped me a lot, but unfortunately, I failed the final personality test; I almost had a connection with Huawei, but later missed out on both the early batch and fall recruitment.
2️⃣ I then participated in two other internships: Tsinghua University's Information Technology Research Institute and Zhongsheng Yihua Technology Co., Ltd.; if you want to intern in a school laboratory, you can pay attention to well-known school forums.
3️⃣ During this period, I participated in two competitions: the Kaggle Global Wheat Competition and the second Nvidia Hackathon, and published a paper in the railway field EI. For Kaggle competitions, you can leverage some deep learning platforms, such as DeepEye, which can help with team formation, explain baselines, and provide ideas.
4️⃣ During the fall recruitment phase, I only made attempts, applying to no more than 10 companies, while focusing most of my energy on applying for a PhD, but I was just one step away three times.
The third attempt was unsuccessful, but I still accompanied my girlfriend to check in at Shenzhen's Happy Harbor, enjoying the sea breeze. Life is about looking forward!🔭

5️⃣ In my second internship, I felt the efficiency improvement of C++ in algorithm applications, attended the Pirate Class at Kaikeba, and unexpectedly got attracted by Brother Guang, signing up for the year-long Pirate Class. This was a surprise for me and also a turning point; the origin of this blog is also due to the Pirate Class.
6️⃣ During the spring recruitment phase, in the golden months of March and April, I spent the entire month of April in my dormitory, either preparing for interviews or in interviews; each interview was an opportunity for improvement. A very important skill is to review: What tasks are boring to do but become more meaningful the longer you persist?
🚩 Key Points (the four flags in the picture)
1️⃣ Tsinghua Internship: This should have been the stepping stone to pass the resume screening, as most people are interested in prestigious schools and large companies.
2️⃣ Kaggle Silver Medal: This is a bonus point that reflects enthusiasm, and I gained a lot from the process: friends from the competition (who later participated in the Nvidia competition together), and the entire process of algorithm application (data preparation -> algorithm training -> algorithm inference -> optimization).
3️⃣ Pirate Class: I realized how vast the computer system is. I wonder how many non-major students, like me, thought that as long as they practiced problems madly, they would be fine. However, without a foundational understanding of computer systems (algorithm data structures⭐, operating systems, network systems, databases, the latter three are generally the focus of interviews), the efficiency is definitely not high!
4️⃣ Switching to Development Positions: Without good papers or backgrounds, there is almost no competitiveness for real algorithm positions, and the competition ratio for algorithm and backend positions is about 30+ : 1, data sourced from the programming guide's Algorithm Positions are Exploding...
Insights#
My abilities are still far from enough, but I would like to share some of my humble opinions on learning and interview methods, for your reference~
Learning Process#
The process of honing one's skills should not be underestimated
1️⃣ Emphasize the Basics: In-depth study of all branches requires a solid foundation.
(1) For learning paths, you can pay attention to the course design of prestigious schools, check related suggestions on Zhihu, and it’s best to have a learning mentor to guide you, which can help you avoid some detours and give you a general understanding of the overall learning path; as you continue learning, this path will become clearer.
(2) For learning methods, I agree with the following: ① Watch videos to spark interest, identify key points, and clarify clues; ② Read books to complete the knowledge system and fill in gaps; ③ Practice to deepen understanding, solve problems, work on projects, and write more code; ④ While inputting, also output yourself; ⑤ Make good use of online resources.
① Watching videos can refer to recommendations on Zhihu; you can generally find resources on Bilibili.
② Reading books should avoid reading word by word; there are many books on reading techniques (in fact, methods are more important than effort). I have read “How to Read a Book”, and here are some suggestions: the approach to reading professional books is to read three times:
i. The first time, familiarize yourself with the table of contents and grasp the general idea.
ii. The second time, quickly read each chapter and identify the key questions in each chapter.
iii. The third time, read in-depth on these key points, combining with related books, and when reading computer books, be sure to pay attention to code practice.
iv. The first two readings should be fast, while the third should be deep. In short, focus on key questions, don’t get bogged down in details, and don’t stretch the timeline too long, otherwise, you will forget the earlier parts after reading the later ones, increasing frustration, and ultimately wasting time with poor results.
③ For practice:
i. For problem-solving, base it on LeetCode. For each algorithm or data structure learned, find related thematic problems to practice; if you just need to maintain your skills, you can solve one problem daily. Problem-solving ability is generally a hurdle before interviews at large companies. Among the 13 companies I entered the process with, I failed in 6, mostly because I couldn’t solve the coding problems. Practice more problems, but don’t forget to build a solid foundation in algorithm data structures. Here’s a recommended card-based recording platform: Quizlet, suitable for recording scattered knowledge points and techniques, which you can review during spare time. Here’s a set of cards I recorded on problem-solving knowledge points, and everyone is welcome to contribute, editing password: haizei.

ii. For projects, you can pay attention to various learning platforms, GitHub, prestigious school courses, etc. You can also check answers on Zhihu.
④ During these processes, learn to output and be diligent in summarizing. For each piece of knowledge, have at least your own mind map.
⑤ In learning, also seek organizations. One of the biggest advantages of the internet industry is the good community interaction and many learning platforms.
i. Make good use of communication platforms to meet good mentors and friends, learn from each other, common ones include Zhihu, Bilibili, CSDN, GitHub, StackOverflow, V2EX...
ii. If you are interested in English, I also recommend a few English learning platforms:
a) ScienceDaily (high-quality computer-related news)
b) codewars (discrete programming practice training, suitable for various languages)
c) codecademy (card-based interactive learning platform)
iii. If funds allow, you can try some quality training institutions, where you have guidance and supervision. However, in learning, you must take the initiative, think more, reflect more, and not overly rely on external forces.
2️⃣ Clarify Goals: Which direction do you want to go? What knowledge is needed for this direction? What learning goals do you want to achieve in what time frame?
(1) After laying a solid foundation, first answer these questions. Learning with purpose will be more motivating and help you achieve stable success.
(2) Strive to obtain your stepping stones for job hunting—good schools, internships at large companies, major competitions, key projects, etc.
(3) Similarly, combine video, books, and practice in a three-step approach.
3️⃣ Focus on the Present: One thing at a time.
(1) Regardless of whether you are changing careers or not, there are often other matters or pressures from your major's topics involved. You must learn to work in parallel and focus on the present moment. It’s best to plan each stage—daily, weekly, monthly—otherwise, focusing on the wrong things is meaningless.
(2) You can also find some time management and focus improvement books. I have read “The Little Ant's Promotion Diary”, and here’s a bit of reading insight: link.
4️⃣ Self-Control: This is also very important; the road is long and difficult.
I have read Stanford University's “Self-Control”, which teaches you:
(1) Some small tips to improve self-control, such as daily meditation (sticking to 3 minutes a day is not easy, I recommend the audio: Satya Meditation), eating sweets (like ice cream, I often do this), etc.
(2) Self-control has a limit; don’t give yourself too many difficult tasks at once. Relax appropriately (explore your interests and hobbies, adjust yourself), but this limit can also be improved through meditation and physical exercise.
(3) Don’t break your promises too much; otherwise, you will easily become numb to setting goals. Set some achievable goals to increase your sense of accomplishment, and then gradually increase the difficulty.
(4) When you don’t want to continue studying or working, you can take this time to rest, rather than engage in energy-draining activities that prevent you from studying or working later.
(5) Reading this book also requires some self-control.
5️⃣ The learning process is not achieved overnight but is gradual, as stated in “Mindset: The New Psychology of Success”.
Interview Tips#
If the previous learning process is solid and grounded, using some interview techniques will yield twice the result with half the effort; otherwise, it will require greater willpower and mental effort.
1️⃣ Knowledge of the computer system mainly includes algorithm data structures, operating systems, network systems, databases, programming languages, engineering capabilities.
(1) For [algorithm data structures], you can go through these 200 questions once. If one round is not enough, do it twice; the key is the algorithmic thought. This requires some willpower, but don’t overthink it, and the premise is to learn algorithm data structures as well as possible. Once the foundation is solid, it will be easier to understand.
(2) For [operating systems and network systems], I highly recommend Xiaolin Coding's Illustrated Operating System and Illustrated Computer Networks, which cover all the exam points and explain them thoroughly. If you still don’t understand, flipping through related books or surfing the internet can basically solve it.
(3) For [databases], you can prepare for the database questions organized on Niuke (essential for Java positions).
(4) For [programming languages], this depends on the specific position. You should have a language you are proficient in and understand the underlying principles of common methods, which generally combine knowledge of operating systems and network systems.
① For C++, here’s a C++ guide on Niuke.
② Niuke also has many similar guides.
(5) [Engineering capabilities] can generally be improved through practice during the learning process, and the requirements are not too high.
2️⃣ You can use overleaf to create your resume, which is an online LaTeX tool that makes the layout cleaner and more professional.
👉 Here’s a Chinese resume template I modified, with the following effect:

(1) [Instructions]
① Click Open as Template.
② After loading, modify the resume.tex file to complete the content.
③ Compile to generate a PDF for download (Note: Select XeLaTeX in the Compiler menu).
(2) Learning scholarships can reflect your learning ability, and if you have them, you can write them on your resume in one line.
(3) The order of past experiences and professional skills can be determined by the value of past experiences.
① Past experiences should be described based on the STAR principle (Situation, Task, Action, Result).
② If a competition is particularly impressive, it can be showcased earlier. In short, place your highlights in prominent positions (upper-middle position).
(4) Try to avoid subjective evaluations of yourself; increase objective facts and showcase yourself through actual achievements.
(5) Avoid fabricating! Generally, if your resume passes the screening, it means the interviewer recognizes it, so as long as you can reflect what is stated in the resume during the interview process, there should be no problem. If you can delve deeper, that would be even better!
3️⃣ A very important skill is to review.
(1) After each interview, record the interview points and seek satisfactory answers, thinking about which questions could be answered better if approached differently.
(2) After several interviews, your interview skills will definitely improve, at least you will know what to say, what not to say, what is commonly asked, and what is not important.
(3) Therefore, do not submit applications to your most desired companies first; polish yourself before trying~
(4) Refer to What tasks are boring to do but become more meaningful the longer you persist?
4️⃣ During the interview, if you don’t understand a question, just say you don’t know.
(1) Answers that are illogical or full of holes are worse than not answering.
(2) If it’s a critical question, then study hard during the review and make sure to know it next time!
5️⃣ Whether you receive an offer is one thing, and the salary level is another.
(1) When you have enough energy, mastering more and going deeper will help you stand out and earn a higher salary. So when you have the capacity to learn, don’t be too easily satisfied.
(2) HR interviews generally ask about expected salary and current offers, so think about how to respond. This is also an important reference standard for determining your salary.
① If you already have some offers, make good use of them to raise your value.
i. If it’s an offer from a small company, describe the advantages of that offer rather than saying you only have one small company’s offer.
ii. In short, explore the strengths of your existing offers, such as work hours, benefits, job direction, etc.
② If you currently have no offers, you can check the general level of related positions in the OfferShow WeChat mini-program or look at the average salary for related positions in that city to have an expectation and assess your approximate position based on your performance in written tests and interviews.
i. Generally, you can gauge the interviewer’s attitude from their demeanor and speech. If they express a lot of information about the company, they are generally quite satisfied with you.
ii. When discussing salary, avoid stating a range; it’s meaningless. For example, if you say 20~25K, the interviewer will assume your expected salary is 20K. 🙂
6️⃣ Until the moment an offer is issued, you are not considered hired. Take every interview opportunity seriously, including HR interviews at your own company and interviews with other companies.
Tips#
1️⃣ The difficulty of the challenges you face is not the key; the key is to have a will of steel, always ready to face difficulties. You can sharpen your will through sports, reading, socializing, etc.
2️⃣ Whenever you have the opportunity, visit companies you like and cherish the chance to communicate, as it can motivate you and possibly lead to meeting someone fateful.
3️⃣ There is no turning back in life; seize the moment. Don’t let the time spent regretting each start exceed 30 seconds.
4️⃣ Read more books and find fragmented time. I recommend the WeChat Reading APP—a large interactive reading platform where you can read books while checking others' notes and focusing on key points.
5️⃣ Considerations for changing careers:
(1) The completion status of your research topic in your major, which can help alleviate your graduation pressure.
(2) Learning requires a mentor; exploring on your own can easily lead to detours. If conditions allow, don’t hesitate to invest in education.
(3) Various other matters may arise, and both mindset and time management skills are crucial.
6️⃣ When you feel like you can’t persist, think about how your current efforts will be appreciated by your future self.
7️⃣ Finally, I recommend this blog with some notes for your use. Below is the notes collection area:

Conclusion#
👏 Of course, I want to thank everyone and everything I encountered along the way.
🎎 At the same time, I challenge my parallel self—who chose other offers.
💪 The future is long, and lifelong growth awaits.
🎈 Best wishes.
Finally, thank you all for reading! Feel free to reply and comment~
I wonder if everyone still remembers the two key points mentioned in the article. I hope this article helps you all, and let’s work hard together!
In future blogs, I will also focus on the knowledge system of iOS development, so interested friends can pay more attention~🎉
The inspiration for this article comes from a Vietnamese restaurant with a good atmosphere, but the taste is still a bit unfamiliar; the best dishes are the shrimp chips and chicken wings.🤫
