On 27 May 2011 09:59, Alan Gauld <alan.ga...@btinternet.com> wrote: > "Marc Tompkins" <marc.tompk...@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
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor