[Tutor] Python Interview Questions..

Brett Ritter swiftone at swiftone.org
Fri May 27 19:24:17 CEST 2011


On Fri, May 27, 2011 at 12:51 PM, Marc Tompkins <marc.tompkins at gmail.com> wrote:
> That was the point that Joel and I were making.  The CS programs that have
> become Java schools now make the curriculum as easy as possible because they

The concept that knowledge/ability to use a language doesn't indicate
quality is one I agree with.

however:

> enough, was: Professional programmers - I really supported the effort, years
> back, to protect the term "software engineer" - should be familiar with the
> ins and outs of computers, not just with the quirks of the language they are
> employed to use.  To use my dishwasher analogy from a moment ago, I'm sure

Here I disagree.  A certain level of base knowledge beyond the
requirements of your language is required, true, but
a) I think that can be taken too far.  I suspect a ton of truly great
programmers have never have to memalloc() and they are still good.
b) I think this is placing the cart before the horse.

To expand on that second point, I see a good programmer as someone
that thinks abstractly, that can bounce between big picture and
details, that considers concepts like reuse and flexibility without
extra effort.  They are lazy enough to want to take advantage of
existing libraries and diligent enough to fix things the first time.
They have curiosity and insight.

A person like that will, in time, learn enough about the environment
and foundations of their tools to reap all possible benefit from it.
Studying those foundations will not make you one of those people, nor
will testing for knowledge of those foundations necessarily find you
one of those people.

And, frankly, I suspect a great many of those people will never
wrestle with when exactly their compiler performs tail call
elimination.  But that's just my suspicion.

> There were a couple of other points I wanted to answer, but I'm out of
> time.  It does seem that we mostly agree - certainly we agree that Java
> stinks!

One issue I've not seen discussed is some of the specific habits the
language encourages.  I've never been one to trash a language,
believing it's a poor workman that blames his tools, and that almost
all tools have their strengths, but having worked with Java (and Java
developers) for a while now I've really come to dislike some of the
practices that are becoming common: Stacked patterns without
understanding the purpose, premature and excessive abstraction,
elimination of verbs, and horrendous naming habits.  I'm curious to
see if any of these habits change if/when Java adds functions as
first-class objects.

-- 
Brett Ritter / SwiftOne
swiftone at swiftone.org


More information about the Tutor mailing list