编程语言到底选择哪种要好

介绍 (Introduction)

Picking the right programming language for you to learn next is always a tricky choice. Whether you are a newbie or an experienced developer, there are a lot of languages out there and it is hard to grasp which one may be worth your time.

选择正确的编程语言供您下一步学习总是一个棘手的选择。 无论您是新手还是经验丰富的开发人员,都有许多语言供您选择,很难把握哪种语言值得您花时间。

Therefore, in this post we will look at some facts and figures from Stackoverflow’s 2017 Annual Developer Survey to support your decision process.

因此,在本文中,我们将查看Stackoverflow的2017年度开发人员调查中的一些事实和数据,以支持您的决策过程。

The survey data covers 64,000 reviews from 213 countries and territories. It aims to understand multiple aspects of jobs related to software development and data analytics. There were more than 150 questions as a part of the survey, including:

调查数据涵盖来自213个国家和地区的64,000条评论。 它旨在了解与软件开发和数据分析相关的工作的多个方面。 作为调查的一部分,有150多个问题,包括:

Which of the following languages have you done extensive development work in over the past year? (HaveWorkedLanguage)

在过去的一年中,您从事以下哪种语言的广泛开发工作? (已工作的语言)

Which of the following languages do you want to work in over the next year? (WantWorkLanguage)

您想在明年使用以下哪种语言? (工作语言)

Overall, how satisfied are you with your current job? (JobSatisfaction)

总体而言,您对目前的工作满意吗? (工作满意度)

What is your current annual base salary? (Salary)

您目前的基本年薪是多少? (薪水)

Along 3 main questions we will analyze the answers to the questions above to find the answer which language you should pick.

沿着3个主要问题,我们将分析上述问题的答案,以找到您应该选择哪种语言的答案。

第一部分:哪种语言的工作满意度最高,并且获得的薪水最高? (Part I: Which Language has the highest Job Satisfaction and is paid best?)

Naturally, the first thing you may ask yourself is:

自然,您可能会问自己的第一件事是:

“Which language will provide me with the most happiness (or satisfaction or fun or excitement …) ?”

“哪种语言会带给我最大的幸福(或满足,乐趣或兴奋……)?”

To answer that we can take the data about Job Satisfaction of developers from the survey and group that score (bigger=more satisfied) by the languages developers are working with.

要回答这个问题,我们可以从调查和小组中获得有关开发人员的工作满意度的数据,这些数据由开发人员正在使用的语言评分(更大=更满意)。

As happiness does not pay bills, maybe you did not ask yourself about happiness first but about the expected salary. So the other interesting might be:

由于幸福不支付账单,也许您不是首先问自己有关幸福的问题,而是有关期望薪水的问题。 因此,另一个有趣的可能是:

“Which language will provide me with the highest salary?”

“哪种语言可以为我提供最高的薪水?”

To answer that we can take the data about Salary of developers from the survey and also group it by the languages developers are working with.

要回答这个问题,我们可以从调查中获取有关开发人员薪水的数据,并按开发人员使用的语言对其进行分组。

The bar chart above scales all values from 0 to 1 where 0 is the smallest occurring value and 1 the biggest. Moreover, only languages which are known by at least 4% of the developers were considered for this chart.

上面的条形图将所有值从0缩放到1,其中0是最小的出现值,而1是最大的出现值。 此外,此图表仅考虑至少4%的开发人员已知的语言。

As you can see, Objective-C seems to satisfy developers very well and is not paid badly. Equally is Go very well paid and seems to satisfy the developers. Surprising to me are the very low placements of Java and SQL since they are the 3rd and 2nd most known languages of the developers who answered the survey.

如您所见,Objective-C似乎很好地满足了开发人员的需求,并且收入不菲。 同样,Go的报酬非常高,似乎令开发人员满意。 令我惊讶的是,Java和SQL的排名非常低,因为它们是回答调查的开发人员中第三,第二最知名的语言。

If we disregard the 4%-limit the chart becomes less concisely. But it also shows us that developers who know some niche languages seem to be pretty satisfied and well paid, i.e. Smalltalk, CoffeeScript, Hack, Swift, Elixir, Scala and Clojure.

如果我们忽略4%的限制,图表将变得不太简洁。 但是,这也向我们表明,了解某些特定语言的开发人员似乎非常满意且报酬丰厚,例如Smalltalk,CoffeeScript,Hack,Swift,Elixir,Scala和Clojure。

第二部分:哪种语言有光明的未来? (Part II: Which Language has a promising future?)

The analysis in Part I was a snapshot of the current situation in 2017. When you decide to learn a new language you want to make sure it has an active community, it will still be used in the future and in best case even continues to grow.

