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

0一、困惑的提问

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

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

相似这样的问题还有一些,好比说阿坚:“我如今大一,学的是 C++,据说毕业后不太好找工做,二哥什么好的建议吗?”编程

对于初入职场或者在校的同窗来讲,选择哪一门语言意味着将来的收益(挣到的钱)可能会有显著的不一样小程序

何况技术的更新迭代实在是太快了。你彻底预料不到!若是选择错了,付出的代价也是沉重的。后端

不知道你有没有这种感受啊,前几年盛行的安卓,好像一会儿就凉透了。背后的缘由也很简单,就是微信公众号和小程序的推而广之,致使 APP 的需求量大幅下降。浏览器

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

0二、技术方向

从大的层面来看,技术方向能够分为两种:前端和后端。计算机“文盲”常常性会把后端误认为是“后台”(网站管理后台)——作外包这些年,我遇到过很多这样的甲方,每次我都须要耐心地给他们解释好一下子。网络

那接下来,我就要开始解释了(开个玩笑)。咱们来谈谈前端和后端的一些趋势吧,你们能够做为参考。前端工程师

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。因此可想而知嘛。

限于篇幅缘由,后端技术咱们就到此为止。

0三、到底怎么选

说了这么多,关键的问题来了,到底选择什么技术方向呢?

前端程序员已经很明确了,按照我说的趋势去选就没错了。后端程序员呢?来看一份榜单吧,数据来源于可靠的 TIOBE。

看完这张榜单,我相信你内心应该也有数了,对不对?

好比说小何,不必纠结是选择 Java 仍是 Python,这两门语言如今霸占了状元和探花的位置。据我所知,Java 工程师和 Python 工程师的薪资待遇并无明显的差异。若是不打算往人工智能和数据分析方向转的话,抱紧 Java 这个大腿就好了。

就将来的发展前景来看,Java 也并无呈现出任何的颓势。若是你有一部安卓手机,几乎全部 App 都是用 Java 写的。大型网站的后端,好比说淘宝、京东也都主要是用 Java 开发的。大型的企业级应用,好比 CRM 系统、ERP 系统也大多数是用 Java 开发的。愈来愈火的大数据,其主流框架 Hadoop 的开发语言也是 Java。

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

至于阿坚同窗,也不必过于忧虑,三年毕业后还不至于找不到工做。毕竟 C++ 的底蕴仍是在的。何况,若是把 C++ 吃透的话,学习其余语言也彻底不在话下。

0四、最后的忠告

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

在突飞猛进的科技时代,没有人敢打包票说将来几年后必定流行什么,不流行什么。仍是那句话,技术更新迭代太快了!

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

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

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

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

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

好了,我说完了个人见解,说说你的吧?

相关文章
相关标签/搜索