• What is the Best Programming Language to Learn in 2014?


    It’s been a year since I revealed the best languages to learn in 2013. Once again, I’ve examined the data produced by Jobs Tractor who analyzed more than 45,000 developer jobs advertised on Twitter during the past twelve months. The results:

    Java 8,731
    PHP 8,238
    Objective-C 5,859
    Java for Android 4,312
    SQL 3,553
    JavaScript 3,154
    Ruby 2,937
    C# 2,549
    Python 1,587
    C++ 1,273
    C 685
    ActionScript 674
    ASP.net 492
    Perl 224
    Scala 143
    Visual Basic 92

    technology job advertisements

    The main changes since last year…

    • PHP and Java have switched places but both remain in high demand.
    • Java for Android has overtaken SQL and is closing in on Objective-C.
    • JavaScript has overtaken Ruby.
    • Python has risen two places.
    • ActionScript has dropped two places.

    Take this survey with a large pinch of salt. Then add pepper, ketchup and numerous other condiments. I’m not convinced Twitter is a reliable source of job-related data and regional differences can skew results.

    A recent survey by the online course provider Lynda.com for Mashable produced the following list of languages in order of popularity:

    1. Java
    2. C
    3. C++
    4. C#
    5. Objective-C
    6. PHP
    7. Python
    8. Ruby
    9. JavaScript
    10. SQL

    The usual suspects are there but, again, results will be biased by the topics offered and the site’s target audience (primarily newer developers).

    Industry analyst RedMonk has taken a different approach and determined language popularity by examining the frequency of projects on GitHub and questions on StackOverflow:

    1. JavaScript
    2. Java
    3. PHP
    4. C#
    5. Python
    6. C++
    7. Ruby
    8. C
    9. Objective-C
    10. CSS

    Redmonk Programming Language Rankings

    Don’t take this too literally; a language could score higher if it’s more problematic than others. I’m also surprised to find CSS on the list — although due to pre-processors like Sass, LESS and Stylus, CSS tends to be viewed more as a programming language nowadays. That said, if CSS is considered a programming language, where are HTML and SQL?

    I Want Advice — Not Statistics!

    Let’s make one point crystal-clear:

    Never use statistics as the sole basis for learning a language.

    Few developers start programming for financial gain. There are far easier ways to make money … become a “digital marketing strategist” or “SEO specialist” and hone those board-level BS monologues.(Apologies to any conscientious “specialists” out there — I’m sure you exist, I’ve just not met you yet.)

    Choosing a popular language also pits you against thousands of others. Learning Fortran won’t be trendy but you’ll find lucrative work maintaining decades-old legacy systems no other developer wants to touch. Fortunately, we can make a few general observations that may sway your language-learning objectives.

    Technologies Rise and Fall

    All languages ascend and descend in popularity and demand but timescales will differ. Consider ActionScript. Flash development is in decline and I suspect a large chunk of ActionScript projects are in maintenance mode. The same can be said for Perl, COBOL and Visual Basic 6, although they’ve enjoyed a longer life.

    If you’re particularly risk-averse, you may want to avoid languages with limited platform support such as ActionScript, VB6 and Objective-C. However, while Objective-C is primarily used on Apple-based OSes and APIs, the platform’s ascendancy continues and there’s no shortage of app-development jobs. For now.

    Choices for Existing Developers

    If you’ve mastered a language or two, the choice is far simpler: pick something that interests you (intellectually or financially). Programming skills are transferable and the learning curve will be shallower when learning a new language compared to when you first started.

    There may be some obvious opportunities, for example:

    • ActionScript is based on ECMAScript (which is implemented in browsers as JavaScript); Flash developers will thus have a logical progression to HTML5 technologies.
    • C++, Java, C#, Objective-C and even PHP are conceptually similar, so you may be able to switch between them with relative ease.
    • If you’re developing Windows desktop applications using VisualStudio, your .NET knowledge will be applicable to Microsoft web server platforms.

    Despite this, don’t be afraid to learn something new. JavaScript looks similar to Java and other C-like languages but many developers initially struggle with it because it’s fundamentally different. Persevere and you’ll gradually appreciate what JavaScript offers.

    Choices for New Developers

    Those fortunate enough to have started in the days of 8-bit home computing had few options and learned their craft with something like BASIC before progressing to C or assembly when they felt confident to do so. The dawn of the web was similarly simplistic; you learned HTML and perhaps a server-side language such as Perl. Skills could be gained incrementally as HTML evolved and technologies such as CSS, JavaScript, PHP, ASP and .NET were introduced.

    I don’t envy those new to development in 2014; the choice is bewildering. Where do you start?

    Tentatively, I suggest JavaScript. The language is available everywhere, growing rapidly and offers virtually unlimited online resources. Learning JavaScript first may also help you avoid some of the confusion experienced by developers coming from other languages. My only hesitation is the hostility of learning it within the browser environment. JavaScript can require additional knowledge of client-server architecture, HTML, CSS and cross-browser quirks — even if you’re primarily creating Node.js server-side code.

    Alternatively, you could consider a language such as Ruby or Python which are relatively quick to learn and less encumbered by legacy and environmental issues. However, they offer fewer resources and deviate from C-based syntaxes which may be your ultimate goal.

    The best advice I can offer: stop taking advice from articles like this!

    Identify a problem and solve it with the software tools you have. Perhaps that’s automating a task usingAutohotkey or writing an expenses calculation macro in a spreadsheet. That knowledge will provide the impetus to progress to bigger and better programming tasks.

    Question: If you recently started programming, what language did you choose? Did it help or hinder your learning? Would you recommend it to new developers?

  • 相关阅读:
    BZOJ 3252: 攻略(思路题)
    BZOJ 2821: 作诗(Poetize)(分块)
    BZOJ 2597: [Wc2007]剪刀石头布(费用流)
    BZOJ 1565: [NOI2009]植物大战僵尸(网络流+缩点)
    BZOJ 1927: [Sdoi2010]星际竞速(费用流)
    BZOJ 5120: [2017国家集训队测试]无限之环(费用流)
    洛谷 5205 【模板】多项式开根
    LOJ 2737 「JOISC 2016 Day 3」电报 ——思路+基环树DP
    LOJ 2736 「JOISC 2016 Day 3」回转寿司 ——堆+分块思路
    bzoj 2216 [Poi2011]Lightning Conductor——单调队列+二分处理决策单调性
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3570561.html
Copyright © 2020-2023  润新知