就想做硬核技术宅

65 阅读6分钟

上一篇文章中,我提到,如果想要实现效益最大化,程序员要尽可能地发展『软技能』,即努力提升自己的表达能力,管理水平,或者稍微专业一点的架构设计能力,代码整洁度等等。

但是人各有志,有的程序员就想专心做技术,认定自己这辈子要做技术做到老。那么,有没有一种效益最大化的方式,让你的技术发挥出最大的作用呢?

还是可以从复利和边际成本的角度来看看。

注重基础

随着技术的进步,各个技术栈的框架日趋成熟,很多时候你只需要一行代码,就能写出一个应用,或者实现一个复杂能力。虽然极大提升了生产效率,降低了进入的门槛,但也造成部分程序员只会使用框架,不懂底层原理,计算机基础知识薄弱的现状。

大部分时候,只会使用框架没有什么问题,但是在解决一些关键疑难问题的时候,这些人往往就会束手无策。而那些基础知识扎实,深谙底层原理的人,则能很快透过现象看到本质,精准定位到问题。作为老板的你,会更喜欢哪类人呢?

计算机发展的这几十年时间,各种框架层出不穷,此消彼长,但是像操作系统,TCP/IP 这些底层基础知识,几十年都没有什么重大变化。如果你在这方面基础扎实,那么你的职业生涯道路也会比别人长很多。

正是由于基础知识的生命周期很长,你在解决新问题的时候,不再需要重复学习,边际成本低,而你在解决问题的过程中,也能进一步加深你对底层的理解,从而产生复利。

所以,作为一个有理想的程序员,扎实的基础是第一步。

解决工作中的实际问题

很多程序员好奇心强,学习意愿高,看到新技术新框架出来,十分兴奋,没日没夜地学习。这当然是好的,值得鼓励的。但很多人学习的目的往往只是因为它是新的,为了让自己显得不那么过时。而在阶段性的学习结束之后,并没有产出结果,没有解决实际问题,即,学习没有闭环。

这里我建议,要带着解决问题的目的去学习。你需要善于发现你们项目中的各种问题。比如内存占用是不是需要优化?耗电有没有问题?发现问题后,再带着这个问题去寻找解决方案,去学习能够解决问题的新技术。或者,看到新出来的框架,先看看简介,有什么新特性,是不是正好解决了项目的痛点,如果是的话,再深入学习也不迟。

这种方式虽然对于个人技术积累效益不大,但是对于个人在团队中的影响力提升十分有益。因为你总是那个解决问题的人。在你的持续推动下,你们的应用性能越来越好,崩溃逐渐减少,用户持续增长。团队里有这样的员工,哪个老板不喜欢。

成为『科学家』,而不是『工具人』

其实有很多程序员,在工作学习之余,也是十分热衷分享和输出的。这是非常好的习惯。一方面可以形成知识闭环,加深自己的理解,另一方面也能扩大自己的影响力。但是一看分享的内容,都是《XXX环境搭建》、《XXX入门》、《XXX使用方法》等十分基础的内容,甚至大部分都能从官方文档中找到。而这样的内容,网上一找一大堆。

输出这种同质化内容的一个弊端就是,在受众看来,你的作用跟官方文档差不多,仅仅是个工具。而工具,是没有名字的,是可以被替代的。

我很喜欢『科学家』这个词。当然,在现在的 Web3 世界,这个词有点被污名化了。我们小时候都想成为科学家。但是长大后你成了软件工程师,我成了土木工程师,他成了机械工程师。科学家的理想离我们越来越远,甚至被我们抛弃。

其实,每个人都可以成为自己领域里的科学家。去研究别人没有研究过的问题,并尝试取得突破。像科学家一样思考:这个问题业内没有成熟的解决方案,好,那我来解决它。持续这样输出的话,你扩大的是你的行业影响力。一个具有行业影响力的人,基本不需要担心失业,而且即使出来单干,也会有一大批追随者。

所以,要努力成为『科学家』,而不是『工具人』。

尽可能一专多能

每个程序员都有自己的本职工作。你可能是个后端开发,前端开发,或者算法工程师。对于自己的本职工作,你当然要成为专家,甚至是我上面提到的科学家。那么在本职工作之外,我们要不要接触一下其他领域的知识呢?

我认为是需要的。最近 Web3 很流行,我也花了两个月时间系统了解了一下,尝试了一下 Web3 开发。在学习的过程中,我深刻领悟到,如果我之前是个前端开发人员,那我的学习成本要低不少。因为 Web3 里面的很多成熟的框架都是基于前端技术栈的。于是我就想,在本职工作之外,是不是需要学习一些其他领域的知识,这样在迁移技术栈的时候,成本最低。

一专多能还有个好处就是,你能很流畅地跟其他团队的开发人员交流。作为一个客户端开发人员,如果你也懂点后端知识,在跟后端联调的时候,也能减少沟通成本,提高效率。如果你励志成为大部门的技术负责人,甚至是CTO的话,各个方向都懂点甚至是必备的。

总结

上面几点,是我从复利和边际成本的角度考虑,在你真的想成为硬核技术宅的时候,可以做的一些效益最大化的事情。如果你有别的想法,也欢迎提出来,大家一起交流,共同进步。