第一部分中的分析是2017年当前情况的快照。当您决定学习一种新语言时,要确保它拥有一个活跃的社区,将来仍会使用它,并且在最佳情况下甚至会持续增长。 。

To look into that, first let us look at how well languages are known by developers in 2017 (languages which are known by less than 4% were disregarded).

为此,首先让我们看一下开发人员在2017年对语言的了解程度(忽略少于4%的语言)。

As you can see, the most popular languages are not the ones that we saw at the top of the satisfaction and salary chart before. Especially the very popular Java and SQL did not seem to be very satisfying or well paid. The best compromises between popularity, satisfaction and salary may be JavaScript, Python, TypeScript, Objective C, Ruby and Swift.

如您所见,最受欢迎的语言不是我们之前在满意度和薪资表顶部看到的语言。 特别是非常流行的Java和SQL似乎并不令人满意或报酬不高。 受欢迎程度,满意度和薪水之间的最佳折衷方案可能是JavaScript,Python,TypeScript,Objective C,Ruby和Swift。

Next let us look at which language developers want to work with next year (languages with values of less 5% were disregarded).

接下来,让我们看看明年要使用哪种语言开发人员(价值低于5%的语言将被忽略)。

JavaScript, SQL, C# and Java are still ranked highly but the situation changes drastically if we compare the Have Worked with with the Want work with numbers.

JavaScript,SQL,C#和Java仍然排名很高,但是如果我们将“ 已工作”与“ 希望工作”与数字进行比较,情况将发生巨大变化。

Except for Python all of the 6 most popular languages right now are expected to see a massive decrease in usage if the developers could decide it themselves. Especially SQL, JavaScript, PHP and Java would lose more than 10% of their developers. The most promising growth seem to have Go, TypeScript, Swift, Rust and the already very popular Python.

如果开发人员可以自行决定,除了Python外,目前预计所有6种最流行的语言的使用率都将大幅下降。 特别是SQL,JavaScript,PHP和Java将会失去超过10%的开发人员。 最有希望的增长似乎是Go,TypeScript,Swift,Rust和已经非常流行的Python。

第三部分:现实检查-语言实际上是如何增长的? (Part III: Reality check — How did languages actually grow?)

With the results from Part I and II the most promising languages seem to be Python, Go, TypeScript and Swift as all of them are not unsatisfying or badly paid, have at least some popularity (Go 4% to Python 31%) and are expected to grow the next year.

根据第I部分和第II部分的结果,最有前途的语言似乎是Python,Go,TypeScript和Swift,因为它们都不尽如人意或报酬不高,至少具有一定的知名度(Go 4%到Python 31%)并且可以预期明年增长。

Due to the data of 2018 being available to us already let us look at the actual development of the use of those four languages and check whether they would have been a good choice in terms of growing popularity. So let us compare the Want work with data from 2017 with the Have Worked with data from 2018.

由于我们已经掌握了2018年的数据,因此让我们看一下这四种语言使用的实际发展情况,并检查它们是否会成为越来越受欢迎的好选择。 因此,让我们比较2018数据曾为 2017与有无数据旺旺工作

As you can see, this chart almost looks like a mirrored version of the former horizontal bar chart. This means that most languages expected to grow did not grow as much as expected and most languages expected to shrink did not shrink as much as expected. Actually SQL, JavaScript and Java even saw the biggest increase in usage besides TypeScript and Python although based on the Want work with data from 2017 we expected a decrease of more than 10%.

如您所见,此图表几乎看起来像以前的水平条形图的镜像版本。 这意味着大多数预期增长的语言没有达到预期的增长,大多数预期萎缩的语言没有达到预期的收缩。 实际上,除TypeScript和Python之外,SQL,JavaScript和Java的使用量甚至出现了最大的增长,尽管基于旺旺对2017年以来的数据的研究,我们预计下降的幅度将超过10%。

What we can learn from this is that we have to view the Want work with data very carefully since it is based on what developers would like to do and not what they actually (have to) do. Nevertheless, the promising Python and TypeScript did exceed their already high expectations for 2018 in contrast to Go and Swift.

从中我们可以学到的是,我们必须非常仔细地查看旺旺的数据,因为它基于开发人员想要做的事情,而不是他们实际(必须要做)的事情。 尽管如此,与Go和Swift相比,有希望的Python和TypeScript确实超出了他们对2018年已经很高的期望。

结论 (Conclusion)

In this article, we took a look at different factors, based on Stackoverflow’s 2017 Annual Developer Survey, that may influence your choice on which programming language would be worth to learn next.

