. NET programmer to high-end must read a single summary

Source: Internet
Author: User

    • . NET programmer to high-end must read a single summary
      • First, the Knowledge tree
        • 1. Basic Competencies
          • 1.1 Mathematics
          • 1.2 English
          • 1.3 Language expression
        • 2. Computer Organization and architecture
        • 3. Algorithms and data structures
        • 4. Operating system
        • 5. Computer network
        • 6. Information Management
        • 7. Developing languages and frameworks (for example, the. NET platform)
        • 8. Software Engineering
      • Ii. Methods of Learning
      • Third, PostScript

Today's program development is becoming more and more simple (rich APIs, intelligent Ides, more and more development frameworks), and ordinary people can accomplish many programs by combining and copying through simple training. So the programmer of this past high-tech career synonymous, now is so cheap, known as the Code farm. Using microeconomic principles, when supply increases and demand is constant, the price balance will move down, so the average programmer is getting lower wages. and the numerous training institutions on the streets are still producing, and it is expected that the price balance will be shifted down in the near future (regardless of inflation). Then as a visionary programmer should strengthen their internal strength, become irreplaceable. Reading is the most effective way to invest, I have already read and prepare to read books, and according to the knowledge of the categories for everyone to reference and discussion.

First, the Knowledge tree

Computer Science and technology is a large and complex subject, it is impossible to understand all the content, but can be through the knowledge tree to understand the core knowledge of the entire domain, for the subsequent application of the preparation.

If computer science and technology are regarded as military study words, the left part is the internal strength, the right part is a move. Military study master can use simple moves to play a huge power, is because the strength of the strong. So to understand the whole computer science and technology of the full picture needs to start from the internal strength.

1. Basic Competencies

1.1 Mathematics

Many programmers who do applications will feel that mathematics is largely useless because they are largely unused in the system. But in fact mathematics is the cornerstone of the whole computer, so the understanding of mathematics is indispensable. If is engaged in the machine study, the data mining, the computer graphics more needs the strong mathematics foundation.

    • Specific mathematics: "Concrete Mathematics-Basic computer science" https://book.douban.com/subject/21323941/
    • Probability theory and Statistics: the basic course of probability theory https://book.douban.com/subject/1803862/
    • Discrete Mathematics: "Discrete Mathematics and its application" https://book.douban.com/subject/3125432/
    • Linear algebra: "Linear algebra and its Applications" https://book.douban.com/subject/1425950/
    • Advanced Mathematics: "Thomas Calculus" https://book.douban.com/subject/1231399/
1.2 English

English is the most important language for programmers, most of the technical books, agreements, conferences and so on are English, so need to understand first-hand information needs a strong English reading and writing skills, English learning is a gradual process, can use fragmentation time to learn.

    • English methodology: "Put your English together" https://book.douban.com/subject/3748247/
    • Learning materials: "Lai from the beginning of the American Language series"
1.3 Language expression

Language expression is mainly written and verbal, it is necessary to develop a rigorous and fluent language expression ability. This is mainly to write more practice, such as in the blog Park to write articles (as I am now), and colleagues and friends to communicate with the beautiful.

2. Computer Organization and architecture

The organizational structure of computer system, based on von Neumann model, is the hardware foundation of computer.

Core Knowledge points

    • Machine representation of the data
    • Assembly-Level machine Organization
    • Interfaces and communications
    • Storage System
    • Multi-processor

Reference books

    • Computer architecture: "In-depth understanding of computer systems" https://book.douban.com/subject/1230413/
3. Algorithms and data structures

Many people think that the application system does not need a data structure at all, the high-level language has been packaged well, do not need to learn. This question is analogous to the ability to master tools if only the bricks and walls of the building are done. But if you want to design a building, physics must be learned.

Core Knowledge points

    • Algorithm strategy: 穷举算法 ,,, 贪心算法 分治算法 回溯法 ,数值逼近
    • Basic algorithms: 查找算法 ,,, 排序算法 哈希表 图算法 ,最小生成树
    • Basic data structure: 列表 , ,

Reference books

category Books Difficulty Degree of importance
Data structure and algorithm analysis "Data structure and algorithm analysis" https://book.douban.com/subject/1139426/ So so Intensive reading
Introduction to Algorithmic Description Language "C and Pointers" https://book.douban.com/subject/3012360/ So so Intensive reading

Explain why the "C and pointers" are put here, because the personal feel that all algorithms and data structure Description Language C is the most cool one (not one), and in "C and pointers" not only to explain the C language, more simple data structure and algorithm to explain, very beautiful. It is recommended that you read this book before you formally study data structure and algorithmic analysis.

4. Operating system

Many concepts in the operating system need to be understood, such as processes, threads, and resource mutexes, which are needed in many areas of real-world development.

Core points:

    • Memory management
    • Device Management
    • Scheduling algorithm
    • Concurrency of

