[OT] How to learn software design

T

tanix

Well, it is hard to put into words.
How can you POSSIBLY "study" beauty?

Good. Now you asked the "correct" question.
What is beauty?

Well, read the dialog of Socrates by Plato
on this exact point.

I bet you are going to get more help from reading it
than from anything you can read on this group.

Well, one of the properties of beauty is simplicity.
A beautiful code is never convoluted.
It is never a spagetti pile, a concuction of disassociated ideas.
It, for some strange, magical reason, falls into place.
Each part is in harmony with each other part.
At every single method you look, it does not look like a huge
something. It seeems it is not doing much.
Because you are on a local scope level.
But when you look at this thing from at least one level up,
all of a sudden, you see it all singing like a song.
It is a harmony of components, and not that sick dissonance
of "i **** you and the only thing i care about is burning down
your house". Believe it or not.

Because THAT is how most of code I saw reads.

In any well designed system, the subsystems and components
sing in harmony.

Beyond that, you are on your own.
The book "Beautiful Code" is well worth a read.

http://oreilly.com/catalog/9780596510046

--
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.
 
I

Ian Collins

Pete said:
No. Don't fall for the cliche that all lawyers are bad writers.

I'm not falling for clichés, merely reflecting on experience.

Look at it another way: laws are a lot more expensive to test than
programmes due to their arcane and bloated wording. Maybe someone
should give test driven legislation a go...
 
R

Rune Allnor

I know it is off topic, but maybe someone could
give me a hint for a good book or few tips on
learning software design.

With software design I mean the step from the requirements
to some sort of software architecture.

I am not a software engineer, although I do code up
the tools I need for my work, so my opinions might
not be directly relevant to your trade.

Howeer, there are a number of things you can do in
your day-to-day work to become better (and some that
you *must* do if you want to become really good, no
matter your trade):

1) Evaluate the craftmanship of people you see around you.
Some people are good at what they do, and produce
better code faster than the rest. Whenever you
come across somebody who does that, try and find
out somethoing about what it is they do that others
don't. Or what others do, thay they don't.

Of course, the same goes for people who fall behind.
It might, in fact, be far more efficient to learn
from other people's mistakes than from their successes,
for no other reason than that there are far more
mediocre than skilled people around.

2) Whenever you have the option to do things two or more
ways, map out the pros and cons with each approach.
Be concious about your choises: "I use method A because
it is faster to implement, while method B would have
produced faster code." Insight, whatever that is,
comes by becoming concious about your choises and
the resulting penalties / payoffs. The next time
around, your experiences might cause you to choose
differently when presented with similar alternatives.

3) Realize that the system is a collection of details.
"Techincal details" like exceptions, templates and
smart pointers have tremendeous impact on feasible
system designs. Make sure you understand the exact
impact these sorts of techniques have on resulting
code, both what readability / maintainability and
run-time performance and resource requirements are
are concerned.

4) Language governs ideas and ideas govern language.
Think on your feat when you talk with people about
the system. Wrap your mind around the problem as fast
and as intimately as possible. Follow up on descriptions
immediately when you talk with clients; poke for those
alternative descriptions and commenst that could blast
your mind wide open for what the client actually wants.
No one will ever be able to design a system for an
application they do not understand.

In essence, watch and evaluate (to yourself, not openly)
everything you hear and see, and everyone you meet and
talk to. Lern from them, both by mimicing their forces and
avoiding their mistakes. If you do this consitently for
sufficiently long time, you might eventually get to the
point where you are able to come up with a system design.

Rune
 
T

tanix

I'm not falling for clichés, merely reflecting on experience.

Look at it another way: laws are a lot more expensive to test than
programmes due to their arcane and bloated wording. Maybe someone
should give test driven legislation a go...

Cool. I like that one.

--
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.
 
M

Mick

Ian said:
I'm not falling for clichés, merely reflecting on experience.

Look at it another way: laws are a lot more expensive to test than
programmes due to their arcane and bloated wording. Maybe someone
should give test driven legislation a go...
But laws are framed and written by legislators, politicians, who may or
may not be Lawyers. Their purpose and the process to develop them has
little bearing on the Software Development Process. To match the
political process the 'IF..THEN..ELSE' would need to contain a 'MAYBE'.
 
T

tanix

But laws are framed and written by legislators, politicians, who may or
may not be Lawyers. Their purpose and the process to develop them has
little bearing on the Software Development Process. To match the
political process the 'IF..THEN..ELSE' would need to contain a 'MAYBE'.

Actually, a VERY interesting point relating to logic as such
and its binary nature, going back since the dawn of "civilization".

