Reddit Reddit reviews Object-Oriented Software Construction (Book/CD-ROM) (2nd Edition)

We found 8 Reddit comments about Object-Oriented Software Construction (Book/CD-ROM) (2nd Edition). Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer Programming
Software Design, Testing & Engineering
Object-Oriented Design
Object-Oriented Software Construction (Book/CD-ROM) (2nd Edition)
Check price on Amazon

8 Reddit comments about Object-Oriented Software Construction (Book/CD-ROM) (2nd Edition):

u/gregK · 19 pointsr/programming

It's one of the best OO languages, with one of the best books to go along with it OOSC. But it was never mainstream. And a purely OO language is becoming a thing of the past.

All the current new languages are more or less hybrids between OO and FP, for example: Scala and F#. Even C# which is touted as an OO language has a lot of FP features that were not available in Eiffel.

It is probably not a bad language for teaching OO, probably better than Java and C++ especially when used with the book mentioned above. But it's not my favorite language. Haskell is, but it's not OO so I'm not sure if it counts. (Not a big fan of OO either anymore) .

u/wrelam · 12 pointsr/C_Programming

C Interfaces and Implementations has some decent advice for designing C programs. This is also a skill which you 'll develop with time (e.g. over your entire career) so don't worry too much about figuring it out immediately; it requires experience. As you work on various projects you'll get a sense for what works and what doesn't so that over time you'll have developed strategies for solving particular types of problems.

OOP concepts are still valid even though C may not have ways to necessarily implement them within the language proper. Object-Oriented Software Construction is a fantastic book for learning OOP concepts. As your C experience grows, you'll begin to see ways of implementing some of those design strategies with C, even though it's not an OO language.

Knowing when to use what type of data structure can also aid in simplifying your code base. The standard book for this is CLRS, but for C specific implementations and advice, see Algorithms in C.

u/dnew · 9 pointsr/google

> how to use google to solve a programming problem

You can't. You have to figure out how to solve the problem yourself. Then you use Google to look up individual pieces of that.

In other words, you have to go "Well, I need to open the file, then read it line by line, find the first opening brace, find the last closing brace, and extract the piece of the string between those two braces, then print that out."

How do I open a file? I can google that.

How do I find the opening brace? I can google that.

How do I chop out the middle of a string into a new string? I can google that.

See what I mean?

> CS textbooks in general just aren't as well written

Not any more. People just generally don't give a shit, I've found. I've learned numerous programming languages by reading the manual for the compiler in older times. Nowadays, you're lucky if there's even a formal spec of the syntax of the language, let alone a complete readable manual. The "Ruby on Rails" text that seems to be the authoritative text is full of stuff like "this routine seems to do ...." meaning the guy writing it doesn't actually know, and didn't bother to read the source code to figure it out for sure.

