现身说法:37,别叫老码农!

2020 年 6 月 24 日

现身说法:37,别叫老码农!

分享一篇文章,作者真是掏心窝了


前几天突然接到 dk 的电话,要和我聊聊天。


他说他们部门调整,虽然最后他留了下来,但还是非常焦虑。人无远虑必有近忧,他这次被刺激到了,想提高一下自己,以免下次再有类似的心惊肉跳。但怎么提高呢?


程序员第一考虑的当然是技术,但现在真不知道学什么了:干了三四年的开发,手头的工作马马虎虎都没什么问题了。就算有问题,也是业务逻辑上的问题,系统太复杂,吃不透;或者系统里一些过时的/生僻的技术,真心觉得没必要花时间花精力去研究,能对付就行了,是不是?反正下家单位 99.99%的几率是不会用到这些东西的的。


那么就是一些新技术了。新技术杂得很,不知道学什么,框架类库啥的其实没什么技术含量,一两个星期就可以上手,上手了之后呢?往深里学?其实和老旧技术一样的问题,谁知道下一份工作用不用得上呢!而且没趣,大概是因为没有挑战性吧,反正就那个样,还能咋的?


一直聊到这里,我都非常理解。我这个十年的老码农,体会比他还深。其实稍微干上一些年头,就是这个样子,看起来像是“学习热情下降”“懒得学习”,但本质上呢,两个原因:


1、本身的技能增强,能够应付日常工作,没有刚入行时那么大的压力了。


2、学习的边际效益递减,所以开始考虑投资/收益比了。刚入行的时候,技术一丁点的进步,都能带来非常大的成就感,至少能少挨点骂,是不是?积累到一定时候,就可以跳个槽涨点工资啥的。但三五年过后,我已经会了 Bootstrap+JQuery+ASP.NET+Autofac+AutoMapper+NHibernate+mysql,再会一个 Entity Framework 或者 Dapper 又有多大意义呢?真要用的话,也就一两周时间的问题。你说找工作的时候,会因为你只会 NHibernate,没用过 Entity Framework 就直接把你 pass 掉?这种面试官确实有,但属于脑子进水的那种,不多,碰到了算是运气。再说了,真是这种 leader,你在他手下待着有意思么?


但接着 dk 问了我这么一个问题:


要不要像我一样去考个软考,补一补算法啊原理之类的东西?


哎呀,这个问题可把我给难住了。了解我的同学都知道,我不光是考过软考,还写了一篇让人热血澎湃的文章,自吹自擂了一番,什么“十年磨一剑,重剑已经成型”。但实际上呢,这些年我回头看看,软考里面,至少 60%的知识是没啥用的——我说的是“至少”。包括被吹上天的《数据结构和算法》、《操作系统》,以及《编译原理》,据说这被称之为程序员的三大浪漫?浪漫确实是浪漫,但既然是浪漫,换言之就是不实用。


我知道我这个观点有很多同学无法接受,估计两个原因:一是学校老师长期的灌输,比如“编程=数据结构+算法”;二是似是而非的直觉,“这玩意这么难,学会了应该很厉害吧”,大概这就是所谓的不明觉厉啦?


中国的大学教育水平我就懒得说了,说了无非也就是拉仇恨。我就说说这个“难”和“赚钱”。数据结构和算法肯定有点难——对于大多数正常人类而言,但难就一定挣钱吗?比如计算机最核心最尖端的技术是什么?是不是芯片?在什么科学院研究所里搞芯片的那些人挣的钱有 BAT 里面的码农挣得多?别说和码农比了,可能连 UI 连产品经理都不过。


我还想引申一点,难不一定赚钱,苦也一样。我当年做装修的时候,问我一个长辈:“你们哟,就这样玩儿一样的就把钱挣了,而且还是挣大钱。为什么我这么苦这么累都挣不到钱?”他说了一句话:“赚钱不费力,费力不赚钱”。


这么多年过去了,这话我还记得很清楚,因为我一直都在反复咀嚼:太特么有道理了!!!


