Se students have doubts about the learning route.

as mentioned in the question, I am a freshman this year. I have just finished learning c language, c primer plus after reading the structure, and now I am learning assembly. in addition, because the school has set up a course on digital electricity (compulsory), I have bought 51 single-chip computers. At the same time, I am also watching videos sporadically (if I have the time and ability, I want to make a remote control obstacle avoidance car for my sophomore year). But the main learning exercises are assembly and c, and after these studies, I intend to learn data structures and algorithms systematically. Then I plan to learn some computer composition principles, architecture, operating systems, etc. (if possible, I will build some wheels at this stage). If I have personal ability, I would also like to be exposed to some opengl,opencv, neural networks, machine learning, etc., and then learn other high-level languages.
but most of my classmates are learning cPP, which is also a school curriculum. I am also learning to walk, but I did not invest any time in this area after class. Some advanced students are learning algorithms, learning python, learning java, learning web page production, and so on. Some people have rented cloud servers and want to build their own website, and many people have signed up for major competitions, such as Lanqiao Cup and Internet +, and other things I don"t know. I didn"t sign up for any competitions because I thought I was incompetent. As a matter of fact, I have not found any students in my major who have roughly the same learning path as mine, even none of them, and what people are doing seems to have nothing to do with what I do. I wonder, am I going in the wrong direction?


the courses taught in the school should be interest-driven. If you see what you are interested in, just put your energy into it. Why do you think so much when you are a freshman? In addition to algorithms and competitions, your classmates are basically partial to the application layer, and it is not too late to get in touch with the application layer after working.

I'll give you a brief analysis. It's not necessarily right. Just take a look at it.

  • study python and java, are likely to follow the lead of various training institutions and forums, and find it easier to find a job after graduation
  • learn web pages, rent servers and mess with blogs by yourself, probably in order to write an extra sentence "have your own technical blog and website"
  • on your resume in the future.
  • those who engage in competitions and learn algorithms are probably directly for the purpose of ensuring research or entering a big factory

of course, it is a very narrow way of thinking for me to speculate on the intentions of others to do things, but as ordinary people, they are really driven by interests, and there are very few people who are simply interested in doing things.

so I think what you are actually thinking about now is not whether you are going in the wrong direction of study, but what you decide to do after graduation, which is to test your further study. Or go to a start-up company? Or go to the big factory? Or open source? Wait.

my own feeling is that what you can learn in college is the foundation of the foundation of the computer. As the saying goes, the lower foundation determines the superstructure, your foundation is solid, and it takes minutes to master some technology in the application layer. In addition, the study time of the university is more concentrated than that after work, so it is more suitable for in-depth study of more basic subjects, such as compilation principles, algorithms and data structures, etc., there are a variety of things in the application layer, and blind learning can only get twice the result with half the effort. It is the best way to choose the appropriate application layer technology to solve the problem when you encounter specific problems after work.

personal humble opinion, don't spray if you don't like it.


1. First of all, I think you are going in the right direction, as long as you like it, and then you know enough about the direction you choose, such as what basic knowledge you need to learn these things, what application scenarios you need, and how you will find a job in the future. As far as I know, opengl and opencv need strong mathematical skills and algorithmic foundation, as well as theoretical knowledge of graphics and image processing. Machine learning needs a strong algorithm foundation. So first of all, you should lay a good foundation, on the basis of learning C well, learn the basic knowledge of data structure, algorithm and so on. Learn some advanced languages at the same time.
2. I think learning python, and learning java is easier than machine learning. The two directions do not conflict. Programming language is the basis of these things
3. The introduction to web page making is simpler and easier to produce results than machine learning. For freshmen, doing these things can promote their learning of the programming language and cultivate their love of programming.

to sum up: I think I should stick to my interest and lay a good foundation

Menu