你知道程序员、高级程序员、架构师、技术经理、技术总监之间有什么区别吗?一个程序员的水平高低从何来判断,头发吗?
勤快程度
网上搜索,一步到位直接找到解决办法的机会其实很少,于是呢,就开始产生差异了:有的人找了一下就不找了(比如我安排一同事查找搜索文件内包含字串的小工具,他就找不到),而有的人会不断的寻找——所谓不断,又有不同的程度。于是,同样问题,不同人解决,有人能解决,有人不能解决,有的人很快解决,有的人就慢点,这水平差异就相当大了吧。
查找办法
同样的事情,不同人找起来结果当然不同。为什么呢?有的人找不到之后,认为是没有,而不是想办法改进自己的查找办法。有的人会反复寻找,组织各种关键字,甚至硬着头皮看外文。
天赋
比如说,学习速度、理解能力、记忆能力、领悟能力,这都是天生的,后天很难提高。这里说很难提高,实际上应该有办法提高的。以记忆能力来说,吾看个书记不了多少,而有人差不多过目不忘,怎么比?拿领悟能力来说,大多数人无法适应高数思维方式(吾亦是),跟那些研究高深数学的人,差距有多大?
联系能力
比如说,拿一堆代码,大多数人是看了后面忘记前面。而有的人看了后面能跟前面的联系起来,慢慢就形成了一个有序网络,等于这堆代码变成自己的。同样的,一个问题有多种现象,有的人就能从中找到联系,从而找到问题根源及解决办法。
把握重点能力
工作中,大多数人并不知道工作的重点是什么,做些鸡毛蒜皮的事情,而重点工作全部丢了。这听起来很奇怪,事实确实如此。
动手能力
大家都知道,遇到一个问题,都觉得自己的办法最好,实际上动手的时候都纷纷退让。这也是正常的,谁不想懒啊?如果解决不了,岂不是很损脸面?
动脑能力
人是很懒的,而动脑是最累的——这是当然的事情,因为大脑最想偷懒嘛。遇到问题,反复分析、思考、尝试,一般总会找到解决办法的(当然这里不要抬杠,指能力范围的)。可是大多数人都不想动脑,因为大脑觉得动脑就变成高能态,而高能态不稳定。
学会改进
有的人问题解决了,就彻底放一边,再也不想看一眼了。有的人则会发现自己的不足,尝试寻找更好的解决办法。短期内可能看不出差异,过个几年,这差异就极为巨大了。
也就是说,以前程序员的水平有巨大差异,今后依然有,而且永远有。
以上有的观点略有重复,简单来说,天赋、动手、动脑三者的乘积(或者指数?),导致了差异。
那么,作为一个程序员,可以提高自己水平的地方有哪些?
1、勤快程度。也就是多动手,少动嘴。
2、把握重点。不要被杂事影响,把主要精力放在关键工作上。
3、动脑提多方案。任何一个问题,至少要想三个方案。如果只有一个方案,说明自己没动脑。