A while back, when I had do deal with expert systems,
I noticed that yes and not is not sufficient to describe all
conditions. So I had an idea about multi-valued logic.
Since then, they came up with the idea of fuzzy logic in AI.

How would you describe a rainbow?
Is there light? - Yes.
What color is it? - does not fall under yes or no.

Probably the most graphical example of this binary logic
if fascism, where things are described in black and white colors.
There is no notion of rainbow.

The end result?

--
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.
 
T

tanix

Fascinating. I'm in England, and it doesn't seem to be like that over
here. I've heard tales of things like this, but never seen them.

Well, it is as vicious in the Silicon Valley as it gets.
I can comprehend that things are different in Europe,
and thanx to God for the fact that there are at least SOME places
on this planet left that are still not inhuman, not as sick and
vicious as it is in the States.

The most vicious example of it was Silicong Graphics (SGI),
the Mountain View world headquarters.

They had several buildings about 10 in toto.
Basically their own small town not far from downtown.

When I did my first contract with them, it was beyond obscene.
The arrogance and viciousness and "perfectionism" was something
out of this world. You could hardly get some time to take a piss.
They loaded you so bad, that it was not just some stress,
it was superstress.

Not only that, but not a single person I had to deal with
would cooperate. It was nearly a scandal when I just started
on that job. Because I had to do something that had some very
subtle kernel configuration issues. If a single thing was not
configred properly in the kernel, I'd have to have ALL sorts of
problems. And there was one bitch, a funking hore, that knew
all the configuration parameters. But when I asked her to provide
it to me, she raised such a stink, that my manager had to work
things out with her manager, just to allow me to do my job,
which is totally insane. It costed these suckers several thousand
bux just to get this simpliest thing there is, which takes seconds
to get done without making ANY fuss about it.

And the most mind blowing thing was when I came to do my job,
on the first day, my manager just gave me a hard disk and said:
here is your job. Go figure it out.

Can you imagine THAT kind of job specification?

The funken hard disk was loaded up the hilt.
How do you even know what to look for?

He did not even tell me what do they need to get done!

Jesus funken Christ!

Then, whenever I needed anything from other people and asked
ANY question that really needed to be asked, those sickos,
that think they are some kind of software kings, looked at me
like I am from a planet Mars, a total moron, that is stoopid
enough to ask the questions.

The most disgusting thing about it, that I could stuff most
of those suckers under my belt without winking an eye.
There were mostly morons that just graduated from school
with engineering degree. At that time, I had about 15 years
in the industry and hand experience and knowledge of all sorts
of theories down to electron level. Not that I am a physicist.

And these funken gorillas behaved like they are messangers
of nothing less than God itself and their mission here is
something like to save the world and teach it something so
revolutionary that it will change forever.

God. What a disgusting trip that was.

I did my job just fine and everything was nice and dandy
at the end. All on time. All in tip top condition.
My manager knew more about his project than any other manager
in the whole company I bet. So noone could even attempt
to discredit him or create ANY kinds of problems for him.
Because that is all they do all day long, forever trying
to get on the top of the heap.

Brrrrr.

It even disgusts me to even recall that stuff.

But...

When I did a second contract with them a couple of years later,
you could not recognize the SGI any more. They had to sell
all their business park real estate and move into 2 buildings
and not 10 as they used to have, and the whole atmosphere
in the company was a total decay, a dying dinasaur level.
And you know what, it was MUCh easier to work, even it was
still a disgusting SGI atmosphere, basically any place you
look.

Good, suckers. THAT is what you trully deserve.
If you don't listen to what people of my caliber have to say,
than you are BOUND to loose your skin.
Perhaps you should point out to your colleagues that if they wrote
maintainable code someone else could maintain it (which everyone IME
hates) leaving them free to write the interesting new stuff!

If you knew what Silicon Valley is, you would simply laugh at a fool
that says things like that.

They could care less if you are dead or alive.
ALL they care is their own trips.
Their own lil stinking egos.
Their own stinking holier than thou trips.

These suckers are simply inhuman for the most part.
I can hardly remember a SINGLE one of them that is human
and I could relate to. Probably about 3 to 5 people in toto
during tens of years of my experience in the valley.

Basically, you just sit in your cubicle and don't even try
to relate to ANYONE except your manager. Because you have to.
You are on your own. If you EVER ask ANY question from ANYONE,
that is a BIG minus in your "reputation".

If you suggest ANYTHING that rocks the boat and their stinky
and rotten "environment", it is 2 minuses in your reputation.

If you EVER screw up only ONCE,
you are fired.
ON THE SPOT.

