对于技术焦虑的一点想法

有一个公众号是吃草的罗汉,最近看他的一篇文章,我被里面的一小段内容吸引了,他这样写道:

在成长的道路上,有时你越是不喜欢的事,越会阴差阳错的让你遇见

在《我也可以是流浪诗人》中有几段话,很有意思,摘录一些分享给大家:

做你没做过的事情,叫做成长;

做你不愿意做的事情,叫做改变;

做你不敢做的事情,叫做突破;

我觉得很受用,自己似曾想过但没想通的问题,好像有了一些答案。

联系一下我自己,离开搜狐畅游之后,我就希望找到一个能够施展拳脚的舞台,有考虑大厂,因为不需要从0开始,如果有10分,直接可以从7,8分到达9分,如果是一个新的公司,那么很有可能就是从3分甚至从0分开始,我已经厌倦了大厂光环的效应,也厌倦了只说不做的浮躁,如果有时候做事情隔靴搔痒,那么我有时候就会有这种感觉,这个和公司的关系不大,而是自己在职业发展的道理上有了一些困惑。

我在给DBAplus社群的MVP获奖感言这样写道,所谓迷茫就是懒,多做点实事就有目标和方向,(后面一句是洪颖帮我改得温和委婉了些:)),那么问题来了,该做哪些事情,该怎么做,一系列的3W问题。

我画个图来说明一下,我之前从事的工作中Oracle的方面较多,但是因为工作还是有不少的机会来巩固MySQL方向,而从技术栈上来说,数据库方向也算是站稳脚跟了,但是从一个整体的角度来说,我只是做了其中的一部分,下面是两个大圆圈,分别代表数据库技术和开发技术,数据库技术中目前的工作中能够直接拿过来复用的就是规范和架构设计的一些东西,而且很多对我来说也需是新的思考方向和挑战。MySQL纯技术栈的内容其实算是常规,如果目前的工作业务量还没有远未达到瓶颈点,性能优化的部分还是少一些,那么我们要巩固的首要就是开发自动化平台,新问题来了,数据库开发方向目前很清晰的一个点就是自动化运维,确切的说是DB自动化运维平台,说是重构也好,重建也好,不是完全从零开始,但是基本是从零开始的节奏。要做这个事情,得有人来带路,大家都不知道怎么走,站在原地讨论plan A,plan B,问题肯定是解决不了的,得有人迈出来,大家都不会,你就得冲在前面,大家没考虑的问题,你考虑到了,考虑的问题,你已经心中有数了,我觉得事情就可以干了。

所以开发的部分就需要自己克服,而且开发web类的应用有很多的框架,开源技术方向的技术变化很快,要熟悉这种文化,要适用新的技术思想,这些都是一个过程。

对于技术焦虑的一点想法

当然我自己也不会给自己太多时间,拿到一个结束时间点来反推这个过程的进展,这样虽然不一定可靠,但是方向和动力是足的。

这就到了第二类问题,面对纷繁复杂的技术和方案,该怎么选择。

我们大体都会碰到很多技术问题,有些是通用的,有些是具体的。他们之间的关系和区别就很重要了,要不然总是很凌乱。

对于技术焦虑的一点想法

我们能够很快的做出一个应用来,但是如果分析一下核心的点,似乎很难get.

对我们很多同学来说,做技术的核心竞争力,除了丰富的业务经验(这个需要时间的积累),技术层面的积累也是需要一个体系的。我举一个例子,编译原理,想必大家在大学都学过,但是包括我还有很多同学,应该都在大学完美的绕过了这个学习的痛点,有很多人在想,学习编译原理有什么用,答案我都给你找好了。

来自知乎的一个不错的解答。

https://www.zhihu.com/question/21755487/answer/30579467

关于编译原理我一直最喜欢类比的就是人体解剖 。在欧洲教会还不允许做尸体解剖的时候就有两类人在一起偷偷摸摸的搞人体解剖:一类是医生,从外科手术的角度来说应该比较容易理解,不解剖根本不可能知道如何做外科手术;还一类则是画家,他们只是为了可以更好的在描绘皮肤时体现肌肉的质感,就愿意冒着被教会处罚的危险来参与人体解剖。而且即使是现在,所有的现代绘画的教育虽然不会再像医生那样实际操作解剖,但是肌肉层的解剖图仍然是必修课。在我看来,完全不懂编译原理的程序员,就好像是完全没有学过人体解剖图的画家一样,当然不会说一定就无法成功,不过如果有更好的基础可以提高成功的几率。在知道底层的情况下,对上层的描绘会更加写实,更加生动。抛开比喻,从现实的方面来说,编译原理学过之后的益处(不考虑最后都没有入门的情况)包括:1、可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的2、可以更加客观的比较不同语言的差异3、更不容易被某个特定语言的宣扬者忽悠4、学习新的语言是效率也会更高5、其实从语言a转换到语言b是一个通用的需求,学好编译原理处理此类需求时会更加游刃有余另外还有一点,就是一直有人说不用重复造*,所以不需要学习编译原理这样的课程。我想说的是,学编译原理不是让你去造*(大多数人的实力,学了也造不出*),而是要让你知道现在一共有多少种*可以选择,它们特性如何?就比如f1比赛,其实现在所有的车队可选的轮胎都是一样的,但不同车队根据自己车的情况和战术等做出的选择就会截然不同。如果你对轮胎的理解只是它可以转,那么你根本无法把它的能力发挥到极限。

大学里面几门非常核心的课程,比如操作系统原理,数据结构,计算机组成原理,还有算法,这些在你工作的一些年头可能不会排上用场,但是等到了一定的阶段之后,这些就是你思维的沉淀,计算机技术就是前仆后继的贡献中不断积累起来的,沉淀下来的很多理论和问题处理方法,光是想肯定是想不出来的,我们得抓住几个点或者面深入下去。有些同学说现在的大数据学起来好难,深度学习也很难,明显理论层次就上升了一个台阶,有没有明显感觉到压力。

还有一点很多年前,大家都会提到一个短板理论,把技术做得很纯粹的同学会有一个很明显的天花板,但是这些年来,短板理论也受到了挑战,在这种需求之下,不温不火的算法工程师这些年来真是大红大紫,不乏一些百万年薪的高级职位。

有的同学说,我是DBA,这些和我也有距离,单说数据库内核技术,Oracle内核技术2000年左右如火如荼,ITPUB上面为一些内核的不明确问题,论坛里面能炸开锅的讨论,随着时间的推移还有技术热度,如今这种情况不多见了。一来是坚持技术研究的人少了,而来是热度没以前那么高了,或者说钱途没以前那么好了。现在的MySQL技术依旧如火如荼,技术终究会越来越成熟,我可以想到几年后,某些攻略不再是攻略,而是集成在数据库里很自然的优化方法,被诟病的问题也逐步被修复,那么我们工作的意义和岗位存在的价值在哪里。

一定是往前走,往上走,那个时候就不是改变了,而是突破。如果你技术基础还不扎实,比如像看看编译原理,不妨了解下编译原理的三大经典书籍(龙书 虎书 鲸书),看看操作系统原理,还有算法。

如果你觉得目前很舒服,不妨做些你不愿意做的事情,做些改变,做些你不敢做的事情,来突破一下你自己。机会不会等着你,也不会问你准备好了吗。
上一篇:纯干货!如何做一个成功的大数据项目


下一篇:AE实现不同图层的合并C#代码