[Tutor] Python Interview Questions..

Walter Prins wprins at gmail.com
Fri May 27 12:31:36 CEST 2011


On 27 May 2011 09:59, Alan Gauld <alan.gauld at btinternet.com> wrote:

> "Marc Tompkins" <marc.tompkins at gmail.com> wrote
>
>> Java just isn't a hard enough language to separate great programmers
>>
>> from plodders (neither is Python, for that matter) because pointers
>> and memory allocation are taken care of automagically.
>>
>
> I fundamentally disagree with his stand on this.
>
>
Not sure what you're saying here Alan -- are you saying you consider Java
"hard enough language to seperate great programmers from plodders" or are
you saying that you don't agree with the distinction drawn (that some
programmers are plodders and others are not) or what?


>
>  When you're hiring programmers, (Joel says) you want people
>> who understand what the computer is actually doing under
>> all the chrome, and you want people who are smart enough
>> to have actually passed classes where they had to do that stuff.
>>
>
> I have employed quantum physists and geoligists who had no
> idea of how computers worked but they were plenty smart and
> made good programmers.
>
> A good programmer is someone who can think logically,
> analyse and abstract a problem and express it clearly in
> an implementation  language (regardless of what language
> it is, they will probably use several in their career!)
>
>
Well, FWIW I would tend to side with Joel/Marc on this one (depending on
interpretation of what you're both saying -- maybe I fall somewhere in the
middle... whatever...)  To try and clarify, I'd perhaps rephrase/paraphrase
their view as, "you want people who have some understanding of how the code
you've written will actually ends up being executed by the computer in terms
of the effective time and space complexity (as well as other potentially
problematic aspects) of the code."

To me that seems to be a largely isomorphic expression of what they're
saying and perhaps closer to what they're actually trying to get at.  Either
way, the point I'm trying to make is that even if you have for example some
awareness of the /apparent/ time/space complexity of *your* code, it's still
very easy to fall into a "Schlemiel painter's" type algorithm by not really
having an understanding of how (for example) some of the libraries or basic
functionality of the language you're using are implemented.  To belabor the
point: The same pseudocode/algorithm realised in 2 different languages can
have wildly different performance characteristics depending on the nature of
the underlying languages and the exact form of the realisation.  And you as
programmer will never even know unless you have a more than superficial
understanding of the language you program in and have some awareness that
these types of issues exist and what the different performance
characteristics of various algorithm classes are.  And yet, many programmers
don't apparently have even a superficial awareness of attributes of the code
that they write, never mind how a such a superficial analysis (e.g. ignoring
the platform/language) may differ from what really happens when executed,
and why such a difference exists.

Anyway, best regards and have a good weekend all,

Walter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110527/86c03339/attachment.html>


More information about the Tutor mailing list