@程序员,你该如何选择技术⽅向?
01、困惑的提问
昨天,读者⼩何在上问了我这样⼀个问题:
⼆哥,我刚参加⼯作⼀年,感觉什么也不精通。⼤学学的是 Java,但这⼀年来 Python 特别⽕,有⼏个转到 Python 的同学⼯资竟然⽐我⾼。我是不是也应该转呢?
类似这样的问题还有⼀些,⽐如说阿坚:“我现在⼤⼀,学的是 C++,听说毕业后不太好⼯作,⼆哥什么好的建议吗?”
对于初⼊职场或者在校的同学来说,选择哪⼀门语⾔意味着未来的收益(挣到的钱)可能会有显著的不同。
况且技术的更新迭代实在是太快了。你完全预料不到!如果选择错了,付出的代价也是沉重的。
不知道你有没有这种感觉啊,前⼏年盛⾏的安卓,好像⼀下⼦就凉透了。背后的原因也很简单,就是和⼩程序的推⽽⼴之,导致APP 的需求量⼤幅降低。
就在去年这个时候,我还特意买了⼏本安卓的书,学习了⼀下,在 CSDN 上顺带分享了⼏篇学习笔记,阅读量还不错。但最近听朋友说,他在公号上推安卓⽅⾯的⽂章时,阅读量真的是惨不忍睹啊。
02、技术⽅向
从⼤的层⾯来看,技术⽅向可以分为两种:前端和后端。计算机“⽂盲”经常性会把后端误认为是“后台”(⽹站管理后台)——做外包这些年,我遇到过不少这样的甲⽅,每次我都需要耐⼼地给他们解释好⼀会⼉。
那接下来,我就要开始解释了(开个玩笑)。我们来谈谈前端和后端的⼀些趋势吧,⼤家可以作为参考。
1)前端
前端⼯程师近两年来⾮常吃⾹啊,尤其是前端前⾯加了⼀个“⼤”字之后,也就是现在⾮常流⾏的“⼤前端”,就好像“⼤数据”⼀样。(借此机会,你可以体会⼀下“⼤哥”和“哥”之间的差别有多⼤)
我想,前端技术⾥⾯最不会过时的就是 HTML + CSS + JavaScript 了吧。为什么这么说呢?因为它们是前端开发的基础,并且标准也在逐年更新。如果你⽤开发者模式观察⼀下的话,你会发现,所有⽹站的源代码⾥⾯都少不了这⽼三样。
排名第⼆的应该是 Node.js,它逐渐成为了前端开发的基础技术,正在变得越来越重要。上个⽉,我在使⽤ Jekyll + GitHub Pages 配置个⼈⽹站的时,它就要求我要先安装 Node.js 环境(由此可见吧)。
排名第三的应该是 Vue.js / Angular / React.js,它们在 2018 年的时候已经成为趋势,2019 年也没有呈现出任何的颓势。尤其是 Vue.js,其作者尤⾬溪因为长得帅,成为了⼴⼤前端程序员⼼⽬中的⼤神(偶像)。
排名第四的应该是 Stencil,其官⽅的介绍如下:
Stencil is a toolchain for building reusable, scalable Design Systems. Generate small, blazing fast, and 100% standards based Web Components that run in every browser.
我先蹩脚地翻译⼀下,⼤家将就看看。Stencil 是⼀个⼯具链,⽤于构建可重⽤的、可扩展的设计系统。可以⽣成⼩巧的、快速的、 100%的基于标准的 Web 组件,关键的是可以在所有的浏览器中运⾏。
这就厉害了,不需要考虑浏览器的兼容性,还能够和任何主流的框架(Vue.js / Angular / React.js)搭配使⽤。
排名第五的应该是 PWA(Progressive Web Apps),渐进式 Web 应⽤程序,快速、可靠,还能够让⽤户感觉像原⽣应⽤⼀样,体验⾮常棒。Google 提出的概念,应该不会差。
好了,前端就说这五个吧(排名仅供参考啊)。
2)后端
说到后端,可能会有⼈开玩笑说:“主流不⼀直是 PHP 吗?”虽然说这是⼀句玩笑话,但是,我并不怎么敢反驳。
从读者体⾥了解⼀下,洛阳做 PHP 的程序员真的蛮多的,尽管开源 PHP 的官⽅团队已经解散了。不管怎样,⼀个铁打的事实是,PHP 语⾔在过去的 20 年⾥给许许多多的⼈带去了⼯作机会。
在我们继续聊下去之前,请允许我骄傲地宣称⼀件事:我是⼀名 Java 程序员。Java 到底有多⽜逼,已经不需要我再吹了,反正我已经靠它吃饭了许多年,未来还要再吃⼏年。
(虽然不⽤吹,但多少得说⼏句)
Java 是⼀门以 Class 为单位,⾼度⾯向对象的⾼级编程语⾔。Java 的设计初衷是“写⼀次代码,在哪⾥都可以⽤” 。Java 可以完成任何规模的任务,所以它是很多公司在做商业级项⽬的时候的⾸选。
Jame Gosling 在 1995 年的时候设计了Java,似乎 Java ⼀出⽣就有做⽼⼤的⽓质。事实上,确实做了好多好多年。
那 Python 呢?
Python 是⼀门拥有简洁语法的⾼级编程语⾔。⼀位名叫 Guido van Rossum 的荷兰⼤佬在 1991 年就设计了它。Rossum 设计 Python 的初衷是为了让代码读起来更轻松,并且让程序员写更少的代码。
曾经有⼀位 Python 的粉丝写过⼀⾸名为 The Zen of Python (Python 之禅)的赞美诗,我们来欣赏⼀下。
优美胜于丑陋
明了胜于晦涩
简洁胜于复杂
复杂胜于凌乱
扁平胜于嵌套
间隔胜于紧凑
可读性很重要
写得很不错吧?我觉得这位粉丝太有才了。
当然了,Python ⽕的原因可不是因为 Python 的优雅,⽽是⼈⼯智能和数据分析。涉及机器学习、深度学习、神经⽹络这些⾼⼤上的领域,绝对避不开 Python。所以可想⽽知嘛。
限于篇幅原因,后端技术我们就到此为⽌。
03、到底怎么选
说了这么多,关键的问题来了,到底选择什么技术⽅向呢?
前端程序员已经很明确了,按照我说的趋势去选就没错了。后端程序员呢?来看⼀份榜单吧,数据来源于可靠的 TIOBE。
看完这张榜单,我相信你⼼⾥应该也有数了,对不对?
⽐如说⼩何,没必要纠结是选择 Java 还是 Python,这两门语⾔现在霸占了状元和探花的位置。据我所知,Java ⼯程师和 Python ⼯程师的薪资待遇并没有明显的差别。如果不打算往⼈⼯智能和数据分析⽅向转的话,抱紧 Java 这个⼤腿就⾏了。
就未来的发展前景来看,Java 也并没有呈现出任何的颓势。如果你有⼀部安卓⼿机,⼏乎所有 App 都是⽤ Java 写的。⼤型⽹站的后端,⽐如说淘宝、京东也都主要是⽤ Java 开发的。⼤型的企业级应⽤,⽐如 CRM 系统、ERP 系统也⼤多数是⽤ Java 开发的。越来越⽕的⼤数据,其主流框架 Hadoop 的开发语⾔也是 Java。
在安卓手机上运行php不过,从增长的百分⽐来看,Python 的增幅最⼤,这说明 Python 的潜⼒⼗⾜。如果时间充⾜的话,可以⾃学,以备后患。反正我已经准备学习了。
⾄于阿坚同学,也没必要过于忧虑,三年毕业后还不⾄于不到⼯作。毕竟 C++ 的底蕴还是在的。况且,如果把 C++ 吃透的话,学习其他语⾔也完全不在话下。
04、最后的忠告
选择技术⽅向,选择⼀门语⾔,本质上都是⼀种投资。
在⽇新⽉异的科技时代,没有⼈敢打包票说未来⼏年后⼀定流⾏什么,不流⾏什么。还是那句话,技术更新迭代太快了!
那怎么让投资收益最⼤化呢?
说实话,我也没有定论(⽪⼀下)。
A:选择年轻的语⾔(技术⽅向),意味着风险越⼤,因为它就像流星⼀样,灿烂,但易逝。有句俗话,你也听过:“风险越⼤,回报也许也⼤”。
B:选择市场已经认可的语⾔,意味着越稳定,毕竟活得越久越需要能耐。
C:把浮躁的⼼下来,让时间来证明⼀切。专注于你当下选择的语⾔,深耕的同时注意抬头看⼀看就⾏了。
好了,我说完了我的看法,说说你的吧?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论