[plt-scheme] Re: Programming for non-programmers

From: Steven H. Rogers (steve at shrogers.com)
Date: Sun Oct 17 09:08:38 EDT 2004

Richard Cleis wrote:

>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> On Oct 16, 2004, at 10:44 PM, Alex Peake wrote:
>
>>> -----Original Message-----
>>> From: Richard Cleis [mailto:rcleis at mac.com]
>>> Sent: Saturday, October 16, 2004 8:34 PM
>>> To: Alex Peake
>>> Cc: plt-scheme at web-ext.cs.brown.edu
>>> Subject: Re: [plt-scheme] Re: Programming for non-programmers
>>>
>>>
>>> On Oct 16, 2004, at 3:57 PM, Alex Peake wrote:
>>>
>>>>
>>>>
>>>>> -----Original Message-----
>>>>> From: Richard Cleis [mailto:rcleis at mac.com]
>>>>> Sent: Saturday, October 16, 2004 10:36 AM
>>>>> To: Alex Peake
>>>>> Cc: plt-scheme at web-ext.cs.brown.edu
>>>>> Subject: Re: [plt-scheme] Re: Programming for non-programmers
>>>>>
>>>>>
>>>>> On Oct 16, 2004, at 9:33 AM, Alex Peake wrote:
>>>>>
>>>>>>> Message: 2
>>>>>>> Date: Fri, 15 Oct 2004 13:31:00 -0700
>>>>>>> From: Richard Cleis <rcleis at mac.com>
>>>>>>> To: "Neil W. Van Dyke" <neil at neilvandyke.org>
>>>>>>> Subject: Re: [plt-scheme] Re: Programming for non-programmers
>>>>>>> Cc: plt-scheme at list.cs.brown.edu
>>>>>>>
>>>>>>> Is it the 'workers' that need educated or The Industry
>>>>>>
>>> that needs
>>>
>>>>>>> educated?  The laments in this thread include errors (made by
>>>>>>> 'workers', of course) involving memory allocation, among other
>>>>>>> low-level issues.  In other words, after a four decade
>>>>>>> computerevolution where operating systems have surpassed a
>>>>>>> gigabyte, these environments are still so dumb that it
>>>>>>
>>> is possible
>>>
>>>>>>> for 'workers'
>>>>>>> to make the same fundamental errors today as we did when I was a
>>>>>>> kid.
>>>>>>>
>>>>>>> I feel cheated; I was told that programs would be writing
>>>>>>> themselves by now! ;)
>>>>>>
>>>>>>
>>>>>> It is WE the programmers ('workers') that need to write
>>>>>
>>> the programs
>>>
>>>>>> that write programs, surely?
>>>>>
>>>>>
>>>>> Indeed.  And bus drivers need to be trained to drive a busses.  If
>>>>> busses have poorly designed brakes, the drivers (no matter how well
>>>>> trained) still crash more than necessary.  Does this mean that we
>>>>> need to train them to upgrade brakes?
>>>>
>>>>
>>>> This gets us into the "division of labor" discussion - probably not
>>>> here!
>>>>
>>>>>
>>>>>  From my perspective, CS education is often wasted because
>>>>
>>> graduates
>>>
>>>>> can't pursue better ideas when so much of their time is
>>>>
>>> wasted merely
>>>
>>>>> surviving.  This is part of what I meant by 'The Industry Needing
>>>>> Training.'  I am applying self criticism here, by the way;
>>>>
>>> I am part
>>>
>>>>> of The Industry that needs training.
>>>>
>>>>
>>>> By "graduates" do you mean the working graduate, or the garduate
>>>> student? Let me assume the former.
>>>
>>>
>>> Yes, the former.  More rudely stated as Products of
>>> Universities Delivered to Industry. :)
>>>
>>>>
>>>> There are great companies, average companies, poor
>>>
>>> companies (assume a
>>>
>>>> somewhat Normal distribution). That means there are very
>>>
>>> few "great".
>>>
>>>> I also observe that the "average" is pretty (absolute terms) low
>>>> perfoming. It is tough to do well in low perfoming companies. Just
>>>> like companies, graduates follow a similar distribution
>>>
>>> (companies are
>>>
>>>> just aggregations of people).
>>>> Again the "average" is pretty low performing (IMHO). Even
>>>
>>> then, held
>>>
>>>> back by low performing companies, the great can still shine
>>>
>>> bright and
>>>
>>>> make big contributions. (My mantra of career management, BTW, is
>>>> "choose the right boss - all else follows".)
>>>>
>>>> So what would you like to achieve? Raise the level of a particular,
>>>> small subset that is important to you?
>>>
>>>
>>> I am concerned with businesses in general.  If we *all* were
>>> more concerned with what is important to each of us
>>> personally, then so much the better (and so much more the
>>> demand for CS).
>>>
>>>>  This is quite doable.
>>>
>>>
>>> And a few of us in our organization are beginning to try.
>>>
>>>> Raise the level of the global average? Exceedingly challenging, and
>>>> certainly a very long term goal.
>>>
>>>
>>> This makes me wonder.  Do members of other professions see
>>> shortcomings that are so challenging?  In other words, are
>>> the many low performing companies to which you refer a result
>>> of a computer revolution that is moving too fast?  Or is the
>>> computer profession no different than any other?
>>
>>
>> I am sure all professions suffer to a similar degree, though 
>> certainly some more than others.
>>
The problem is worse in new areas.  I was a semiconductor engineer 
before there were degree programs catering to  that specialty.  Degrees 
held by semiconductor engineers were about evenly divided between 
physics, chemistry, and electrical engineering.  One learned on the job 
and by self study.  Those who thought studying and learning ended when 
they graduated didn't do well.  A similar situation has existed for 
programming, despite computer and information science programs being 
around for decades now.  There are also situations where deep domain 
knowledge is as important as (or even more so than) programming skill.  
A domain expert with some programming skill may generate a solution 
faster than a CS grad.  Some of these domain experts migrate to full 
time programming positions, with mixed results.