不说自己创业,就说打工。工资就一定和能力(我就不说“技术”了,技术只是“能力”的一部分)成正比么?不要那么太天真,真的。那只是一种理想,甚至连理想都不算——不知道多少人希望自己的工资超过自己的能力,别人的能力超过别人的工资。


我最近也在找工作,没办法,一起帮要盈利不知道要等到猴年马月,我得先找点事做养活自己。很多同学好奇“35 岁以后的程序员”到哪去了?能不能找到工作?是不是只能跳楼……借这个机会,现身说法,给大家汇报一下吧。


我在重庆,工作机会呢,确实不多,我记得是从国庆过后就开始刷新简历开始找工作。自己也随便投了一些简历,筛选条件大致是:十年工作经验或月薪 20K 以上,要求的 Title 是 CTO 或者技术合伙人。面试了三家,其中一家明显不靠谱的创业公司就不说了,另外两家都没成。


其中一家技术很对口,.NET 方向的,号称在美国和加拿大有研发中心,人力总监和我聊了很久,但最后说还要他们的 CTO 看看,我有点懵,回头才发现他们是招 developer 这个级别的,然后我就知道没戏了。


另外一家是互联网公司,职位倒是 CTO,但要求的语言是 JAVA,看在他们月薪 50K 的份上,去看了看,当然我知道在重庆基本上是不可能拿这么高的。他们公司明显有问题,什么都在招:CTO 在招,CEO 也在招,销售总监也在招……所以我最后提了个方案,先试岗一个星期看看,结果就没有结果了,呵呵。


最后就是今天下午还有个面试,欧美外资企业,要在重庆设一个点,需要一个 team leader,通过猎头找到的我。如果说能谈成的话,年薪大概是在 30 万-35 万。


经常有同学问工作“好不好”找,这个我真没法回答,因为不知道“好不好”怎么界定。我个人觉得,还将就吧,毕竟是在重庆,在猎聘网上,我把期望工作地点放宽到成都/上海,现在已经收到很多邀请了——但基本上都是 JAVA,不到万不得已,我是不愿意转 JAVA 的。


这里说一下.NET 和 JAVA 的问题,很多同学很关心这个。我有一种直觉,我最后找到的工作肯定还是欧美背景的,呵呵。其实我很想去国内的互联网公司看一看,但好像没这种机会了。.NET 开始估计和国内互联网企业绝缘了?大致来说,我现在知道的,.NET 开发的三个去处:


1、欧美企业。用.NET 开发的很多,我不确定是为什么,知识猜测:.NET 不免费但省人工,欧美的人工很高,所以企业宁愿选择给微软的服务费。当然,现在.NET core 出来以后他们就更开心了。


2、传统生产企业。做一些内部系统,比如 OA 啥的,和 windows、office 紧密相连,用惯了微软这一套,技术栈自然而然的就是.NET 了。


3、其他中小型外包公司。技术实力不是很强,用.NET 现成的东西成本低好上手。要么就是不担心盗版不盗版的问题,比如 800 元建站的那种;要么就是给政府医院做点项目,windows 的授权费啥的反正没人心痛……


舒服的话,当然是第 1 种了,但是呢,要英语好。英语这一条,可能要难住很多人。比如我下午的面试,就是从国外打过来的长途电话,纯英文交流。可能即使是欧美外资企业,.NET 开发的工资还是比不过一线互联网企业(JAVA 啥的)。但是欧美外资企业讲规矩人性化,我干.NET 十多年了,真就没怎么加过班,996 行军床啥的想起来就怕,真的。


所以我给 dk 的建议,实在没学的,学学英语吧,O(∩_∩)O 哈哈~


当然这肯定很难——说实话,我觉得学英语比学《数据结构和算法》难多了。其实还有很多很难很难的东西,比如人脉。


我现在缺的就是人脉。


想想我之前还自己投简历,真的是太 low 了。在一个行当里已经做了十年,还需要自己投简历,确实掉价了。正常的渠道,要么是猎头,要么是朋友推荐。而无论哪种方式,技术的作用其实很小的。比如我应聘一个 CTO 的职位,我就是公司里面技术最牛的人物了,谁来面试我的技术?换一个方式想一想,你现在要请一个律师,你怎么判断这个律师的业务水平?你是不是只能听朋友介绍,相信你的朋友;或者相信你的直觉,直觉从哪里来?这个律师在什么所,开什么车,穿着打扮谈吐气质……但这些东西真的能证明这个律师的业务水平吗?


