To what extent can Shuangfei's computer work hard for three years from scratch [Learning route review & summary & Q&A]

foreword

The last blog mentioned my journey from postgraduate entrance examination to autumn recruitment: Portal

After the last article was published, many friends hoped that I could share the learning route, or that there were some competitions, learning and job hunting problems, so I added some reminders~

insert image description here
insert image description here
insert image description here
insert image description here
insert image description here

etc……

So this article came out. This article is mainly to share what I did in the first three years of college, as well as the learning route of algorithm competitions and C++ development (may not be suitable for everyone, you can just take a look. Ok), in the end, I will put up some of the questions that some students privately sent to me before, and give my opinion. If it is helpful to you, I hope to give a three-link ~

1. Review the University

The content of university studies is relatively complicated, so most of them are not very in-depth studies, because I have never been exposed to programming before going to university, and my impression of computers is only game consoles, so I started from 0, but after I was exposed to programming, I continued to learn in various places. I started to learn in the field, and then I did some small projects, but now there are three unfinished projects lying in my folder, I hope I can finish them someday~

1.1 freshman year

1.1.1 First Semester

After school started, I searched the Internet for Clanguage introductory books. I thought that I was stupid, and stupid birds should fly first. So I bought the first programming book on Taobao. At 《C primer plus》that time, I was doing military training during the day, and then I was going to learn programming at night. I read books by myself, and I write by hand without a computer. It’s a bit bad because it’s hard to verify whether the code I wrote is correct, but fortunately, this book is still relatively basic. I will use my notebook at home after the National Day, but The configuration is a bit old, it is a notebook from ten years ago ( Thinkpad E430), but it is enough to write code.
insert image description here
My programming teacher recommended me to go to ACMthe laboratory before the National Day, and then let the National Day prepare for the new competition, so I started I registered at the school OJand did the questions, but I didn’t master the grammar at that time. The day before the freshman competition, I didn’t feel confident because I felt that I couldn’t write. I rushed to the field, and I joined the team at the end of the last two questions. I just recruited ten freshmen, and I was one of them. Since then, I have started my competition path.

insert image description here

The training after joining the team is to arrange 110 110 for us110 questions are required to be completed before the winter vacation (OJ uses FJUT’s challenge mode:http://120.78.128.11/Challenge.jsp), and the real questions of the Blue Bridge Cup are used for training every week. I remember that I failed to complete it before the winter vacation , I did about a hundred questions, and sometimes I will talk about the weekly weekly competition (but I can’t understand it), and then let us go to Baidu by ourselves.

insert image description here

It was also at this time that I first came into contact with the Niuke competition. The first time I played in the freshman competition of Guangdong University of Technology, I was abused very badly. I only asked two questions, hh

insert image description here

1.1.2 The first winter vacation

The first winter vacation was mainly in class. At that time, some seniors would give us some simple data structures and algorithms. In my impression, there were Chani’s, Lei’s union search, Jiang’s number theory KMPfoundation, and Wan’s game. On (unfortunately, I didn’t talk about it), and some others were forgotten, mainly online classes, I felt that the enthusiasm was not high, and at that time, I felt that there was no sense of oppression when I entered school, and I felt like learning casually, and then each section corresponds to a The question list, and then it’s training, keep brushing the questions, I remember that I was obsessed with beautifying the blog at that time, and I made several sets, which was quite time-consuming

1.2 Bigger

1.2.1 Second semester

The epidemic has led to online classes this semester. The pressure of the course is good except for a bit of a headache in the module, so I put more energy on programming, and started to go to Niuke, , , etc. CodeforcesOJ atcoderto FJUTparticipate in training games , and then went to self-study the graphics library of easyxthis Clanguage, and also started to do some development things, such as some small worms, some front-end things, window games, etc., and started to learn and use and Gitanyway github. Some scattered things. At that time, because the programming questions were well written, the idea of ​​ghostwriting and exams came up, so I opened a public account and started accepting orders. Basically, it was to help other students complete the course design or exams, but After an accident, I stopped accepting the test form (the teacher at the school suspected that I did it too quickly, and I got off the plane after writing it in about ten minutes. I still don’t recommend you to do such a thing here.)

1.2.2 The first summer vacation

In the summer vacation, the school will open a small semester, probably using Cor other languages ​​to make a management system. Since I have learned easyxthis graphics library before, I plan to write a GUIprogram (I didn’t know QT at the time), and I will help others after I finish it. The group also wrote a copy, and then wrote a summary blog: https://blog.csdn.net/m0_46201544/article/details/116321934

The rest of the time is still training, but it’s just training in the algorithm section, and then I participated in Baidu Star, and I was abused miserably~ Later, I participated in Ali’s super power competition, took a compassionate shirt and ran away

1.3 Sophomore year

1.3.1 Third semester

This semester, I became the captain of the team. I started to prepare for recruiting new students. At the same time, I also taught some simple grammar to the new students, took classes, and prepared for the new recruiting competition. I participated in the Blue Bridge Cup this semester and lost in the second province. , I feel that my strength is more than enough, but I don’t know why I was the second in the province, and then I started to prepare and select the members of the ladder competition. Fortunately, I entered the first team, but in the end it was a pity that I ended up with a team of the third (personal national third is a few points) , this semester, I have to give consideration to assigning training tasks to freshmen and looking for training questions by myself. I felt that there was no balance at that time, and I fell behind. I wrote my thoughts on one year of study at that time: https://www.cnblogs.com/Mangata/ p/13840087.html

The second semester is also at the end of this semester. The teacher’s initial plan was to make a console IM chat software. Later, I felt that it might be very difficult, so I changed to another one. I personally still want to challenge this, so I didn’t After learning APPdevelopment, I decided to start from 0 to make it in just seven days, and then I went to the rookie tutorial to see the Android development, and I followed suit. Finally, I developed JAVAan IM chat app(actually a semi-finished product) ), the demonstration of this work is also the first video I released on station b:

https://www.bilibili.com/video/BV18X4y1M7FJ/

insert image description here

1.3.2 The second winter vacation

This winter vacation, I participated in Niu Ke’s winter vacation training camp, and then I usually do a lot of questions about CF div2 A-Dand div3 A-F, and I am also doing white books and Luogu’s question sheets. Anyway, I have been training all the time, and after training, I learned a Nonebotframework , is a micro-service framework for QQ chatbots, so I started self-study for three days in bulk python, and then started to develop kaptree-bot. After about three or four days, I made 0.1a new version, and then I continued to maintain and upgrade. At the same time, I I bought a cloud server, started to learn some knowledge related to operation and maintenance, then changed Linuxmy version to a new version, and then ran it on my server, and then tinkered with blogs, so I started to build a website, and built my blog for a short time. Then I went back to the blog garden and created (here I actually want to say that if you really want to take notes or something, it is recommended to use some large-platform websites instead of building your own, because maybe one day the server will go down and all the data will be gone. , It’s tears to say too much, and it’s very troublesome to maintain the website by yourself, the cost is also a problem, and the access speed can’t be compared with big platforms)kaptree-botLinuxCSDN

insert image description here

1.4 Sophomore

1.4.1 Fourth semester

There are a lot of competitions this semester, and they are basically spent preparing for the competition. They participated in the Blue Bridge Cup, Ladder Competition, ICPC-Xi'an, ICPC-Sichuan, ICPC-Yinchuan, and some algorithm competitions. Let’s not talk about the competitions that are not in the country A. I won a second national, a third national, some provincial awards, and some honorary awards (too good)

The primary semester of this semester does not seem to be deep in my impression. It seems to be a back-end system for Ca Linuxchat room in language. I probably understand and learn some things about programming in the Linux environment.

1.4.2 The second summer vacation

I did three things this summer:

  • Participated in the backgammon group of the computer game competition, and then got a second-level certificate
  • I went to study unitydevelopment, and made a few demo, because I wanted to make a formal game at the time, but because of the material, the game plan is still lying in my folder, and it has not been completed. I hope to complete it one day.
  • Record a video explaining the algorithm and list the questions for freshmen

I have collected some blogs about Gobang AI:

Some resources have been deleted. If I have time, I will also publish a series? Haha, to be determined

unity2DFor development, I learned from M_Studio at station b . The lectures are very basic. Basically, I will guide you to write them, and then make a fewdemo

1.5 junior high school

1.5.1 Fifth semester

There are a lot of professional courses this semester, such as embedded development, QT development, driver development, etc., as well as troublesome planning groups, plus there is a competition, ICPC-Weihai, so after finishing the homework, I will I will start to practice brushing questions, or reading books. At this time, I have not realized that the postgraduate entrance examination will be sent without reviewing.