>> The speed of the computer revolution has created a great demand, 
>> which in turn has attracted many
>> relatively unskilled. I have met many with shallow formal training 
>> and study, yet presenting some
>> form of resume/work experience. Elsewhere in the thread (Noel maybe?) 
>> it was noted that our
>> profession is somewhat more loosely held to standards. It was 
>> suggested elsewhere (Matthias?) that
>> assessing competence is not difficult, and yet I find many managers 
>> quite at a loss as to how to
>> assess programmers. This is how so many poor programmers get hired in 
>> the first place?
>
>
> I don't find it easy, but I don't have much practice!

It is difficult and most hiring managers don't get much practice.  
Unfortunately, a CS degree is no gaurantee of programming ability.  
Sometimes code samples help.  I've also asked applicants to present on 
some topic, but good programmers may have poor presentation skills.  The 
best way to assess programming is to work with the programmer 
one-on-one.  The second best is by reputation.  When hiring, you're 
often left looking for a third best solution.

>
>>
>> Others have pointed out that the top programmers are undervalued, and 
>> in any but great companies I
>> agree. Most think in terms of a linear relationship between Rank and 
>> Output (Value) with the 50%
>> Rank giving 50% Value. I think more in terms of ax + bx^3 where the 
>> bottom quartile have negative
>> value and the top quartile produce 3 to 10 times more value than the 
>> average. I have had many
>> managers intellectually agree, and then balk at actually paying even 
>> double.
>>
>
> Sports salaries come to mind with this sort of modeling, but 
> businesses typically have no roster limits so that comparison is 
> risky.  In any event, the salary ratios in a sports team are > 10:1 
> ... but nobody bats an eye.
>
>> The part of the answer I am working on is set the top quartile to 
>> work with generative techniques,
>> searching out and generating the well known patterns (and re-train 
>> the bottom quartile in some other
>> skill). I could chat for days about this, but I stop here.
>>
>>
>> Alex
>>
>>>
>>> rac
>>>
>>>>
>>>> Alex
>>>>
>>>>>
>>>>> rac
>>>>>
>>>>>
>>>>>>
>>>>>> Alex
>>>>>>
>>>>>
>>>>
>>>
>>
>
>
Steve

-- 
Steven H. Rogers, Ph.D., steve at shrogers.com
Weblog: http://shrogers.com/zope/reflections
"Don't worry about what anybody else is going to do. The best 
way to predict the future is to invent it." - Alan Kay



Posted on the users mailing list.