OO Design induces an existential crisis





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.

kj
--
NOTE: In my address everything before the first period is backwards;
and the last period, and everything after it, should be discarded.
.



Relevant Pages

  • Re: mfc pitfalls
    ... In most MFC apps, you are writing code in that kind ... virtual methods usually work better than callbacks for most ... no syntax in the design for function pointers. ... programming in OO environment requires new ...
    (microsoft.public.vc.mfc)
  • Re: mfc pitfalls
    ... I see no callbacks in MFC. ... but I see no callbacks. ... premises of one of them as a basis of design or implementation in one of the others. ... programming in OO environment requires new ...
    (microsoft.public.vc.mfc)
  • Re: mfc pitfalls
    ... There are design criteria, ... Data flow (flowcharts) is one of the UML diagrams ... programming in OO environment requires new ...
    (microsoft.public.vc.mfc)
  • The most popular A- Z, CAx, CAD, CAM, CAE, electronics, EDA, LSI, PCB, FPGA, VHDL, & Other D
    ... Nauticus Early Design ... programming of sheet metal cutting and punching machines. ... Lantek Expert II.1 Lantek Expert Cut Oxifuel/Plasma ... Rockwell Allen Bradley Programming Software, RSLogix 5, RSLogix 500, ...
    (microsoft.public.windowsxp.basics)
  • The most popular A- Z, CAx, CAD, CAM, CAE, electronics, EDA, LSI, PCB, FPGA, VHDL, & Other D
    ... Nauticus Early Design ... programming of sheet metal cutting and punching machines. ... Lantek Expert II.1 Lantek Expert Cut Oxifuel/Plasma ... Rockwell Allen Bradley Programming Software, RSLogix 5, RSLogix 500, ...
    (alt.fan.harry-potter)