What programmers need to learn

Source: Internet
Author: User

Programming languages

Programmers must learn at least one programming language so that they can begin to do something. Mainstream programming languages generally have a Bible-level book, such as C, K&r's C Programmer lanugage,c++ in C + + Primer, Java thinking in Java. A solid selection of a good study, the exercise to do all over again, read, master the Knowledge points in the book. If you start to learn the time is not serious, figure fast, early finish to take these time back, it is better to start with a good study.

In addition to Bible-level books, there are books that enhance the understanding of these languages and avoid stepping on pits when used. For example c expert programming, C and pointers to these, as well as C + + effective C + +, Java effective java.

Of course, the process of learning programming, in fact, simply learning language is somewhat boring, like in the back of the dictionary, in the process, you can do some useful small programs.

A programmer, at least proficient in a language, whether it's C, C + + or Java or something else. Therefore, in addition to mastering the basic knowledge of the language, to be proficient, but also need two other aspects of knowledge. One is the language standard, about the language core of everything in here, not familiar with the language standard how dare to say proficient. On the other hand is the standard library, to often read the standard library of language, to ensure that they understand all aspects of the standard library, not to use a thing, the standard library and do not know.

Domain knowledge

Learning the programming language alone cannot be a good programmer, just as you are familiar with every word in the dictionary, it does not mean that you are a good writer. To write useful programs in a proficient language, you need to learn the domain knowledge. Whether it's three romantic operating systems, graphics, compilers, or other areas, there's always a lot of domain knowledge that must be mastered. Many areas of knowledge have some basic documentation, and to become experts in the field, you need to read these basic documents over and over again. Everything is evolved from these basic documents. For example, you want to learn network programming, then "TCP/IP detailed", the various RFCs read No, read a few times? You want to learn Android, then the official Developer Center, all the documents you have read no, read a few times?

Whatever you learn, start with the attitude of becoming an expert in the field.

General knowledge

In addition to the programming language itself and the domain knowledge, there are some common knowledge is very necessary to understand. If we are going to develop a software, now that you are proficient in language and domain knowledge, does that mean you can develop a good program? Not necessarily. You also have to make sure that the program you write is a high-quality program.

What is a high-quality program? I think there are two areas to note, one is the development efficiency, and the other is the operational efficiency.

Development efficiency

There are many things related to development efficiency, such as the readability of the program, maintainability, correctness. From these two aspects, can derive the code style, cohesion, low coupling, well-designed testing, design patterns and so on. Need to read "code encyclopedia", "Refactoring", "Design Patterns", "The art of Writing readable code," such as books. Light reading is not enough, but also in the process of writing procedures, constantly thinking, practice the content of the book.

Operational efficiency

There are also many things related to operational efficiency, such as how to write a compiler-friendly program, which is relevant to mastering the programming language itself and understanding compiler features. On the other hand, it is related to concurrent programming, to improve the efficiency of the program, in addition to the program itself, how to use concurrency to improve operational efficiency is another important content.

What programmers need to learn

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.