• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

How versatile are you?

 
Ranch Hand
Posts: 789
Python C++ Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Computer language-wise? How many languages do you know? How many platforms? The other day I was thinking of an analogy to music or to any other kind of career, really. If you want to be a rock star, you do not also dawdle in jazz or bluegrass, and vice-versa. In fact you focus your energies and time as narrowly as possible. Versatility loses! It dilutes. Even a Ph.D is for narrowness, not breadth.

 
Marshal
Posts: 79177
377
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Guillermo Ishi wrote: . . . analogy to music . . . If you want to be a rock star, you do not also dawdle in jazz or bluegrass, and vice-versa. . . .

Really? I would dispute that.
 
Sheriff
Posts: 5555
326
IntelliJ IDE Python Java Linux
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
As would I. One of my favourite Rock drummers is Mitch Mitchell, who played with Jimi Hendrix. Mitch was an inspirational Rock drummer but came from a Jazz background and was better for it.

I have to say, I disagree with pretty much everything you have said. Learning Clojure, for example, doesn't weaken my Java ability. Learning how to develop for Windows, doesn't weaken my ability to develop for Unix. Versatility is a strength, not a weakness.
 
Bartender
Posts: 1810
28
jQuery Netbeans IDE Eclipse IDE Firefox Browser MySQL Database Chrome Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Guillermo Ishi wrote:If you want to be a rock star, you do not also dawdle in jazz or bluegrass, and vice-versa. In fact you focus your energies and time as narrowly as possible. Versatility loses! It dilutes.


I strongly disagree. The greatest rock drummer, bar none, is Neil Peart of Rush who started in heavy metal. He later adopted the jazz techniques of one of the greatest jazz drummers, Buddy Rich and became a student of another great jazz drummer, Freddie Gruber. There are many other examples, but I think the best musicians study many styles and many instruments, and the best programmers learn many languages.
 
Guillermo Ishi
Ranch Hand
Posts: 789
Python C++ Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Understand that I'm talking about career, not abilities or interests. There are plenty of Mitch Mitchells you never heard because they were not highly and ambitiously focused.

The question is does your web development suffer because you insist on giving equal time to programming devices. Or equal time to sports and television and other distractions.

At the end of the day you will be less expert at the highest level because of your involvement with the other things; you spent a lot of your time just having fun, not being focused on your career.
 
J. Kevin Robbins
Bartender
Posts: 1810
28
jQuery Netbeans IDE Eclipse IDE Firefox Browser MySQL Database Chrome Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Guillermo Ishi wrote:The question is does your web development suffer because you insist on giving equal time to programming devices. Or equal time to sports and television and other distractions.


That's two different things. To the first, no, time spent learning other programming languages, or programming a PI, or even hacking your Roomba make you a better programmer. Period. To the second part, yes, time spent doing things not programming related is not going to further your career or your abilities. It is, however, important to your mental and physical health. Nobody should spend every waking hour over a keyboard, no matter how good a programmer it makes you.
 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Guillermo Ishi wrote:Computer language-wise? How many languages do you know? How many platforms? The other day I was thinking of an analogy to music or to any other kind of career, really. If you want to be a rock star, you do not also dawdle in jazz or bluegrass, and vice-versa. In fact you focus your energies and time as narrowly as possible. Versatility loses! It dilutes. Even a Ph.D is for narrowness, not breadth.


Well, your analogy doesn't seem to work for music - lots of top musicians can play lots of different instruments, even if they specialise in just one or two.

So how about natural languages? Well, I studied languages at university, so I've encountered a fair number of serious linguists (far better than me!) and experts in language acquisition, and my experience is that this analogy doesn't work for natural languages either. By the time I graduated I'd studied around a dozen languages at various levels (some of them only briefly), and learning one language definitely made it easier to get started with another, especially if it was similar to one I'd already encountered (not surprisingly). Research into language learning supports this - people who learn several languages, especially when they're children - can usually pick up new languages more easily later on. The explanation seems to be that the process of language acquisition exercises and strengthens the pathways in the brain that support language learning. So you could say that versatility encourages versatility here. Of course, once you've learned a language, you need to practice it regularly or it will fade, but you often retain at least the basics for many years.

