Design Patterns or Refactoring?

Hey guys-- my girlfriend was awesome enough to get me a gift certificate to Barnes and Nobles, and I was wondering which book you guys would recommend me study.

Do you guys think it is better to read Refactoring, or Design Patterns? I’ve read someones review stating he wished he had read refactoring prior to reading Design Patterns (it was some post somewhere on here that ripped C++ to shreds in critisism).

Anyhow, just looking for opinions. Thanks!

I’d buy a bunch of graphic novels with batman or something.

Lol, would you then do a barrel roll?

I found Design Patterns to be straight-forward reading. The only real pre-requisitse is fluency in a single programming language, although familiarity with two including one OOP language plus experience with a large project would be helpful. Note: I don’t know your background, but I feel I should warn you I wouldn’t recommend this as one of your first three books on programming. Not because it’s hard, in fact quite the opposite, only because it won’t improve your programming as much as some other books. :slight_smile:

Thats a very good answer–

Well, I’ve graduated from college with a B.A. is computer science, and I have at least had an introduction in just about every modern language I can think of-- some of the other ones, such as Lua, or Boo, which I know nothing about, I also don’t really care about (since in practicality, I don’t usually see them. Unity is the first time I’ve seen Boo, and I have no idea what else it is used for and therefore don’t have much of a motivation for programming in it).

I’ve had experience with:
Java
C++
ActionScript
Javascript (not the Unity script version)
Perl
PHP
HTML (though, this is more scripting, but for me equally important)
MYSQL (same as above)

Those are what I would consider my major languages. I can also poke around in
Python
Ruby
MIPS
Assembly x86

So, i figured my next general step would be to improve my Software Engineering skill. Word has it that you aren’t a serious programmer until you have studied design patterns, but I figured that would be the next logical step in my career.

This is the first time I’ve been seriously programming (> 4 hours a day) in a while, so I feel that my object oriented programming has slipped a bit from where it used to be back in my Java programming days (in retrospect, I was a pretty good Java programmer, just a shame it slipped a lot when I went into I.T.).

What did you have in mind?

Then you have the background to take advantage of Design Patterns. As far as other suggestions, a decade ago I found Steve McConnel’s “Code Complete” to be more practical in my development as a software engineer–it helped bridged the gap between schools (who often encourage you to overengineer) and businesses (who often encourage you to underengineer) and helped me to justify my designs.

Apparently a new edition has been out for six years. I just ordered a copy to refresh my knowledge. :slight_smile: