In practical life, Are programmers able to specialise in more than one area?

11 replies
I finished my university this year (2012). My study was mainly about Java programming, and also studied one big Database course, and several networking courses. But the focus is on Java programming, and I am interesting in it very much.

Although I was giving good attention to Java, I am good in Java concepts but I am not an expert, I regarded myself as a beginner.

After the university I started searching about Java books, Java tutorials, learn about different areas of Java to deep my knowledge in Java. While doing this my brother advised me lo learn about web development particularly PHP and related areas (MySQL, JavaScript, CSS, HTML, ....) because it has a good future.

Actually, I loved the idea. I also love Java and I don't want to leave it, so I am wondering, is it possible/reasonable/feasible for a programmer in real life ... real practical life to be good in both areas (Java) and (web development stuff I mentioned above).

I know that these languages will be easy to understand for someone who knows Java.
Easy to understand but is it easy to be good in it beside Java?.

In real practical life a programmer must be good at some area.

My question is:

Are programmers in real practical life able to be good in two areas? Or they only specialise in one area (Java for example)?.

in my example

- Be good at web development (PHP, MySQL, JavaScript, ...)
- Be good at Java programming.

If it is possible/feasible for programmers in real practical life to do this then I will continue learning both.

If it is not possible/feasible for programmers in real practical life to do this, I will choose Java.

Note that I am taking about "practical life" --> one who learn to find a job.

I want to know your opinions
#area #life #practical #programmers #specialise
  • Profile picture of the author hitmobi
    It is recommended to at least learn a couple of languages.

    If you already know Java on a good level - it doesn't take that much time to master php/ javascript . MySQL is not something you have to put much effort into.

    So, Yes it is a good idea to learn both and it's not a bad idea to even add C# or Cpp to the equation if you start feeling complacent in a few years. Introducing yourself new languages becomes easier every time. You can't master all languages but you can try them out to see what languages should you learn further.

    Each language requires about 3 year experience to get a good job. You can get some small projects earlier.
    {{ DiscussionBoard.errors[6681928].message }}
  • Profile picture of the author Byron Stuart
    For sure it is possible to learn many languages and not necessarily be an expert in all of them but to at least be competent.

    Most languages have certain areas of commonality. If you know something like Java then it is not hard to become OK at PHP even though it is structured quite differently.

    The basic concepts of looping, variables, math functions, string manipulations etc are there for most languages. The key when you want to do something in PHP is to find out if there's a built-in function that will do it for you. The internet makes it so easy to do this now, it would have been much harder when you had to rely on reference books.

    Just take small bites, work out how to do each new bit as you go along rather than trying to learn how to do everything at once.
    {{ DiscussionBoard.errors[6681959].message }}
  • Profile picture of the author Brandon Tanner
    Originally Posted by voltaire101 View Post

    Are programmers in real practical life able to be good in two areas?
    Absolutely! Once you understand basic programming fundamentals (as I'm sure you've learned from your Java studies), then you can apply that knowledge to any new programming language.

    For example, you already understand the logic behind strings, variables, functions, conditional statements, etc. Those concepts are the same in ALL programming languages... the only thing that's different is the syntax (though often, the syntax is really not that much different).

    So you should be able to pick up most new languages relatively quick!
    Signature

    {{ DiscussionBoard.errors[6682557].message }}
  • Profile picture of the author voltaire101
    Thank you: hitmobi, Byron Stuart, Brandon Tanner

    You have relieved me.
    {{ DiscussionBoard.errors[6682931].message }}
  • Profile picture of the author Workman
    Hey Voltaire,

    The answer to your question? Yes, but I wouldn't be so concerned about what to learn as much as knowing how to learn the new technology. Like what Byron said, the basic concepts are essentially the same, just a different way of doing it.

    I work in a software shop that uses a multitude of development technologies covering Ruby, Erlang, Perl, Python, Bash, PHP, Javascript, web frontend technologies like HTML, CSS and I personally have a few projects in C#, Java, and Go. Languages are communication tools and we like to use the best tool for the job. Working on projects this way will open you to learning a multitude of languages and design patterns organically and not getting pigeon-holed into a specific technology. You'll find that you'll have that goto language that you use to hack things together, but it absolutely never hurts to have some experience in even a useless language, even if only for the novelty in conversation

    So long as you work in this field, you're going to discover that cool project that's written in a language that you're not familiar with. If you see an interesting open source project that you want to use or learn more about, just start reading through sample code. Great place to get started browsing through code on Github. Just look for something that sounds interesting and see how others approached it.

    Have fun!
    {{ DiscussionBoard.errors[6683046].message }}
  • Profile picture of the author ionutcib
    If you know many programming languages your chances to get hired will be higher.
    If you know only one language but very well your chances will be lower but the chance to get a higher salary is higher.
    Signature
    {{ DiscussionBoard.errors[6690057].message }}
  • Profile picture of the author wayfarer
    Some people believe you should learn around 7 programming languages (real programming languages, not HTML, CSS, and database languages). These languages should cover as many paradigms as possible (procedural, functional, object oriented). It will take you 10 years or maybe more to do this. When you're first starting out, however, it helps to be as specialized as possible. But never stop learning in this career, you need to keep growing to increase your value.

    Here's a list of languages you can study:

    C
    Java
    PHP
    Python
    Perl
    Lisp
    Ruby
    C++
    C#
    Scala
    Objective-C
    JavaScript
    Lua
    Bash
    Assembly

    I'm not saying you should pick which 7 languages you need now, but as you can see it will be easy to fill your list. It really depends on where your career takes you. To get more ideas, you can look at the Tiobe Programming Community Index.
    Signature
    I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
    {{ DiscussionBoard.errors[6690124].message }}
  • Profile picture of the author wayfarer
    As a followup to my last comment, here's an article that helped me immensely when I was starting out: Teach Yourself Programming in Ten Years

    I'd be interested to know your thoughts about it.
    Signature
    I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
    {{ DiscussionBoard.errors[6690178].message }}
  • Profile picture of the author 26medias
    With experience, yes you can acquire more than one specialty.
    Usually those area of expertise are complementary, like PHP/SQL + Javascript, or PHP + AS3 for example.
    {{ DiscussionBoard.errors[6691450].message }}
  • Profile picture of the author thelearningman
    As all of these members have already stated, it is advisable to know a lot in the software development world. In fact, it becomes inescapable. In my first year of work, I started writing C programs on AIX, developed Java apps on Windows/Unix and then wrote MFC (C++) based Windows GUI apps. I admit this was a bit extreme, but I really did enjoy every minute of the work/learning process.
    {{ DiscussionBoard.errors[6691783].message }}

Trending Topics