@程序员,你该如何选择技术方向?

 “沉默王二” ,喜欢就点个关注@程序员,你该如何选择技术方向?

01、困惑的提问

昨天,读者小何在微信上问了我这样一个问题:

二哥,我刚参加工作一年,感觉什么也不精通。大学学的是 Java,但这一年来 Python 特别火,有几个转到 Python 的同学工资竟然比我高。我是不是也应该转呢?

类似这样的问题还有一些,比如说阿坚:“我现在大一,学的是 C++,听说毕业后不太好找工作,二哥什么好的建议吗?”

对于初入职场或者在校的同学来说,选择哪一门语言意味着未来的收益(挣到的钱)可能会有显著的不同

况且技术的更新迭代实在是太快了。你完全预料不到!如果选择错了,付出的代价也是沉重的。

不知道你有没有这种感觉啊,前几年盛行的安卓,好像一下子就凉透了。背后的原因也很简单,就是微信公众号和小程序的推而广之,导致 APP 的需求量大幅降低。

就在去年这个时候,我还特意买了几本安卓的书,学习了一下,在 **** 上顺带分享了几篇学习笔记,阅读量还不错。但最近听朋友说,他在公号上推安卓方面的文章时,阅读量真的是惨不忍睹啊。

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。

不过,从增长的百分比来看,Python 的增幅最大,这说明 Python 的潜力十足。如果时间充足的话,可以自学,以备后患。反正我已经准备学习了。

至于阿坚同学,也没必要过于忧虑,三年毕业后还不至于找不到工作。毕竟 C++ 的底蕴还是在的。况且,如果把 C++ 吃透的话,学习其他语言也完全不在话下。

04、最后的忠告

选择技术方向,选择一门语言,本质上都是一种投资。

在日新月异的科技时代,没有人敢打包票说未来几年后一定流行什么,不流行什么。还是那句话,技术更新迭代太快了!

那怎么让投资收益最大化呢?

@程序员,你该如何选择技术方向?

说实话,我也没有定论(皮一下)。

A:选择年轻的语言(技术方向),意味着风险越大,因为它就像流星一样,灿烂,但易逝。有句俗话,你也听过:“风险越大,回报也许也大”。

B:选择市场已经认可的语言,意味着越稳定,毕竟活得越久越需要能耐。

C:把浮躁的心安定下来,让时间来证明一切。专注于你当下选择的语言,深耕的同时注意抬头看一看就行了。

好了,我说完了我的看法,说说你的吧?

 

精彩回顾:

你为什么成为一名程序员?

窝在二线城市很难受,要杀回一线城市重造吗?

@程序员,这四个学习建议值得收藏

 

< END >

 

PS:原创不易,喜欢就点个在看 or 转发朋友圈,这将是我最强的写作动力。如果你觉得我写的文章对你有帮助,也蛮有趣的,就顺带关注一下我的公众号,让我知道你一直在陪伴着我。

 

 

@程序员,你该如何选择技术方向?

 

微信扫描二维码,关注我的公众号