在“问答
我适合做软件开发吗”一文中,提到了“我是否适合做软件开发”和“怎样开始行动”两个问题,这次我们来回答这个问题:我应该学哪种语言?
编程语言流行度在说什么TIOBE编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。TIOBE的排名很值得参考,但请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好。下面是年TIOBE的编程语言排行:
StackOverflow是最火、最专业、最有效的IT技术问答网站,很多机构或个人通过它的标签来分析编程语言的流行趋势,也具有很强的可参考性。
StackOverflow年的开发者调查结果中 的技术如下:
最被喜爱的语言如下:
Github是全球最火 的开源代码托管站点和社区,下图是其年8月份的数据,包含了最热的10大编程语言,以及年到年热门语言的变化趋势:
关于编程语言和技术的流行度排名有很多很多,它们在说什么?我们能否根据它们来选择学习哪门语言?
编程语言的流行度说明了:
哪些语言当下一段时间内比较流行
比较近的将来(~3年)哪些语言比较有生命力
语言的就业难度
所以,选择语言时,编程语言排行榜有一定参考价值。编程语言的热门程度很大程度上决定了你能够进入什么样的公司,获得什么样的项目。
选择语言时你在选择什么对还没入行的人来说,要选择一门编程语言,确实要考虑很多因素。在这里,我把我知道的列出来,供初学者参考。
1.技术图谱当你选择一门编程语言时,你不仅仅选择了语言本身,还有围绕着这门语言产生了各种各样的应用框架。比如你选择C++,将来就可能接触到这些框架:
Boost,Qt,Silicon,tufao,TreeFrog,WTL,STL,libev,Cocosd-x,Dlib,Ultimate++,Asio,TinyXML,libxml++,CEGUI、FLTK、wxWidgets、Ogre3D、Cairo、Skia、OpenCV、CxImage、Json++、Json11、CppUnit、OpenSSL、Crypto++、C++React、OpenCL、OpenAL、Vorbis、Memcached、libcurl、SQLite……
除了直接与你所选语言相关的技术框架,还有一些可能经常会与你所用语言搭配的其它语言,比如你选择C++,那Java、C、Python、JavaScript就是与它搭配使用比较频繁的语言。像Node.js,就是混合体了;像JNI,也在Java和C之间搭建了桥梁……
你最终会根据你选择的语言构建出自己的技术图谱,你的技术图谱决定了你将来的发展和你在企业眼中的价值。