Maan. That whole stinky silicon valley deserves to be burned
down to ashes, so vicious, so sick and so inhuman it is.

I do have to recognise the fact that quite a few of my managers
were really great people to work with.

Because the way I do interviews.

I NEVER lick their arse.
I NEVER smile with a plastic smile.
I NEVER try to please ANYONE on ANY interviews.
I just tell them what I know and how it is in my view.
You like it, you take it. You don't like it, go to hell,
lil do I care if you even exist.

So... As a result, only the most ingelligent people would
hire me and only those that really needed someone they can
rely upon to save their sorry tootoo.
Or perhaps it is just that as a contractor you get given the s**** jobs
leaving the good bits for us permies?

Well. It is true to some extent.
When they hire contractors, they need their arse saved
and in a hurry.

And you get some of the most critical things on their list.
Trust me, if they hire a CONTRACTER to do the job,
that means they are TOTALLY screwed and can not find anyone
in house to do it. Otherwise, they'd just hire a full timer.

Most of the time, it is their house is burning down or is
about to get burned down.

Because they have to pay you at least 50% more than they pay
their full timers. The amount of money I used to make doing
this crap was enough for me to work about 6 months a year
and drive the Cadillac Seville. The other 6 months of the year
I enjoyed doing my own projects at home, doing a music
recording and composition on my studio and investingating
ALL sorts of things.

Enjoy the trip.

--
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.
 
J

James Kanze

tanix wrote:
Fascinating. I'm in England, and it doesn't seem to be like
that over here. I've heard tales of things like this, but
never seen them.

It depends on the organization, but if some one can't (or
doesn't) communicate, he's not competent. (Since Sun was
mentionned: a large part of what I know about C++, I learned
from people at Sun. Who weren't even collegues---they still
took the time to answer my questions by email or in the news
groups.)
Perhaps you should point out to your colleagues that if they
wrote maintainable code someone else could maintain it (which
everyone IME hates) leaving them free to write the interesting
new stuff!
Or perhaps it is just that as a contractor you get given the
s**** jobs leaving the good bits for us permies?

That happens:). But not necessarily as much as one might
think: I've just switched to being a permy after 25 years of
contracting, and I can say that I've seen a lot of interesting
things when contracting. (I learned C, C++, Java and Unix as a
contractor. Hired in places which used the language, and were
willing to train me, or at least help me get up to speed.)
 
J

James Kanze

James Kanze wrote:
I used to play a musical instrument, but I've found that the
thing that's contributed most to my understanding of
programming and program design was law school. That's where I
learned to cut through the distractions to see what's really
there.

I don't think playing an instrument is enough. Or even
essential -- it just indicates one particular skill that is
needed. Programming requires a lot of different skills. (I
ended up programming because I got a job with a computer
manufacturer. And I got that job because they needed someone
who could understand digital logic, and I'd learned symbolic
logic in a philosophy course.)
 
J

James Kanze

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. 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:
»I'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.«

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 »Q&D« 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.)
 
J

James Kanze

James Kanze wrote:
The comment I make on comments is: Don't write what you are doing,
write why you are doing it. And best of all, write why you aren't doing
something else.

Exactly. Except that there are a lot of cases where you can use
the obvious solution, and then, no comments are necessary.

In the code, of course: it is imperative that every function
have its interface fully documented: pre- and post-conditions,
etc. Otherwise, no one can use it. (And even that statement
requires some nuancing, at least with regards to local
functions.)
 
J

James Kanze

[...]
A few months ago I read an article on debugging/logging by
Denis Ritchie (one of creators of C language).
What a pleasure that was!

He writes extremely well. And it shows in his code.
He was presenting his argument regarding debugging vs logging.
What he said essentiall was this:
Lots of people tend to use debugging to fix the issues
with their code. As a result, they tend to get lost in tasty
local scope issues and can not see the whole picture easily.
He suggested to use a well designed logging system instead
of relying on debuggers as much.
Because a well designed logging system will immediately expose
your most critical system level issues, while debugging will
keep you busy for days looking at the local scope variables or
what have you.

This has been more or less standard procedure in most places
I've worked. In several cases, we haven't even had debuggers
available.
 
T

tanix

It depends on the organization, but if some one can't (or
doesn't) communicate, he's not competent.

One more time: unless you appreciate beauty and music.
you are just a lamer to me.

That is why you make these kinds of statement.

Competence has NOTHING to do with this sucky
"ability to communicate". This is simply disgusting.

Some of the brightest stars that ever walked this planet
and create work of art that hand in your museums and are
being sold for more than you can make in your lifetime,
"could not communicate".

