没有技术深度怎么办?

517 阅读8分钟

首先得说明,这不是一个反问句,真的单纯只是一个疑问句。

还是得说明一下,我对技术广度没什么纠结。有句话说得好:不要把鸡蛋放到同一个篮子里。自己的工作经验,也是从一开始单纯的 java + jsp 的 web 时代过来的。

至于后来的 nodejs、angular、vue、flutter、python,前端、后端、部署运维、业务分析、架构设计……其实都是业务驱使学习,也就拿来解决需求。更多的变化可能是以前有人要我做什么我就做什么、让我用什么做就用什么做,变成了我要去想能不能做、要怎么做、领导是怎么说……这也就是我困惑的起源了。

至于“技术深度”这个话题,其实是一个可以使用另一种典型的“三问”来分析的问题:是什么、为什么、怎么样?我个人依旧是没找准属于自己的答案。

什么是技术深度?

可能其实是一个蛮浅显易懂的东西,就像挖金子,知道去哪儿挖可能就是广度,要挖多深才能挖到金子就是深度。所以现在的技术热点,其实的确也有不少人趋之若鹜,虽然譬如 OpenAI 的 ChatGPT 已经融入工作生活很久了,还是有声音说因为成本压力 OpenAI Might Go Bankrupt by the End of 2024。其实现在人工智能的市场也是算百花齐放吧,可回想一下上一个“元宇宙”的热点才过去多久,《头号玩家》还历历在目呢,也不知道现在的市场又是怎么样一个态度。

好吧,可能是我有失偏颇,毕竟这个级别的东西,与我这个本科毕业、干了 7 年还只在 web 领域兜兜转转写写业务功能的人来说,没什么关系,不在其位不谋其政,屁股决定脑袋。也不是什么名校高学历年轻态的人才,就算给我一个人工智能的高级岗位,我也不可能做得了。

所以,我的能力和眼界也让我看不懂“技术深度”,就像前些日子热烈讨论的“室温超导”,除了磁悬浮列车,我都没想到生活中的相关内容,而同桌还说应该说的是“常温常压下的超导体”,超高压的早就已经有室温超导了。

对于找准自己定位这块儿,我还是蛮小心翼翼的,我去问 ChatGPT,它告诉我:

技术深度是指在特定领域或技术方向上的专业知识和能力的程度。它反映了一个人对该领域或技术方向的深入理解、熟练掌握以及对其中复杂概念和问题的解决能力。

关键字就来了,我这个水平,能理解到的技术深度的含义,也就是“了解->掌握->熟悉->精通”。

难道技术深度最终反应出来就是在这简历上的几个词语吗?又或者说,其实只要能有方法解决你业务上的问题,也就是有技术深度的表现了?还是说,你实现一个功能用了 50 行代码,而同样的功能我却用了 100 行代码所以才是没什么技术深度吗?更甚着,“你写个前端再难能到哪里,肯定水平永远比不上写后台、做架构的啊”?……

为什么要提高技术深度?

这两天正和同事根据假定的性能改善需求正如火如荼地看 flink 和 cdc-connector 的源代码,还根据各种推测在修改源代码以达到自己业务上数据打宽 job 的性能。我也在想是不是单纯为了改源码而改源码的,实际上 docs 都没研究明白,其实从实现逻辑上有更好的办法?

就像前端开发说到 vue 也一定会问你什么核心原理,vdom、mvvm、reactive、diff 之类的,说起来都觉得是:就算写业务的时候用不到,但遇到问题解决问题时会更容易,懂原理会让你写出更高质量的代码。

虽然我个人一直觉得解决问题、完成需求也就是我这么多年写代码的追求了,但不得不说,写代码只是一份工作,提高了技术深度说起来应该能让简历更好看的同时,还能强化解决问题的能力,或者说我希望是这样。