However, the good news is that the classic books full of the knowledge that does not become outdated are actually very well written. Start with some of Knuth's texts (https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming), Date's book on SQL and relational models (http://www.amazon.com/Introduction-Database-Systems-8th/dp/0321197844), Bertrand Meyer on OOP (http://www.amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/0136291554) and so on. (That last is even available as a PDF floating around.)

> some of the knowledge you gain could become potentially outdated in the future

Everything that you could look up on Google will be outdated in about five years. The stuff about how computers work, how to solve problems, etc never gets outdated.

On the other hand, it's one of the few jobs where you can take a job to do X and start working on it without any idea of how to do X. I've been programming almost 40 years and I've never taken a job that I knew how to do when I took the job.

u/mhd · 8 pointsr/programming

Friedman & Felleisen Little Schemer seems noteworthy. Unorthodox, but nicely done.

And while I think that Meyer's technical writing isn't exactly the best, Object-Oriented Software Construction has a nice visual layout and is one of the few computer books that uses color effectively.

u/CSMastermind · 4 pointsr/learnprogramming

I've posted this before but I'll repost it here:

Now in terms of the question that you ask in the title - this is what I recommend:

Job Interview Prep


  1. Cracking the Coding Interview: 189 Programming Questions and Solutions
  2. Programming Interviews Exposed: Coding Your Way Through the Interview
  3. Introduction to Algorithms
  4. The Algorithm Design Manual
  5. Effective Java
  6. Concurrent Programming in Java™: Design Principles and Pattern
  7. Modern Operating Systems
  8. Programming Pearls
  9. Discrete Mathematics for Computer Scientists

    Junior Software Engineer Reading List


    Read This First


  10. Pragmatic Thinking and Learning: Refactor Your Wetware

    Fundementals


  11. Code Complete: A Practical Handbook of Software Construction
  12. Software Estimation: Demystifying the Black Art
  13. Software Engineering: A Practitioner's Approach
  14. Refactoring: Improving the Design of Existing Code
  15. Coder to Developer: Tools and Strategies for Delivering Your Software
  16. Perfect Software: And Other Illusions about Testing
  17. Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application

    Understanding Professional Software Environments


  18. Agile Software Development: The Cooperative Game
  19. Software Project Survival Guide
  20. The Best Software Writing I: Selected and Introduced by Joel Spolsky
  21. Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams
  22. Rapid Development: Taming Wild Software Schedules
  23. Peopleware: Productive Projects and Teams

    Mentality


  24. Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency
  25. Against Method
  26. The Passionate Programmer: Creating a Remarkable Career in Software Development

    History


  27. The Mythical Man-Month: Essays on Software Engineering
  28. Computing Calamities: Lessons Learned from Products, Projects, and Companies That Failed
  29. The Deadline: A Novel About Project Management

    Mid Level Software Engineer Reading List


    Read This First


  30. Personal Development for Smart People: The Conscious Pursuit of Personal Growth

    Fundementals


  31. The Clean Coder: A Code of Conduct for Professional Programmers
  32. Clean Code: A Handbook of Agile Software Craftsmanship
  33. Solid Code
  34. Code Craft: The Practice of Writing Excellent Code
  35. Software Craftsmanship: The New Imperative
  36. Writing Solid Code

    Software Design


  37. Head First Design Patterns: A Brain-Friendly Guide
  38. Design Patterns: Elements of Reusable Object-Oriented Software
  39. Domain-Driven Design: Tackling Complexity in the Heart of Software
  40. Domain-Driven Design Distilled
  41. Design Patterns Explained: A New Perspective on Object-Oriented Design
  42. Design Patterns in C# - Even though this is specific to C# the pattern can be used in any OO language.
  43. Refactoring to Patterns

    Software Engineering Skill Sets


  44. Building Microservices: Designing Fine-Grained Systems
  45. Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
  46. NoEstimates: How To Measure Project Progress Without Estimating
  47. Object-Oriented Software Construction
  48. The Art of Software Testing
  49. Release It!: Design and Deploy Production-Ready Software
  50. Working Effectively with Legacy Code
  51. Test Driven Development: By Example

    Databases


  52. Database System Concepts
  53. Database Management Systems
  54. Foundation for Object / Relational Databases: The Third Manifesto
  55. Refactoring Databases: Evolutionary Database Design
  56. Data Access Patterns: Database Interactions in Object-Oriented Applications

    User Experience


  57. Don't Make Me Think: A Common Sense Approach to Web Usability
  58. The Design of Everyday Things
  59. Programming Collective Intelligence: Building Smart Web 2.0 Applications
  60. User Interface Design for Programmers
  61. GUI Bloopers 2.0: Common User Interface Design Don'ts and Dos

    Mentality


  62. The Productive Programmer
  63. Extreme Programming Explained: Embrace Change
  64. Coders at Work: Reflections on the Craft of Programming
  65. Facts and Fallacies of Software Engineering

    History


  66. Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
  67. New Turning Omnibus: 66 Excursions in Computer Science
  68. Hacker's Delight
  69. The Alchemist
  70. Masterminds of Programming: Conversations with the Creators of Major Programming Languages
  71. The Information: A History, A Theory, A Flood

    Specialist Skills


    In spite of the fact that many of these won't apply to your specific job I still recommend reading them for the insight, they'll give you into programming language and technology design.

  72. Peter Norton's Assembly Language Book for the IBM PC
  73. Expert C Programming: Deep C Secrets
  74. Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming
  75. The C++ Programming Language
  76. Effective C++: 55 Specific Ways to Improve Your Programs and Designs
  77. More Effective C++: 35 New Ways to Improve Your Programs and Designs
  78. More Effective C#: 50 Specific Ways to Improve Your C#
  79. CLR via C#
  80. Mr. Bunny's Big Cup o' Java
  81. Thinking in Java
  82. JUnit in Action
  83. Functional Programming in Scala
  84. The Art of Prolog: Advanced Programming Techniques
  85. The Craft of Prolog
  86. Programming Perl: Unmatched Power for Text Processing and Scripting
  87. Dive into Python 3
  88. why's (poignant) guide to Ruby
u/kryptiskt · 2 pointsr/programming

> If the author truly cares about advancing software engineering, I'd ask what he's doing to advance software engineering (apart, of course, from proposing laws and writing about it on his blog)?

Bertrand Meyer has done a fair bit to do that, Eiffel and Object-oriented Software Construction sticks out.

u/mlester · 1 pointr/programming