Re: OO Design induces an existential crisis
- From: "Shayne Wissler" <thalesNOSPAM000@xxxxxxxxx>
- Date: Thu, 7 Jul 2005 14:27:55 -0600
"kj" <socyl@xxxxxxxxxxxxxxxxx> wrote in message
news:dah0ko$dj5$1@xxxxxxxxxxxxxxxxxxxx
>
>
> I have been programming (mostly procedural stuff) for almost 15
> years. I enjoy programming, take it seriously, and by general
> estimation I am quite good at what I do.
>
> Of these 15 years, I have spent about 7 years trying to train myself
> to do OO programming. I have no problem with *using* pre-existing
> classes, and even extending them. Similarly, I am comfortable with
> the *principles* of OO design. I have studied the GoF book carefully,
> as well as other less famous books on OO design.
>
> Still, when it comes to OO *design* I absolutely *suck*. I takes
> me so long to design anything that I often abandon projects for
> lack of time or loss of interest. Even when I complete a project
> involving OO design, the outcome is puny and incommesurate with
> the enormous effort invested. I often wonder whether the promise
> of future time savings (from ease of maintenance and refactoring)
> are paid for many times over by the *huge* amount of time and sweat
> that I have to put into my design phase.
>
> I am so bad at this that I am seriously wondering what on earth
> I'm doing in this line of work. As OO programming becomes more
> widespread I find myself more and more in the bizarre situation of
> being in a profession for which I have no aptitude whatsoever.
> I'm like the proverbial silent film actor witnessing the birth of
> the talkies. I seriously wonder if it's time for me to start
> thinking of a different line of work...
>
> My question is: how normal is this? Is OO design as horribly
> difficult as I find it? Or are there people who pick it up as
> easily as I picked up C, say? (I was up-to-speed with C in a few
> weeks; similarly for every other computer language I have taught
> myself.) Is there a turning point when one finally "gets" OO
> design? Should I consider some form of apprenticeship or internship
> to learn from experts? (I've exhausted the book route, and I doubt
> that classes will help, since I think my problem is not one of
> understanding principles, but rather of applying them to real-world
> programming tasks.)
>
> I'd very much appreciate your thoughts on this.
Here's a possibility for you:
You may be spending too much effort because you're trying to emulate
"experts" (i.e., those who profess to be experts and then write books). If
all you're doing is copying what they do without understanding why it's
right then that's a recipe for this state of mind. You must always be true
to your own understanding. Another warning sign here is that your struggling
is not leading to any benefit. Worst case, if you're being led by your own
understanding, you should be ending up with more knowledge and skill than
you started with.
I think that's why Phlip's refactoring suggestion isn't completely terrible:
it steers you away from top-down design and toward your own discovery. On
the other hand, it's yet another book by an "expert", and if your real
problem is that you're not permitting yourself to be guided by your own
judgment then reading another book isn't going to help.
I'm not trying to say that reading these books is a bad idea, but if you
approach it from the angle of trying to copy what they're doing then I think
you're better off not reading them. Good software requires one thing above
all others: independent, individual creativity and judgment. In practice
this may mean that you incrementally add OO to your programming repertoire
over time, just to those places where *you* see the benefit. Perhaps
eventually your method starts to look like how the experts do it, or perhaps
you become a new expert and can teach them a thing or two, in any case don't
force-fit their approach into your own practice.
Shayne Wissler
http://www.thoughtsonsoftware.com
.
- Follow-Ups:
- Re: OO Design induces an existential crisis
- From: topmind
- Re: OO Design induces an existential crisis
- References:
- Prev by Date: Re: OO Design induces an existential crisis
- Next by Date: Re: State Machine/Class Granularity
- Previous by thread: Re: OO Design induces an existential crisis
- Next by thread: Re: OO Design induces an existential crisis
- Index(es):
Relevant Pages
|
|