Hello, everyone. Today, I would like to talk to you about a question that many students are very interested in. Is it true that there is a degree limit for making algorithms? Is it true that undergraduates can’t?

The inspiration for today’s article comes from zhihu’s question of the same name: Are undergraduates really not suitable for algorithms? This question I also answered, but zhihu is relatively brief, I did some processing, write this article. I hope I can help the students who are confused.

The job requirements are deceptive

A few days ago, one of my classmates left a comment at the bottom of my article. He said that he had applied to several big companies and found that they all required at least a master’s degree. He was an undergraduate himself and felt very distressed.

I did a search on the Internet, and there were a lot of people who said that, and a lot of people had this problem. Compare the job openings and find one or two things you don’t want and go around and say, do you think I have a chance in my situation?

At such times I always have a strange feeling, first feeling that a group of innocent teenagers have been mercilessly cheated, and then lamenting that I seem to have unconsciously become a veteran. What I’m trying to say is simply that in most cases we can ignore what’s written in the job requirements.

Familiar with my friends know that I am an undergraduate graduate, and or change to do the algorithm. I had only been working in algorithms for three months when I jumped ship to Go to Ali. In those three months, I was still writing the back end, and I hadn’t made a single model. What were the requirements? Master’s degree preferred, journal papers preferred, two years or more experience in algorithms, data mining.

To be reasonable, I did not meet any of these three, and finally passed. I say this not to make me strong, but to show that the job requirements such things can not be completely trusted, just look at it. Leaders write job requirements based on their impression. When evaluating a person’s resume, neither HR nor the interviewer will compare the job requirements at all. They will only evaluate the person’s level according to their own experience. He’ll give you an interview if he thinks you’re okay, something he’s attracted to, something he can look at.

There were two points that attracted the interviewer at that time, one was ACM Asia silver medal and the other was Ali’s internship experience. Neither of these are in the job requirements, but they are persuasive. I believe there are many more persuasive content, various competitions, various internships and so on. These are the things we compete for, not a diploma. Before in Ali, if resume no bright spot, Tsinghua doctor also according to refuse to mistake.

So remember, as long as you are confident in your ability, don’t pay any attention to what the job requirements say, go for it. These so-called requirements are to scare away the weak, look at a request dare not try, even their own strength do not believe, is not weak what? We may not be strong, at least do not be scared back of the weak.

I have said so much, the answer is already obvious, the diploma is not an absolute hard indicator of algorithm jobs, undergraduates can also be qualified for algorithm.

Status quo and Reasons

The most important first talk, next to talk about the status of the industry. I’ve worked in a few companies, and it’s true that in both large and small companies, the majority of algorithm engineers have a master’s degree, while in development positions, the majority are bachelor’s degrees. I can’t say that there are a few undergraduate algorithms like me, but the proportion is not high, I would estimate it is only 10 to 15 percent, an absolute minority.

But there seems to be a bit of a contradiction here. Since undergraduates can also be competent, why do they account for such a small proportion of algorithm positions?

There are many reasons behind this problem, but in summary, in fact, they can be attributed to one reason, is the lack of training plan. When undergraduate course, each school, college can have a training plan, namely class schedule. These are some of the courses selected by the professors that they feel will be useful for undergraduate students to build a foundation for. But the problem with this training program is that it’s almost completely disconnected from the skills needed in the real world. After four years of computer science school, I could count on one hand the number of courses related to programming technology, and the rest were all kinds of weird theoretical courses.

To put it more seriously, after four years, not many students have the ability to develop a complete project independently, let alone be qualified for an algorithm position. I had to take the blame for the irrational training plan, and I had to take up a lot of time with unrelated courses like analog circuits, circuit principles, and college physics. It will not only take up our time, but also make students form rebellious psychology. If you dare to let me learn these useless rubbish classes, I will dare to play games and sleep in class for you.

