Elena,
This may interest you too:
I am an experienced OO developer and have a friend that is so too. We
both can make good money from it so i guess we both must have at least a
bit of talent for it.
A short while ago we had a project we could work on together. We wanted
that for a long time, but never got any further than a few hours hobby
work. We tried to do pair programming: One behind the keyboard, the
other looks, asks questions and gives opinions. It was a disaster. When
i was programming my friend could not follow what i was doing: he saw
it, but had no clue what i was trying to accomplish. We tried to change
places. Same result: i could inderstand the code itself as he wrote it,
but why he did make it the way he did: no idea. Yet when we did not work
together and just each developed a part of the program, we could both
follow one anothers finished code after studying it for a while.
I think with respect to the larger scale design we are not so different.
We both learned OOP and OOD before design patterns existed so we both
rather invent ourselves then following pre-coocked design patterns.
Enough to disagree on, one would say. Yet we actually agreed on most
desing issues. We both follow an explorative development aproach in
which the design actually evolves from refactoring the code. But when we
are actually do programming, the way we evolve the code into similar
designs seems to be verry different.
The style of my friends code (the way it looks and reads) is very
different from mine. He uses long method names, and works out the specs
just like if he writes a novel. It is very consequently structured, each
and every semantic step is coded out entirely. This makes his code look
pritty impressive, but for me it remains a bit "unaccessable" because i
can not scan through it and recognise patterns, i really have to read
it. For him my code looks somewhat messy, to understand what it does he
wants to add lots of comments, or rename almost every class and method.
From this i got the impression that we process code in very different
ways: he seems to do it like reading and writing natual language.
Definitions are very important to him, semantics must be expressed
explicitly. On the other hand i suspect myself from relying more on
graphs. The actual visible appearance of the code plays a role too. I
think this because i have a bad memory for names, numbers, facts and
such, but i can remember places and the way i walked or drove quite in
well, especially if i did use a map. And when i close all my windows on
the desktop and the next day i continue work on the same windows (our
IDE does that), i feel disoriented when the windows do not appear in the
same place in the task bar (they usually don't ;-( ).
Hope this inspires you to continue your good work.
Greetings,
Henk Verhoeven,
MetaClass.
el***@monmouth.com wrote:
I think I know what you mean. I'm a programmer and a musician. I can
read music I've never heard and hear it. And, I do sometimes dream
about programming. Sort of like walking around in the code, putting
things together. I think I've had the experience that you're
describing. It's like a zone or something that I've heard athletes
describe. Has anybody read a book called "The Psychology of Computer
Programming"?
P.S. Thanks to everyone for their help with this work.
Elena