"A good software engineer has to read 60 books in his life"

Source: Internet
Author: User

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

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] An Introduction to systems
Thinking, silver anniversary edition)
[3] General Principles of system design
Systems 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
Bears: Managing Risk on Software Projects)
[9] "The Fifth practice: the art and practice of a learning organization" (
Fifth Discipline)

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 (original book version 2nd) "(Data Structure & algorithm analysis in C, Second Edition)
31
[14] introduction to the theory, language, and computing of automatic machines (2nd)
Computation (second edition ))
[15] discrete mathematics and
Its Applications, Fourth Edition)
[16] compilers: Principles,
Techniques and tools)
[17] Modern Operating System)
[18]
"Computer Network (version 4th)" (Computer Networks)
[19] "Introduction to database systems (version 7th)" (an introduction
Database Systems (seventh edition ))

Iii. Software Engineering ideas
[20] "pieces" (peopleware: productive projects and teams, 2nd ed .)

[21] The personalized papers: notes on the human side
Software)
[22] The Mythical man-month)
[23] "Software Engineering-
Research methods of practitioners (5th) "(Software Engineering: a practitioner's approach, practice th Edition)

[24] "Agile Software Development-principles, models, and practices" (Agile Software Development: Principles, patterns, and
Practices)
[25] Planning eXtreme Programming)
[26]
Introduction to RUP (version 3rd) (the Rational Unified Process: an introduction, Third Edition)

[27] the unified software development process)

4. software requirements
[28] Quality 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
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
The standard Object Modeling Language (2nd edition ))
[35]
"UML and patterns (formerly known as version 2nd)" (applying UML and patterns: An Introduction to object-oriented
Analysis and design and the uniied process, Second Edition)
[36]
Design Patterns explained)
[37] design pattern: the basis for reusable Object-Oriented Software
Patterns: Elements of reusable object-oriented software)
[38] "pattern-Oriented Software Architecture
Volume 1: Pattern-oriented software architecture, Volume 1: a system
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] "C ++
Programming Language (Special Edition) "(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
Valid tive 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: 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 the existing Code
Existing Code)

9. Configuration Management and Version Control
[54] "The path to Version Control-use CVS" (First part of the programmer's 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" (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"

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.