程序员这个职业是互联网兴起的产物,是推动科技发展最强大的力量。凡是传统产业要向互联网靠拢的都需要程序员这样的技术工作人员。还有各大公司都在大量投入研发的人工智能,无人驾驶汽车,智能家居等等。这些智能的产品都是通过程序员一行一行代码来完成,未来十年将会是智能的天下,最基本的技术工作人员将会是程序员,从这个角度来看,程序员或许可能是未来最吃香的职业之一。
作为想成为程序员的你,包括刚毕业的大学生、职场小白、从其他行业转行的人士,对这个行业却不是很了解。但是肯定知道要学习一门计算机语言作为敲门砖,但究竟该学习哪门计算机语言呢?码农哥作为从业多年的业内人士,将谈一谈我的个人看法。
1、行业内主流的开发语言有哪些?
我首先列举了一下我接触过的开发语言,应该都算是比较主流,而且使用场景比较多的语言。
(1)Java语言
如果说Java语言是职位最多,就业最好的语言,我相信没多少人反对。作为一个互联网公司,无论是做产品还是做项目,基本都是多个Java后端工程师配一两个前端工程师。比例基本都至少会在2:1以上。Java语言的使用场景不仅可以用来开发后端,可以用来开发Android App,还可以用来开发客户端。手机系统开发中的Java Framework也需要用到java。可想而知,Java语言的强大之处。如果你不知道学什么语言,学习Java肯定不会错!
(2)H5+CSS+JavaScript
其实这个组合,行内人一看就知道,这个组合主要是针对前端的开发语言。如果你想做前端,这些语言就是你要学习的语言。前端也是就业的大方向,岗位也是超级多,很多漂亮的程序员小姐姐都是搞前端的,还能认识很多UI小姐姐,产品小姐姐。其实这个时代,我建议人人都要学习一下JavaScript,这门语言的开发效率真的比Java等语言快多了。前端其实还有一个优点,就是比较容易接到私活,你可以去私活的网站上去看一下,有很大一部分需求是做个网站、小程序,这个组合的语言开发web app也是没问题的。如果你不喜欢Java,选择这个组合也是极好的。
(3)Python
Python有点厉害了,人生苦短,我用Pythion,你一定听过。人工智能工程师、大数据分析工程师、算法工程师等等无数的岗位都是要求Python的。可以看到Python语言还是很不错的。这门语言的开发效率很高,应用场景也很广泛。结合现在比较火热的人工智能、机器学习、大数据,发展前景大有可为。学习成本相对来说还是很低的。适合刚进入这个行业的年轻人。
(4)Go
Go语言,Google的亲儿子,发展前景还是很不错的。2009年11月 Go语言第一个版本发布。2012年3月 第一个正式版本Go1.0发布。Go语言是非常年轻的,但是Go语言的就业情况是不错的,字节跳动的招聘了很多Go开发,大名鼎鼎的Docker,完全用GO实现,业界最为火爆的容器编排管理系统kubernetes,完全用GO实现,之后的Docker Swarm,完全用GO实现。除此之外,还有各种有名的项目如etcd/consul/flannel等等,均使用GO实现。
Go 的优点:实现快 + 资源占用低 + 任意环境随便跑,综合考虑在很多场景十分好使 。
1 Go 适合造轮子,哪个库不好用就自己造。
2 Go 适合写工具,比如 hugo 、hub、fzf,还有国人写的 linux 下的百度 pan client 都是 go 实现的。
3 Go 适合实现 C/C++ 一部分业务,Java 的大部分业务。
4 Go 适合做最外层的胶水,通过 RPC/REST/CGO 粘合不同语言的模块,而在这个胶水层还可以实现各种业务逻辑
(5)Nodejs
其实Nodejs不是一门语言,只是用于在浏览器外开发的JavaScript,是一个基于 Chrome V8 引擎的 JavaScript 运行时环境。之所以把Nodejs单独拿出来说,是因为还有很大一部分前端是不会Nodejs的,Nodejs是一个小众的选择,市场上一般把这门语言用来验证一些业务,就业不是很看好,但是学会这门语言,你可以开发后端、使用electron开发客户端,是JavaScript全栈工程师的必选。如果你想做一个独立开发者,建议你学习这门语言。
(6)C/C++
其实我入门计算机语言的第一门课程学的就是C语言,学计算机或者相关专业的同学其实差不多也都是学的C语言。C语言和C++语言其实在国内的就业其实不太友好了,大部分都是搞嵌入式开发或者游戏开发,但是现在物联网的火热,似乎这两门语言的需求又涨上来了。其实,这两门语言任何时候都是需要的,其实看看排行榜就知道,排名总是前几位。但是对于转行或者赶毕业的同学来说,还是有门槛的。
(7)其他
其实还有很多优秀的计算机语言,有些是一些必备的基础语言,比如shell,我就不说了,还有一些我怎么接触的语言,php、Ruby、Rust等等,我不太了解这些语言的行情,大家可以在评论留言,来分享你的见解。
2、如何选择适合自己的开发语言
(1)发展方向
这个行业的岗位分为前端开发、小程序开发、后端开发、边缘端开发、app开发、客户端开发、测试、运维,每一个岗位都需要不同的开发语言。而且每一种岗位对不同的业务,也会选择不同的开发语言。尽量选那些语言稳定的岗位,这样的话容易积累,容易做的比较深。
后端 | 前端 | 客户端 | app开发 | 小程序开发 | 测试 | 运维 | |
物联网 | Java | JavaScript | Nodejs | Java、JavaScript | JavaScript | Python | Python |
大数据 | Java | JavaScript | Nodejs | Java、JavaScript | JavaScript | Python | Python |
人工智能 | Python | JavaScript | Nodejs | Java、JavaScript | JavaScript | Python | Python |
电商 | Java | JavaScript | Nodejs | Java、JavaScript | JavaScript | Python | Python |
视频平台 | Java | JavaScript | Nodejs | Java、JavaScript | JavaScript | Python | Python |
(2)语言排行榜
我截取了最新的https://www.tiobe.com/tiobe-index/的编程语言11月份排行榜,大家可以看到我说到的几门开发语言,除了Go,没在前十名,其他基本都在榜单中。
(3)招聘岗位
大家可以去拉勾网等网站,以Java开发工程师为例,去搜索,可以看到市场对这门开发语言的一个市场行情。包括招聘企业、薪资待遇、岗位职责等等,其实市场是最好的反馈。
(4)个人喜好
最后我要说的是个人的喜好,作为一名程序员,对语言也是有自己的喜好的,不要强迫自己去学不喜欢的开发语言,这样是不会长久的。
3、一些经验之谈
语言最终是用来表达你思想和思维的,只要能帮你快速解决问题达到目标,对你而言就是好语言。
(1)开发语言是一门工具,基础不牢,地动山摇。
(2)开发语言学的多,是一种能力,学的精,更是一种能力。
(3)开发语言只是一门工具,重要的还是业务。
(4)开发对于某些人来说是乐趣,如果你体会不到,说明你不适合做程序员。
最后,希望大家都能体会到编程的快乐,都能找到自己心仪的工作,都能在这个属于程序员的时代乘风破浪。