但就像有些社交应用的言论“25 岁还没有一百万存款的 X 人还 X 着干什么一样”,不管是工作的 996、还是忙在家庭和生活,留给个人的提高技术深度的空闲时间,或者真的不多了,尤其是已经有了一些工作经验、养成了既定的工作生活习惯的人。我倒不是为了自己开脱,我有不少空闲时间,也没有外债贷款,也没有对象,而我却很少用空闲时间继续学习与工作技术相关的内容。可能就是“混吃等死没有上进心”的那种,只是单纯觉得我的人生旅途,不不应该只有工作,可是也不知道应该还有什么。所以我能接受目前的市场反馈,我没有和别人卷,所以我没有找到离家近且合适的工作机会。相较与自己大部分的大学同学们,物质层面甚至精神层面的确要差他们很多,这都是自己的选择使然。

那没有激情的工作没有意义?我的一日三餐可不会跟我讲这些,或者我也不可能一直一个人潇潇洒洒地过下去,那些有儿有女有房有车的一部分老哥,可能也不再是为了自己一个人而活着。“兵马未动,粮草先行”,“天有不测风云”,我不建议“打没有准备的仗”,所以,干我们这行的,大部分时候需要提升技术深度,空闲时间没有,那么上班的时候、实际在做业务的时候,也可以追求进步。

可惜的时,我猜测大部分工作的内容,不会有那么多自主选择权,能在工作中加强技术深度的,可能只是少数,大部分时候,都是在追着业务功能上线、bug 修复吧。上班都有很多空闲时间可以学习?羡慕,求推。

怎么提高技术深度?

像我这样能力一般追求不高的人,我是没办法列出这部分的内容的。如果我的工作只是为了完成业务功能,那我的选择可能只有面对一时间无法解决的实际业务需求时,然后才去学习解决之道。年轻或有能力的后辈前辈可能不应该有这样的想法。“读书破万卷,下笔如有神”,“腹有诗书气自华”,到那时可能就有底气说:“虽然我没做过,但我知道怎么做。”

不过亦如那些“成功学专家”所说,“选择比努力更重要”,不过其中大部分都不会跟我讲“怎样的努力”和“怎样去选择”,那是额外付费的内容。又或者像那些健身博主总是能发“几个动作让你 1 个月瘦 30 斤”的视频,却不会关心其受众的不同的身高体重和特质,私教那是另外的钱。

如果我打算 35 岁回老家的县城的小区当保安的话,我也不在追求这五年再去研究提高技术深度了。但是你不想满足与 CRUD,想有能力接受更大的挑战,挪挪屁股,想成为“技术专家”、“架构师”,那就是不得不面对的问题,那就应该去请教“技术专家”、“架构师”是怎样去提升技术深度的,而不是看两篇博文、读两篇公众号文章就心满意足了,那不就是问道于盲吗。可正如看病时“专家号难挂”,其实只是个心理安慰,普通小病问题都不大。我也不赞同“大师在流浪,小丑在殿堂”这句话,因为罗马人的先天优势是必然的存在,无法磨灭。

最后的套话,web 开发,如何提高技术深度,这是 AI 给我的建议,“提高 Web 开发的技术深度需要坚持不断学习和实践,并保持对新技术和行业动态的关注。”:

  • 深入学习前端技术
  • 掌握流行的框架和库
  • 深入研究后端开发
  • 学习数据结构和算法
  • 掌握数据库,学习网络协议和安全
  • 实战项目和开源贡献
  • 构建项目经验和解决问题能力
  • 持续学习和跟进技术动态
  • ……

几乎都是没什么营养的话术,这样看来,我个人在学习时习惯性去看什么规范、看什么源码,可能只是单纯在逃避而已,那么大的团队、那么大的量,我个菜鸟怎么可能看得明白。到最后也不过是遇到问题再叭叭去问、去寻找答案而已。可能这辈子也就这样了?即便依旧对张口就来的大神满心敬佩,也对别人批判没有技术含量有些介怀,毕竟无力反驳的事实很是扎心。