A good software engineer will read 60 books in his life

Source: Internet
Author: User

Three years have passed, and we have no guiding light. I also made a lot of detours during my exploration. I recommended some good books to my software team (I am also checking for missing vacancies) and hoped that those with lofty ideals would not take any detours.
1. Philosophy of Science and Management
[1] The psychology of computer programming: silver anniversary edition)
[2] Introduction to systematic thinking (an introduction to systems thinking, silver anniversary edition)
[3] General Principles of system design)
[4] quality software management (volume 1st)-system thinking (quality software management: Systems Thinking)
[5] becoming a technical leader: an organic problem-solving approach)
[6] "is your light on? -The real location of the Problem Found "(are your lights on? How to figure out what the problem really is)
[7] the pragmatic programmer)
[8] "Dancing with bears: software project risk management" (waltzing with bears: Managing Risk on Software Projects)
[9] The Fifth practice: the art and practice of a learning organization)

Ii. Computer science basics
[10] The Art of computer programming)
[11] computer systems a programmer's perspective)
[12] "Introduction to algorithms" (Introduction to algorithms, Second Edition)
[13] "data structure and algorithm analysis-C language description (source book version 2nd)" (Data Structure & algorithm analysis in C, Second Edition) 31
[14] Introduction to theory, language, and computing of automatic machines (2nd) (Introduction to Automation Theory, ages, and computation (second edition ))
[15] "discrete mathematics and Its Applications (fourth edition of the original book)" (Discrete Mathematics and its applications, Fourth Edition)
[16] "Compilation Principle" (compilers: Principles, techniques and tools)
[17] Modern Operating System)
[18] "Computer Network (4th)" (Computer Networks)
[19] An Introduction to database systems (seventh edition ))

Iii. Software Engineering ideas
[20] "pieces" (peopleware: productive projects and teams, 2nd ed .)
[21] "pieces of human ware-humanized software development" (The peopleware papers: notes on the human side of software)
[22] The Mythical man-month)
[23] Software Engineering: a practitioner's approach, practice Edition)
[24] "Agile Software Development-principles, models and practices" (Agile Software Development: Principles, patterns, and practices)
[25] Planning eXtreme Programming)
[26] introduction to the new version (version 3rd of the original book) (the Rational Unified Process: an introduction, Third Edition)
[27] the unified software development process)

4. software requirements
[28] quality before design (exploration requirements: quality before design)
[29] writing into tive Use Cases)

V. Software Design and Modeling
[30] "Principles and Practices of object-oriented methods"
[31] object-oriented software construction, Second Edition)
[32] object-oriented analysis and design with applications (2E)
[33] fundamentals of object-oriented design in UML)
[34] "UML essence-Concise Guide to Standard Object Modeling Language (version 2nd)" (UML Distilled: a brief guide to the standard Object Modeling Language (2nd edition ))
[35] applying UML and patterns: An Introduction to object-oriented analysis and design and the uniied process, Second Edition)
[36] Design Patterns explained)
[37] design patterns: Elements of reusable object-oriented software)
[38] pattern-Oriented Software Architecture Volume 1: Pattern-oriented software architecture, Volume 1: a system of patterns)
【39 】 bringing design to software)

6. Program Design (this varies from person to person, and the skill industry is specialized in learning C # And java)
[40] programming pearls Second Edition)
[41] The C Programming Language)
[42] The C ++ programming language (Special Edition)
[43] "C ++ primer (3rd )"
[44] the design and evolution of c ++)
[45] "C ++ programming ideology (2nd)" (thinking in C ++ Second Edition)
[46] "effective C ++" & "more effective C ++"
[47] The Art of C ++)
[48] "Java programming ideology: Version 3rd" (thinking in Java, Third Edition)
[49] "valid Java"

VII. Software Testing
[50] Test-driven development: by example)
[51] "test object-oriented system" (testing object-oriented system: models, patterns, and tools)
[52] unit test Java version-use JUnit/unit test C # version-use nunit (Pragmatic unit testing: in Java with JUnit/pragmatic unit testing: in C # With nunit)

8. software maintenance and reconstruction
[53] refactoring: improving the design of existing code)

9. Configuration Management and Version Control
[54] "The path to Version Control-use CVS" (programmer practices the first part of the trilogy: pragmatic version control using CVS)

10. Field topics (related to networks, platforms, and databases) 99
[55] "TCP/IP explanation" (TCP/IP multicast stracted)
[56] UNIX Network Programming)
[57] advanced programming in the Unix environment 102
[58] The Art of Unix programming)
[59] "Data Access Mode-database interaction in Object-Oriented Applications"

This article from the csdn blog, reproduced please indicate the source: http://blog.csdn.net/fenghuaonline/archive/2008/12/14/3516830.aspx

Related Article

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.