Since I started programming over 20 years ago, I've had to work with lots of different programming languages, partly because I worked on different projects in different environments, and partly because technology changes so fast that it's inevitable you will have to learn some new languages at some point. The biggest problem I've had in my career was when I'd let myself get too comfortable working in a narrow niche, and the solution has been to step out of that niche and start learning new stuff again. These days, with all the talk of "polyglot programming" and complex systems spanning multiple platforms/technologies/languages, I don't see how anybody can survive just knowing one thing.

As Russ Olsen said in a recent talk: Your Programming Language Is Going To Die!

And apart from simply surviving in the industry, some of us want to enjoy some variety too. Looking around the industry, I think the most interesting work seems to happen at the boundaries e.g. previously I studied GIS - the intersection between cartography, geographical science and computer technology, which was really interesting. And right now, hot topics like "data science" and "Big Data" are at the intersection of statistical analysis, traditional database technologies, newer clustered technologies (like NoSQL or Hadoop), and functional programming. Personally, I'd much rather invest my time in gaining the versatility to work in areas like these, rather than spend the next 10 or 20 years toiling in some narrow corner of Java EE.

If I wanted to spend my career learning more and more about less and less, I'd have done a PhD.

Of course, it's possible you might be able to find a successful and satisfying career working with just one language/platform for the next 30 years. Good luck with that.
 
author
Posts: 23951
142
jQuery Eclipse IDE Firefox Browser VI Editor C++ Chrome Java Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

chris webster wrote:
Well, your analogy doesn't seem to work for music - lots of top musicians can play lots of different instruments, even if they specialise in just one or two.



Unfortunately, this is an issue for any analogy. It may be mostly good -- as long as you remember that it is an analogy. If you try to stretch the analogy, it may become an issue. And of course, when you try to draw conclusion from it, it doesn't work well at all...

Henry
 
Guillermo Ishi
Ranch Hand
Posts: 789
Python C++ Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I was a university trained classical musician. When I encountered my first "home computer" as they were called back in the day, it annihilated every other interest permanently

If you give equal time to piano, and trumpet and drums, you might go hungry.

If you give equal time to Java and Python and Scala and Ruby, there are intricacies of all that you will never "get". You won't be as fast as an equal who was focused. Just as an example that should be obvious. Just as obviously I'm not talking about getting yourself trapped in a dying field or language, etc.
 
chris webster
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Henry Wong wrote:

chris webster wrote:
Well, your analogy doesn't seem to work for music - lots of top musicians can play lots of different instruments, even if they specialise in just one or two.



Unfortunately, this is an issue for any analogy. It may be mostly good -- as long as you remember that it is an analogy. If you try to stretch the analogy, it may become an issue. And of course, when you try to draw conclusion from it, it doesn't work well at all...

Henry


