今天我想谈谈如何做好一件事情,为什么有这个想法?其实也是和自己经历的一些事情有关。
刚到社会工作不久,在工作中也会经常遇到比较棘手的任务。有些事情你做不了,别人来做,他不一定比你懂得更多,但是却做得比你好。之前一直比较迷茫,不知道问题出在哪里,但这次为了解一个工程bug,苦苦钻研了2天,之前的迷茫终于解开。
其实,做好一件事的条件并不单单是你懂的多少,而是下面这个公式:
经验 > 专注力 > 方法 > 知识。
这个公式比较全面的解释了为什么学校里的学霸总是高分低能。为什么说社会是最好的学堂。为什么明明很聪明的人却总是做不好事情。
知识,是你记在脑海中很明确的东西,可以用来判断对错。以我一个工程师的角度来看,知识都是可以在书本中学到的,或者在互联网上搜索到的。如果你要拿你的知识和庞大的互联网知识库比,那真是自不量力,所以公司为什么要招你工作,并不单单是看重你的知识。但是目前很多公司面试官却仅仅是面试员工的知识和记忆力,但是你面试谷歌等比较优秀的公司,则一定会有方法,专注力,经验的全方面考量。
然后是方法,即解决问题的步骤,思路。主要是一个人逻辑分析力的考量。知识好比是制造武器的图纸,方法则是你怎么把武器造出。纸上得来终觉浅,绝知此事要躬行。说的就是这个道理。在工程开发中,往往会遇到很难解决的问题,并不是能靠知识一眼看出,而是需要排查问题,之前我提到解决了两天的bug就是个例子。这个bug大概是说,一个复杂的计算平台,每个计算模块是父子进程结构,父进程C++,子进程java,在jvm中还调用了jni,最后访问底层分布式存储。bug是当在jni中捕获文件不存在异常时并不能成功,而是会当做一般异常处理。而这个异常的类型通过打log看出来并没有丢失,是可以识别到的。但是就是无法捕获。面对如此诡异的场景,该如何排查。要知道整个计算平台包含了大量的开发人员几年的开发成果,再加上C++很多问题都可能是某些动态库的很小很隐蔽的漏洞导致。这时候就是考察开发人员有没有严密的逻辑推理能力的时候,通过尝试不同的场景,排除不可能出问题的代码,逐步缩小范围。说来很像简单的搜索问题,但是搜索的时候可以用二分查找加速;代码排查也同样需要类似这样的方法,从顶向下逐层排查,这就是方法。遇到再难的问题,只要思路清晰,采用正确的方法,就肯定可以解决。对于复杂的系统,更需要清晰的思路,我建议一定要像开发一个工程一样解决复杂问题,要画出严密的错误分析逻辑图,逐块分析,不要遗漏,细节决定成败在这里也同样适用。如果遗漏细节,往往一天可以查出的问题需要耗费一周甚至更久。
专注力,是总结方法的方法,是更高阶的方法。不单是解决问题,生活中处处都需要专注力,工作中需要,和人交流需要,感情生活中也需要。生活处处都是一道道难题,不同的领域方法类似,但也千差万别。如果有专注力的人,合理的利用专注力,就可以很快总结出某个领域的方法。专注力没有什么好说的,因为这种能力我们人人都有,但是为什么很多人说自己无法专注,或者专注了很久依然没有很大的能力提升。就要谈到下面的经验。
经验一般是在生活中总结的,但也有很多悟性超人的,可以在其他人的失败总总结自己的经验。我今天就是分析如何做好一件事情,做好一件事情的经验就要结合上面谈到的专注力和方法。专注力是可以产生方法的,这之间有一个过程,这个过程长短就是经验决定,专注力的使用方式就是经验。比方说你很专注的做一件事,但是你不懂的总结,不思考,不抽象更通用的东西,那很可能你专注了一辈子也不知道自己在做什么。在专注做事的时候思考,总结,升华,你的方法才能不断优化,萃取,趋近完美。所以仅仅对于做好一件事来说,经验就是专注并思考。这看上去简单的总结,包含着很多的内容。
正确的道理人人都懂,但是想做好没那么容易。做好一件事容易,但做好一生的事就不那么容易。如何坚持做正确的事情?这也是一道的难题,最终还是要通过经验的积累,思考总结,找到适合自己最好的坚持之道。所以其实任何事,面对任何难题,都要专注,都要忍耐,但是都要思考。则无难题已。
阅读(1209) | 评论(0) | 转发(0) |