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

更新日期: 2019-08-12阅读: 1.9k标签: 技术

1、困惑的提问

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

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

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

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

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

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

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


2、技术方向

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

那接下来,我就要开始解释了(开个玩笑)。我们来谈谈前端和后端的一些趋势吧,大家可以作为参考。

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。所以可想而知嘛。

限于篇幅原因,后端技术我们就到此为止。



3、到底怎么选

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

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


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

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

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

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

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


4、最后的忠告

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

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

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

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

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

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

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

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

原文 http://www.cnblogs.com/qing-gee/p/11510385.html

链接: https://fly63.com/article/detial/5293

技术开发,如何与领导谈涨薪

归根结底,涨薪其实是达到自己价值与薪资的最佳匹配. 好比你就是一只股票,公司当然会选择那些估值远高于股指的股票. 所以唯有不断增长自己的价值,才会成为你在涨薪谈判中的重要筹码.

bt种子简介与magnet磁力介绍

BT下载相信老司机们都接触过,为什么BT种子会慢慢被磁链取而代之?它们都可以用于BT下载,除了文件和字符串这表面上的区别,背后的技术上又有何不同?

WebService的两种方式SOAP和REST,之间的区别与优缺点

SOAP用于在Web Service中把远程调用和返回封装成机器可读的格式化数据。REST形式上应该表述为客户端通过申请资源来实现状态的转换,在这个角度系统可以看成一台虚拟的状态机。

工作了四五年,感觉技术上依旧长进不大

技术精进是一个持续增长的过程,而非一朝一夕,即便你在最短时间的掌握了大量的技术点,如何不及时应用到实际问题中,也很容易被遗忘。有朋友会说,我平时也挺努力的,一直不间断的学习

在阿里做了五年技术主管,我有话想说

今天的文章,他将继续深入探讨这一话题,从管理的角度分享技术TL的核心职责,主要包括团队建设、团队管理、团队文化、沟通与辅导、招聘与解雇等,希望与大家共同探讨、交流。

你和阿里员工的技术水平到底差几个等级

根据近年数据,中国现有程序员500万左右,其中P1、P2数量占据了近100万,P8及以下程序员约有490万,P9及以上仅有10万。80后是企业的技术支柱,90后已开始逐步成为企业的中坚力量

程序员常逛的技术社区

技术的成长路上,少不了跟一些志同道合的人交流,阅读一些技术前辈们的经验分享。这一路走来,还是要感谢有技术社区的陪伴,让码字之余,在技术、以及技术以外,都有不少收获。

未来,哪些技术在前端开发的地位会越来越高?

过去的这段时间里,不论是互联网巨头还是初创企业,都纷纷进行了一波优化。渐趋理智的资本淘汰了一批不能适应市场的业务,而业务的紧缩也淘汰了一批不能适应市场的程序员。

合格PHP程序员应该掌握哪些技术?

除了能够完成基本的PHP业务开发,还能够解决大部分深入复杂的技术问题,并且可以独立设计完成中大型的系统设计和开发工作;自己能够独立hold深入某个技术方向,在这块比较专业

技术追求的误区[观点与思考]

认识的一个 10 人左右的团队,本来是用 PHP 的,这些年看到网上很多用 / 转 Go 的消息,于是团队里有不少人就焦虑了,希望找一个合适的切入时间,能够试一把 Go

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!