所以,公司的 CTO 技术还没你强,这太正常不过了。人家坐上那个位置,靠的不是技术,靠的是老板对他的信任。一点都不要抱怨,这很公平。你经历越多,就越能明白:信任,其实是这个世上最宝贵的东西!能让别人相信你,能让更多的人相信你,让更重要的人相信你,这就是本身。就像一起帮,要是大家都相信它使用它;或者某个风投的大 V 相信它愿意不遗余力的给它投钱,这不就成了吗?飞哥哪里还需要惨兮兮的找工作?


而且,如果你的技术真比 CTO 还强,这是一件很幸运的事。要么是这个 CTO 有胸怀,要么是这个公司有制度,你没有事先就被剔出去。以前我讲过,找工作靠运气,这份 offer 你没拿到,既可能是你技术差,也可能是你技术太强。你有没有想到这一点?面试官一看简历,艹,把他招进来,不是撬我的位置么?稍稍用点手段,就把你 pass 了。这才是一个企业招聘的常态,管理者总是倾向于(有意无意的)招聘比他稍弱的人——有一个专门的术语描述这种现象的。最后随着企业的发展,新来的人只会越来越弱,对企业的发展来说是很不利的。要不然我为什么要自己去学编程?


好像有点跑题了。和 dk 后面又聊了一些,大概都是这个意思:功夫在诗外。决定你十年之后职位和薪水的,更多的是技术以外的东西。除了上面说的人脉,还包括你的名望、这十年的履历,以及渐渐成型的言谈举止,等等。但这些东西,如何通过“刻意的练习”(新学的词)来获得——抱歉,我没准备割韭菜,说实话吧,主要还是靠运气。


这个答案可能很多人也接受不了。我自己都觉得有些暮气,但我真觉得这是最接近真相的一个答案。年轻人不相信命,就像 YY 小说里叫嚣的那样“我命在我不在天”!但你出门捡个烧火棍就是仙器,随便领个宠物回来就是神兽,烤只兔子都能引来世外高人,外加什么丹药秘籍……你确定你不过只是命好?越是上了年纪的人越容易相信命,因为见过了太多光怪陆离的人生,不可理喻。


好吧,上了年纪的人也容易话痨和跑题。


要不就先这样吧?很遗憾没能给你什么具体的建议,因为《我的成功可以复制》之类的已经被证明是骗人的。成功不能复制,其实失败也不一定。彼之蜜糖吾之砒霜,人生经验这些东西,世易时移,以前是对的,现在可能就错了;现在是错的,以后又可能是对的。但这样的话,我就没什么话可说了?


好在文字可以“博大精深”,以下几点,算是我这十年编程之路的“遗憾”吧。姑妄听之:


1、动手太晚。一起帮其实在 5 年前,甚至 8 年前就可以弄出来,当然可能是用现在看来非常“弱”的技术,比如就简简单单的 ASP.NET WebForm+ADO.NET,不像现在什么 MVC/Nhibernate,依赖注入三层架构……但是,技术永远没有止境,商机一旦错过就永远错过了!很多想法,我早就有了,但一直拖着,拖到现在成了“大路货”,而且七八年前的互联网环境,和现在完全不一样,至少那时候流量要便宜好多好多啊!


2、没有广交朋友。现在我想找个美工找个推广——尤其是推广人才,完全没地方下手。人才市场上的招聘,我一点信心都没有。可能是自己面试的时候说的假话太多,所以对求职者的话天然怀疑,而我自己又没有鉴别能力,很担心把千里马当驴子给 pass 掉,招了一头披着羊皮的狼进来。还有其他一些问题,比如融资,怎么找风投,我完全是两眼一抹黑,找不到人可以帮我一把。朋友多了路好走,我这孤家寡人的,唉!


