Thought and Felling About Technology in 2020
从故事说起
前段时间,一朋友公司招聘CTO,因为朋友不太懂技术,我帮着参谋了一下。共参与面试了两个人。我想说说对此次面试的感受吧。
第一个,47岁,看到简历,过去的经历非常的丰富。工作经验都20多年了,相比一定的大牛,我还特别担心是不是可以聊得了。但结果却让我大跌眼镜。
到现在,我记得比较深刻的几个问题:
-
linux的发现版有哪些?——因为他提到他对linux很熟悉
答:redhat,centos,其他的就不知道了
其实这个问题,是我在与他沟通过程中发现了很多的问题,他对linux并不熟悉,所以想从这个口去看看他对Linux的了解,结果这根本谈不上了解。甚至还没到Linux系统层面的东西。
-
未来技术发展趋势?
答:好好学习,学习使用… …
这个让我大大的大跌眼镜,这种说法表面既不成熟,也对技术发展没有任何了解。
-
按照高可用的标准改造一个他熟悉的系统的思路
基本上答非所问…
另一个,40岁,也是朋友公司比较看重的一个人,从简历上看经历也是相当的丰富的。想着面对这样的人,必定也经历和面试过很多人,换种方式来沟通,让他自己用一种他任何合适的方式来展示自己。
对方的方式,没有特别的地方,依旧沿袭了过去的方式。但在一个地方深入了一下。过去的项目中对地理位置的处理,有些他自己设计的东西,然后用笔在纸上还画了一个示例,当然这非常好,可以把自己的设计整理下来。但是后面的沟通有点难以接受了。主要在:
- 觉得基础不重要,对于常用的框架或组件的设计或工作原理,没有必要去掌握,觉得掌握这些既没有意义,也无必要
- 觉得自己造的轮子,比去研究和学习一个更成熟更能让大家学习到东西和上手
- 对于面试,觉得新人面试就应该从高数,物理这些开始面试,会问得很细…
在我看来,这些提法都有些矛盾的。
我想先说说自己造轮子是否真的有必要性。在特定的条件下,必然需要去造,因为特定的问题可能就需要这样的方式才可以解决。但是就目前来说,现成的轮子其实足够大部分公司的大部分业务场景了。这情况下造轮子我觉得就没有意义了。比如spring及其生态,很多组件完全可以满足大部分业务场景了,在这情况下,造轮子一点意义都没有。某些不满足业务的场景,也可以去扩展他们即可。
而对于常用的组件或框架,对方觉得只需要会用就可以了,至于工作的原理不必在意。而对于我提到的,如果出现了问题,需要排查错误的时候,不知道原理如何去排查,如何确定是业务的代码问题还是框架组件的问题时,对方所答就显得牵强许多:他掌握就可以了,其他人不必关心和知道,如果他解决不了,就找外面的人。
面试的时候,会问高数,甚至物理相关理论知识,这点与对方觉得基础不重要,显然就矛盾了。而且实话讲,我觉得这样的方式不能找到合适的人,想想一下,一个工作十年之后的人,还记得物理相关知识的概率是多少?极低极低! 通过这些内容的考核就能确定候选人时候合适吗? 我的经验告诉我,这基本上很难确定。
但有一种说法:面试造火箭,入职扭螺丝。这情况在目前的市场很常见,但是我觉得这是一种必要,因为这个时代,很多技术解决方法都太成熟了,基本上都非常的傻瓜了(SpringBoot让你解放了有没有)。在这种情况下,如果没有基础的考核如何鉴别候选人呢?一个只会用,出了问题不知道如何排查,如何解决的人,肯定是不合适的。
所以我对面试会问很多基础的内容的情况,非常的赞同,因为这才是真正的区分。
说了这堆,我想表达的是:其实技术要用起来,真的很简单,但是要掌握那个底层的逻辑才更有意义。好奇心,应该一直都有才对。
Thought and Felling About Technology in 2020
这个时代,科技的发展,出现了太多的解除方案了。老掉牙的说法,架构从ALL in one到分布式微服务,再到service mesh ,到serverless,各种新东西的出现。但是一起回归本质,个人理解都是基础的那些东西,或者新出现的概念罢了。
研究过很多框架源码之后,你越来越清晰的发现,里面有很多jdk源码的影子,所以jdk源码的透彻认知才是开启一切的法宝(个人观点)。我也仍在这条路上,在继续深入的路上。
在2020年,对于技术相关的领域,我的想法是逐新回源——这里需要和可以做的事太多了,我也给自己订立了2020年的计划,务必多方位的回源。
只有深入研究和了解本源,才是基础。对于业界的发展,要集合时代的变化,要始终记住:
技术就是工具,技术是为业务服务的,脱离了具体的业务需求,技术的存在就毫无意义,技术为解决问题二审,技术为突破各种新问题而迭代。