在本文中,我们根据Stackoverflow的2017年度开发人员调查研究了不同的因素,这些因素可能会影响您选择下一步值得学习的编程语言的选择。

  1. We looked at two main factors relevant for people’s life: How satisfied are they with their job? and: How much do they get paid? We saw that some of the most popular languages like SQL and Java do not seem to provide high satisfaction or high salary but some more niche languages seem to do.

    我们研究了与人们生活相关的两个主要因素:他们对工作的满意度如何? 并且:他们得到多少报酬? 我们看到, 某些最流行的语言(例如SQL和Java)似乎并不能提供很高的满意度或高薪,但是似乎有些更合适的语言可以。

  2. We then tried to find out, which languages seem to have a promising future. To do that we analyzed the Have Worked with data and the Want work with data and showed that Python, Go, TypeScript and Swift had at least some popularity already and were expected to grow strongly the next year.

    然后,我们试图找出哪种语言似乎有前途。 为此,我们分析了“ 已处理数据”和“ 旺旺数据”,并表明Python,Go,TypeScript和Swift已经至少具有一定的知名度,并有望在明年强劲增长。

  3. In Part III we took the Have Worked with data from 2018 and compared it with our predictions based on the Want work with data from 2017. We saw that a lot of languages did not meet their expectations but Python and TypeScript did. Noticeable was also that very popular languages like SQL, Java and JavaScript which were expected to shrink in usage in contrast even grew further.

    在第三部分中,我们采用了2018年的数据进行过工作,并将其与基于2017年的数据进行旺旺工作的预测进行了比较。 我们看到许多语言没有达到他们的期望,但Python和TypeScript满足了。 还值得注意的是,与之相比,SQL,Java和JavaScript等非常流行的语言的使用率预计将下降,甚至还会进一步增长。

The findings here are observational, not the result of a formal study. Part III showed us that it is really hard to predict how the usage of programming languages will develop. Nevertheless, with Python and TypeScript we could find some very promising options. But of course there is no general definite answer to:

这里的发现是观察性的,不是正式研究的结果。 第三部分告诉我们,很难预测编程语言的用法将如何发展。 但是,使用Python和TypeScript,我们可以找到一些非常有前途的选项。 但是,当然,没有以下任何一种通用的明确答案:

Which Programming Language should YOU pick?

您应该选择哪种编程语言?

since it depends on so much more (personal) factors which could not be analyzed here.

因为它取决于更多(个人)因素,因此无法在此处进行分析。

To see more about this analysis, see the link to my Github available here.

要了解更多关于此分析,请参阅链接到我的Github上可用这里 。

翻译自: https://medium.com/@thorbeno/which-programming-language-should-you-pick-19a0dd17c32b

编程语言到底选择哪种要好


http://www.taodudu.cc/news/show-3336254.html

相关文章:

  • 风变编程第18关 编程思维_动态编程变得容易
  • C语言基础学习Day12(完结篇)
  • CUDA C 编程指南
  • 罗塞塔语言包_罗塞塔代码(Rosetta Code)—揭开为世界提供动力的编程语言的奥秘
  • 几种XMR币对比
  • 门罗币主要算法技术
  • 为什么隐私币将统治下一个牛市?
  • 整币兑零
  • 提币功能的实现
  • 什么是C币
  • pancakeswap 抢币
  • 数字人民币的运行模式和技术架构
  • 区块链如何保证使用安全
  • Cesium光柱椎体
  • Cesium|xt3d 卫星视椎体(四棱锥体)
  • Cesium|xt3d 光柱椎体(粒子效果)
  • Cesium|xt3d旋转椎体
  • DEEP SPINE论文笔记-椎体、椎间盘神经网络识别
  • HHSTU1050型货车转向系及前轴设计(说明书+任务书+CAD图纸)
  • 基于 React hooks + Typescript + Cesium 绘制四棱锥(视椎体)
  • Unity 中的 3D 数学学习笔记——认识坐标系及坐标系之间的转换
  • 基于 React hooks + Typescript + Cesium 实现视频融合功能
  • VTK系列2_椎体的显示及旋转控制
  • igrt与imrt放疗哪个好_精确放疗为什么要选择影像引导放疗(IGRT)?
  • osg中NDC坐标转换为世界坐标
  • OsgEarth —— 笔记3 - 为地球增加国界省界线
  • Cesium--让椎体模型旋转
  • 高级Java工程师年薪有多少 需要具备哪些能力
  • 想成为高级java工程师必须学习的三个技术!
  • 几年经验才能算java高级,快来看鸭~