Perhaps I should have referred explicitly to the OP's claim that "Versatility loses! It dilutes.", but in my experience:

  • Great musicians often seem to be more versatile - able to play/learn lots of instruments or musical styles - than mediocre musicians.
  • Great linguists often seem to be more versatile - able to speak/learn lots of languages - than mediocre linguists.
  • Great software engineers often seem to be more versatile - able to use/learn lots of software tools - than mediocre software engineers.

  • So I don't see how this analogy is a useful reference point for any of these fields. YMMV.
     
    chris webster
    Bartender
    Posts: 2407
    36
    Scala Python Oracle Postgres Database Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Guillermo Ishi wrote:I was a university trained classical musician. When I encountered my first "home computer" as they were called back in the day, it annihilated every other interest permanently

    If you give equal time to piano, and trumpet and drums, you might go hungry.

    If you give equal time to Java and Python and Scala and Ruby, there are intricacies of all that you will never "get". You won't be as fast as an equal who was focused. Just as an example that should be obvious. Just as obviously I'm not talking about getting yourself trapped in a dying field or language, etc.


    Ah, I think I get where you're coming from. But I still think it's a false comparison. If you want to be a top concert pianist then, yes, you need to study and practice for years to reach the top of your profession. But programming is different.

    A top concert pianist can stay at the top of their profession for years by doing essentially the same thing (extremely well), because the piano isn't being re-invented every 3 or 4 years, and the core repertoire isn't suddenly being re-written to use different scales/notation or orchestrated for a variety of new instruments that didn't exist 4 years ago. The pace and scope of change in the IT industry is totally different.

    So I don't really see an equivalent position in the IT industry, except for a few individuals who are strongly associated with a particular technology. Sure, you could invest the next 20 years in becoming the concert pianist of C++, for example, and that might give you a great deal of personal satisfaction and some high-end consulting gigs, but for the most part I doubt if it's actually going to make you any more employable than somebody who's pretty good at C++ but also knows 10 other skills that people actually need and which you've missed out on. You also won't have the benefit of exposure to different tools/techniques that might make you an even better C++ programmer.

    If you specialise too narrowly in IT, you risk ending up in cul-de-sac: either your narrow set of skills become irrelevant to most real-world needs, or your skills simply become obsolete. It's like deciding you only need to know about the top 2 octaves on the piano keyboard, when people need you to play all of them.

    Versatility wins - just ask the Giant Panda (if you can find one)!
     
    Guillermo Ishi
    Ranch Hand
    Posts: 789
    Python C++ Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    In the workaday world a certain amount of versatility does win. I guess we are talking about the workaday world of programming. But -- if you are rock star material then narrow focus is everything. A better analogy might be a medical specialist vs a G.P. What is a definite advantage to the G.P., a workaday guy, is a liability for the rock star heart surgeon. The rock star would be crazy to dilute his energies on gout and kidney stones




     
    chris webster
    Bartender
    Posts: 2407
    36
    Scala Python Oracle Postgres Database Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Actually, General Practice medicine is increasingly recognised as a specialism in its own right, here in the UK. Although I suspect most surgeons still regard themselves as rock stars: it takes a certain amount of self-confidence to believe you can start poking around in somebody's internal organs without killing them! I'll stick to workaday software development, I reckon...
     
    Campbell Ritchie
    Marshal
    Posts: 79177
    377
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Guillermo Ishi wrote: . . . The rock star would be crazy to dilute his energies on gout and kidney stones . . .

    But a heart surgeon who knows nothing about gout and kidney stones is a danger to patients who might have gout or kidney stones.
     
    lowercase baba
    Posts: 13089
    67
    Chrome Java Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Guillermo Ishi wrote: A better analogy might be a medical specialist vs a G.P. What is a definite advantage to the G.P., a workaday guy, is a liability for the rock star heart surgeon. The rock star would be crazy to dilute his energies on gout and kidney stones


    unless in 5 years someone invents nanobots that can do heart surgery without the need for a heart surgeon. Then that "rock star" is out of a job.

    Granted, that may not happen in medicine, but can and does happen in IT.
     
    Campbell Ritchie
    Marshal
    Posts: 79177
    377
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    chris webster wrote: . . . start poking around in somebody's internal organs without killing them! I'll stick to workaday software development, I reckon...

    If you choose the wrong type of software, you can kill lots of people all in one fell swoop. Surgeons can only kill one person at a time
     
    Ranch Hand
    Posts: 974
    11
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Guillermo Ishi wrote:Computer language-wise?



    Ah.., why that?

    If nót computer language wise, I can say I can speak 5 (human) languages, I know a lot about history, physics and chemistry, I am an athletic coach and first aid volunteer, and can run 10k in 45 minutes.

    Anyway, I know C, Delphi, C++, Java, C#.
    Platforms Linux and Windows.
     
    Consider Paul's rocket mass heater.
    reply
      Bookmark Topic Watch Topic
    • New Topic