60 books a good software engineer needs to read throughout his life

Source: Internet
Author: User
1. Philosophy of Science and Management


1.ProgramThe psychology of computer programming)
2. Introduction to systematic thinking (an introduction to systems thinking, silver anniversary edition)
3. General principles of Systems Design)
4. Quality · software · Management (volume 1st)-quality software management: Systems Thinking)
5. Become a technical leader-an organic solution to the problem (becoming a technical leader: an organic problem-solving approach)
6. Is your light on? -Are you lights on? How to figure out what the problem really is)
7. the pragmatic programmer)
8. Dancing with Bear: waltzing with bears: Managing Risk on software projects)
9. Fifth practice: the art and practice of a learning organization)

 

From the above, we can see that Winnie's masterpiece was the most selected. Among them, Peter Shengji's "fifth Cultivation" should complement each other with "Introduction to systematic thinking. The most important part of software project management is human management. Therefore, the psychology of program development is very helpful for the study of programmer psychology, is your light on? Is a good book for problem management and thinking model training, and for risk management, especially the quantitative risk management of software projects, I seldom see a book as well as dancing with a bear. The books above can help us improve our system thinking, risk management, problem management, and people-oriented approach.

Ii. Computer science basics

 

1. The art of computer programming)
2. Understanding computer systems a programmer's perspective)
3.AlgorithmIntroduction (Introduction to algorithms, Second Edition)
4. Data Structure and algorithm analysis-C language description (2nd)
5. Introduction to theory, language, and computing of automatic machines (2nd)
6. Discrete Mathematics and Its Application (fourth edition of the original book)
7. compilation principles (compilers: Principles, techniques and tools)
8. Modern Operating System (modern operating system)
9. Computer Network (4th) (Computer Networks)
10. Introduction to database systems (version 7th) (an introduction to database systems (seventh edition ))

 

In terms of management information system development, the most important thing is introduction to algorithms and database systems. Others feel less useful. If you want to become a real master, the above is the foundation.

Iii. Software Engineering ideas

1. Pieces (peopleware: productive projects and teams, 2nd ed .)
2. Human collection-user-friendly software development
3. The Mythical man-month)
4. Software Engineering-research methods by practitioners (5th)
5. Planning eXtreme Programming)
6. Introduction to RUP (version 3rd) "(the Rational Unified Process: an introduction, Third Edition)
7. The unified software development process)

The following table describes the important roles of the RUP methodology in the entire software engineering philosophy. Case-driven, the core elements of the architecture and the core elements of incremental iteration can be referenced by all methodologies. The Mythical man-month and man-ware are essential books for software project management. They have full conceptual integrity, no silver bullet, the relationship between progress and manpower, and tar traps, which make us deeply aware. I didn't see Agile Software Development here. This is a book worth reading.

4. software requirements

1. Exploring requirements-quality before design (quality before design)
2. Write a valid use case)

V. Software Design and Modeling

1. Principles and Practices of Object-Oriented Methods
2. Object-Oriented Software Architecture (English version. 2nd) (object-oriented software construction, Second Edition)
3. Object-Oriented Analysis and Design (formerly known as OSS 2nd) (object-oriented analysis and design with applications)
4. UML object-oriented design basics (Fundamentals of object-oriented design in UML)
5. UML essence-Concise Guide to Standard Object Modeling Language (version 2nd) (UML Distilled: a brief guide to the standard Object Modeling Language (2nd edition ))
6. UML and pattern applications (original book version 2nd) (applying UML and patterns: An Introduction to object-oriented analysis and design and the uniied process, Second Edition)
7. Design Patterns explained)
8. design patterns: Elements of reusable object-oriented software)
9. Pattern-Oriented Software Architecture Volume 1: pattern system (pattern-oriented software architecture, Volume 1: a system of patterns)
10. The art of software design (bringing design to software)

I was deeply impressed by the design patterns and UML and pattern applications, especially after some coding practices. The book "Object-Oriented Software Architecture" is too theoretical to read. Here we recommend a book "head first design mode".

Vi. Program Design

1. Programming pearls Second Edition)
2. C programming language (version 2nd-the new version) (the C programming language)
3. c ++ programming language (special edition) (the C ++ programming language, Special Edition)
4. c ++ primer (3rd)
5. The design and evolution of C ++)
6. C ++ programming ideology (2nd) (thinking in C ++ Second Edition)
7. Valid tive C ++ & more valid tive C ++
8. The art of C ++)
9. Java programming ideology: Version 3rd (thinking in Java, Third Edition)
10. Valid Java

In terms of language, I did not see 《CodeDaquan this book. This book should be included.

 

VII. Software Testing
1. Test-driven development: by example)
2. Test the object-oriented system (testing object-oriented system: models, patterns, and tools)
3. unit Test path Java version -- use JUnit "/" unit test path C # version -- use nunit "(Pragmatic unit testing: in Java with JUnit/pragmatic unit testing: in C # With nunit)

 

8. software maintenance and reconstruction
1. refactoring-improving the design of existing code (refactoring: improving the design of existing code)

 

9. Configuration Management and Version Control
1. Method of Version Control-use CVS

 

10. Field topics (related to networks, platforms, and databases)
1. TCP/IP (TCP/IP multicast stracted)
2. UNIX Network Programming)
3. Advanced Programming in the Unix environment)
4. The art of Unix programming)
5. Data Access Mode-database interaction in Object-Oriented applications

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.