2017年最应该学习的编程语言是php?
许多开发者都会定期审视自己的技能树和职业选择,如今有不少“最佳编程语言”评选数据来源,这是否为我们提供了参考?
国外最喜欢做调查研究的了,我们来看看Stack Overflow 开发者调查,超过173个国家的56,000名开发者在2016年底参与了Stack Overflow发布的调查,其中
最常使用的技术语言:
JavaScript — 55.4%
SQL — 49.1%
Java — 36.3%
C# — 30.9%
PHP — 25.9%
Python — 24.9%
C++ — 19.4%
AngularJS — 17.9% (JavaScript framework)
Node.js — 17.2% (server-side JavaScript)
C — 15.5%
开发者最喜欢的语言是:
Rust — 79.1%
Swift — 72.1%
F# — 70.7%
Scala — 69.4%
Go — 68.7%
Clojure — 66.7%
React — 66.0%
Haskell — 64.7%
Python — 62.5%
C# — 62.0%
开发者最恐惧的语言:
Visual Basic — 79.5%
WordPress — 74.3%
Matlab — 72.8%
Sharepoint — 72.1%
CoffeeScript — 71.0%
LAMP — 68.7% (Linux, Apache, MySQL, PHP)
Cordova — 66.9%
Salesforce — 65.4%
Perl — 61.3%
SQL — 60.3%
开发者们有兴趣学习的技术方向:
Android — 15.8%
Node.js — 14.8%
AngularJS — 13.4%
Python — 13.3%
JavaScript — 11.9%
React — 9.2%
Swift — 8.7%
MongoDB — 8.1%
Arduino / Raspberry Pi — 8.0%
C++ — 8.0%
Stack Overflow最常被提问、讨论和投票的技术方向:
JavaScript — 16.6%
Java — 14.7%
Android — 11.5%
Python — 11.4%
C# — 11.1%
PHP — 8.6%
jQuery — 6.7%
C++ — 6.6%
HTML — 6.6%
iOS — 6.3%
PYPL (流行编程语言指数)编程语言相关教程被搜索的频率占比:
Java — 23.1%
Python — 14.4%
PHP — 9.7%
C# — 8.4%
JavaScript — 7.7%
C — 7.1%
C++ — 7.0%
Objective—C — 4.4%
R — 3.4%
Swift — 3.0%
TIOBE Index 根据搜索引擎数据评选最佳编程语言:
Java — 17.3%
C — 9.3%
C++ — 6.3%
C# — 4.0%
Python — 3.5%
VisualBasic.NET — 3.0%
JavaScript — 2.9%
Perl — 2.7%
Assembly Language — 2.7%
PHP — 2.6%
2016年上升最快的是Go语言,从榜上无名到13位(2.3%)。Java虽然以近C语言两倍的差距占据榜首,2016年还是下降了4.19%。
调查告诉了我们什么?
事实上没有什么。
数据结果看着有趣,但总是矛盾的,数据收集的方式也总是受到局限:
搜索引擎数据对于老旧的,问题频发的语言以及普及更广的语言更有利
在线调查会受到特殊受众的局限,Stack Overflow的开发者多是相对更在行的程序员,更容易在流行语言和框架中提出问题。
历史的使用模式对于未来趋势的映射越来越少,Node.js在十年前还不存在,20年前,Perl和C语言还是服务器端开发最常用的语言选择。
举个例子,所有的调查排行中,Java的排名都高于PHP,但Java通常被应用于教学和开发控制线程、桌面和原生安卓应用。而PHP被用于82.4%的网页服务器,Java只有2.7%。
数据以外,其他编程者的建议
许多“最佳编程语言”文章吸引了大量的关注和评论,每个人都有自己的观点。然而,没有一个开发者会对每种语言都有开发经验(尽管有人会多种语言)。
每个人给出的选择都是有偏见的。人们倾向站队自己正在使用的语言,不然,他们自己就得做出改变。
他人的开发经验是很有用的信息,但是也许你并没有与ta有相同的需求,或者他的那套经验对你而言并不适用。
并没有什么“最佳语言”
如果你学会了驾驶,那么这项技能可以用来开巴士、卡车,或者拖拉机:)相似的,计算机语言其实就是在应用 input、output、变量、循环、条件和函数。学会了语言基础,学习另一种语言就会很容易,最大的不同仅仅是语法的变化。
你是在问right question么?
那些富有经验的开发者很清楚自己的处境,他们知道自己的技能之间的断层:
如果你花费很长时间人工操作表单数据,那就投入精力来学习宏语言;
如果你开发了网页但对其布局不甚满意,很明显,提高你的CSS知识是你下一步要做的事;
如果你正在开发一个服务器应用需要存储数据,学习SQL将是一个合理的选择;
那些提问“我应该学习什么语言?”的人大多刚刚接触编程开发这个行业,这种空泛的提问就好比:我应该穿什么衣服?如果不知道你的年龄、性别、身型、品味、偏好、国家、当地天气、风俗、场合……没有人能够给出答案。
想得到学习语言建议,确认几个问题:
你是否热爱编程?
你想要解决什么问题?
你可以使用的硬件和系统?
你将投入多少时间和学习机会来对待这门语言?
Keep Learning
尽管给出建议并不一定适用于你的情况,但还是提供一些tips给编程学习者:
1. 如果你大部分时间都在做前端,尝试一些后端内容。挑选PHP、Node.js、Ruby里你感兴趣的一种,再把SQL加入你的技能树里;
2. 如果你是后端开发,学学HTML、CSS和JavaScript。浏览器接口和数据表单例如JSON都是很有帮助的。
3. 框架不是本质,基础语言的学习才是。无论圈子里刮起怎样的风潮、流行什么工具,知识是无价的。
4. 即便你并不打算成为全栈,至少,多了解和掌握几门语言,这能够帮助你理解他人的工作,对于项目和团队很有帮助。
5. Best of luck,停止拖延,别再纠结应该学习哪门语言:Just start coding!
初入Web开发,php、python和ruby应该学哪个?