作者:自由飞
来源:https://www.cnblogs.com/freeflying/
“
前几天突然接到 dk 的电话,要和我聊聊天。他说他们部门调整,虽然最后他留了下来,但还是非常焦虑。
图片来自 Pexels
人无远虑必有近忧,他这次被刺激到了,想提高一下自己,以免下次再有类似的心惊肉跳。
但怎么提高呢?程序员第一考虑的当然是技术,但现在真不知道学什么了:干了三四年的开发,手头的工作马马虎虎都没什么问题了。
就算有问题,也是业务逻辑上的问题,系统太复杂,吃不透;或者系统里一些过时的/生僻的技术,真心觉得没必要花时间花精力去研究,能对付就行了,是不是?反正下家单位 99.99% 的几率是不会用到这些东西的的。
那么就是一些新技术了。新技术杂得很,不知道学什么,框架类库啥的其实没什么技术含量,一两个星期就可以上手,上手了之后呢?往深里学?
其实和老旧技术一样的问题,谁知道下一份工作用不用得上呢!而且没趣,大概是因为没有挑战性吧,反正就那个样,还能咋的?
一直聊到这里,我都非常理解。我这个十年的老码农,体会比他还深。其实稍微干上一些年头,就是这个样子,看起来像是“学习热情下降”,“懒得学习”。
但本质上有如下两个原因:
本身的技能增强,能够应付日常工作,没有刚入行时那么大的压力了。
学习的边际效益递减,所以开始考虑投资/收益比了。
刚入行的时候,技术一丁点的进步,都能带来非常大的成就感,至少能少挨点骂,是不是?
积累到一定时候,就可以跳个槽涨点工资啥的。但三五年过后,我已经会了 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 开发的三个去处:
欧美企业。用 .NET 开发的很多,我不确定是为什么,知识猜测:.NET 不免费但省人工,欧美的人工很高,所以企业宁愿选择给微软的服务费。当然,现在 .NET core 出来以后他们就更开心了。
传统生产企业。做一些内部系统,比如 OA 啥的,和 Windows、Office 紧密相连,用惯了微软这一套,技术栈自然而然的就是 .NET 了。
其他中小型外包公司。技术实力不是很强,用 .NET 现成的东西成本低好上手。要么就是不担心盗版不盗版的问题,比如 800 元建站的那种;要么就是给政府医院做点项目,Windows 的授权费啥的反正没人心痛……
舒服的话,当然是第 1 种了,但是呢,要英语好。英语这一条,可能要难住很多人。
比如我下午的面试,就是从国外打过来的长途电话,纯英文交流。可能即使是欧美外资企业,.NET 开发的工资还是比不过一线互联网企业(Java啥的)。
但是欧美外资企业讲规矩人性化,我干 .NET 十多年了,真就没怎么加过班,996 行军床啥的想起来就怕,真的。
所以我给 dk 的建议,实在没学的,学学英语吧,O(∩_∩)O哈哈~
当然这肯定很难——说实话,我觉得学英语比学《数据结构和算法》难多了。其实还有很多很难很难的东西,比如人脉。
我现在缺的就是人脉。想想我之前还自己投简历,真的是太 Low 了。在一个行当里已经做了十年,还需要自己投简历,确实掉价了。
正常的渠道,要么是猎头,要么是朋友推荐。而无论哪种方式,技术的作用其实很小的。
比如我应聘一个 CTO 的职位,我就是公司里面技术最牛的人物了,谁来面试我的技术?
换一个方式想一想,你现在要请一个律师,你怎么判断这个律师的业务水平?你是不是只能听朋友介绍,相信你的朋友;或者相信你的直觉,直觉从哪里来?
这个律师在什么所,开什么车,穿着打扮谈吐气质……但这些东西真的能证明这个律师的业务水平吗?
所以,公司的 CTO 技术还没你强,这太正常不过了。人家坐上那个位置,靠的不是技术,靠的是老板对他的信任。一点都不要抱怨,这很公平。
你经历越多,就越能明白:信任,其实是这个世上最宝贵的东西!能让别人相信你,能让更多的人相信你,让更重要的人相信你,这就是本身。
就像一起帮,要是大家都相信它使用它;或者某个风投的大 V 相信它愿意不遗余力的给它投钱,这不就成了吗?飞哥哪里还需要惨兮兮的找工作?
而且,如果你的技术真比 CTO 还强,这是一件很幸运的事。要么是这个 CTO 有胸怀,要么是这个公司有制度,你没有事先就被剔出去。
以前我讲过,找工作靠运气,这份 Offer 你没拿到,既可能是你技术差,也可能是你技术太强。
你有没有想到这一点?面试官一看简历,把他招进来,不是撬我的位置么?稍稍用点手段,就把你 Pass 了。
这才是一个企业招聘的常态,管理者总是倾向于(有意无意的)招聘比他稍弱的人——有一个专门的术语描述这种现象的。
最后随着企业的发展,新来的人只会越来越弱,对企业的发展来说是很不利的。要不然我为什么要自己去学编程?
好像有点跑题了。和 dk 后面又聊了一些,大概都是这个意思:功夫在诗外。决定你十年之后职位和薪水的,更多的是技术以外的东西。
除了上面说的人脉,还包括你的名望、这十年的履历,以及渐渐成型的言谈举止,等等。
但这些东西,如何通过“刻意的练习”(新学的词)来获得——抱歉,我没准备割韭菜,说实话吧,主要还是靠运气。
这个答案可能很多人也接受不了。我自己都觉得有些暮气,但我真觉得这是最接近真相的一个答案。
年轻人不相信命,就像 YY 小说里叫嚣的那样“我命在我不在天”!但你出门捡个烧火棍就是仙器,随便领个宠物回来就是神兽,烤只兔子都能引来世外高人,外加什么丹药秘籍……
你确定你不过只是命好?越是上了年纪的人越容易相信命,因为见过了太多光怪陆离的人生,不可理喻。
好吧,上了年纪的人也容易话痨和跑题。要不就先这样吧?很遗憾没能给你什么具体的建议,因为《我的成功可以复制》之类的已经被证明是骗人的。
成功不能复制,其实失败也不一定。彼之蜜糖吾之砒霜,人生经验这些东西,世易时移,以前是对的,现在可能就错了;现在是错的,以后又可能是对的。但这样的话,我就没什么话可说了?
好在文字可以“博大精深”,以下几点,算是我这十年编程之路的“遗憾”吧。姑妄听之:
①动手太晚
一起帮其实在 5 年前,甚至 8 年前就可以弄出来,当然可能是用现在看来非常“弱”的技术。
比如就简简单单的 ASP.NET WebForm+ADO.NET,不像现在什么 MVC/Nhibernate,依赖注入三层架构……但是,技术永远没有止境,商机一旦错过就永远错过了!
很多想法,我早就有了,但一直拖着,拖到现在成了“大路货”,而且七八年前的互联网环境,和现在完全不一样,至少那时候流量要便宜好多好多啊!
②没有广交朋友
现在我想找个美工找个推广——尤其是推广人才,完全没地方下手。人才市场上的招聘,我一点信心都没有。
可能是自己面试的时候说的假话太多,所以对求职者的话天然怀疑,而我自己又没有鉴别能力,很担心把千里马当驴子给 Pass 掉,招了一头披着羊皮的狼进来。
还有其他一些问题,比如融资,怎么找风投,我完全是两眼一抹黑,找不到人可以帮我一把。朋友多了路好走,我这孤家寡人的,唉!
以上两条,本质上都是因为“在技术上钻研太深”,把太多精力花在了技术上,没能兼顾或者平衡其他方面。想想真的是……程序员里的一股泥石流,是吧?钻技术还钻错了?!
③究竟是创业还是打工,没有下定决心,并一直坚持
可能是因为第一次创业失败的阴影,或者家人的影响和压力,这些年一直在摇摆。由于目标不明确不坚定,所以很多时候就只能随波逐流了。
离开上海回重庆是一个分水岭,在此之前,我怎么钻技术都不为过,因为那时候技术就是我最大最大的短板。
但之后,我回重庆的时候,技术上我已经将就了。回重庆一个重要的原因是想在重庆创业,便宜。
但现在创业不成,在重庆这些年就亏了;包括在 HP,如果是铁了心的要打工为生,早就该跳槽了,在那里面纯粹就是虚度光阴;甚至现在也一样,究竟是咬牙坚持下去,坚决不打工,还是找个工作先……我心里真的没底。
推荐阅读
代码对比工具,我就用这6个
分享我常用的5个免费的在线 SQL 数据库环境,简直太方便了!
Spring Boot 三招组合拳,手把手教你打出优雅的后端接口
MySQL 5.7 vs 8.0,你选那个?网友:我继续原地踏步~
最后,推荐给大家一个有趣有料的公众号:写代码的渣渣鹏,7年老程序员教你写bug,回复 面试|资源 送一你整套开发笔记 有惊喜哦
扫码关注