|
On Fri, Mar 23, 2012 at 4:44 AM, Steven D'Aprano
<[hidden email]> wrote: > The typical developer knows three, maybe four languages > moderately well, if you include SQL and regexes as languages, and might > have a nodding acquaintance with one or two more. I'm not entirely sure what you mean by "moderately well", nor "languages", but I'm of the opinion that a good developer should be able to learn a new language very efficiently. Do you count Python 2 and 3 as the same language? What about all the versions of the C standard? In any case, though, I agree that there's a lot of people professionally writing code who would know about the 3-4 that you say. I'm just not sure that they're any good at coding, even in those few languages. All the best people I've ever known have had experience with quite a lot of languages. ChrisA -- http://mail.python.org/mailman/listinfo/python-list |
|
On Fri, 23 Mar 2012 06:14:46 +1100, Chris Angelico wrote:
> On Fri, Mar 23, 2012 at 4:44 AM, Steven D'Aprano > <[hidden email]> wrote: >> The typical developer knows three, maybe four languages moderately >> well, if you include SQL and regexes as languages, and might have a >> nodding acquaintance with one or two more. > > I'm not entirely sure what you mean by "moderately well", I mean more than "poorly" but less than "very well". Until somebody invents a universal, objective scale for rating relative knowledge in a problem domain (in this case, knowledge of a programming language), we're stuck with fuzzy quantities like "guru", "expert", "deep and complete knowledge of the language and its idioms", all the way down to "can write Hello World" and "never used or seen the language before". Here's a joke version: http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html and here's a more serious version: http://www.yacoset.com/Home/signs-that-you-re-a-bad-programmer > nor > "languages", but I'm of the opinion that a good developer should be able > to learn a new language very efficiently. Should be, absolutely. Does, perhaps not. Some good developers spend their entire life working in one language and have become expert on every part of it. Some learn twenty different languages, and barely get beyond "Hello World" in any of them. > Do you count Python 2 and 3 as the same language? Absolutely. > What about all the versions of the C standard? Probably. I'm not familiar with the C standard. > In any case, though, I agree that there's a lot of people professionally > writing code who would know about the 3-4 that you say. I'm just not > sure that they're any good at coding, even in those few languages. All > the best people I've ever known have had experience with quite a lot of > languages. I dare say that experience with many languages is a good thing, but it's not a prerequisite for mastery of a single language. In any case, I'm not talking about the best developers. I'm talking about the typical developer, who by definition is just average. They probably know reasonably well one to three of the half dozen most popular languages (VB, Java, C, C+, Javascript, PHP, Perl?) plus regexes and SQL, and are unlikely to know any of Prolog, Lisp, Haskell, Hypertalk, Mercury, Cobra, Smalltalk, Ada, APL, Emerald, Inform, Forth, ... Or even in most cases *heard* of them. -- Steven -- http://mail.python.org/mailman/listinfo/python-list |
|
On Mar 22, 6:11 pm, Steven D'Aprano <steve
+[hidden email]> wrote: > On Fri, 23 Mar 2012 06:14:46 +1100, Chris Angelico wrote: > > In any case, though, I agree that there's a lot of people professionally > > writing code who would know about the 3-4 that you say. I'm just not > > sure that they're any good at coding, even in those few languages. All > > the best people I've ever known have had experience with quite a lot of > > languages. > > I dare say that experience with many languages is a good thing, but it's > not a prerequisite for mastery of a single language. > > In any case, I'm not talking about the best developers. I'm talking about > the typical developer, who by definition is just average. They probably > know reasonably well one to three of the half dozen most popular > languages (VB, Java, C, C+, Javascript, PHP, Perl?) plus regexes and SQL, > and are unlikely to know any of Prolog, Lisp, Haskell, Hypertalk, > Mercury, Cobra, Smalltalk, Ada, APL, Emerald, Inform, Forth, ... I love how you can rattle off 20 or so languages, just off the top of your head, and not even mention Ruby. ;) (Although Perl was close enough.) -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Chris Angelico
On Mar 22, 12:14 pm, Chris Angelico <[hidden email]> wrote:
> On Fri, Mar 23, 2012 at 4:44 AM, Steven D'Aprano > > <[hidden email]> wrote: > > The typical developer knows three, maybe four languages > > moderately well, if you include SQL and regexes as languages, and might > > have a nodding acquaintance with one or two more. > > I'm not entirely sure what you mean by "moderately well", nor > "languages", but I'm of the opinion that a good developer should be > able to learn a new language very efficiently. Do you count Python 2 > and 3 as the same language? What about all the versions of the C > standard? > Not only is it hard to define what we precisely mean when we say "[knows] moderately well" or "[n number of] languages", but what in the world are we talking about with respect to "the typical developer"? How do we even begin to define that term? -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Steve Howell
On Fri, Mar 23, 2012 at 1:48 PM, Steve Howell <[hidden email]> wrote:
> On Mar 22, 6:11 pm, Steven D'Aprano <steve > +[hidden email]> wrote: >> In any case, I'm not talking about the best developers. I'm talking about >> the typical developer, who by definition is just average. They probably >> know reasonably well one to three of the half dozen most popular >> languages (VB, Java, C, C+, Javascript, PHP, Perl?) plus regexes and SQL, >> and are unlikely to know any of Prolog, Lisp, Haskell, Hypertalk, >> Mercury, Cobra, Smalltalk, Ada, APL, Emerald, Inform, Forth, ... > > I love how you can rattle off 20 or so languages, just off the top of > your head, and not even mention Ruby. ;) If I were to rattle off a couple dozen languages, it probably wouldn't include Ruby either. Never learned it, don't (as yet) know what its advantage domain is. My list "runs somewhat thus": BASIC, 80x86 Assembly, C, C++, Java, REXX, Pascal, Pike, Perl, PHP, Javascript, DeScribe Macro Language, Scheme, Python, ActionScript, DOS Batch, Lua, COBOL, FORTRAN, Ada, Modula-2, LPC, Erlang, Haskell... and that's not counting things like POV-Ray or LilyPond that aren't exactly _programming_ languages, although in some cases you could shoehorn an application into them. Granted, I do have some rather strange and esoteric interests, and I'm sure that Ruby is far better known than DeScribe Macro Language (!!), but I think first of those I've used, and then of the most famous. Sorry Ruby. No slight meant! :) ChrisA -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Steven D'Aprano-11
On Mar 22, 6:11 pm, Steven D'Aprano <steve
+[hidden email]> wrote: > On Fri, 23 Mar 2012 06:14:46 +1100, Chris Angelico wrote: > > On Fri, Mar 23, 2012 at 4:44 AM, Steven D'Aprano > > <[hidden email]> wrote: > >> The typical developer knows three, maybe four languages moderately > >> well, if you include SQL and regexes as languages, and might have a > >> nodding acquaintance with one or two more. > > > I'm not entirely sure what you mean by "moderately well", > > I mean more than "poorly" but less than "very well". > > Until somebody invents a universal, objective scale for rating relative > knowledge in a problem domain (in this case, knowledge of a programming > language), we're stuck with fuzzy quantities like "guru", "expert", "deep > and complete knowledge of the language and its idioms", all the way down > to "can write Hello World" and "never used or seen the language before". > > Here's a joke version: > > http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html > > and here's a more serious version: > > http://www.yacoset.com/Home/signs-that-you-re-a-bad-programmer > > > nor > > "languages", but I'm of the opinion that a good developer should be able > > to learn a new language very efficiently. > > Should be, absolutely. Does, perhaps not. Some good developers spend > their entire life working in one language and have become expert on every > part of it. Some learn twenty different languages, and barely get beyond > "Hello World" in any of them. > > > Do you count Python 2 and 3 as the same language? > > Absolutely. > > > What about all the versions of the C standard? > > Probably. I'm not familiar with the C standard. > > > In any case, though, I agree that there's a lot of people professionally > > writing code who would know about the 3-4 that you say. I'm just not > > sure that they're any good at coding, even in those few languages. All > > the best people I've ever known have had experience with quite a lot of > > languages. > > I dare say that experience with many languages is a good thing, but it's > not a prerequisite for mastery of a single language. I agree. It's certainly true for spoken languages. The only programming language that I ever learned without experience in other languages was BASIC (because only one language can be our first). I believe I mastered BASIC, not that that is saying a whole lot. > In any case, I'm not talking about the best developers. I'm talking about > the typical developer, who by definition is just average. They probably > know reasonably well one to three of the half dozen most popular > languages (VB, Java, C, C+, Javascript, PHP, Perl?) plus regexes and SQL, > and are unlikely to know any of Prolog, Lisp, Haskell, Hypertalk, > Mercury, Cobra, Smalltalk, Ada, APL, Emerald, Inform, Forth, ... > VB, Java, C, C++, JS, PHP, and Perl are all 20th century languages FWIW. PHP, Java, and JS all emerged circa 1995 (17 years ago); C, C+ +, and VB are even older. (And so is Python.) A future version of Python itself, or some language largely inspired by Python (CoffeeScript 3.0 maybe?), will eventually squeeze out Perl, PHP, and JS in the popularity contests. At least I'm crossing my fingers. VB will die with no obvious successors. C++ was never very distinct from C to begin with, and the two languages will eventually converge, die off, or be supplanted. In ten years we'll basically have only three 20th-century-ish languages in the top ten: Python', C', and Java'. The rest of the top ten most popular languages will be something truly 21st-century. They'll be languages that either haven't been invented yet or modernized derivatives of languages that we view as "fringe" today (Lisp'/Haskell'/etc.). -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Steve Howell
On Mar 23, 12:05 am, Chris Angelico <[hidden email]> wrote:
> On Fri, Mar 23, 2012 at 1:48 PM, Steve Howell <[hidden email]> wrote: > > On Mar 22, 6:11 pm, Steven D'Aprano <steve > > +[hidden email]> wrote: > >> In any case, I'm not talking about the best developers. I'm talking about > >> the typical developer, who by definition is just average. They probably > >> know reasonably well one to three of the half dozen most popular > >> languages (VB, Java, C, C+, Javascript, PHP, Perl?) plus regexes and SQL, > >> and are unlikely to know any of Prolog, Lisp, Haskell, Hypertalk, > >> Mercury, Cobra, Smalltalk, Ada, APL, Emerald, Inform, Forth, ... > > > I love how you can rattle off 20 or so languages, just off the top of > > your head, and not even mention Ruby. ;) > > If I were to rattle off a couple dozen languages, it probably wouldn't > include Ruby either. Never learned it, don't (as yet) know what its > advantage domain is. Hype? > My list "runs somewhat thus": BASIC, 80x86 > Assembly, C, C++, Java, REXX, Pascal, Pike, Perl, PHP, Javascript, > DeScribe Macro Language, Scheme, Python, ActionScript, DOS Batch, Lua, > COBOL, FORTRAN, Ada, Modula-2, LPC, Erlang, Haskell... and that's not > counting things like POV-Ray or LilyPond that aren't exactly > _programming_ languages, although in some cases you could shoehorn an > application into them. Granted, I do have some rather strange and > esoteric interests, and I'm sure that Ruby is far better known than > DeScribe Macro Language (!!), but I think first of those I've used, > and then of the most famous. > > Sorry Ruby. No slight meant! :) > If you're that adept at learning languages, then I recommend learning Ruby just for kicks, but you're not missing *that* much, trust me. I'd skip past Ruby and learn CoffeeScript. Of the languages that are in the scripting family, you already know REXX (supreme elegance for its time), Perl (I hate it now, but loved it before Python), PHP (truly easy to learn, you can never take that away from it), and Javascript (horrible syntax, awful platform, but at least they have first-class functions). You have the Assembly/C/C++/Java progression--definitely good stuff, even if the ending to the movie was a bit of a letdown. COBOL/Fortran/Ada gives you instance "old school" street cred. Haskell/Erlang/Scheme means you can hang out with the cool grad school kids in the CS/Math departments (no oxymoron intended). I confess--I've never learned LilyPond, Modula-2, or LPC! I mean, of course they're on my resume, just to get by HR screening, but that's just between you and me... -- http://mail.python.org/mailman/listinfo/python-list |
|
On Fri, Mar 23, 2012 at 7:04 PM, Steve Howell <[hidden email]> wrote:
> If you're that adept at learning languages, then I recommend learning > Ruby just for kicks, but you're not missing *that* much, trust me. > I'd skip past Ruby and learn CoffeeScript. Sure. When I have some spare time... lessee, I think I have two spare minutes in the year 2015 that aren't allocated yet! Oops. There they go. > Of the languages that are in the scripting family, you already know > REXX (supreme elegance for its time), Perl (I hate it now, but loved > it before Python), PHP (truly easy to learn, you can never take that > away from it), and Javascript (horrible syntax, awful platform, but at > least they have first-class functions). > > You have the Assembly/C/C++/Java progression--definitely good stuff, > even if the ending to the movie was a bit of a letdown. +1 on the description, heh. > COBOL/Fortran/Ada gives you instance "old school" street cred. > > Haskell/Erlang/Scheme means you can hang out with the cool grad school > kids in the CS/Math departments (no oxymoron intended). Ehh, the ones from COBOL on were because I ran out of languages that I'm really familiar with, and enumerated a few famous ones. But the rest, I do actually know, and that's why I thought of them. > I confess--I've never learned LilyPond, Modula-2, or LPC! I mean, of > course they're on my resume, just to get by HR screening, but that's > just between you and me... GNU LilyPond is a music publishing language (it's to music what TeX is to English, kinda). Awesome language and system. I can show you a few pieces I've done with Ly, it's beautiful music score from a very clean input file. Modula-2 is a Pascal-derived language that I haven't actually used, but it's cited as an influence in the development of several others that I have used. LPC is Lars Somebody's C, originally written as the basis for Lars Somebody's MUD or LPMUD, and was the basis for Pike (with which I'm very familiar, as readers of this list probably know). Half the above languages aren't on my resume, mainly because I don't really care about HR screening :) ChrisA -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Steve Howell
> I confess--I've never learned LilyPond, Modula-2, or LPC! I mean, of
> course they're on my resume, just to get by HR screening, but that's > just between you and me... You mean, you, him, this mailing list, and anyone that looks on the archives... Ramit Ramit Prasad | JPMorgan Chase Investment Bank | Currencies Technology 712 Main Street | Houston, TX 77002 work phone: 713 - 216 - 5423 -- This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email. -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Nathan Rice-2
> Logo. It's turtles all the way down.
I had forgotten all about that, I should add that to my resume! I wonder what kind of job I could get writing primarily in Logo? Ramit Ramit Prasad | JPMorgan Chase Investment Bank | Currencies Technology 712 Main Street | Houston, TX 77002 work phone: 713 - 216 - 5423 -- This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email. -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Nathan Rice-2
Nathan Rice wrote:
> Logo. It's turtles all the way down. +1 QOTW -- http://mail.python.org/mailman/listinfo/python-list |
|
Ethan Furman wrote:
> Nathan Rice wrote: >> Logo. It's turtles all the way down. > > +1 QOTW Surely you're joking, Mr Furman! -- http://mail.python.org/mailman/listinfo/python-list |
|
On 03/23/2012 02:28 PM, Peter Otten wrote:
> Ethan Furman wrote: > >> Nathan Rice wrote: >>> Logo. It's turtles all the way down. >> +1 QOTW > Surely you're joking, Mr Furman! > Cracking safes was the best chapter. -- DaveA -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Chris Angelico
On 23 March 2012 06:14, Chris Angelico <[hidden email]> wrote:
On Fri, Mar 23, 2012 at 4:44 AM, Steven D'Aprano Absolutely. 10 years ago (when I was just a young lad) I'd say that I'd *forgotten* at least 20 programming languages. That number has only increased. Being able to pick up a new language (skill, technology, methodology, etc) is IMO the most important skill for a developer to have. Pick it up quickly, become proficient with it, leave it alone for a couple of years, pick up the new version when you need/want it.
Tim Delaney -- http://mail.python.org/mailman/listinfo/python-list |
|
On Sun, Mar 25, 2012 at 9:08 AM, Tim Delaney
<[hidden email]> wrote: > Being able to pick up a new language (skill, technology, methodology, etc) > is IMO the most important skill for a developer to have. Pick it up quickly, > become proficient with it, leave it alone for a couple of years, pick up the > new version when you need/want it. Definitely. And along the way, you also (hopefully) remember what each language's specialty is. When you're faced with a problem, you're then able to "call" the ideal language for the task. The larger your arsenal of "languages I have known", the less "all I have is a hammer, this problem looks like a nail" code you end up seeing on TheDailyWTF.com :) ChrisA -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Tim Delaney-2
On 03/24/12 17:08, Tim Delaney wrote:
> Absolutely. 10 years ago (when I was just a young lad) I'd say that I'd > *forgotten* at least 20 programming languages. That number has only > increased. And in the case of COBOL for me, it wasn't just forgotten, but actively repressed ;-) -tkc -- http://mail.python.org/mailman/listinfo/python-list |
|
On 25 March 2012 11:03, Tim Chase <[hidden email]> wrote:
2 weeks on work experience in year 10 (16 years old) was enough for me. Although I did have a functional book catalogue program by the end of it. Apparently the feedback was that if I'd wanted a job there I could have had one ...
Tim Delaney -- http://mail.python.org/mailman/listinfo/python-list |
|
In reply to this post by Chris Angelico
At my current firm we hire people who are efficient in one of the following and familiar with any another C#, Java, C++, Perl, Python or Ruby.
We then expect developers to quickly pick up any of the following languages we use in house which is very broad. In our source repository not including the languages I've already stated above I've seen Fortran, Erlang, Groovy, HTML, CSS, JavaScript, Mathlab, C, K, R, S, Q, Excel, PHP, Bash, Ksh, PowerShell, Ruby, and Cuda. We do heavy computational and statistical analysis type work so developers need to be able to use a vast army of programming tools to tackle the various work loads were faced with on a daily basis. The best skill any developer can have is the ability to pickup languages very quickly and know what tools work well for which task. On Mar 22, 2012, at 3:14 PM, Chris Angelico <[hidden email]> wrote: > On Fri, Mar 23, 2012 at 4:44 AM, Steven D'Aprano > <[hidden email]> wrote: >> The typical developer knows three, maybe four languages >> moderately well, if you include SQL and regexes as languages, and might >> have a nodding acquaintance with one or two more. > > I'm not entirely sure what you mean by "moderately well", nor > "languages", but I'm of the opinion that a good developer should be > able to learn a new language very efficiently. Do you count Python 2 > and 3 as the same language? What about all the versions of the C > standard? > > In any case, though, I agree that there's a lot of people > professionally writing code who would know about the 3-4 that you say. > I'm just not sure that they're any good at coding, even in those few > languages. All the best people I've ever known have had experience > with quite a lot of languages. > > ChrisA > -- > http://mail.python.org/mailman/listinfo/python-list http://mail.python.org/mailman/listinfo/python-list |
|
On Thu, Mar 29, 2012 at 11:59 AM, Rodrick Brown <[hidden email]> wrote:
> The best skill any developer can have is the ability to pickup languages very quickly and know what tools work well for which task. Definitely. Not just languages but all tools. The larger your toolkit and the better you know it, the more easily you'll be able to grasp the tool you need. ChrisA -- http://mail.python.org/mailman/listinfo/python-list |
| Powered by Nabble | Edit this page |
