本文转载自:http://www.javaworld.com/javaworld/jw-06-2009/061909-better-java-programmer.html
其大意指:Java程序员不应仅仅局限于Java语言的学习,除了Java以外还应该学习几门其他的语言,这样有助于全面提高软件开发的水平。
Do you think it's a coincidence that 80% of the best Java talent have a moderate to considerable understanding of either Python, Smalltalk, Scala, Lisp, to a lesser extent Erlang, and most recently Clojure? If you answered 'No coincidence', perhaps you are in that top tier of talent. If you answered 'What a coincidence!', please consider reading on. If you answered 'What are Python/Scala/etc.?', definitely read on.
If you have been in the technology business for less than ten years and are currently programming in Java, chances are Java development represents the majority of what you're paid to do. Comp Sci majors from the mid to late 90's might have focused on C++ academically, but probably had at least some if not most of their coursework in Java. Most recent graduates of the past five years probably focused much more on Java than anything else in class projects.
But consider developers and architects that have been slinging code since the 80's, or even (gasp!) the 70's. These pros earned their gray hairs by transitioning from one language/platform/system to another, perhaps moving from punch cards to mainframes to midrange to client/server and beyond.
If you've been in the business long enough to make these adjustments on the fly without the advantage of four years at a university every time a new technology was introduced, you probably consider yourself more of a 'Software Engineer' than a 'Java Programmer'. The senior contingent of Java professionals has been introduced to Smalltalk, Python, etc. through a variety of means; years ago it may have been anecdotally, and in the more recent past through a combination of information sharing with peers and Internet buzz. The veteran programmers liked many of the concepts of these languages and dove in head first, regardless of whether or not it would be used in their production environments.
Of the younger folks in the pool of top Java talent, many sought out these lanuages as a quest for greatness, perhaps realizing it would make them a better engineer and not just a '(insert any language here) Programmer'. Chances are, those that sought out this learning were influenced by one of the gray beards. If you really want to learn the blues, you don't start with Robert Cray - you start with Robert Johnson (apologies to those unfamiliar with blues). If you really want to learn to be a great engineer, the world didn't start with Gosling, it arguably started with Turing.
If you aspire to be amongst the best engineers, you surely understand that the tools will change over time. Even more junior programmers have seen dozens of new frameworks, IDE's and multiple changes to the Java platform in a relatively short period of time. By taking a step back or in some cases forward in time to study other languages, you'll gain a better understanding of the progression of vital concepts in computer science, and without question you will become a better overall technologist regardless of whether you ever use these other languages in a paid capacity. And your Java skills will get better too.