以上两条,本质上都是因为“在技术上钻研太深”,把太多精力花在了技术上,没能兼顾或者平衡其他方面。想想真的是……程序员里的一股泥石流,是吧?钻技术还钻错了?!


3、究竟是创业还是打工,没有下定决心,并一直坚持。可能是因为第一次创业失败的阴影,或者家人的影响和压力,这些年一直在摇摆。由于目标不明确不坚定,所以很多时候就只能随波逐流了。离开上海回重庆是一个分水岭,在此之前,我怎么钻技术都不为过,因为那时候技术就是我最大最大的短板。但之后,我回重庆的时候,技术上我已经将就了。回重庆一个重要的原因是想在重庆创业,便宜。但现在创业不成,在重庆这些年就亏了;包括在 HP,如果是铁了心的要打工为生,早就该跳槽了,在那里面纯粹就是虚度光阴;甚至现在也一样,究竟是咬牙坚持下去,坚决不打工,还是找个工作先……我心里真的没底。


真的是掏心窝子了,把我的软弱彷徨都赤果果的暴露给大家了,原谅我放荡不羁爱自由的人设崩了。


老铁啊,看在我这么真诚的份上,是不是应该 666 个赞走一波?


2020 年 6 月 24 日 19:10100

评论

发布
暂无评论
发现更多内容

筹备半年时间,四面阿里终于如愿拿到P7级offer【Java岗】。

Java成神之路

Java 编程 程序员 面试

[翻译]The Go scheduler[Go调度]

卓丁

golang golang调度 Go scheduler

市值做市机器人,操盘做市系统搭建

13823153121

架构师训练营 - 第 8周命题作业

红了哟

第十三周作业

olderwei

极客大学架构师训练营

合约跟单app,永续合约交易所带单交易软件

13823153121

XSKY ClickHouse如何实现存算分离

XSKY融合存储

阿里P8Java架构师呕心沥血整理出来的[史上最全Java面试题精选集锦]

Java成神之路

Java 编程 程序员 面试

工作好多年有可能还未真正了解接口和抽象类

架构师修行之路

接口 抽象

大厂面试题:集群部署时的分布式 session 如何实现? 面试官心理分析

老大哥

Java 程序员 后端

商业通识 : 商业从哪里来?

Walker

学习 得到 个人成长 商业

一步搞定任意圆角背景

mengxn

android xml 圆角

架构师训练营作业(大数据与机器学习)

qihuajun

从用户输入手机验证码开始

架构师修行之路

用技术的“信条”,开启AI to B的产业位移

脑极体

indexOf原理,Java,javascript,python实现

叫练

算法

阿里P8忠告:这些技术,哪怕不用微服务架构,你也应该会

小Q

Docker 架构 微服务 springboot SpringCloud

阿里年薪百万的P7架构师简历都长什么样?他们都是怎么学习的?

周老师

Java 编程 程序员 架构 面试

Polkadot初识,不止于跨链

QTech

polkadot 跨链

20张图,大学四年都没整明白的操作系统就这么学会了

小Q

Java 程序员 架构 操作系统

面试官为什么会问你,如何设计一个高并发系统?

老大哥

Java 程序员 后端

我的大厂面试经历

老大哥

Java 程序员 后端

Java架构师JVM启动流程和内存结构,程序员必看!

老大哥

Java 程序员 后端

边缘计算,如何啃下集群管理这块硬骨头?

博云技术社区

云计算 容器 边缘计算 PaaS 博云

[翻译]Go Concurrency Patterns[Go 并发模式]

卓丁

golang Rob Pike Go Concurrency Patterns Concurrency

甲方日常10

句子

工作 随笔杂谈 日常

“新基建”与“双循环”的二重奏:2020服贸会靠什么推动经济复苏

脑极体

Flink通过官网创建自己的工程-20

小知识点

scala 大数据 flink

架构师第十三周作业

傻傻的帅

架构师

呕心沥血,整理200+最新面试题,面试之前看一下,事半功倍

小Q

Java 学习 程序员 架构 面试

【真实面试经历】我和阿里面试官的一次“邂逅”

老大哥

现身说法:37,别叫老码农!-InfoQ