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

读者A:我刚参加工作一年 , 感觉什么也不精通 。大学学的是 JAVA , 但这一年来 Python 特别火 , 有几个转到 Python 的同学工资竟然比我高 。我是不是也应该转呢?
类似这样的问题还有一些 , 比如说读者B:“我现在大一 , 学的是 C++ , 听说毕业后不太好找工作 , 作者什么好的建议吗?
对于初入职场或者在校的同学来说 , 选择哪一门语言意味着未来的收益(挣到的钱)可能会有显著的不同 。
况且技术的更新迭代实在是太快了 。你完全预料不到!如果选择错了 , 付出的代价也是沉重的 。
不知道你有没有这种感觉啊 , 前几年盛行的Android/ target=_blank class=infotextkey>安卓 , 好像一下子就凉透了 。背后的原因也很简单 , 就是微信公众号和小程序的推而广之 , 导致 App 的需求量大幅降低 。
技术方向
从大的层面来看 , 技术方向可以分为两种:前端和后端 。计算机“文盲”经常性会把后端误认为是“后台”(网站管理后台)——做外包这些年 , 我遇到过不少这样的甲方 , 每次我都需要耐心地给他们解释好一会儿 。
那接下来 , 我就要开始解释了(开个玩笑) 。我们来谈谈前端和后端的一些趋势吧 , 大家可以作为参考 。
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 可以完成任何规模的任务 , 所以它是很多公司在做商业级项目的时候的首选。


推荐阅读