To become a programmer, start from the basics

Source: Internet
Author: User

Many people want to become programming masters, but they are often too eager for success and often go astray. In fact, the programming path is not smooth, and you will encounter many difficulties. In many cases, you need to solve these difficulties by yourself. All you need is a preparation. Of course, I may say something wrong, and it will scare some people. But as long as you have a strong interest, everything is not a problem. Now I want to talk about my views:

(1) Some people like C, Java, and Delphi about languages. These are not problems. The question is whether you really understand their ideas. For example, do you know how recursion is implemented step by step in assembly? You know, what is the principle of a virtual function and how it is compiled? After VC disassembly debugging, you are very familiar with AssemblyCodeRead and understand? Why do some people like define and some people like typedef? What are their differences? YourProgramIs it strong enough? Is the program safe to handle illegal input? How to optimize your program? These are all issues you need to consider during programming. Maybe you have already done several projects. Maybe you have already programmed tens of thousands of lines? But have you really understood these languages?

(2)Algorithm. Algorithms are the soul of a program. Without good algorithms, code is a pile of waste. I don't know if you have mastered the algorithm. In fact, there are many things to learn. If you are a newbie, I suggest you read "Data Structure" by Yan Weimin, Tsinghua University Press. If you think it is too simple, I suggest you read MIT Press's introduction to algorithms. Now it seems that there is a second version. If you still don't feel satisfied, you can read some theoretical books, such books are everywhere, such as numerical analysis, functional analysis, matrix theory, wavelet analysis, and random process. Learning more algorithms will only benefit you, it gives you a better understanding of the problem. Taking the database as an example, do you mean sorting is not important? Of course. If you want to solve it? What algorithm will you use? Or select-all? Of course not! What if the data size to be sorted is 1 million, 10 million? How many machines do you need to run the sorting together? Have you considered this? If you have figured it out, please accept me first. Next, I recommend that you go to Baidu quickly? The position with an annual salary of 0.2 million is waving to you !!

The computer market in China is huge, but it is by no means the best in the world. It is not Ireland, not India, but China. Most of the outstanding programmers come from Europe, Northern Europe, Russia, and the United States. Kai-fu Lee is right. The top five computers in Chinese universities may not catch up with the top 50 computers in the United States, but we are catching up with them. I think in the future, more computers will belong to a service-type technology. The company's operating income will mainly come from service content. In this regard, Koreans are at the forefront, although I caught a cold in South Korea.

(3) English. Many people complain that their English skills are poor. To become a good programmer, English is your mother tongue. Linux is English, msdn is English, and codeguru is English. Many handbooks and user-guide and technique books are also English. Recently, our students are working on embedded systems. They use Samsung's ARM9. all of them are in English. Therefore, it is really difficult to grow without English. Do not expect others to translate for you. You should think about how you can translate it to others.

(4) Pay attention to the basics. Operating system theory, architecture, algorithms, compilation methods, and so on, all of which need to be considered. When your foundation is solid, your chances of success will be even greater. When you see the word, I want you to see the layout and layout related algorithms; when you use Google, I want you to remember the PageRank literature; when using navigation, you should first think of the shortest path generation algorithm.

(5) The last step is to be down-to-earth. Do not complain, or blindly follow suit. When everyone is talking about Ubuntu, you also say yes. When Others scold Baidu and you scold Baidu, these are unnecessary. Do not care too much about external public opinions and do your own thing well. There are many resources on the Internet, including almost everything. You want to learn about networks, ASP, PHP, JSP, and embedded Linux, WinCE,C/OS; recognition class, fingerprint, face, sound; in terms of papers, many Daniel like his blog, MIT also has many opencourse; 3D animation, OpenGL, direct3d, etc; there are more programs, such as codeguru and SourceForge. It is always a pleasure to learn the strengths of others.

HopeArticleIt is useful to 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.