Reference books

category Books Difficulty Degree of importance
Operating system principles "Modern operating System" https://book.douban.com/subject/3667744/ More difficult Extensive reading
5. Computer network

The development of computer and remote communication network, especially based on TCP/IP network, makes networking technology very important.

Core Knowledge points

    • Network tiering (TCP/IP 4 layer structure)
    • Network transport Security
    • HTTP protocol

Reference books

category Books Difficulty Degree of importance
Network "Computer network" https://book.douban.com/subject/1179807/ More difficult Extensive reading
HTTP protocol "Graphical HTTP protocol" https://book.douban.com/subject/25863515/ Simple Intensive reading
6. Information Management

Information management technology is very important in all fields of computer, including information acquirement, information digitization, information representation, information organization, information transformation and information expression. Efficient access algorithms and storage information updates, data modeling and data abstraction, and physical file storage techniques.

Core Knowledge points

    • Data modeling
    • Database system
    • relational database system (MySQL best)

Reference books

category Books Difficulty Degree of importance
Database Basics "Database system Concept" https://book.douban.com/subject/1929984/ More difficult Extensive reading
MySQL Database "High performance MySQL" https://book.douban.com/subject/4241826/ So so Intensive reading
7. Developing languages and frameworks (for example, the. NET platform)

This is the main application area, this article takes the. NET platform as an example.

Core Knowledge points

    • Clr
    • Object-Oriented Programming
    • Web programming

Reference books

category Books Difficulty Degree of importance
Virtual machine Technology "CLR via C #" https://book.douban.com/subject/4924165/ More difficult Intensive reading
Object-Oriented Programming "Agile Software Development C # version" https://book.douban.com/subject/1140457/ So so Intensive reading
C # language "In-depth analysis of C #" https://book.douban.com/subject/4822302/ So so Intensive reading
"C # and. Net4 Advanced Programming" https://book.douban.com/subject/6062550/ So so Intensive reading
asp "ASP." Advanced Program Design https://book.douban.com/subject/6428937/ So so Intensive reading
Javascript The JavaScript Authority guide https://book.douban.com/subject/10549733/ So so Intensive reading
JavaScript mode https://book.douban.com/subject/11506062/ So so Intensive reading
The essence of JavaScript language https://book.douban.com/subject/3590768/ So so Intensive reading
Html&css Website Simple Intensive reading
8. Software Engineering

Software engineering disciplines involve the application of the theory, knowledge, and practice needed to efficiently build software systems that meet customer needs. Software engineering is suitable for the development of a variety of systems, including requirements analysis and specification, design, construction, testing, operation and maintenance of software system life cycle of all stages. Software engineering uses engineered methodologies, techniques, and metrics that use tools developed by management software, analytical and modeling tools for software products, quality assessment and control tools, and tools that ensure a methodical and controlled implementation of software evolution and reuse. Software can be developed by individual developers or development teams who choose the tools, methods, and approaches that are best suited to the development environment. Quality, schedule, cost and other software engineering elements are very important to the production of software systems. Core Knowledge points

    • Software Design
    • Software Process
    • Software project Management

Reference books

category Books Difficulty Degree of importance
Software Design "Head First design mode" https://book.douban.com/subject/2243615/ So so Intensive reading
"Enterprise Architecture Model" https://book.douban.com/subject/4826290/ So so Intensive reading
Software "Software Engineering" https://book.douban.com/subject/6047742/ So so Intensive reading
Project Management "How to Manage software Enterprise" https://book.douban.com/subject/4178846/ So so Extensive reading
Project Management "Software project management and agile Methodologies" https://book.douban.com/subject/4837350/ So so Intensive reading
Ii. Methods of Learning

To learn the above knowledge by rote memorization is not possible, to have a scientific approach, the following books include scientific methods of learning.

category Books Difficulty Degree of importance
Learning methods "Holistic Learning" https://book.douban.com/subject/25783654/ So so Intensive reading
Reading methods "How to read a book" https://book.douban.com/subject/1013208/ So so Intensive reading
Time Management "Another 8 hours" https://book.douban.com/subject/10535830/ So so Intensive reading
"Take time as a friend" https://book.douban.com/subject/5171244/ So so Intensive reading
Meditation Practice "Mindfulness meditation" https://book.douban.com/subject/23037911/ So so Intensive reading
Third, PostScript

The above books are computer science needs to learn the collation of books, some have seen, there are many have not seen or not read, and because of limited knowledge there are many books or knowledge points no examples. I hope we can have more friends to improve this book list, so that each of us can enjoy the joy of knowledge .

I believe that as long as reasonable use of time, persist in learning, in addition to scientific methods, will be able to obtain more and more knowledge, the same wealth will follow.

The source of the handsome insects: http://www.cnblogs.com/vipyoumay/p/5681982.html

. NET programmer to high-end must read a single summary

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.