最近因为一件事情,让自己突然对自己产生了巨大的怀疑。工作一年多,仔细想想貌似真的只是在积累项目经验,而在技术深度上却一直停滞不前。这其中确也有因为之前做产品没有太多空闲时间的缘故,但更多的还是自己一直不得章法。对nginx源码的学习,一拖再拖,想成为这方面的专家却也不知道努力挤出时间或者说没有好的方法让自己合理安排出时间。
毕业的时候自己选择这里,就是想安心的做技术,以求在技术上得到长足的进步。现在却发现在做着一些没那么有技术含量的东西,像某人所说:上学的时候给我一定的时间也能够做出来。虽然我觉得上学的时候,大部分进公司做的东西也能做出来(除非是那种需要基于一定的环境像大数据、高并发才能做的)。但其实我明白,那句话的意思主要强调的是应该潜心去研究一门技术,比如hadoop、storm等,成为一个领域的专家。这也的确是自己的软肋,也的确该好好加强。
这也牵扯到了技术的广度和深度的问题。这两个的优先级不能一味的说谁优谁劣,技术研究的人肯定倾向于去拓展技术的深度,而面向产品、架构的人应该关心广度多一些吧。当然如果不去精通一门技术,广度却也是无法拓展的。所谓技术上的成长,抛开技术的深度和广度来言,我觉得还是主要指技术思维的拓展和进步。技术领域的很多东西都是触类旁通的,只要你有好的逻辑思维和方法论,那么对于很多东西都是能很快上手直至掌握、运用、精通的。
还有一个上手能力和学习能力的问题,上手能力指的是你掌握然后使用,而学习能力应该是理解并能改进。这两个概念以前没去区分过,现在想想却也是有很大不同的。上手容易,精通难。所谓学习能力,是上手之后能够快速地吸收为自己的东西,能够从自己的角度看待问题,甚至提出自己的改进。很多人接触一个新的技术的确能够很快地上手去运用,但是却很少会深入地去学习这种技术的原理、运行机制之类的东西。这也是优秀开发人员和一般开发人员本质的区别。 学习技术,更是要学习其精髓而非皮毛,知其然更要知其所以然。
其实,总结来看,作为一个技术人,追求的技术上的长进,从多个维度来看,关键的还是项目经验和思维能力的同步提高。当然,如果对某一个领域能深入研究从而成为专家那也是锦上添花的事情。