Then I took a while to learn machine learning, but it is a pity that after I just finished learning logistic regression, I stopped because of the pressure of training and courses. I plan to continue to study in depth when I have time.

Towards the end of the term, the school arranged for people from Cantonese to teach us, probably to make a Cortexsmart furniture project for a development board. Anyway, the content of the lecture is quite simple. I made a system for ordering milk tea: https : //acmer.blog.csdn.net/article/details/122120121

1.5.2 The third winter vacation

During this winter vacation, I started to review the basic algorithm of the competition, and then expanded the algorithm, as well as brushing up the cf set of questions. Anyway, I was focused on preparing for the Kunming and provincial competitions next year, and I didn’t realize that I was going to prepare for the postgraduate entrance examination or prepare for a job. I still thought about it at the time It's the end of the competition in April, and then prepare for the postgraduate entrance examination, it should be too late

In addition to brushing the questions, I took the time to learn Djangothe framework and planned to make one OnlineJudge, but in the end it was shelved because of the difficulty and time, but it will definitely appear in front of everyone in the future~

1.6 junior

1.6.1 Sixth Semester & Third Summer Vacation

Continue to study the questions and prepare for Kunming in April. As a result, Kunming is hard again, and then I plan to withdraw, because it is not good to occupy the position all the time, and I still can’t get the results. The mentioned is in line, and I started to prepare at this time. I really feel powerless. The teammates around me are almost finishing a round of review . /acmer.blog.csdn.net/article/details/127457819

1.7 Recent

After recently signing with the three parties, I feel that the pressure is significantly less. I am now learning about network security and continuing to learn C++related content. Then I watch the 4K movies I bought every day to complete some labor tasks in the second class (volunteering time, Generate posts, professional ability, etc.), experience life without introversion, haha, I will consider continuing to update the series of ladder games or algorithm small lectures later~

insert image description here
insert image description here

2. About the competition

2.1 Book recommendation

insert image description here
This book is more suitable for novices, the content is from simple to difficult, and the gradient is not big, but the training platform is POJa bit uncomfortable

insert image description here
The difficulty of this book is relatively large, and the difficulty gradient of the content from the first few chapters to the latter is very large. It is recommended to read this book after learning the basic algorithms (that is, the third stage mentioned below), but the quality of the content is still good. The training platform UVAmay require scientific access to the Internet

insert image description here
This book is mainly about learning mathematics, and it covers a wide range, such as discrete mathematics, number theory, generating functions, etc., which are too difficult. I feel that I can slowly advance my learning. This book needs to be read slowly (I haven’t read it yet. Finished, I planned to make a special column to record and explain before...)

Other books are not that the author thinks they are bad, but that the author has not read them, so it is not easy to comment on them, and it is not good to recommend books that have not been read, so I am sorry, but I think the more important thing is not the books, but the Is learning from actual competition or training or blogging

2.2 B station up recommendation

