即将三十,我不敢说我精通任何一项技术

图片来源:http://www.imdb.com/title/tt0395699/

回顾自己的技术成长之路,具体技术真心没有一样敢说精通,对于一个像我这样工作6、7年的人来说,实在有些难以启齿。

现在中国整个的技术环境看重的是技术深度,而我从一开始就认为应该先广度再深度,自然在同行中被认为是异类。我没记错的话,大神左耳朵耗子的观点就是深度优先。

为什么要广度优先,而不是深度优先。我有自己理由:

  • 技术变化太快,当你还没有深挖到某一个框架的本质,这个框架就可能已经过时了,特别是JS框架;
  • 容易只见树木、不见森林:比如你花很多时间去研究如何分布式存储你业务应用中的文件,但是你可能不知道世界上还有AWS S3这样的东西;
  • 手里有把锤子,全世界都是钉子:精通写bash脚本的人,所有的运维工作都倾向于写bash来解决运维问题,不知道世界上还有Ansible这样方便的东西,也不知道有时候根本问题不在运维,而在开发。

我说出这些理由,并不是说我们就不需要深入研究某个框架和技术,只是想说明我们的选择的优先级会决定,至少会影响我们的思维方式。

这几年,我开始输出一些体现我思维方式的文章,比如:

很少人发现这些文章的真正价值,因为看起来和他们的实际工作没有任何关系,这些文章不会告诉你怎么快速搭建好https环境,也不告诉你怎么用Ansible copy一个文件到所有的目标机器上。

在一次面试时一位老架构师两次问我:《耦合的本质》真的是你自己写的?显然他不相信写这篇文章的人30不到。确认之后,他说他不完全认同“耦合的本质是假设”,但是他欣赏这样的思维方式。

我头一回感觉到有人看懂这篇文章。

总的来说,这些文章体现出来思维方式是:

  • 利用概念推导、还原事物的形成过程、找共性这3个手段来找到事物的本质,再从这个本质推导基于此事物的上层建筑。

比如我根据我们实际运维过程所要做的事情,推导出要实现自动化所要解决的问题,然后再通过“找共性”的方法,最终找到了这Puppet,Chef,Ansible 三款工具之间的共性。

但是有什么用呢?其实,找到共性后,当遇到第四种自动化运维工具Salt时,我们就很容易提问了:

  1. Salt如何与受控机器通信
  2. 如何组织机器的?
  3. 使用什么DSL来描述这些机器的配置

最后根据这些问题进行深入地学习,这样我们就可以从被动学习变成主动学习,有方法论的学习方式。甚至找到这些工具的知识边界。

然而这只是我的个人学习方式,不一定适用于所有人。也不代表我的学习方式就是好的。

我只想说明:深度优先和广度优先的选择会改变我们的思维方式。

按道理,使用这样的思维方式(有点像方法论),任何一门技术都可以做到精通,但是我目前就是没做到精通。

因为我排斥用脑袋记东西。我认为记不了的东西或者能不记的东西,它就不值得记忆。比如如何将字符串ip转成一个整型数字、Ansible里某个module的具体用法。

而现实中,我对比其他的运维人员,我发现我用Ansible用得已经非常好了,Ansible里的概念我基本已经理解透了。但是我仍然不敢说精通Ansible。我实在记不了unarchive这个module的所有参数。

所以,即将三十了,我仍然不敢说我精通任何一项技术。这成为我的困境。

这时,很多人就会说了,你应该考虑转管理了。

但是,我要问了:为什么要转管理呢?

不少人的回答:

  • 因为你老了,你没有精力去学习更多的新语言、新框架了,你拼不过小鲜肉了。

这个观点里有,有两个假设:第一,到三十后,你学不会,或学得慢新语言、新框架是因为没有精力;第二,小鲜肉没有能力做管理;

第一点假设不成立,因为那只是借口——不想做的人,会找理由,想做的人,会找办法。第二点假设只是概率性问题,小鲜肉也可以做管理。

转不转管理,决定于你是否真的Ready好了,是否真的喜欢做管理。和你年龄没有任何关系。

说到底,写不写代码,做不做管理,都是个非常私人的问题。我们没必要那么在意别人怎么看。

最后,我深爱着写代码。这不会因为我目前或将来是否精通某项技术而改变。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Linyb极客之路

“大话架构”阿里架构师分享的Java程序员需要突破的技术要点

源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。

681
来自专栏编程

什么是后端开发?

软件应用程序就像冰山一样。用户看到的只是应用程序的一部分——在大多数情况下应用程序的最大部分是看不到的,这就是令人难以捉摸又神秘的“后端”。 在 Web 开发的...

2217
来自专栏Java架构师学习

阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准阿里巴巴篇百度篇腾讯篇源码分析:分布式架构微服务架构性能优化Java开发工具实践项目

金三银四的跳槽热潮即将过去,在这两个月的跳槽的旺季中,作为互联网行业的三大巨头,百度、阿里巴巴、腾讯对于互联网人才有很大的吸引力,他们的员工也是众多互联网同行...

3679
来自专栏微信公众号:Java团长

Java程序员涨薪必备技能(1-5年必看!)

工作1-5年,当我们向老板提出加薪的时候,或者跳槽去“捡”offer的时候,我们底气够吗?

591
来自专栏Java架构

互联网一线大厂都在用的Java架构师知识体系

一、源码分析源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。源码阅读,我觉得最核心有三点:技术基础+强烈的求知...

852
来自专栏Java架构师学习

“大话架构”阿里架构师分享Java程序员需要突破的技术要点一、源码分析二、分布式架构三、微服务四、性能优化五、Java工程化

一、源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。 源码阅读,我觉得最核心有三点:技术基础+强烈的...

2925
来自专栏java一日一条

什么是后端开发?

软件应用程序就像冰山一样。用户看到的只是应用程序的一部分——在大多数情况下——应用程序的最大部分是看不到的。这就是令人难以捉摸又神秘的“后端”。

773
来自专栏Java架构

Java体系化高级学习路线图,拿走不谢!

可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。

803
来自专栏java技术学习之道

程序员涨薪必备技能(1-5年必看!!!)

812
来自专栏Java架构

“大话架构”阿里架构师分享的Java程序员需要突破的技术要点

源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。

592

扫码关注云+社区