Could Jimi Hendix "communicate"?
Could Dostoyevski "communicate"?
Could MOST of other brightest stars "communicate"?

What do you MEAN by "communicating"?

You mean YOUR dumbness of not being able to see the light of day?

They "communicate" to you via presenting the very result
of their life, and not bullshit you peddle all day long.

You see, you can be a smart "philosopher" that talks many
"smart" things. But can you TRANSLATE all that "smart" talk
into reality by manifesting it into a physical object,
somethign tangible, and not just words, signifying nothing
at the end?

Do you want Van Gogh or Modigliani "explain" to you what
their works mean?

If you are blind, there is no hope for you.
You can go study to ANY "university" and it is all just a
royal waste of time at the end.
(Since Sun was
mentionned: a large part of what I know about C++, I learned
from people at Sun. Who weren't even collegues---they still
took the time to answer my questions by email or in the news
groups.)

I know, I know.

Is it the Sun at their world headquarters in Mountain View,
California, USA?

Cause I know THOSE guys.

Maaan. They suck even worse than those vicious sharks
from SGI. Probably the 2nd most disgusting place I ever
had to deal with.

We already covered that one in a previous post.
Let us see here an insightful reponse below...
That happens:). But not necessarily as much as one might
think: I've just switched to being a permy after 25 years of
contracting, and I can say that I've seen a lot of interesting
things when contracting. (I learned C, C++, Java and Unix as a
contractor.

Wow. I feel jealous!
Hired in places which used the language, and were
willing to train me, or at least help me get up to speed.)

Wow. I am impressed.
To see the fools that would PAY contracters to LEARN
something?

Never head of such a thing. Sorry.

--
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.
 
T

tanix

I don't think playing an instrument is enough. Or even
essential -- it just indicates one particular skill that is
needed. Programming requires a lot of different skills. (I
ended up programming because I got a job with a computer
manufacturer. And I got that job because they needed someone
who could understand digital logic, and I'd learned symbolic
logic in a philosophy course.)

Oh, great insights here again?

Well, first of all, dear expert, do you realize that by stripping
the posts and stripping the context damages the integrity of
the material?

Tell you one thing. One of the most upsetting aspects of
presenting your articles, and I do not mean you PERSONALY,
is that some of the people do not realize that if they strip
the article they are following upon, they are often
stripping the context, to the point it is not even possible
to read some code they are following up on.

My personal suggestion is: keep the ENTIRE article intact.
The > markers are used when regenerating articles in web
format and can be reformatted in any number of ways.

But if you strip things down, quite a few things become
unclear because all the context is gone.

I usually see this used by the conmen and dishonest people,
trying to distort the entire picture and make it look like
something else.

Let READER decide what he wants to read.
After all, you are not exactly a Jesus Christ, or ARE you?

--
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.
 
T

tanix

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:
=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

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.
 
S

stan

Balog said:
There is a surefire method to produce race condition sraches: arrange a demo
for the top-level boss or most precious client.

I've found that a call home saying you're finishing up and WILL be
home in time to eat is pretty effective also, but you're method is probably
a slightly higher probability. You can slightly improve the odds if
you promise to stop and pick up some critical item on the way home.
 
K

Kaz Kylheku

Ok, I am going to give you some tips.

First of all, to learn software design, you'd better study
what is beauty. Yep, BEAUTY. Believe it or not.
Bahahaha.

Then get into music. Believe it or not.
Bahahaha.

Music will teach you the structures unlike anything you are
likely to read in any so calles software book.

Most musicians are idiots. Only /accomplished/ musicianship conceivably
has any bearing on the possibility of a latent software talent.

Just turn on your radio and listen to the repetitive, boring crap
full of cliche harmonic, melodic and rhythmic devices.
Then, try to understand programming as a system.
A program is a SYSTEM, a highly complex interactions,
a higly complex structure, and immensely complex logic.

You sound so naive, that you can't possibly be employed somewhere
as an actual developer.
Every proggram has millions of logical conditions,
every one of which must EXACTLY fit with all others.

You've never seen any real program. Firstly, some programs don't have
anywhere near that many conditions. In ones that do, the conditions are
not all dove-tailed into each other. If that is the case, the
program, in all probability, is ridiculously ill-designed.

Do you honestly think that, for instance, the state of a SCSI device
must fit exactly with the current state xon/xoff flag of TTY number 3?

Are you a moron?
Never EVER ignore errors. Handle ALL exception conditioins,
conceivable or not.

Believe it or not, sometimes it's okay to delegate this by returning an
error indication or throwing. The place in the program where a problem
is discovered is usually not the place where to decide what to do about
it.