ps: The rankings are in no particular order, so I recommend myself (

name space address features
qscqesze https://space.bilibili.com/611212 Algorithm lecture hall covers a lot of basic and advanced algorithms, and explains a lot of cf in the ancient field
Sonoko_Watanabe https://space.bilibili.com/7711573 I feel that there are a lot of advanced algorithms
Daisetsuna https://space.bilibili.com/7836741 If you only look at station b, it is suitable for watching leetcode, acwing weekly competition solution and interview-related questions, but you can spend money on the acwing platform to buy more content
New Year's Day Lanterns https://space.bilibili.com/24014925 I feel that this up is suitable for some students who have no foundation to listen to. The content is relatively basic and easy to understand. It is purely teaching-oriented.
Can't change the leg shaking of electronic music https://space.bilibili.com/35198030 Well-known codeforces div2 solution up
kaptree https://space.bilibili.com/486738984 Talk about some introductory algorithm lectures (with a list of questions), as well as the real questions of the ladder competition and the Blue Bridge Cup

2.3 Learning route

I know that everyone is very concerned about the learning route, and there will be many questions when learning algorithms. Should I learn the algorithm from the questions by doing more questions, or should I learn the algorithm first, and then go to the corresponding questions? I also had this question at the beginning. So I asked this question in Zhihu:

insert image description here
Question Portal: https://www.zhihu.com/question/361725313

Many seniors have given good suggestions and their own learning methods. In fact, I want to say that it is best to find a learning method that suits you. If you can’t find it, then choose a method that you think is good, and then get used to him

  • The first step, according to my current feelings, I think you can do about 100 basic questions first, that is, the kind of questions that have no algorithm at all, such as the famous HDU100 questions, or other platforms

  • The second step is to learn some algorithms from the beginning (here to learn related algorithms, you can go to station B to search for related names or go to some blogs or OI-wikiread related principle explanations, or you can also go to some platforms such as Niuke competition, acwingpurchase related course, teach you step by step), don’t be too impetuous, you need to figure out the principle and application of the algorithm , that is, what problems it can solve, and then go to Vjudgeplaces such as Luogu and Niuke to find the corresponding question list, and then brush the questions, When you encounter some questions that you don’t know or think are good, you can record them for future review. Of course, you can also record them all. When recording, you need to pay attention to write down your ideas and your own code . Don’t just stick one code. It’s important. How did you come here step by step? As for the basic algorithms, you can refer to the basic algorithm section of OI-wiki, or refer to the basic algorithm class of Niukehe, and then occasionally participate in training games on some acwingplatforms, such as codeforces, nowcoder, atcoderetc. , test yourself, and then make up the questions you should have done after the game (this is very important!)

insert image description here
insert image description here

insert image description here

  • The third step, at this stage, you have already mastered most of the algorithms that you can use, but if you want to participate in XCPC or improve your algorithm ability, you can learn some advanced algorithms, you can go in a certain direction, graph theory, number theory , data structure, dynamic programming development, algorithm learning can also find some free videos or blogs, of course, you can also go to the platform mentioned above to buy (I bought the special course of Niuke here, bought data structure, dynamic programming , Number Theory, Strings), this is up to you. After learning, you still need to find the corresponding question list, and then cf div2do special exercises. After the end, go to make up the fourth question, and so on, pay attention to finding some feeling of thinking, especially some structural problems (it really depends on luck and feel when encountering it), and then if you have time, the major platforms It is also best to participate in the competition. Also, make up questions and add records after the game. If you have teammates, it is recommended to ask teammates to cf gymtake some real questions from the past once a week vp. Cooperation is really important. After all, "three cobblers are the best Zhuge Liang "When playing games, many students are afraid of losing points, so they don't play. I think you can open two numbers, and play whichever is lower. In this way, it will feel better?

Digression:

  • Introductory grammar class, I personally think that no matter which platform it is, it is not necessary, this kind of thing is really simple
  • Do more thinking questions, I feel that xcpc likes thinking questions more and more, let’s find out more
  • If you have time, you can go to Luogu Daily, there may be some black technology in it that is still useful or something that expands your horizons~
  • You have to think about whether you really need to learn these advanced data structures and algorithms. If you are looking for a job, then the previous second stage is enough. This part requires you to spend a lot of time learning. It’s getting more and more cumbersome, maybe you’ll have nothing to do with it for three years, so you need to think about whether you can accept such an ending, if you can’t, it is recommended to stop the loss in time and go to some other things

insert image description here

2.4 My training platform

Here is a list of some platforms I used for training. Regarding these platforms, some platforms may not be applicable anymore. You should consider this at your own discretion. Of course, I recommend a video here: [Life Experience Talk] How to score in upalgorithm competitions

  • FJUTOJ: 491 questions

Portal: http://120.78.128.11/index.jsp

insert image description here

  • Codeforces: 214 questions

Portal: https://codeforces.com/

insert image description here

  • atcoder about 100 questions

Portal: https://atcoder.jp/

insert image description here

  • Luogu 205 questions

Portal: https://www.luogu.com.cn/

insert image description here

  • Niuke 271 questions

Portal: https://ac.nowcoder.com/acm/contest/vip-index

insert image description here

  • HDUOJ 73 questions

Portal: http://acm.hdu.edu.cn/

insert image description here

  • vjudge 117 questions

Portal: https://vjudge.csgrandeur.cn/

The vjudge is blown up, so I won’t show the picture for now

  • leetcode 89 questions

Portal: https://leetcode.cn/

insert image description here

  • acwing about 200 questions

Portal: https://www.acwing.com/
insert image description here

  • The school's OJ (old + new) about 300 questions

The old OJ has exploded, and the new OJ has about 200 questions (but most of the questions were originally prepared for the training and competition questions of the new players)

Portal: http://acm.mangata.ltd/
insert image description here

  • There are still some scattered OJs, but that is not the main training platform~

3. Development & Work

It is defaulted here that everyone has a certain computer foundation, for example: have studied programming design, data structure, computer composition principles, computer networks, databases, etc. If not, here is a cs self-study guide, you can find corresponding courses on it~
https://csdiy.wiki/

This is a network disk built by the author to store e-books. If you are interested, you can download it directly~:
http://yun.mangata.ltd/s/x9T4

3.1 Book recommendation

names not listed in order

《C primer plus》
insert image description here
《C Language Depth Anatomy》

insert image description here
"Sword Pointer Offer"

insert image description here
"Illustrated TCP/IP"
insert image description here

"Linux High Performance Server Programming"
insert image description here
"Effective Modern C++"
insert image description here

3.2 Technical learning

LinuxThrough the previous review, you can also see that in terms of development, my research is not deep enough. I only decided to find the direction of C++ development in early August this year. I was very annoyed. I took a look at the previous projects and found that they were all small toys, so I planned to prepare for the interview again, so I came into contact with webserverthis Internet celebrity project. At the beginning, I searched for it on station b, but later found that Niuke also has related So I switched to Niuke. It turns out that after watching it, I found that Niuke’s video is more basic (I watched it directly from the project development, so I don’t know what I said earlier), it’s not very difficult. And he started from the introduction of Linux programming (so I won't put some basic things such as system programming, process, thread, makefile later, because there are all in the outline), this is very good, I put a link: https: //www.nowcoder.com/courses/cover/live/504
insert image description here
Of course, this is a relatively basic and bad street project, but it is still possible to practice, and then you may need to learn something about distributed and some middleware, or Open source components are better. Regarding this part of the content, I think you can take a look at the outline of Zero Sound Education. I think it is quite comprehensive, but their courses cost money and are a bit expensive. Of course, you can prostitute some content for free, but you need to be good at searching resources.

Zero Voice Education Syllabus: https://www.0voice.com/uiwebsite/html/courses/v12.5.html

ps: The following content is not in the order of learning, but I can talk about it wherever I think of it. It is recommended to look at the time order of learning according to your own situation~

  • About distributed: My personal feeling is that it might be better to learn MIT 6.824the courses first and then learn ? grpcI'm not very clear about this, anyway, that's how I planned it, and I'm currently studying the course

Course link: https://www.bilibili.com/video/BV1R7411t71W

grpc:https://github.com/grpc/grpc

I also saw a lot of big guys tearing their ownrpc

  • Regarding message middleware, I feel that what C++ may need to learn is grpc, Redis, nginx. To what extent you need to learn, you can refer to the above Zero Sound Education Outline. You can just go to Google or Baidu to search for what you want to learn, but the information seems to be in English grpc. more?

  • Then you may need to master a little knowledge about cloud native, such as dockerand k8srelated things, and the use of gitand svn(but generally gitenough)

If you are getting started with docker, I recommend this: https://www.bilibili.com/video/BV1r3411W79q
A document of docker: https://www.kancloud.cn/zatko/docker/2291357
As for the advanced docker, I feel that everyone may be needed Go to the official website or some blogs? , official website address: https://www.docker.com/

gitIf so, I recommend Teacher Liao Xuefeng's blog: https://www.liaoxuefeng.com/wiki/896043488029600 , of course, if you don't understand, you can go to station b to search for videos? But I don't feel the need

nginxIn other words, I watched Kuangshen: https://www.bilibili.com/video/BV1F5411J7vK , it feels more entry-level and simple

  • QT, how to say this part, there may be many small partners who have done related development, this part does not belong to the back-end development, but belongs to the client and soft development, but I am lucky enough to learn and get started for a short time, so I will share some The information I collected before

QT official documentation: https://doc.qt.io/qt-5/classes.html

"QT Study Road 2": https://www.devbean.net/2012/08/qt-study-road-2-catelog/

  • For design patterns, you only need to go to Baidu or Google to have a look. I feel that this issue is rarely mentioned.

3.3 Brush questions

For some multiple-choice and fill-in-the-blank questions, I think you can go to the special exercise in the question bank above Niuke to do more multiple-choice questions

Portal: https://www.nowcoder.com/exam/intelligent

insert image description here

If it is some programming questions, I think many people recommend it leetcode hot 100: https://leetcode.cn/problem-list/2cktkvj/ , I feel that I may need to go to Niuke’s platform to brush it up, because there are many companies whose model is ACM ACMA CM input and output mode, you need to be familiar with it, there is a similar one on Niu Kenowcoder top101:https://www.nowcoder.com/exam/oj?page=1&tab=%E7%AE%97%E6%B3%95%E7 %AF%87&topicId=295

Feel that these two question banks are enough for the interview? I feel that the questions in the written test are mostly about linked lists, binary trees, and dynamic programming . You can pay more attention to this. Dachang feels like dynamic programming. Of course, simple graph theory and data structure still need to be learned. Of course, if the goal is a big factory , you may need Brush more, broaden your algorithm skill tree

3.4 Interview

I have already shared it before, so I will paste it here~


Here, I started to collect a lot C++of face-to-face scriptures, and finally I found that Kobayashi coding is really good (although I only read the graphic network part), so I basically read Kobayashi coding for the explanation of the network part: https ://xiaolincoding.com/

Let me attach some other people's stereotyped essays in my collection, I think it is still very useful~

title Link
Autumn recruitment is over, spring recruitment will fight again! (Appendix) https://www.nowcoder.com/discuss/125248
How much do you need to learn to interview the c/c++ background development post of Goose Factory? https://zhuanlan.zhihu.com/p/513407028
Who can share the experience of C++ engineer interview? https://www.zhihu.com/question/423364880
Niuke Official C++ Interview https://www.nowcoder.com/issue/tutorial?tutorialId=93
2018 Autumn Recruitment Interview Experience Summary https://www.nowcoder.com/discuss/140814
Niu Ke interview questions collection https://www.nowcoder.com/exam/interview

As for other content, I don’t know much about it. You are welcome to add it in the comment area, because my own development experience is not enough, and I don’t have an internship, so my opinion may be one-sided. I hope everyone will forgive me if I am wrong or wrong ~

4. Q&A session

  • Q1: Senior, I would like to ask about the route and good experience and habits for algorithm learning. Because I recently played games and saw that some of the codes written by the big guys are really long and use a lot of structures. I feel very bad and I want to ask seniors how to learn. Algorithm, currently learning the basics of acwing algorithm, div3 of cf can only a, b

1. My personal suggestion is to learn the basic algorithm of acw, and then do more cf. It is best to have two sets of div3 AE every week. You can pay attention to this. If you really need it, then choose a direction for in-depth study, such as data structure or graph theory, number theory. Of course, you must master some public algorithms. If you master the algorithm, you will not be too flexible, then Do more questions, each algorithm goes to VJ to pull the question list, and usually participates in competitions on various platforms, and more important than participating in the competition is to fill in the questions. Of course, if you have spare capacity, you can write a blog to record your own questions, which is convenient for later review

2. As for in-depth study, you can buy acw's improvement course or Niuke's special course. I haven't seen the former, but the reputation of yxc should not be too bad, but it seems that there are a lot of question lists. If you like yxc You can buy this kind of hands-on teaching mode. Otherwise, you can go to Niuke to buy special modules. They invite gold medalists in recent years to teach. The quality is still good, but it may need a solid foundation. I bought a few of these. The door feels good. Of course, you don’t need to buy courses. In this case, it is recommended to focus on oi-wiki and blog, and then use station b as a supplement to learn

  • Q2: Do I need to deliberately brush up on the company's written test questions?

You can just brush up a few sets of optional questions first. If you find it is very simple, then it is unnecessary, but if there are many things you don’t know, then I think it is still necessary. As for the programming questions, I think it will take a long time Similarly, if you have previous competition experience, you should familiarize yourself with the question-making methods of each platform, and then do more dynamic planning. If not, I think you should at least do one question every day, but don’t Doing simple questions is useless, so in summary, it depends on your ability

  • Q3: The interviewer asked you about the data structure because it is very important in the working stage?

The data structure is more about whether you have studied hard in college, and many open source frameworks or the bottom layer of the project will have some very advanced data structures, such as red-black tree, LSM tree, B+ tree, etc., for different There will also be different data structures as support in different scenarios. Learning data structure is probably to learn these things from the principle. The real implementation of these open source projects is very complicated. As a student, you may rarely come into contact with it, so you will Ask some data structure questions

  • Q4: Which direction of technology is recommended to learn is better to enter a large factory

I think that in any direction, if you want to enter a big factory, you still need to settle down. As long as you learn deeply in that direction, you are still very sure, so just choose a direction you like to open the book (of course, it is not recommended for non-92 volumes. Algorithm post, do not go to some directions with limited academic qualifications)

  • Q5: I'm a bit confused about whether to take the postgraduate entrance examination or an internship next year. I used to want to get a job at home, but now I want to take the postgraduate entrance examination first, but I still want to get a job first, but this year feels very difficult, and next year is expected to be even more difficult.
  1. Think about whether you really need to take the postgraduate entrance examination, whether it is to avoid employment or to go to academics and do research. If it is the former, I suggest that you start preparing for job hunting from now on. If it is the latter, I suggest that you start taking the postgraduate entrance examination now. , otherwise it feels a bit late, next year's postgraduate entrance examination will definitely be more difficult, and the spring recruitment after failing the ranking is actually quite miserable
  2. There is only one chance to take the postgraduate entrance examination. If you send it, you will really send it. There are many companies you can apply for when you are looking for a job. The chance may be greater than the postgraduate entrance examination.
  3. Is the target college for the postgraduate entrance examination 92, if it is not 92, and it is not some strong Shuangfei, such as Hangdian, Chongyou, Nanyou, etc., to be honest, it may not be as good as finding a job now. Of course, this is not sure, or It depends on the employment environment at that time, but according to this trend, it should not be optimistic at that time, but if the personal strength is relatively strong during the postgraduate period, it can be ignored. After all, strong people are strong everywhere.
  • Q6: May I ask you what experience you have in learning algorithms? I have done 300a lot of questions in Likou, but I still can’t solve most of the middle-level questions in Likou.

leetcodeIn fact, most of the medium-level questions are relatively simple, either template questions of algorithms, or slightly changed, or some structural questions, thinking questions, if it is a certain algorithm or data structure, you may not know how to write it if you have never seen it before. My suggestion is to expand your algorithm skill tree, and then record the topics you don’t know how to do, look at other people’s ideas and try to write it yourself, if you can’t, go to other people’s codes, and then try to understand, if you read it again If you don’t understand, just look at both sides, or ask others, anyway, don’t just pass over the topics you don’t know in a daze

  • Q7: How come the monthly salary is 20k+ before the age of 25?

1. The school recruits into a large factory
2. The school recruits into a random factory, and then frantically introverts to work overtime, promotion and salary increase, but 20k depends on the location. For example, Beijing 20k and Chengdu 20k are not the same price at all

  • Q8: What knowledge reserve do you need to have to find a job?

See Development & Work above

  • Q9: Do you have any good suggestions for playing in the Blue Bridge Cup next year?

The difficulty of the questions in the Blue Bridge Cup has continued to increase over the past two years, but overall it is not difficult. You can learn the basic algorithms first. For details, see the first stage of the algorithm competition above, and then start to do the real questions and participate in some competitions OI. Training (you can go to Vjudgethe above to ask questions for yourself), and then just keep brushing the real questions to ensure that the correctness of your code is very high, because if you make a wrong step in this competition system, you will make a wrong step, so you need to be careful, and After finishing writing, do some edge data tests by yourself. Many bigwigs and the author himself have suffered from this problem. You can go to OJ on the official website of Lanqiao Cup for real questions, or you can go to some other platforms. The sooner you prepare, the better.

  • Q10: I would like to inquire about C++’s recruitment market this autumn. I am a double non-graduate student in Sichuan, and I would like to ask about the situation

This year C++is actually okay, maybe the backend and the algorithm are relatively complicated, embedded should not be stressful, basically there is, offerbut the salary is relatively low, especially in Chengdu, but C++there are many directions, it depends on what direction you are researching If you have achieved certain results, it is actually not difficult to find a job, but it may be a bit difficult for large factories. It depends on your development. You can get in touch with more internships, go to some large factories to study, and then projects and papers, I think It may be that the project is more important if it is developed. If it is a research type of work, then the thesis may be more important. If you have a top conference, you may get a lot of points. Some competition experiences such as , etc. are also very important. It depends kaggleon ACMyou With the level of technology, the cold will only affect ordinary people, not the bosses

Guess you like

Origin blog.csdn.net/m0_46201544/article/details/127695927