I will tell you what to learn

Source: Internet
Author: User
Tags mathematical functions

I read this blog today and read these articles, and I think that my sophomore year is about to graduate. So I modified this article and used it as a summary of what I learned.


I. Computer professionalism

1. Advanced Mathematics: To pass and help pass Probability

2. Probability: To prove that advanced mathematics can help pass
3. Linear Algebra: If you are learning computer graphics, that is, OpenGL/direct3d, the spatial coordinates of the 3D model in it are represented by matrices. If you need to projection and overlay them, moving requires matrix multiplication, transformation, and transpose, so it is very useful.
4. Discrete Mathematics: it is mainly used to lay the theoretical foundation for computer data models. It contains a set, number, graph, and so on. More importantly, if you want to study the 0-error program in the future, it is a program with no bugs, we need to use the derivation theory above to prove the program. If you want to pass the system analyst, you also need to take the test.

5. Digital Circuits/computer components/computer technology: if you are a very deep programmer, you will ask: why can the Browser display so many things-> How HTML language is available-> How HTML language is developed-> how advanced language is completed-> assembly-> how to assemble -> Solid/machine language-> How can machine language manipulate the computer-> with the intervention of the beat circuit, the internal chip structure decodes 0/1 strings, operates the accumulators, bus, and memory to perform different operations. This process is not good, as shown in figure
If you only want to learn the advanced language, isn't it really uncomfortable ??? So you have to be able to build a computer on your own !!!


A digital circuit is composed of a Learning gate circuit, that is, how to keep the flow of electrical signals and make them change regularly. A computer is composed of a door circuit that allows you to design memory/cup/clock.
Computer technology is something that you can learn in an integrated way.
With this knowledge, of course, we also need to include compilation principles, software engineering, operating systems, databases, networks, other languages, and VC/Vb/deliphi, you are a master of every language for no more than three months. To learn Windows programs, you only need to use APIs to make decent things within 15 days. Of course, I mean the language itself. With these basics and good language skills, you want to learn database programming. Well, review the database courses and check the SQL syntax. It will take one day. To learn network programming, select a library, read the documentation, and understand the usage of functions.
It is a matter of one or two days. When you make something, you will have experience with confidence. At this time, it is easy to understand the frame work of J2EE/. NET and so on. See the following design pattern. You can be a group leader. In a few years, if you have a chance, you may have become a manager. When you are in your thirds, you don't want to work on software. You have the foundation of a computer. You can find some experts to take you with you, you can program the single-chip microcomputer assembly language and embeded system.
Therefore, you have learned the basics, that is, you can develop your skills in the future!

After learning the digital circuit, I realized that the mysterious computer was composed of some triggers and logic gates. After they were integrated and re-integrated, they became computers, decoders, and full processors, counter ...... CMOS is just a kind of memory, BIOS is just a kind of compiled subroutine for hardware, (similar to the C library function, I think) I have learned the assembly, I can make it by myself (I also spent 30 RMB and bought a CMOS setup book, which I think is uncertain )!


Ii. Programming capability

If you do not learn C well, how do you learn windows programming well? How can you be a good programmer?
Without learning the data structure summarized by our predecessors over the past decade, how fast can your progress be? That is to let you step on the shoulders of giants. (If you are a genius, I will have nothing to say, but if you learn, you will be a genius)
This is the process of learning basic courses that I have experienced. It gives me some explanations. Of course, these problems may not be worth mentioning in the eyes of the experts, but they are a necessary process for every newbie.
More importantly, the basic courses give us the core knowledge, so that we can continue to learn after leaving school. It gives us a knowledge structure that enables us to expand on the basis of it and add new things to our knowledge framework. This is the important significance of basic courses. This is why many people refer to learning new things quickly after learning the basics well.
It is undeniable that basic courses are boring and difficult. But it depends on how you look at it. If you think about it, you will be able to grasp the nature of the computer and let him whisper to you. Isn't that exciting enough? Is it boring to design on the basis of others?
Since the topic discussed is to give college students some suggestions, let me also say a little.
First, let's talk about the technical level. Based on learning a Professional Course, you can read new knowledge and new technologies that are not mentioned in the school. They can promote your integration, but they cannot be put before the horse.
In addition, the most important thing is to ask the students at school to cherish your time and never play games or talk about love. Time is precious and opportunities are rare.
I often say to myself that if I try again, I will ......
But no, I have to say to myself, if I don't learn it now, it will ......
If I try to learn, work, and study, I cannot afford to lose a lesson. The students at school may not be able to understand the happiness of the teacher's lectures. I cannot understand what I learned from school, when the teacher says a word, the clear thinking of the teacher has also benefited you a lot (here we should thank the teachers, although sometimes they are very annoying ). But the more I learn, the less I feel at the bottom of my heart. I have not learned much about many things, and I don't even know much about them.
From time to time, I cursed myself for laziness. Maybe I was too stupid, hard enough, and I had been studying Computer for more than three years. Until now, I began to think I was familiar with computers, to clarify the direction.
I transfer from liberal arts to this major, and it is not small, just because I have a strong interest in computer. He is the embodiment of human wisdom, and programming is also an art. He can make full use of our talents. I will continue to work hard. Although it is a little late, it will not be too late.
I hope that students at school can cherish more time than I do.
If you feel that you have strong acceptance ability, you can start to learn C (note that it is not c ++). If you feel that you have difficulties, you can learn Pascal first. It is also important that you never learn about VB, Delphi, Vc, and other things at the beginning. These things have a bad influence on you at the beginning. It is possible to introduce you to another wrong learning direction and ignore the east and west that really should be mastered. Learning C is mainly to learn the process of programming, learn to divide your program into many functions (or processes), and develop good programming habits. At this time, you can look at the high-person program, not necessarily understand the meaning, mainly
It is to learn the format of others' programs (such as how variables are named and how functions are divided ). Apart from the basic control flow statements, you should learn some very simple I/O functions and mathematical functions. The main learning of C is that you discard the style of the original basic program that accumulates all statements into a lot. You must learn to use functions to improve code reusability. For pointer and other things, if you really don't understand it, you can leave it alone first, there will be a way later.