Never EVER EVER use ALL CAPS in every sentence because it makes you LOOK
like a TWIT.
 
K

Kaz Kylheku

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?

It's something that most musicians don't do, or cannot do well.
Well, it is running your mind at a rate where the biggest
and baddest supercomputers simply lock up.

Not really. 99.99% of all improvisation you hear is simply a
regurgitation of the musician's favorite ``licks'' which that musician
has rehearsed all his life. He can play them against that music,
because the music is also regurtited. He's improvised against that
kind of cliche chord progression countless times before.

There is probably less total content in the average improviser's
personal vocabulary than in one composition from Bach.

Most improvised guitar solos in pop, rock some kind of ``box''; the
wailers play what is convenient under the fingers. Improvisation in
jazz is more demanding, but not much. Most jazz improvisation that you
actually hear is actually worse than improvisation in pop and rock; just
mindless noodling junk by someone who has no clue how to actually match
the more altered chord structure and is merely trying to avoid hitting
too many diatonic notes in hopes that the result sounds ``jazzy''.
The brilliant few improvisers are the worshipped exception.

Most improvised music of any kind sounds like crap, compared to the
hard work of a competent composer.

Improvisation is pitifully /easy/ compared to writing down. Most
rabid improvisers, if they have to sit down and write something
beautiful, coherent, and unified, will find that they are stumped.

It's much easier to just noodle on your instrument in a blank-mind
auto-pilot mode, than to actually learn notes, or sit down and compose
something.
I literally want to throw up.

That's fine; just kindly use a mop to clean away the results---not
your NNTP software's post command.
 
T

tanix

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?

It's something that most musicians don't do, or cannot do well.[/QUOTE]

The same thing for just about anything else under the Sun.
Anything else?
Not really. 99.99% of all improvisation you hear is simply a
regurgitation of the musician's favorite ``licks'' which that musician
has rehearsed all his life.

True and interesting point that I personally know.
But...

Why don't you trust?
And I mean trust YOURSELF?

Is it THAT hard to do?

Sure you can not trust ME.
But can you trust YOURSELF?

Then...

Tadaaaam!

You don't have that problem.

And I wasted YEARS on making my fingers fly like Paganini.
And I wasted YEARS to make sure I can improvise with
the baddest of them all, like Chick Corea or John McLaughlin
and you name it.

And I DID see the stoopidity of it.

What does it matter how "fast" you play
and how fast are your fingers?

My own finding was: it is just a complex of inferiority,
expressing itself in a perverted way.

Since then, I have some notes I play that may be several
bars long.

The interesting thing about it is this:

When I was just starting out with a band and we had
the most respected band in the city, one drummer came
to listen to us and when we had a break, he came up
to me and said: Oh, I see. I understand what you are
playing. You are playing a silence. Right?

That simply blew my mind. I myself was not realizing
it at a time. Well, that drummer happened to be the
number 2 drummer in the whole city and he had golden
ears.

What a joy to meet someone of THIS caliber.

Yes, they DO regurgitate what they were zombified with,
or, rather, what they did zombify themselves with
as a result of complex of inferiority that runs their
life.

But that does not mean YOU have to be like them.

Enough.
He can play them against that music,
because the music is also regurtited. He's improvised against that
kind of cliche chord progression countless times before.

There is probably less total content in the average improviser's
personal vocabulary than in one composition from Bach.

Most improvised guitar solos in pop, rock some kind of ``box''; the
wailers play what is convenient under the fingers. Improvisation in
jazz is more demanding, but not much. Most jazz improvisation that you
actually hear is actually worse than improvisation in pop and rock; just
mindless noodling junk by someone who has no clue how to actually match
the more altered chord structure and is merely trying to avoid hitting
too many diatonic notes in hopes that the result sounds ``jazzy''.
The brilliant few improvisers are the worshipped exception.

Most improvised music of any kind sounds like crap, compared to the
hard work of a competent composer.

Improvisation is pitifully /easy/ compared to writing down. Most
rabid improvisers, if they have to sit down and write something
beautiful, coherent, and unified, will find that they are stumped.

It's much easier to just noodle on your instrument in a blank-mind
auto-pilot mode, than to actually learn notes, or sit down and compose
something.


That's fine; just kindly use a mop to clean away the results---not
your NNTP software's post command.

--
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.
 
V

Vladimir Jovic

Andy said:
Eric said:
[lots of sarcasm snipped]

So it all depends on experience?

Mostly, yes. Get a job in a good software shop - not something little,
but one with big teams. 10 years down the line you'll probably have the
idea.

Bad advice. In big companies, people are on their own, and nobody to
guide them. At least that's my experience in a big company.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top