A site devoted mostly to everything related to Information Technology under the sun - among other things.

Wednesday, September 5, 2007

Recommended Reading

Recommended reading with a few observations:

1. “Dreaming in Code” by Scott Rosenberg (Crown) because of its importance as a cautionary tale for anyone in a position to define or contribute to a nontrivial software project.

Three very intriguing books that help look forward and ponder what programming might have the capabilities to accomplish in the near future:

2. “The Meaning of the 21st Century” by James Martin (Riverhead),

3. “The Extreme Future: The Top Trends That Will Reshape the World for the Next 5, 10, and 20 Years” by James Canton (Dutton)

4. “The Singularity Is Near: When Humans Transcend Biology” by Ray Kurzweil (Viking).

Next we have:

5. “The Wiki Way” by Bo Leuf and Ward Cunningham (Addison-Wesley arguing convincingly that the technology is sound, and what implementations like Wikipedia primarily lack is simply adult supervision.

6. “The Tomes of Delphi: Algorithms and Data Structures” by Julian Bucknall (Wordware) because of its adept explanations of algorithms and data structures for Borland’s Delphi programming language, also known as Object Pascal.

7. The desktop PC is a topic of the book “Building the Perfect PC” by Robert Bruce Thompson and Barbara Fritchman-Thompson (O’Reilly), which talks about the advantages of building a PC for one’s exact specifications and needs.

8. “Blink: The Power of Thinking Without Thinking” by Malcolm Gladwell (Little, Brown and Company) relevant despite the fact it wasn’t written specifically for software professionals since it demonstrates why developers and testers need to both pay attention to their instincts, while at the same time being wary of them while evaluating the quality of software.

9. “The 4-Hour Workweek” by Timothy Ferriss (Crown) is more of a lifestyle book that discusses ways in which people can eliminate 50 percent of their work using principles of European economists and get the most out of their workweek. The stated goal is extreme, but it makes you stop and think about what you do to generate value, versus what you do that just takes up time.

10. “The Technology Garden: Cultivating Sustainable IT-Business Alignment” by Jon Collins, Neil Macehiter, Dale Vile and Neil Ward-Dutton (Wiley). which is an excellent book on ‘Big SOA,’ the transformative power of the newest paradigm in enterprise software on how businesses are operated and the future of enterprise architecture.

11. “The Systems Bible: The Beginner’s Guide to Systems Large and Small” by John Gall (General Systemantics/Liberty), the third edition of “Systemantics,” a series created by Gall in which he proposes several “laws” of systems failure, such as “new systems generate new problems” and “the total amount of energy in the universe is constant”. The book takes a fairly satirical look at systems behavior.

A trio of must-read books for anyone involved in Web site and Web application development is:

12. “Developing Rich Clients with Macromedia Flex” by Steven Webster and Alistair McLeod (Macromedia),

13. “Designing Visual Interfaces” by Kevin Mullet and Darrell (Prentice Hall)

14. “Web Pages That Suck: Learn Good Design by Looking at Bad Design” by Vincent Flanders and Michael Willis (Sybex).

The Webster and McLeod’s work is the only significant nuts and bolts book on Flex, while Mullet and Sano provide a great discussion on the simplicity in visual elements used in software, with emphasis on the difficulty on iconic communication.

15. “The Design of Sites: Patterns for Creating Winning Web Sites” written by Douglas K. van Duyne, James A. Landay and Jason I. Hong (Prentice Hall) is a very good Web site design book.

The O’Reilly’s “Missing Manual” series, which are casual and easy-to-read manuals for popular consumer software and hardware products, are quite useful for developers because of their organization and readability.

16. “Programming Erlang: Software for a Concurrent World” by Joe Armstrong (Pragmatic Bookshelf), which is focused around teaching the Erlang programming language. The language is designed for building parallel, distributed systems. Developers might want to get involved in learning Erlang because of the advantage it offers using the concurrency inherent in multi-core processors.

17. “XSLT & XPath: A Guide to XML Transformations” by John Robert Gardner and Zarella L. Rendon (Prentice Hall) is a useful book because it provides a great education in understanding both XSLT and XPath and their relationship to each other, and continues to serve as a reference to both languages. It’s a must-have for Web 2.0 and SOA-focused developers today, and should probably go on the ‘should read’ list for network- and security-minded folks as well.

18. “An Introduction to General Systems Thinking” by Gerald M. Weinberg (Dorset House), written more than 30 years ago, is an introduction to systems theory and computer science applications, and is frequently used in university courses and professional seminars. While the thought process Weinberg describes can seem bizarre at first, but when read with an open mind, it can be very satisfying.

19. Tim Koomen and Martin Pol’s “Test Process Improvement” (Addison-Wesley)

Three books by Robert Grady on the process side:

20. “Discovering REAL Business Requirements for Software Project Success” (Artech House)

21. “Successful Software Process Improvement” (Prentice Hall PTR)

22. “Practical Software Metrics for Project Management and Process Improvement” (Prentice Hall).

Next:

23. “Refactoring: Improving the Design of Existing Code” by Martin Fowler, Kent Beck, John Brant, William Opdyke and Don Roberts (Addison-Wesley) for its advice on making object-oriented code simpler and easier to maintain.

24. “Compiler Design in C” by Allen I. Holub (Prentice Hall)

25. “Working Effectively With Legacy Code” by Michael C. Feathers (Prentice Hall)

26. “Operating Systems Design and Implementation” by Andrew S. Tanenbaum (Prentice Hall). This is where Linus Torvald began Linux.

27. “The UNIX-Haters Handbook” by Simson Garfinkel, Daniel Weise and Steven Strassmann (Wiley) is a vivid reminder that even hard-core techies are perfectly capable of confusing each other.

28. “Applied Cryptography” by Bruce Schneier (Wiley) is a very useful book on data encryption.

29. Randall Hyde’s “The Art of Assembly Language” (No Starch).

30. “Introduction to Algorithms” by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein (MIT Press) is a gigantic and very thorough book of algorithms is indispensable in learning and understanding everything from the most basic to the most complex algorithms.

31. A newer book that will have a lasting effect on developers is “Lessons Learned in Software Testing” by Cem Kaner, James Bach and Bret Pettichord (Wiley). The book presents only realistic solutions and real-world answers to problems.

32. “Rapid Development” by Steve McConnell (Microsoft Press), which offers rapid software development strategies in addition to mistakes to avoid for rapid development projects.

33. “Design Patterns: Elements of Reusable Object-Oriented Software” by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides (Addison-Wesley). The book offers solutions to design problems through describing patterns for managing object creation, composing objects into larger structures, and coordinating control flow between objects.

34. “Code and Other Laws of Cyberspace” by Lawrence Lessig (Basic Books)—offers a valid argument for guiding the still-developing regulatory process of the Internet, calling for a way to regulate the Internet that pleases both government and business.

35. William Gibson’s “Pattern Recognition” (Putnam) contains futuristic tales and a science-fiction style that offer an exciting perspective on modern consumerism. The ‘unevenly distributed future’ of Gibson’s ‘Neuromancer’ is still quite far away, but the world of ‘Pattern Recognition,’ with its massive disruptions of conventional models of markets and media, is where some of us are living now, and where all of us will be living quite soon.

36. “PHP Phrasebook” by Christian Wenz (Sams) serves as a guide to PHP phrases frequently used by PHP developers. It presents short code snippets that illustrate PHP language features.

37. Nassim Nicholas Taleb’s “The Black Swan: The Impact of the Highly Improbable” (Random House) is a new book worth reading for its examination of improbable and unpredictable events that have massive impact. The idea of bracing for unforeseen events is something that could help software developers.

38. The automated testing guide “xUnit Test Patterns: Refactoring Test Code” by Gerard Meszaros (Addison-Wesley).

39. “Continuous Integration: Improving Software Quality and Reducing Risk” by Paul M. Duvall, Steve Matyas and Andrew Glover (Addison-Wesley).

40. “Groovy in Action” by Dierk König, Andrew Glover, Paul King, Guillaume Laforge and Jon Skeet (Manning) is tutorial on Groovy.

41. “I Am a Strange Loop” by Douglas Hofstadter (Basic Books), which examines the concept of a strange loop that the author developed. A strange loop arises when one finds oneself back where one started, involving either self-reference or paradox.

42. “Beautiful Evidence” by Edward R. Tufte (Graphics) is a masterpiece in graphical presentation of complex data and will change how data presenters and designers sense, interpret and display data.

No comments:

About Me

My photo
I am a senior software developer working for General Motors Corporation.. I am interested in intelligent computing and scientific computing. I am passionate about computers as enablers for human imagination. The contents of this site are not in any way, shape, or form endorsed, approved, or otherwise authorized by HP, its subsidiaries, or its officers and shareholders.

Blog Archive