Forgot your password?
typodupeerror
Education Java Perl Programming Python

Which Language To Learn? 897

Posted by kdawson
from the future-proofing-the-skillset dept.
LordStormes writes "I've been a Java/C++/PHP developer for about 6 years now. However, I'm seeing the jobs for these languages dry up, and Java in particular is worrisome with all the Oracle nonsense going on. I think it's time to pick up a new language or risk my skills fading into uselessness. I'm looking to do mostly Web-based back-end stuff. I've contemplated Perl, Python, Ruby, Erlang, Go, and several other languages, but I'll put it to you — what language makes the most sense now to get the jobs? I've deliberately omitted .NET — I have no desire to do the Microsoft languages."
This discussion has been archived. No new comments can be posted.

Which Language To Learn?

Comments Filter:
  • Really? (Score:5, Insightful)

    by r0ach (106945) on Saturday November 13, 2010 @07:14PM (#34218020) Homepage

    I mean, I don't see php or C++ going anywhere anytime soon....

    • Re:Really? (Score:5, Insightful)

      by dreamchaser (49529) on Saturday November 13, 2010 @07:18PM (#34218036) Homepage Journal

      Yep, I still see lots of posting for people skilled in those languages. Also, if the submitter were serious about wanting to stay relevant and employable he wouldn't just automatically discount the .NET languages. There are more and more jobs available for skilled .NET coders. Tying one's career to ideology isn't always a smart thing to do.

      • Re:Really? (Score:4, Insightful)

        by Anonymous Coward on Saturday November 13, 2010 @07:19PM (#34218056)

        Yes, but being honest about your preferences can be helpful. I don't want to do .Net development myself either, or dig ditches, or clean toilets. There may be jobs in all three fields, but that doesn't mean they're for me.

        • Re:Really? (Score:5, Insightful)

          by bhcompy (1877290) on Saturday November 13, 2010 @07:30PM (#34218164)
          Except that ditch digging isn't preferable because you make shit money and do shit labor. .Net is no different than any language he current programs in those terms. It's not like he's avoiding assembly because it's too difficult to learn or doesn't have the greatest job prospects. He's just cutting off his nose to spite his face.
          • Re: (Score:3, Informative)

            by biryokumaru (822262)

            Except that ditch digging isn't preferable because you make shit money and do shit labor. .Net is no different than any language he current programs in those terms.

            I think the whole point here is the definition of "shit labor."

            • Re:Really? (Score:5, Insightful)

              by hal2814 (725639) on Saturday November 13, 2010 @08:10PM (#34218480)
              I've dug ditches for a living and built houses for a living and done grunt work for a kitchen installation company. Whoever is considering sitting around in an air conditioned office and cranking out .NET code "shit labor" has a severe reality deficit disorder.
              • Re:Really? (Score:5, Insightful)

                by Anonymous Coward on Saturday November 13, 2010 @08:20PM (#34218562)

                I've worked in various office enviroments for years as relatively unskilled labor, leaving for work in the dark, getting home in the dark, spending the entire day inside of a cold flourescent-bulb light enviroment that is always teedering on the edge of "full blown flu pandemic". Whoever is considering working outside preforming good honest work "shit labor" has a severe reality deficit disorder.

                Newsflash: the grass is always greener on the other side.

              • Re:Really? (Score:5, Insightful)

                by NFN_NLN (633283) on Saturday November 13, 2010 @08:33PM (#34218642)

                I've dug ditches for a living and built houses for a living and done grunt work for a kitchen installation company. Whoever is considering sitting around in an air conditioned office and cranking out .NET code "shit labor" has a severe reality deficit disorder.

                Try debugging poorly written Perl code - there is such a thing as "shit labor" even in an air conditioned office.

                If those are the only criteria used, then by your definition solitary confinement in prison would be a sweet gig.

                • Re: (Score:3, Funny)

                  by oldhack (1037484)
                  They really should file a class-action suit against Larry for all the gross mental anguish, you know. It's a crime against nerds, really.
              • Re:Really? (Score:5, Insightful)

                by SuperKendall (25149) on Saturday November 13, 2010 @09:11PM (#34218860)

                I don't like .Net much. But I'm going to back you up and say you have a great point, and that obviously none of the other people have REALLY had to do full time manual labor for work. I have before college, and it was a huge motivator to finish a CS degree... All the people here are imagining frolicking outside on a 70 degree day carrying a single 2x4, and forgetting that pretty much everywhere has summer and winter too, and that a construction worker these days is going to be hard-pressed to find a job at all.

                • Re:Really? (Score:4, Insightful)

                  by elbobo (28495) on Sunday November 14, 2010 @06:54AM (#34221136)

                  I worked doing manual labour, and really heavy stuff at that, for maybe five years in my late teens, early twenties. It was, on balance, just as enjoyable, if not perhaps more enjoyable at times, than being a programmer. It just doesn't pay well enough.

              • Re:Really? (Score:5, Insightful)

                by afidel (530433) on Saturday November 13, 2010 @09:16PM (#34218890)
                Shit labor is anything that makes you unhappy and/or fails to pay the bills. So long as you are happy and have your health, a roof over your head, and a full belly then the rest of it is just noise.
              • Re: (Score:3, Insightful)

                by rtb61 (674572)

                Don't discount the outdoor trades so readily. The only reason I went office was at that time there was a glut of trades and an absence of office, so building estimating etc. rather than carpentry or electrical. Of course the office enabled me to get on early on computing that was the only real benefit.

                As for shit coding environments and good coding environments, that is tied to creativity and that has a real impact upon performance. If someone hates M$ and .net then it will cripple the creativity and the

          • Re:Really? (Score:5, Interesting)

            by bmo (77928) on Saturday November 13, 2010 @07:40PM (#34218212)

            Ditch digging is shit labor and shit money?

            Have you _seen_ what a unionized heavy equipment operator gets?

            Or how about up in the frozen North where they dig for oil? $2K/Week TAKE HOME (canadian, worth more than USian now) just for digging a great big ditch.

            Yeah, I'll take digging a ditch right about now.

            --
            BMO

            • Re:Really? (Score:5, Informative)

              by Bozzio (183974) on Saturday November 13, 2010 @08:42PM (#34218686)

              Yeah, I know this is a bit offtopic, but so is this entire thread.

              CAD is in fact still weaker than USD. It's almost tied, but not quite.

              For a shiny graph demonstrating this see:
              http://www.google.ca/finance?q=CADUSD [google.ca]

      • Re:Really? (Score:5, Interesting)

        by BeanThere (28381) on Saturday November 13, 2010 @07:52PM (#34218316)

        Speaking of staying relevant. While there are certainly languages that are way down there in terms of jobs, I take the general view that if you keep yourself *good* at whatever language you choose, you will have a job. That is certainly true of PHP, of C++, and probably will stay true of Java for a long time. Still, I suppose not everyone can be motivated enough to stay top of their game.

        Submitter also doesn't seem to realise .NET isn't a language, it's a platform (more akin to an API than a language), and you can code for .NET using many different languages, and you can't code "in .NET", since there isn't such a language. I presume he made the common beginner mistake of conflating "C#" with ".NET", and I'll infer he meant C#.

        As anti-MS as I am, it seems odd to me to avoid C# if you like Java though, given it's probably more similar to Java than anything else. Also, from what little I know of it, technically it seems like quite a decent language (and the API much better than the old Win32 .NET replaces), with quite a decent development environment too. It didn't really replace the C++ 'niche' though, it replaced the VB segment ... C# is basically "the new VB"; rapid medium-skilled and medium-complexity development with a broader pool of (on average) less highly-skilled programmers to choose from (not dissing the good C# programmers that do exist, but it's certainly a more forgiving environment to less technically skilled programmers than say C++).

        If you're really good at what you do, then you can afford to be picky about your "ideology" and avoid a particular language. If not (which I more suspect to be the case here) then I would recommend to the question asker to best keep more options open. Otherwise it just seems more like a bad carpenter blaming the job environment.

        Me, I love C++, and I haven't noticed jobs drying up, on the contrary, my C++ skills continue to open interesting doors for me, I can literally go almost anywhere in the world.

        There are lots of C# jobs out there, and lots of C# programmers; while you can be an excellent C# programmer, I'd say it's probably slightly easier to 'distinguish yourself' in the C++ world.

        PHP is still also massive though, and will be for a long time.

        • Re:Really? (Score:5, Insightful)

          by EastCoastSurfer (310758) on Saturday November 13, 2010 @08:17PM (#34218538)

          I take the general view that if you keep yourself *good* at whatever language you choose, you will have a job.

          I agree with this, but in an even more general sense. If you are a good programmer then you'll always have a job. Language is largely irrelevant once you get into the larger groupings of languages. A good programmer is a good programmer regardless of the current tool they happen to be using at the time.

      • by b4dc0d3r (1268512) on Saturday November 13, 2010 @08:15PM (#34218518)

        I intentionally tried to avoid MFC, and learned it anyway. I avoided .NET like the plague, and work moved me right back to the plague.

        Since .NET 2.0 it's been a stable API, and if you're going to do web or web/desktop development, it's a good thing to have in your back pocket. And I'm saying this as someone who intentionally avoided it.

        I picked up Prosise's MFC book so I'd know what MFC was doing behind my back, and I dropped wxWidgets once it became clear it was an MFC "port" - if you don't believe me read the wx history. I intended to stay classic MFC all the way, and learn something else - anything else (but Java, that's my ideology and just as unfounded). Qt and... whatever the dominant web language was in 2001.

        I write .NET for a living. If nothing else, you can be read-only with .NET like I am with Java. I can search for an algorithm and find a public domain or otherwise compatible implementation, and if it's Java I can port it in a few minutes and have what I need - whether it's .NET or C/C++, which is where I prefer to work.

        Learn .NET, even if you are working in a full open source shop. There are lots of open source programs available only in .NET, and a free compiler (not the GUI, just command-line).

        I don't have mod points, so I'm just backing up dreamchaser (49529). I can write x86 assembly (att or intel), C (K&R, C89, C99), C++, VB5/66, VB.NET/C#, ASP 3, JavaScript, VBScript (cscript and IE), SQL (MS and Oracle) and lots of others less proficiently... so it's not like you can't learn multiple languages. In fact, the more you know the better. I write better .NET code because I think in assembly when performance matters. I write better ASM code because I think in OOP when code clarity matters. Yes, I probably need mental help, but the more you know the better you will be. The more ways you can think about something, the more solutions you can weigh when you have to actually implement something.

        Here's the best part. Learn what .NET does *wrong* and avoid implementing that in your apps, or avoid using constructs like that in whatever language you get paid to use. Learning .NET has made me a better C++ programmer, far more than any other experience in my life. Both for the good parts and the parts that could be better.

        You'll want to learn to use ILdasm if you go this route, no question. Obviously my vote is .NET.

        Search sourceforge for stuff in .NET languages, C# is probably going to be more familiar, download the free compiler from MS, compile, make changes, and start reading.

        • Re: (Score:3, Interesting)

          by FutureDomain (1073116)

          Great post, and I'd like to add a couple of other points.

          Instead of just downloading the compiler, download Visual C# Express [microsoft.com]. It's a great way to get introduced to Visual Studio and it has a lot of tools and features that make it better than hand typing it into Notepad. I'd still recommend learning what's going on under the covers (use ILdasm, Reflector, and check out the x.Designer.cs files), but if you're going to do any .NET programming in the enterprise setting Visual Studio is going to be used.

          It's go

        • by shutdown -p now (807394) on Sunday November 14, 2010 @03:19AM (#34220474) Journal

          Since .NET 2.0 it's been a stable API

          Not really. I mean, it is stable in a sense that things don't go away - kinda like AWT is still there in Java. But .NET moves on faster than Java, and every new major release adds brand new APIs, sometimes for the same thing.

          To be more specific: .NET 2.0 -> .NET 3.0: added WPF (supersedes WinForms), WCF (supercedes ASP.NET Web Services), and WWF. .NET 3.0 -> .NET 3.5: added LINQ as a feature; and boy it's a big one for someone not familiar with the concept from other languages! Added LINQ to SQL (partially supersedes ADO.NET). .NET 3.5 -> .NET 3.5 SP1: added Entity Framework, which supersedes LINQ to SQL; and WCF Data Services. .NET 3.5 -> .NET 4.0: added DLR (and "dynamic" keyword in C#/VB). Major updates to Entity Framework.

          That's without even mentioning ASP.NET MVC (because it's a separate product, not part of .NET) and Silverlight...

          You can keep using WinForms into 2011 if you want... but most new .NET projects I've seen use the new stuff, which is not surprising. This has both good and bad parts.

          The obvious good part is that the new stuff is usually better - often not right away (WPF was kinda meh when it was first released, though you could clearly see the potential), but eventually it matures. Due to .NET's faster feature cycle, you end up routinely using stuff which Java guys don't even dream of. It's literally 10 lines of C# code for the equivalent 100 lines of Java.

          The bad part is that you have to be able to keep up. If you fall behind the technology curve, you end up maintaining some legacy .NET 1.x project somewhere - which will pay the checks, but is usually quite boring as far as work goes. But then this isn't something that your average /. reading nerd would be worrying about, right?

          Anyway, it seems that the original question had an explicit "no .NET" request not because the guy has an ax to grind on the technical side, but because he does not want to support Microsoft; i.e. it's purely an ethical issue. And he is certainly fully entitled to that.

  • COBOL (Score:5, Insightful)

    by Anonymous Coward on Saturday November 13, 2010 @07:15PM (#34218026)

    Still in demand and it will not die.

  • by GaryOlson (737642) <slashdotNO@SPAMgaryolson.org> on Saturday November 13, 2010 @07:17PM (#34218032) Journal
    Industry constantly tells the Universities they need more C/C++ programmers for industrial systems. If all you are looking at is web based development, you are seriously limiting your options. I suggest a less restrictive filter on your search parameters.
    • by royallthefourth (1564389) <royallthefourth@gmail.com> on Saturday November 13, 2010 @07:44PM (#34218240)

      When I graduated from college a little over 2 years ago, I couldn't find anyone hiring C programmers with less than 5 years of experience. Shops that work in PHP don't give a damn about anything (obviously), so that's where my career started and now web development is what I know how to do.

      Of everyone I knew in college and everyone I've met since then, only one of them actually has a job that uses C or C++ these days.

      • Re: (Score:3, Insightful)

        by diskofish (1037768)
        Makes sense. With the explosion of the web and internet, where do you think most of the jobs are? EVERY company needs to be on the web, and many companies need custom software for internal or external use.
  • by Cidolfas (1358603) on Saturday November 13, 2010 @07:17PM (#34218034)
    80% or so of all web-backend postings I see are PHP/Java/.NET or the like. The other 20% are all Python (usually Django, though I prefer Pylons myself) and Ruby. If you want to pick up another language just so you can be future-proof, go with Ruby. I haven't learned it yet (I do javascript myself, and use PHP or Python when I do backend), it seems to be a more common request than any of the others you listed.
    • Seconded... (Score:4, Informative)

      by SanityInAnarchy (655584) <ninja@slaphack.com> on Saturday November 13, 2010 @08:00PM (#34218396) Journal

      If all you care about is being the most employable, PHP/Java/.NET and JavaScript are your best options.

      As for something which has a future, I like Ruby. The mainstream implementations are all open source and (so far as we know) patent-free. I'd seriously consider deploying to JRuby these days, but it's reasonably compatible, so you certainly wouldn't be locked into Java.

      Python would be another good choice, but I think Ruby has it better in terms of the number of entirely distinct implementations. If Oracle sues JRuby out of existence, there's still the mainstream C implementation (MRI) with multiple interesting branches, MacRuby is looking interesting, and IronRuby strikes me as at about the stage Jython is.

  • What jobs? (Score:4, Insightful)

    by wilfie (622159) * <wilfNO@SPAMlinuxmail.org> on Saturday November 13, 2010 @07:18PM (#34218040) Homepage
    "What language makes the most sense now to get the jobs?" What jobs?
  • Tiobe Index (Score:5, Interesting)

    by bradgoodman (964302) on Saturday November 13, 2010 @07:18PM (#34218042) Homepage
    See the Tiobe index:

    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html [tiobe.com]

    Java (as much as I hate it) - and C++ (as much as I lothe it) aren't going away or drying up - but they have flatlined

    You can see the "fast risers" like Ada (WTF?), Objective-C (i.e. iPhone/iPad), etc. - but these are generally very vertical (specfic-purpose) languages.

    • I've always been puzzled about the focus on languages. A language is just a tool or a palette. The important thing is being able to design software in a clear and efficient manner. Languages can typically be picked up in a very short period of time. I understand that the people who only understand buzzwords are blindly seeking a particular match, but if they were smart, they would look instead for a person who was a skilled designer of software, rather than a person who knew a particular language.

      In my

  • Just a thought (Score:5, Insightful)

    by RNLockwood (224353) on Saturday November 13, 2010 @07:19PM (#34218058) Homepage

    Have you thought about one of the languages spoken on the Indian sub-continent?

  • Chinese (Score:5, Insightful)

    by asnelt (1837090) on Saturday November 13, 2010 @07:22PM (#34218070) Homepage
    I would go for Chinese.
  • How about (Score:5, Funny)

    by Aggrajag (716041) on Saturday November 13, 2010 @07:26PM (#34218112)
    Try Finnish, Oracle hasn't bought Finland yet.
    • Re: (Score:3, Funny)

      Unfortunately, Finnish is only effective for instructing ~0.1% of world's population. It is particularly inefficient when yelled over Skype to an Indian outsourcee.
  • by hinchles (976598) on Saturday November 13, 2010 @07:26PM (#34218120)

    I've deliberately omitted .NET — I have no desire to do the Microsoft languages.

    Poster obviously has no desire to be employed either. Love it or Hate it C# is pretty much the only langauge in demand by big business these days in the UK unless he's perfectly happy doing small freelance jobs etc which PHP is fine. Other languages he's mentioned are all pretty much unused apart from in the domain of nerds but certainly not by the majority of the companies recruiting. Ironically enough I reskilled from C# and other .NET oddities to PHP a few years ago purely out of personal preference.

    • by Angst Badger (8636) on Saturday November 13, 2010 @08:53PM (#34218738)

      Poster obviously has no desire to be employed either. Love it or Hate it C# is pretty much the only langauge in demand by big business these days in the UK unless he's perfectly happy doing small freelance jobs etc which PHP is fine.

      I've seen people make remarks like this -- apparently in all sincerity -- for the last twenty years, and they're generally wrong, usually because they're generalizing from personal experience, which is almost always narrower than you think.

      The fact is that if you aren't too picky, there are always openings for programmers in about a dozen languages. The proportions vary from time to time and by industry and company size, but no language commands more than a modest plurality at present. There are still openings for people to write new code in COBOL and RPG if you know where to look.

      The key is not being too picky. If your main concern is making as much money as you can, your choice of languages and platforms is going to be constrained by that requirement. If you're content with making a comfortable but not fantastic middle-class income, you can count on finding a job coding in all but the most obscure languages. It will just take longer to find and probably pay less than the latest high-demand stuff. On the bright side, there will be less competition for the job.

      In the end, it just depends on what matters most to you.

    • by HappyEngineer (888000) on Saturday November 13, 2010 @08:59PM (#34218782) Homepage
      Don't get so emotionally fanboy about it.

      You only need one job. Web developers are needed by practically every company. I don't know what percentage of all that is Java vs C# but as a Java programmer I know that Java jobs are trivially easy to come by.

      In any case, objecting to C# is likely not an objection to C# itself. I personally think it looks like a great language. It's really objecting to all the stuff that's likely to come along with C# like Windows servers, IIS, VB scripts, IE only sites, Microsoft SQL Server, the attitude that cross platform development doesn't matter and a bunch of other crap that some of us don't want to have to deal with. If you don't have a problem with any of that stuff then that's your business. Don't blame anyone else for your eventual ulcers though.
  • Objective C (Score:4, Insightful)

    by drumcat (1659893) on Saturday November 13, 2010 @07:27PM (#34218128)
    Last I checked, being able to create apps with native hooks on the Mac platform is the hottest shit steaming right now.
  • Legalese (Score:5, Insightful)

    by El_Muerte_TDS (592157) <elmuerte@@@drunksnipers...com> on Saturday November 13, 2010 @07:27PM (#34218140) Homepage

    Win or lose, either way you'll earn money.

  • Just C. (Score:5, Insightful)

    by Anonymous Coward on Saturday November 13, 2010 @07:28PM (#34218142)

    No language is more universal. No language is more direct. It will never die. It transcends trends. It is the only decent language to me, having tried way too damn many in my life and always left wanting until I return to C.

    It is the perfect language. People might gripe that it's somehow "obsolete" or missing "modern" features, but to me, that's part of its appeal -- you get to do with it exactly what you need to do, and that is the essence of programming to me. Leaving too much to the language makes me feel powerless and less in control.

    I love C. If it was legal, I'd marry it.

  • Scala, Haskell (Score:4, Interesting)

    by j1m+5n0w (749199) on Saturday November 13, 2010 @07:30PM (#34218160) Homepage Journal

    If you want to learn something new without throwing away all your java experience, you might try Scala. I've heard good things about it (though I have no personal experience with it myself). As functional languages go, I prefer Haskell [1] as my default problem-solving language. You might have trouble finding a Haskell job, but it will teach you things that will be relevant in other languages.

    Erlang is an interesting language. I view it as kind of a one-trick pony, but for distributed systems I've not seen anything better.

    [1] Learn you a Haskell for great good [learnyouahaskell.com]

  • by kainosnoema (1939984) on Saturday November 13, 2010 @07:32PM (#34218174)
    The fastest growing, hottest languages on GitHub right now [github.com] are Ruby and Javascript. Partly that's due to the amazing Node.js server-side platform that runs on Google's V8.
  • by Aron S-T (3012) on Saturday November 13, 2010 @07:43PM (#34218232) Homepage

    As someone who has worked in software development in various capacities for over thirty years, I find your comments puzzling and your concotenation of those three languages even more mysterious. If you are talking about the corporate world then please be aware change comes exceedingly slowly. COBOL and Fortran were king into the nineties. Now Java and C++ have replaced those two and aren't going anywhere- Java for enterprise business applications (with or without a web front end) and C++ for anything where performance is of the essence. Microsoft tried ton replace Java with .net and failed. Nonetheless, it still is the number two platform in the corporate world. So having skills in the enterprise version of Java and/or being a c++ wizard guarantees you a programming job for the next 20 years. I don't know where you have been looking, but jobs haven't fallen off in those two domains and won't.

    PHP is a whole different animal and really shouldn't be mentioned in the same breath as the other two languages. PHP was the choice language for web development for mom and pop sites (yea, yea I know, yahoo) and startup quick and dirty websites. Ruby became the platform that "cool" web developers came to prefer, so yes if you aren't interested in the corporate world, learn ruby and rails. Of course, since I pay less attention to that sector, maybe there is something newer and cooler these days.

    Python should be in every programmers tool set because it is such a versatile tool. Unfortunately it's not enough in most cases for a guaranteed job.

  • by nurb432 (527695) on Saturday November 13, 2010 @07:46PM (#34218260) Homepage Journal

    Then you have just limited your career. But don't let me stop you, the rest of us want jobs too.

  • by Sarusa (104047) on Saturday November 13, 2010 @07:53PM (#34218336)

    First, you're limiting yourself far too much. This seems like a 'narrow the parameters down so far that when I fail it's not my fault' question.

    A good programmer can pick up any similar language in short order. I won't say it's easy for a C++ programmer to pick up one of the LISP-likes, or vice versa... it's not. But a C++ programmer such as myself has little problem with Java other than the API bloat. I prefer Python to Ruby or Perl but can work in any of those. And PHP is the retarded brother of C, $so $that's $doable $it's $just $syntax $issues.

    You want to limit yourself to web backends? Fine, go Ruby and PHP, but what you really should be doing is just picking a language and learning the /algorithms/ and interfaces to actually solve real problems and learn how to work with third party things like PostgreSQL or memcached. And learn JavaScript. You can't do well on the backend if you don't understand what's going on with the frontend. It's all an ecosystem, and the interactions are far harder than the mere syntax of a language and its APIs.

  • by Billly Gates (198444) on Saturday November 13, 2010 @07:54PM (#34218342) Journal

    Not to sound assholish, but if I were a PHB why would I want to pay you $40,000 a year to make intranet and internet sites when I can go to Vietnam or India and get the same job done for a few hundred bucks? Go to elance.com? They are filled with people paying $100 for formally $15,000 worth of work and people are dying to take these.

    Intuit offers customers a website for only $29.99 and $15 a month. Why hire you or your employer to write it?

    Do what is needed here at home which deals with business processes. Go back to school and get a supply chain management endorsement on your computer science degree and specialize in business process programming. This has been outsourced but is coming back because you can not outsource business processes duh. A business or software analysist is nice if you get an MBA. I would aim for that route. This is the new global economy and management positions are the only jobs left that are white collar and safe.

    • by Bengie (1121981) on Saturday November 13, 2010 @09:09PM (#34218852)

      hah, outsourcing... horrible idea. well, you get what you pay for.

      The job I recently came into had some outsourced internal tools to India. These were tools that could save us time and offer useful functionality, but were not central to our job. Over time, some of these programs became fairly common. Well, these programs had a long turn around on added features and the code was huge. Easy to read, well documented, but lots of it.

      Eventually, with the market down turn, my company dropped the India team. Someone else had to pick up fixing bugs when found and adding features. Eventually that person moved on and the job got passed down to me. I decided to start from scratch because the logic was hard to follow. The code was clean, but the logic was horrible.

      They typically took 2-4 weeks to add features or fix bugs. In 1 week, I flow charted the program and reduced the logic to something more flexible and natural to follow. In 1 month, I had a re-write that I could debug every bug so far in under 15 minutes and added new features in under a day. The code scales crazy better to. A small dataset runs about 250 times faster, a larger dataset runs about 1200 times faster and the memory allocation is about 1/5-1/10 the amount. The server admin likes that the app doesn't bog down the servers anymore. From 45min down to 10 seconds. My code is C# .net and their code was VB .net.

      Well, that's my experience anyway.

  • Chinese (Score:3, Insightful)

    by microbee (682094) on Saturday November 13, 2010 @07:54PM (#34218344)

    You should learn Chinese.

  • by Krishnoid (984597) * on Saturday November 13, 2010 @07:55PM (#34218346) Journal
    One interesting point that stuck with me was that the Python evangelist sitting on that panel suggested learning JavaScript, by pointing out that it runs on something like a billion devices. It can even run on the back-end, using node.js [yahoo.com] -- watch near half-way through to see how it can even provide the same interactivity whether JavaScript is enabled or not, by converting client-side interactivity to server-side POSTs.
  • by hedrick (701605) on Saturday November 13, 2010 @07:56PM (#34218364)
    You might want to spend some time on jQuery and other tools for building more interactive web UI's. While there are promising newer languages for the backend, it's not yet clear that they're going to take over from Java, PHP, and .NET. But the Javascript, client-based side of things is definitely growing and new tools are being developed.
  • D and Scheme (Score:5, Interesting)

    by turgid (580780) on Saturday November 13, 2010 @08:13PM (#34218498) Journal

    I'm a C/C++ developer (mainly C) and I enjoy it. I don't enjoy C++, but I'm paid to use it, so use it I do.

    I've been dabbling with scheme [schemers.org] for fun. It's very different to C, C++ or any of the other languages you mention, but a couple of hours reading about it and playing with it will really open your mind and be a bit of fun.

    By ignoring the .NET languages, you are obviously intelligent and discerning; you don't merely want to follow the heard into a boring, run-of-the-mill job. Good for you. 15 years ago I started to learn Linux when everyone was laughing at it (and me for using it) but I'm in a great position now.

    The other language I'm about to try is D [digitalmars.com] which was deliberately designed to address many of the shortcomings of C++. It's a lot simpler and much more pragmatic that C++, by the looks of it. For a start, it doesn't pretend to be backwards-compatible with C, bit it is ABI-compatible. It has a clean syntax, fast compile times and some interesting concepts borrowed from ruby and python.

    Ruby is the scripting language I'll be looking at next. I learned PERL a while back for work, and it is a nightmare, but a very useful one. Ruby is much less of a nightmare and much better than PERL at what PERL was intended (notice I didn't say designed) for.

    Whatever language you choose next, pick an interesting one... How about creating your own for a challenge?

  • by gestalt_n_pepper (991155) on Saturday November 13, 2010 @08:15PM (#34218524)

    Seriously. My life is made hell by one stupid microsoft idiocy after another day after day (I manage a server farm of Microsoft VMs). The fact that they treat their development community like crap (Classic VB, f'rinstance) and abandon products with... abandon doesn't help much.

    Despite this, that's where the jobs are and all the crabbing of myself and the development community hasn't changed that. I hated MS in 2000. I hate it in 2010. I expect to hate it in 2020. And it's not going anywhere. Profits are up. Like the air, it exists. And I'll still be cranking out C#, ASP.net, or VB.net or whatever is called for.

  • Numbers of jobs. (Score:4, Informative)

    by Rufty (37223) on Saturday November 13, 2010 @08:23PM (#34218580) Homepage
    Quick, crude search on Monster [monster.co.uk].
    • 3727 Web
    • 2805 c
    • 2483 sql
    • 1441 Windows
    • 1115 .NET
    • 1069 c#
    • 1061 java
    • 985 javascript
    • 957 ASP
    • 812 linux
    • 745 C++
    • 666 unix(!)
    • 571 php
    • 426 flash
    • 365 embedded
    • 261 perl
    • 224 apache
    • 216 ARM
    • 193 python
    • 100 matlab
    • 65 ruby
    • 34 rails
    • 16 cobol
    • 16 fortran
    • 0 lisp

    So, don't bother with lisp. .NET is popular, but not enough to get over the M$ factor. And unix at 666 W.T.F.??? Looks like C and SQL, same as last decade!

    • Re: (Score:3, Informative)

      Dice has a lot more programming listings than Monster.

      Java - 14824 .Net OR C# - 10496
      C++ - 5789
      Perl - 4664
      PHP - 2499
      Python - 2196
      Objective C - 1267
      Ruby - 1169
      Cobol - 638

      The fact is that regardless of what Oracle is doing the momentum behind Java is pretty strong and will take a lot to derail. It's also interesting that the C family of languages is utterly dominant.

      A good programmer will pick up multiple language expertise. If I was looking for a job I'd learn Java, C# and C++. I understand your aversion to

  • by CFD339 (795926) <andrewp.thenorth@com> on Saturday November 13, 2010 @08:32PM (#34218636) Homepage Journal

              If you want to be another common fish in a huge ocean, learn C# and sharepoint development. If you want to be hip and cool, but are willing to compete with low price coders from developing countries, go with LAMP development. If you want to be a big fish in a small pond and can self promote and communicate well enough to pull it off, pick something painful but useful to corporations ( Rational / Websphere / Oracle / Siebel / SAP development ).

    I do most of my client based work using Lotus Domino as a back end server and data platform. The development IDE is freaking horrible compared to visual studio or pure eclipse. The documentation is poor at best. There are a lot of workarounds you have to know. In many respects, it's a terrible thing to have to learn. HOWEVER, I've been doing it for a long time and am very very good at it. I'm never short of work, and I can accomplish things with it for my clients in less time and at less cost than any other platform I've ever found. I also use visual studio to build desktop applications, c++ to write custom modules for my Asterisk servers, javascript for web front end stuff, bash shell scripts for linux back end stuff, etc etc etc.... Right tool for the job and all that.

                  I know by writing that I'll draw a bunch of crap from cool kids that hate the platform I use to make a living, but I'm willing to bet most of them would trade annual incomes with me in a heartbeat if I gave them the chance. I've managed to have my own business for close to 18 years by focusing on what works rather than what's cool -- and by never letting myself be just another commodity programmer among a giant pool of people with similar (and frankly better) skills.

  • Lots of Android jobs (Score:3, Interesting)

    by OrangeTide (124937) on Saturday November 13, 2010 @09:52PM (#34219146) Homepage Journal

    Lots of jobs doing Android work, so Java will still be around for a while.
    And if Java does go away, those already in the Android industry will just learn whatever it replaces it (Go or who knows). The language syntax would change for them, but the overall system architecture wouldn't be much different.
    And there are a fair number of Android C programming jobs, if you get in on the device side working for one of the phone manufacturers (I think everyone but Nokia) or a mobile chips vendor (TI, Qualcomm, Freescale, NVIDIA or possibly Marvell). Those companies have a presence on the west coast (California and Oregon mostly), Texas and a few of them on the east coast as well. And there are areas for Android development outside of the US too, too many to name.

  • Mandarin (Score:3, Funny)

    by grikdog (697841) on Saturday November 13, 2010 @10:02PM (#34219204) Homepage
    Of course.
  • by aristotle-dude (626586) on Saturday November 13, 2010 @10:09PM (#34219238)

    I don't see why you should worry about Java given that Apple and Oracle have both committed to the OpenJDK initiative.

    http://www.apple.com/pr/library/2010/11/12openjdk.html [apple.com]

    So this means that both cross-platform java desktop apps and web services are safe.

    I have to ask though, why the avoidance of .NET? If you are "working" for a living then you should be willing to work with whatever tools/languages are required. Leave zealotry at home and don't bring it into the workplace.

  • None... (Score:3, Informative)

    by billybob_jcv (967047) on Saturday November 13, 2010 @10:30PM (#34219368)
    You are thinking like a 20-something techie. Start thinking like a 40-something with kids. Learn how to be a leader, how to manage projects & customers and how the business operates. Look around your office and find the 45 year old developer grinding away in the corner - then ask yourself: "Do I want to be that guy in 20 years?"
  • by melted (227442) on Sunday November 14, 2010 @01:12AM (#34220054) Homepage

    Where I work, I currently do one interview a week. I only said "hire" twice in the last year or so. Truth is, 95% of people I have interviewed so far couldn't write decent code on the whiteboard if their life depended on it, in _any_ language. Your fear is misdirected. No decent employer gives a shit about languages in a job interview. They care about whether you can write the fucking code, in the laguage of your choosing, and whether you have experience in the areas you're applying for. I.e. if you bill yourself as a backend dude, they'll want to see if you know e.g. distributed systems, and have the backend mindset. If you're a frontend guy, that's another set of skills entirely, but still very little (if anything) depends on the language. You can learn the syntax in two days. You can learn the libraries and language-specific idioms / patterns in 2-3 months (if you're proficient in at least a couple other languages). It's not that hard.

    And if the employer makes the assumption right away that you _can't_ learn e.g. Ruby on Rails, to hell with them. You wouldn't like working there anyway.

A CONS is an object which cares. -- Bernie Greenberg.

Working...