Jump to content


Check out our Community Blogs

Register and join over 40,000 other developers!


Recent Status Updates

View All Updates

Photo
- - - - -

Is it good to generalize your tech skills or focus on one particular?

career

  • Please log in to reply
6 replies to this topic

#1 SoftwareDeveloper

SoftwareDeveloper

    CC Lurker

  • New Member
  • Pip
  • 4 posts
  • Programming Language:Java, C#, PHP, JavaScript, PL/SQL
  • Learning:Java, C#, PHP, JavaScript, PL/SQL, Others

Posted 31 January 2014 - 08:00 AM

For a good career perspective is it good to be a generalist or a specialist?

 

I've been programming in Java for 8 years now. Started C# as a hobby 5 years ago. And in recent times started a lot of new programming languages and other technologies:

 

Scala, Python, Ruby, JRuby, Jython, Groovy, PHP, WPF, WCF, WF, Html, CSS, XML, SQL (PL/SQL),C++... and the list goes on...

 

Now i'm more of a quite generic "all-rounder"...

 

Shall i start picking one language like Java and be a specialist on that? Or continue to expand my skillsets?


  • 0

#2 WingedPanther73

WingedPanther73

    A spammer's worst nightmare

  • Moderator
  • 17757 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others

Posted 31 January 2014 - 09:41 AM

It's really, really hard to give a good answer for that. I have a handful of languages that I've put intense study in: C++, Delphi, ColdFusion, ASP, ASP.NET and SQL being the big ones. Most of those I invested energy in because I used them in my job. C++ is just a really good language for getting a deep understanding of many programming concepts that carry over to other languages well.

 

So, for a solid foundation, you really need SQL (understand databases), an OOP language, a server-side scripting language, JavaScript, and HTML/CSS. At that point, you have enough of your bases covered that you can fairly easily learn any language you will encounter under normal circumstances. As you can tell from my language list, I did that and started adding more like crazy. It gets boring after a while, though, as languages start to blur together as a mess of subtly different syntaxes with little new to them.

 

For me, esoteric languages are the answer. Things like Lisp (or any dialect), Haskell, Erlang, etc will challenge your assumptions about how program flow should work, what makes a "correct" program, etc. They will influence how you think about the languages you already know. For example, study a functional language, and then think about concepts like TDD/eXtreme Programming/etc. Suddenly, your notion of what makes an appropriate function will radically change.

 

I also pushed away from learning languages towards programming strategies. Study design patterns, algorithms and data structures, compiler theory, software development lifecycles, etc. Those are the things that will make you a better developer in EVERY language. I try to be a specialist in the languages that make me money, but also be as good a programmer as possible across all languages. To do the latter, I have to stop thinking about individual languages.


  • 3

Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#3 0xDEADBEEF

0xDEADBEEF

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 790 posts
  • Programming Language:C, Java, C++, C#, (Visual) Basic, Perl, Transact-SQL, Bash, Prolog, Others
  • Learning:Others

Posted 31 January 2014 - 12:19 PM


I also pushed away from learning languages towards programming strategies. Study design patterns, algorithms and data structures, compiler theory, software development lifecycles, etc. Those are the things that will make you a better developer in EVERY language. I try to be a specialist in the languages that make me money, but also be as good a programmer as possible across all languages. To do the latter, I have to stop thinking about individual languages.

 

A good piece of advice this. Good programming shops want people who know theory and can design good programs; not just if they know an API.


  • 1

Creating SEGFAULTs since 1995.


#4 BlackRabbit

BlackRabbit

    CodeCall Legend

  • Expert Member
  • PipPipPipPipPipPipPipPip
  • 3871 posts
  • Location:Argentina
  • Programming Language:C, C++, C#, PHP, JavaScript, Transact-SQL, Bash, Others
  • Learning:Java, Others

Posted 31 January 2014 - 05:27 PM

It's good to know many languages - I do - but in a different approach, I like to know the language fundamentals. like what are they for? what's their purpose, advantage, and what are they best tool for.

Because that's what they are, tools, you need to use them as much as you need to know the environment that surrounds your app. 

It won't help to know a lot of programing if you don't understand how LAN/WAN works, O.S security policies, databases, the cloud, streaming, port protocols, etc.


  • 2

#5 SoftwareDeveloper

SoftwareDeveloper

    CC Lurker

  • New Member
  • Pip
  • 4 posts
  • Programming Language:Java, C#, PHP, JavaScript, PL/SQL
  • Learning:Java, C#, PHP, JavaScript, PL/SQL, Others

Posted 02 February 2014 - 03:24 AM

I still don't know. I'm more of a generalist nowadays. Not sure whether i want to go specific or maintain generalism.

 

I just want to path that leads to:

 

  1. me being happy in what i do & that i enjoy it
  2. good career path ahead in terms of work & £££
  3. A path where i can enjoy life at the same time!

  • 0

#6 WingedPanther73

WingedPanther73

    A spammer's worst nightmare

  • Moderator
  • 17757 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others

Posted 03 February 2014 - 05:34 AM

 

I still don't know. I'm more of a generalist nowadays. Not sure whether i want to go specific or maintain generalism.

 

I just want to path that leads to:

 

  1. me being happy in what i do & that i enjoy it
  2. good career path ahead in terms of work & £££
  3. A path where i can enjoy life at the same time!

 

I've got 2 and 3, but every time I try to convince my boss to let me use Lisp on a project, he shoots me down :(


  • 0

Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#7 farrell2k

farrell2k

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 169 posts

Posted 03 February 2014 - 05:35 AM

Pick one language and learn it well, then generalize in others, if you wish.   I recommend you learn c# or java well, and then play with others


  • 0

Averageloser.com - I used to be a programmer like you, then I took a -> in the knee. 






Also tagged with one or more of these keywords: career

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download