Re: How to learn software design
In article <03bb644f-857e-489d-907d-d89a8e6f254f@k17g2000yqh.googlegroups.com>, James Kanze <james.kanze@gmail.com> wrote:
On 19 Dec, 21:56, r...@zedat.fu-berlin.de (Stefan Ram) wrote:
James Kanze <james.ka...@gmail.com> writes:
That's an interesting point. I once heard that you should
never employ a programmer who didn't play a musical
instrument. Something about the ability to be creative in a
structured environment.
http://www.sciencecodex.com/musicians_use_both_sides_of_their_brains_...
But one also has to take into account that people from more
wealthy families are more likely to learn an instrument, so
that some of their ability might not be a consequence of
their musical exercises but of their overall better
conditions.
I think you're reading more than I meant into what I wrote.
First, it's something I've heard---it's not an absolute rule
that I would practice. And playing a musical instrument takes a
number of different skills, some of which (manual dexterity) are
largely irrelevant to programming.
WRONG.
First of all, playing a musical instrument is not just a matter
of "manual dexterity", whatever it means to YOU, even I know
exactly what it means to me.
To PLAY somthing, your mind needs to be able to process the
immense amounts of STRUCTURAL and SYTEMATIC information,
if you even BEGIN to comprehend what that means.
To you realize what imporvisation is?
Well, it is running your mind at a rate where the biggest
and baddest supercomputers simply lock up.
It is such and immense TRUST to existance.
It is such an ORGASM with life,
that all your blabber of "holier than thou" here,
and all your "scientific" goubledy gook,
is nothing more than a tale told by an idiot
signifying NOTHING at the end.
Enough.
This disgusts me.
Yes, you CAN forge the issues with memory deallocation,
which is ALREADY a stretch I do not accept,
but when you start blabbering about THESE kinds of things,
I literally want to throw up.
I have to just leave this crap alone and get back
to things I really need to do instead of talking
to a wall of dumbness bordering on numbness.
But the "ability to be
creative in a structured environment" is common to both, and
it's one that's hard to test for.
See also:
http://scienceblogs.com/cognitivedaily/2009/07/music_participation_do...
competent are mathematical reasoning and the ability to
express yourself well in your native language. People who
can't write clearly and concisely (in their native
language---you can't always judge by the quality of writing
you see here, because English might not be the author's
native language) will never become competent programmers.
=BBI've found that some of the best developers of all are
English majors. They'll often graduate with no programming
experience at all, and certainly without a clue about the
difference between DRAM and EPROM.
But they can write. That's the art of conveying
information concisely and clearly. Software development
and writing are both the art of knowing what you're going
to do, and then lucidly expressing your ideas.=AB
http://praisecurseandrecurse.blogspot.com/2007/03/english-majors-as-p...
Interestingly, one of the best programmers I ever worked with
was an English lit major. At one point, he blew my mind,
because he didn't know binary representation (and didn't
understand why I had written (x + 7) & ~ 0x0f to force a value
up to the next multiple of 8). But he sure knew how to learn.
(A day after having asked me about my code, he was using similar
tricks himself.) And as you said, he very definitely understood
how to express his ideas lucidly. Both in English and in C.
(This was before we'd gotten C++.)
Of course, he also knew how to reason well, and I'm not sure
that this is true of all English lit majors.
[...]
You just need to know, /when/ to write this =BBQ&D=AB style and
/when not/. When you write code for a library that is to be
sold to customers, you should better think about possible
run-time errors and so.
The problem is that even when you know that the code will never
be reused, you might be wrong. (Both Unix and MS-DOS started
out as quick and dirty solutions to an immediate problem, with
the authors knowing quite well that the code would never be
reused.)
--
Programmer's Goldmine collections:
http://preciseinfo.org
Tens of thousands of code examples and expert discussions on
C++, MFC, VC, ATL, STL, templates, Java, Python, Javascript,
organized by major topics of language, tools, methods, techniques.