It is also due to the lack of training plan, even if I want to be engaged in the algorithm position and want to learn relevant content during my undergraduate period, I cannot find a reliable channel for learning. You ask senior students, senior students do not understand, you ask the professor, in fact, the professor may not understand, because a lot of research is the following doctoral students, graduate students do. Mentors apply for grants and blend in with the academic community. If you don’t believe me, you can try to find a tutor in the college and ask me what good advice there is in the direction of algorithm. Let’s see what they have to say besides Ng’s Machine Learning. It’s not that these mentors aren’t good, but they probably don’t understand what’s going on in the industry.

As for master’s degree, due to the pressure of graduation and writing papers, master spends much more time on practice than undergraduate. There are also few courses for the master’s degree, and most of the time is basically spent in the lab, working for tutors and doing various projects. And the master stage can also meet senior students or even PhD students, these people are crawling over, for how to get started, how to practice have a lot of experience, in this case, the difficulty of learning is not undergraduate students to cross the river.

internship

Internship is very, very important for algorithm positions, which is also a huge advantage of master’s degree. In the case of not considering the tutor to block not to practice, a normal graduate student he can have a third year, graduate school, graduate school two or three internship opportunities. Just one of these three opportunities to work for a better-known company can add a lot of weight and conviction to your resume.

On the other hand, undergraduates only have the opportunity to practice in their junior year. Moreover, I have not learned enough in my junior year. When I interviewed for the internship, I did not even finish the courses on operating system, which was a huge disadvantage. But no matter the disadvantage or unfair, if you want to go to graduate school or not, you must cherish this internship opportunity. If it is really difficult to find an internship in a well-known company, it doesn’t matter if the internship is small. The most important thing is to exercise yourself in the actual environment to understand what algorithm engineers do in the actual work scene and what knowledge points there are. None of this can be understood by reading articles or listening to others, but by experiencing them for yourself.

As a student, I know nothing about the door after work, and the internship is a very good opportunity to exercise myself. And you have a lot of tolerance for making mistakes, because you’re an intern, you’re new, you make mistakes or you don’t do things right, people will tolerate you and want to help you improve and grow. It’s a huge privilege to be an intern, so make the most of it.

Another point is that although interns are often not involved in important work, some of the company’s technical documents are open to all. Use internships to read company documents, look at other people’s code and projects, and learn from their experiences. You can even ask your colleagues what questions they will ask in the interview, what they value in the candidate, and career advice. Money can’t buy these things.

Undergraduate Career Guide

Finally, some advice for those who aspire to a career with an undergraduate degree.

I believe we can also understand that the algorithm position needs to master a lot more knowledge than development. Python, machine learning, deep learning, NUMpy, Pandas, TensorFlow/Pytorch, and algorithmic data structures are also required for minimal computation. Of these, only data structures will be covered in class, and the rest will require additional self-study. Undergraduate stage time is very tight, but also self-study so much content, it is not an easy thing.

Here, I personally suggest you choose recommendation, advertising algorithm direction. In this way, the deep learning part can save a lot of time to learn convolution, RNN and other models, and other directions have relatively high requirements for education. After learning machine learning and basic neural networks, you can read some cutting-edge papers and articles in the industry. If you do not know how to do this, you can continue to pay attention to this number after the update. After that, you can start participating in Kaggle or Tianchi Big Data competitions.

Learn about the frameworks Numpy, Pandas, SKLearn, and TensorFlow/Pytorch while participating in these hands-on competitions. You’ll find that there are a lot of frameworks and libraries, but there are only a few things you can use, and you’ll have to go to a few contests to get the hang of it. After that, you can also participate in some competitions such as mathematical modeling to win some awards. Many problems in mathematical modeling are suitable for machine learning or deep learning to solve. It’s much easier to find an internship after you’ve had that experience.

After the internship, you can either fight for retention or interview with another company during the internship. Talk to other interns about job hunting and you will find that they have a lot of experience and channels to share. These are resources that students who stay in school don’t have, and the job search journey will be much smoother with them.

That’s all for today’s article. I sincerely wish you all a fruitful day. If you still like today’s content, please join us in a three-way support.

Original link, ask a concern