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.
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.
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) .
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.
> 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.
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.
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
Junior Software Engineer Reading List
Read This First
Fundementals
Understanding Professional Software Environments
Mentality
History
Mid Level Software Engineer Reading List
Read This First
Fundementals
Software Design
Software Engineering Skill Sets
Databases
User Experience
Mentality
History
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.
> 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.
These books will bring your design skills up a notch and give you some material to back up your arguments in design disputes.