After learning C, I think it is best to study assembly. This may be opposed by many people, but I personally think it is good. Starting from the most basic dos compilation, the purchase of the ibm pc assembly programming (Tsinghua Huang Pi) must be thoroughly understood at 1.1 o'clock, repeated strict reads are understandable. Compilation must be mastered because it involves a lot of basic knowledge. After mastering assembly and having a thorough understanding of I/O, we should learn the compilation principles. Do not be proficient in this thing, but be sure to know that there must be such a concept in the brain, which will be of great help to you in controlling the programming language. In this way, the most basic learning is completed. Generally, people with normal intelligence can master the previous section. The subsequent study will be based on your own creation.

When you can easily write some small computing programs in C, you can start learning your data structure (Mathematics Learning is mainly at school, ). You can view the data structure at 1.1 points without having to study it for a period of time, you must learn to use data structure knowledge to standardize your program design and improve program efficiency. Do not distract yourself from learning. It is important to know the data structure (believe me, absolutely ).

If you think you are already very clear about the tree, connected tables, stacks, and other such algorithms, you can start to learn C ++. You must have a correct understanding before learning, that is, C and C ++ are two different things. Learning C ++ is to learn object-oriented programming. At this time, you should be able to master the pointer (with the basis of assembly ), it mainly utilizes some of the new features of C ++ compared with C. You must understand the features such as polymorphism.
If you understand it, you must stop learning. After some basic concepts are mastered, you can look at some programs designed by others and learn how others design programs using object-oriented methods. This is also a step for people to open their ranks, and can be put in the same important position as the data structure. I have seen some people who have graduated from college and do not know what virtual is like.

In fact, I think that you have already laid a good foundation for you to become a good programmer. You have been able to apply C ++, understand object-oriented programming, and have a good grasp of the data structure, master assembly and compilation principles. The next step is based on the operating platform. Generally, you should first learn windows (Microsoft is the boss after all), first learn Win32 API, and ask for basic Windows message mechanisms and principles, there is basically no difficulty in assembly. In fact, as long as the API is used, what other MFC and VCL are in the bag, they are not enough.
It is encapsulation of the API. VC and C ++ builder can be easily won, which is just a problem with development tools. Later Ole (ActiveX),. net, and databases will depend on their own development direction. I want to emphasize the learning of the basic capabilities mentioned above. Although the Knowledge System of the subsequent operating platform is huge, it is quite dead after all.

Finally, the level of programming capability is mainly determined by the following points: 1. Programming habits 2. Mathematical ability (including logical thinking and problem analysis) 3. Ability to understand data structures 4. Experience (including the ability to master multiple languages)

The road to learning programming is full of hardships and twists and turns. The author lists a bunch of programming knowledge he knows and gives a specific sequence, what to learn later. If you do not learn anything, you must not learn another thing ..... many of them have some truth. But it is always hard to escape.
I have read too much from entry-level to proficient in a category. Is it true that I can use a book as an expert in computer blind programming. I solemnly suggest those who want to "quickly become" masters to give up on your ideas. It takes four years for an undergraduate majoring in computer science to graduate. The professional knowledge that needs to be learned can be mastered overnight. Even if some public courses are removed, it takes at least two years to enter the computer industry. Two years later, I can say that I have some knowledge about the computer, the basic components of the computer, the clock crystal oscillator, And the interrupt chip. I can use a compilation tool to control the 8259 series.
. I also learned some principles of computer programming languages, mastered two traditional sample programming languages, and learned what I ++ and I mean for VC compilers, with some understanding of data structure, we can simulate some problems in real life using a program.
However, this is just getting started, just laying the foundation. As for the future study of the Windows system principles, messaging mechanisms, understanding this class library, the class library; or the study of the Linux kernel to learn more about embedded system development tools and methods, it depends on your personal preferences. I just want to give you a few examples, but you can say that you have mastered it for at least a few years.
If some of the above are already proficient and can be called experts, congratulations, you can consider summing up these things to raise the level, from the perspective of system architecture, we will review what technology, people, and time to develop, how much cost, how much benefit, and how much risk a certain requirement needs to be realized, we can also summarize some methods to control the software development progress and generate software. These methods are called software engineering. You should also be a project manager. If you have learned these things, congratulations again. You can consider whether you can bring your existing customers to your own business, find someone to invest in your own software company. Become a negligible Member of the mighty software entrepreneurs.


The reference address of this article cannot be found. Thank you!


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.