编程语言到底选择哪种要好_您应该选择哪种编程语言?相关推荐

  1. table表头固定4种方法_在常见的3种工资条场景中,教你4种批量打印工资条的方法...

    私信回复关键词[福利]~ 获取丰富办公资源,助你高效办公早下班! 打印工资条估计是财务老师的痛,要把一行行的数据,变成一条条的工资条. 数据很多,表头很复杂. 一个个复制粘贴?那是不可能的! 那怎么办 ...

  2. jsp是在html里面嵌入哪种代码?_奶茶店铺用哪种制冰机才合适?

    像在这样炎炎的夏日,温度在直线飙升,茶饮市场最近可谓是异常火,店铺人流量一旦增多,还能保证每一杯饮品的质量吗?还能保证门店的制冰机产量能够跟上需求节奏吗? 奶茶店铺用哪种制冰机才合适?今天,腾工智能商 ...

  3. 选择排序稳定吗_最常见的四种数据结构排序算法你不知道?年末怎么跳槽涨薪...

    前言 在学习数据结构的时候必然接触过排序算法,而且在日常开发中相信排序算法用得也比较多.而排序算法众多,各个效率又不同,难以记住.小编今天会介绍一些常用排序算法的特点和实现,对比不同排序算法的效率. ...

  4. 少儿编程几种语言_您使用了几种编程语言?

    少儿编程几种语言 机器说一种语言,但是人类却说多种不同的语言...编程语言,从Python到JavaScript等等. 一切始于Grace Hopper. "该语言中最具破坏力的短语是: 一 ...

  5. mysql 的几种缓存_数据库缓存的几种方式

    数据库缓存的几种方式 引入缓存可以提高性能,但是数据会存在两份,一份在数据库中,一份在缓存中,如果更新其中任何一份会引起数据的不一致,数据的完整性被破坏了,因此,同步数据库和缓存的这两份数据就非常重要 ...

  6. 依赖注入的三种方式_一起学Spring之三种注入方式及集合类型注入

    本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正. 概述 Spring的注入方式一共有三种,如下所示: 通过set属性进行注入,即通过 ...

  7. 超链接一般有两种表现形式_超链接有哪几种类型,各有什么作用

    展开全部 分类: 1.按照连接路径的不同,网页中超62616964757a686964616fe4b893e5b19e31333431353364链接一般分为以下3种类型:内部链接,锚点链接和外部链接 ...

  8. 动词ing形式的5种用法_动词ing的几种常见用法

    龙源期刊网 http://www.qikan.com.cn 动词 ing 的几种常见用法 作者:张爱娟 来源:<中学生英语 · 阅读与写作> 2016 年第 10 期 为了让同学们更好掌握 ...

  9. 负载均衡的几种方式_负载均衡的几种方式

    负载均衡其实就是任务的分发,使得任务能按照你的预想分配到各个计算单元上,它能提高服务对外的性能,避免单点失效场景.这里要注意的一点是虽说叫负载均衡,但是有时候我们的分配算法就是不是均衡的. 比如配个n ...

最新文章

  1. 一键ghost奥运版_超详细的纯净版windows系统重装示例
  2. jquery 获得鼠标指针 X/Y 值
  3. 【渗透测试】一次授权的渗透测试——建议收藏
  4. Webshell免杀绕过waf
  5. 微软修复工具_微软正在推出更新以修复此前被发现的Windows 10 SFC问题
  6. export和export default的区别
  7. 如何在K8S上玩转TensorFlow ?
  8. spring boot: java @interface注解
  9. Apache Thrift 环境配置
  10. 12x12怎么速算_12x12怎么速算_12x12怎样巧算
  11. Cox回归和HR值理解要点难点,实例讲解
  12. js中 new,self和this的用法解释
  13. win10命令提示符怎么打开_技巧,win10蓝屏SYSTEM_PTE_MISUSE怎么解决
  14. Idea设置全白色 背景
  15. 深度学习——知识点总结3(损失函数Loss)
  16. 这样吃橙子才最健康,90%的人不知道的秘密!
  17. 基于深度学习的x射线图像骨龄自动特征提取
  18. 腾讯测试儿童锁模式:13周岁以下玩游戏须家长开锁
  19. 慕课-初识 学习ts笔记
  20. ColdFusion是什么

热门文章

  1. BroadCast Receiver(广播)详解
  2. Python带你制作一个属于自己的多功能音乐播放器
  3. OCR营业执照识别接口
  4. unity3d 导入 火炬之光 场景 模型和布局
  5. 高手都是通过这9种方法找到了“底层算法”
  6. 基于javaweb的机械零件管理系统
  7. ios dat 文件读写_Xilisoft iPad Magic Platinum for Mac(ios设备文件传输和转换工具)_资源共享论坛...
  8. mapboxGL轨迹展示与播放
  9. VFP6.0生成安装文件后显示“生成CAB文件时出错,错误号码:3”
  10. Java_公司与薪水(抽象类举例)