4年,一个技术草根成长为CTO的故事(系列第三篇)
前两篇戳这里(点击标题即可阅读):
技术之道
一直以来,自己一直在探索“如何才能把技术做的更好”。因为很多时候发现,不是每个公司的项目都会很有技术含量,也不是每个人都有机会去接触到百万、千万,甚至上亿用户量的产品。
很多的技术朋友在做了几年的“增删查改”之后,发现: 除了把常用的技术点用的很熟悉以为,很快就开始迷茫了。当然,包括我自己。自己也不断的捣鼓很多的技术,包括最新的技术点,但是依然发现:学习到的知识 ≠ 能力,毕竟没有经过实战和检验。
也曾经想去拜大牛为师,后来发现:大牛都很忙,没空搭理自己。其实后来也慢慢发现:技术还得靠自己去悟,没有人可以帮你思考,只有自己思考,总结出来的东西,才是深刻的,合适自己的。
金轮法王对杨过说“杨兄弟,你年纪轻轻,就懂很多武学绝学,实属不易;但是,你花样很多, 没有形成自己的武学, 最后武学很难上一个层次, 很难成为真正的高手。”
这一点,自己也很有感触,自从踏入技术圈子以来,每天都能看到不同的新技术的产生,用日新月异来形容,毫不为过。很多的技术出来,自己特别的感兴趣,也非常的喜欢去把玩一下,也乐此不疲。后来初步的发现:自己很累,也越发感觉到自己的能力太“泛”,不深入。
自己确实懂得了很多的工具,但是,都很浅,真正最后使用的不多,而且即便使用了,出现问题的时候,自己依然是“一头雾水”,甚至有时候发现A工具不行,遇到问题了,自己没有正面的解决,而是马上转向一个B工具(与A类似),最后发现B也有坑,于是不断的换…..
要命!
换句话说,自己学的技能,没有任何的“核心竞争力”,到头来,只是“了解,熟悉”,谁都可以替代自己。而且,自己也不可能永远那么精力旺盛,不断的去追新技术。
怎么破???
守住寂寞
听过很多人都说“把一门技术学好,学精,其他的技术都是大同小异的”。这句话,听了无数遍,自己也不停的怎么说,但是,真的没有“真真正正”去坚守。
很多时候就是这样的,“明明知道一个事情有正确的方法,但是自己还是选择比较作死的方式”。
于是就开始死磕一门语言,几种最相关的技术,从语法层面,到操作系统层面,到编译原因层面,到内核…..
说实话,有时候也发现很枯燥,也无趣,也不知道学完之后,是不是真的可以“内功长进”,但是一想到那种“泛泛的工具”,想到自己遇到很多技术难题时候那种窘况,依然咬着牙,死磕到底再说吧,姑且相信。
顿悟
能力的提升,一定是经过不断的实践和思考的,一定是在量变引起质变的。
以前在很多时候,分析一个技术问题的时候,总是“感觉”,“我以为”,其实就是“猜”了。有时候相信,作为技术人员,一直被外人看来是“严谨,科学”的代名词,如果靠“蒙,猜”,真的不知道自己作为技术人员的那种“骨气和自豪感”在哪里。
有时候,对于一个技术问题,虽然从网络上,同行那里得到了解决办法,但是自己依然会尝试去解释到底是什么原因,也会尝试理解这个解决办法是从那几个点发现问题,解决问题的。
一直到后来,在创业失败之后,这种思维才真正的形成。
那个时候,因为创业失败之后,面临着很大的经济压力,算是已经把自己逼到山穷水尽的地步。当把一个人逼到没有后路的时候,就会发现:自己的极限,远远超出了自己原来的预期。
那个时候,白天给一些企业做内训,晚上上班(欧美时间,上晚班,白天休息)。做了一段时间,发现:内训的单子不稳定,而且这些收入无法补上自己的经济黑洞。
怎么破???
在跟一些企业沟通的过程中,发现:很多企业想通过内训,提升内部人员的能力,从而解决公司遇到的一些问题。 但是很多时候,内部人员从学会,到使用,需要经过一段时间。特别是在一些问题很紧急的时候,很多企业显得很焦急,也不知道去哪里找人解决,即便是招聘,也来不及。
有问题,就有机会,这就是商机。
于是,我就开始专门给很多的企业做性能优化,故障排除。一方面,这个事情很紧急,另外,企业原因为这个买单,因为是确确实实解决了他们的难题。最后,这个事情相对于“做外包项目”而言,来钱快。但是有致命的一点就是“时间紧”,因为要在很短的时间内诊断,发现问题,给出有效的方案,然后实施。对技术要求的难度,真的高,不是随随便便就可以搞定的。
依靠自己的那点能力,我开始胆大的去和一些熟悉的朋友谈,帮他们搞定问题,如果时间要求很短的,那么,价格方面可能会高一点,反之。大家通过一些交往,也愿意给机会。
其实,很坦白讲,很多的问题,自己其实是不懂的,很多时候,都是现场学习,别人一遍描述问题,自己一遍琢磨,然后把信息收集到了,回来开始翻资料,想办法。
例如,有一次去一个客户那边,他给我描述了大致的问题,他们认为是“数据库服务器”有问题,因为很难,服务器CPU老高了。说实话,那个时候,也是我一次听说磁盘阵列(也不怕大家笑话)。于是,开始回来死磕磁盘相关的知识,什么RAID10,RAID5 ,RAID6, SAN等等,也开始学习磁盘的“分块,分卷”。以前虽然听到过一点点,而且接触到的都是单个磁盘,没有多个磁盘的。“出来混的,早晚要还”,知识到用的时候,方恨少。
就开始死磕存储相关的知识,很感谢冬瓜头的那几本存储方面的书籍,受益匪浅。
开始的时候,就是靠着网络上面寻找的一些建议和只言片语来尝试,所谓的“偏方”,其实也不知道是否可以最后把问题搞定,这或许也是很多的技术朋友在解决问题时候的真实写照。
如果真的想要把这个活接好,把单子搞定,把钱赚到口袋,肯定不能这样。
自己就开始摸索,要总结出一套自己的解决问题的思路和流程。
开始发现:其实为很多的系统进行故障排除,性能优化的时候,就好比给一个系统“看病”。
其实可以想想,平时我们去看病,是怎么样的:
1. 我们告诉医生,我们不舒服,肚子很痛。
2. 然后医生就会在我们的肚子上到处的按,然后问“这里痛不痛”。
3. 然后医生找到几个“最痛”的地方。
4. 然后医生开始,看你的舌苔,看你的眼角。
5. 然后医生就给我们开单子,让我们去检查,化验
6. 我们拿着检查单,医生通过这些数据来分析,确定问题点
7. 然后医生开药
其实,我们可以把这个思路,沿用到解决问题上。
例如,一个网站慢了。那么,这个系统,在我们面前就是一个大的“黑盒”。反正不管怎么样,反正是有问题。
这个时候,我们要做的第一就是:冷静。
开始分析:由表及里的进行分析,一步步的抽丝剥茧。
首先来看看,一个网站慢了,肯定就是打开网页慢,这是一个最直观的感受。那么,我们再来看看,我们第一接触到的东西是什么?
网页!!!
我们再来看看,一个网页是什么?或者说,网页包含什么东西?
包含:Hmtl标签,JS,CSS,图片,数据。另外还包含一些Flash等。
换句话说,如果出问题,肯定是组成网页的这些部分出来问题。可以这么说:任何的内部问题,都会通过一些外在的形式表现出来。
我们再来看,如何确定是哪一块的问题。
不要一上来就是使用自己不熟悉,而且特别复杂或者强悍的工具(否则,你就陷入学习工具的误区,走偏了),就好比我们去医院,一上来就给你来个全身检查,大动干戈,绝对让你够呛。
例如使用Firebug初步的分析,看看时间线。例如,如果看到上述的那个图片,我们可以发现:客户端接收Html耗费了很多的时间,从而导致了后续的页面渲染和资源加载全部延迟。
这个时候,(如上图)我们就可以初步估计:Html的产生速度过慢或者传输耗时太长:
产生速度过慢:那么就是服务端的问题。(如代码,操作系统,服务器,数据库)
传输过慢:要么是Html太大(说明里面的标签和数据多),要么说明服务端需要把Html压缩之后传递(当然,要进一步考虑CPU的压力)。要么是,用户的带宽过低。
这个时候,我们可以把问题逐步的缩小范围,对于不同的问题点,采用的知识点和工具肯定是不同的,没有所谓的“万能钥匙”。
通过这样的排除,我们可以把问题分在不同的“段”,而不是“一团浆糊”。
另外,对于解决问题,一定要综合的评估成本、时间、效果。很多人喜欢一上来,就开始那代码动刀。这是基于几个前提:
1. 你对业务很熟悉,对系统很熟悉,否则,容易导致全面崩溃,吃力不讨好。
2. 你对系统使用的技术很熟悉。
3. 你有足够的权限
做任何事:要选择,最快解决问题,最快看到效果的方法入手。要考虑到业务的损失,和资源的配置。
在很多紧急的情况下,要争取机会和时间,例如,人家的系统已经无法开展业务了,这个时候,在条件允许的情况下,首先从最容易做的方法入手,如修改服务器的配置,数据库的配置,或者服务器硬件升级。
然后,你要清楚:这只是临时解决方法,是为你争取时间的,核心的问题依然没有找到和解决,这个时候,你有时间再去一步步排查。
就好比一个人已经不行了,被送到了急诊室,这个时候,我们需要的是上各种应急的措施,输血,电击,插氧气,先把人搞活,然后在开始后续的治疗,而不是一上来就深入到五脏六腑去检测。
升华
后来发现,这种看病的思维,适合解决很多的问题:由表及里,抽丝剥解,寻找证据,取样验证,缩小范围….
后来,我开始发现:破案也是类似的。例如,一个人被杀了,怎么破案?
我们根据死者和现场做初步的判断,是意外,还是有计划。是情杀,劫杀,自杀,谋杀…. 对于不同的死因,我们再去做不同的调查,例如,情杀,我们可以调查死者的感情生活。
后来,为了训练自己的这种“解决问题”的思维,我开始把“福尔摩斯探案集”读了好多遍,感觉不过瘾。于是,就把柯南这部动漫,反复的看,以上我虽然看柯南,那个时候,其实就是消遣,娱乐。现在看柯南,出发点,完全不一样,我会试图去破解每一个案子。当然,我没有成功破解过每一集的案子,但是发现自己的思维方式已经完全变了,什么密室杀人,无目标杀人事情,自己都可以慢慢的想出一些端倪。
再后来,也看了很多的美剧,例如犯罪心理学,各种侧写。
当把这些思考过之后,再回来分析问题,发现思路清晰,而且很快。很多步骤,在别人看来很花时间,其实可以一气呵成。
说到这里,在谈谈技术方面。那个时候,自己的架构设计能力,死活上不去。什么规划,安排,布局,真的不行。后来,我就开始下围棋。
在下围棋的时候,落子的时候,一定要多考虑,以后如何把这个棋子和其他的棋子的“气”接起来,如何最后形成合围之势。如何落子,看似无意,不被察觉,其实是有意为之。
虽然到目前为止,棋艺不咋地,但是轻轻松松让我在以后系统设计,人员调度和资源分配方面,得到了很大的裨益。
所以,很多时候,如果想要把技术学好,其实不要仅仅只是关注“技术本身”。因为:技术只是世间万物中的一种而已,通过学习技术,我们来了解事物;那么,在技术遇到的很多问题,其实可以借用其他行业的思维来引导,从而使得自己从“术”的层面,进入“道”的层面,了解为人处世,解决问题的方法。
做人之道
我们都是应试教育的实践者,一直以来,我们被教导“要考全班前几名”,“要考上好大学”,“隔壁老王的儿子工资很高”….
于是,我们开始喜欢和人攀比,炫富,开始容易嫉妒别人,甚至开始践踏自己的同学,同事,朋友,甚至亲人。很多人看不得“别人比自己厉害”,也非常不爽“为什么他混的好”。
自己曾经也有过很多尴尬的经历,也受过很多很囧的待遇,想要争气,不断的和别人比,特别是生活压力很大,周边弥漫着“各种比较”的时候,那么攀比的心理会成为梦魇一般跟着自己。不管你想不想,周边的人会时时的“提醒你”。
看到一句话,我认为特别道理,“一个人的成就和胸怀是成正比的”。自己过的好不好,没有必要去炫耀,炫耀之后结果怎么?无非就是自己心里爽一点,把别人搞的难堪一点,这种所谓的“爽”,其实就是一种虚荣。
在现实生活中,我们可以发现这么一个好笑的事情,“人越缺什么,就喜欢表现什么”。很多穷人发财之后,喜欢炫富;很多矮个子的朋友喜欢穿“高大”的衣服;很多土豪老板喜欢“风雅”…..
其实骨子里面很多是不自信。
我们见过也经历过,有人为了一点点短期“利益”,用尽手段,最后的结果绝大部分是两败俱伤。
在我家人曾经因为重大的疾病,被医生告知“准备后事”的时候,那一刻,我觉得所有的梦想,奋斗,事业,金钱,都是扯淡的,都是TMD的浮云,在生死面前,苍白无力。活着,才重要。(很幸运,我被医生吓着到,后来治好了)。
有时候,我常常在想:为什么创业,为什么努力?
难道真的是为了“梦想”,为了成就“一番事业”,还是为了“改变人类”这个伟大的目标???
坦白讲,我没有那么伟大,其实最后明白:不能以牺牲自己的家人为代价来成就自己的事业,不能把自己的梦想强加在别人身上来成全自己。我所做的一切,都是为了自己的家人健健康康,自己的朋友,开开心心。
我不想:
因为我们的无能
因为我们的愚蠢
因为我们的懒惰
眼睁睁看着亲人一个个走掉
而我们什么都不能做
这是我为什么选择目前这个公司的原因,做一个有价值的事情,或许,不是特别快速来钱的项目,但是,是一个有社会价值和个人价值的事情,成人达己。
其实,平平淡淡,简简单单,幸福感很强!
心怀感恩
我相信,每一个出现在你生命中的人都是有意义的;每一个和你相遇的人都要珍惜;感谢一路的陪伴,或许我们只是大家人生中过客,但是我们希望每次我们的擦肩而过都会成为一段美好的记忆!
扫描下方二维码,进群与作者交流
▽
延展阅读(点击标题):
本文系InfoQ原创首发,未经授权谢绝转载。