写这篇文章,有两个两个诱因,一个是 Tinyfool的tiny4cocoa 有一篇文章,正好聊到这个话题,勾起了我的一些想法:《老调重弹:年龄大了,码农何去何从 (长篇技术文学巨著)》
另一个诱因,是我最近正在『又一次』开始找工作,自然得思考并且回答很多类似的问题:『你的特长是什么?』,『你的职业规划是怎么样的?』,『你最想从事技术、还是管理方面的工作?』
这些问题都很难,而且我内心的想法也并不是特别的坚定,所以打算写一篇碎碎念的文章出来,不会太有条理,读者们见谅了。
- 开宗明义
本 文一开始就引用了一句《老人与海》里的经典名言。虽然37岁还远远算不上老人,但是在程序员这个圈子里,也已经有大把的80后,甚至90后的生力军,在我 们的身后了。他们思路开阔,见多识广,敢打敢拼,身强力壮。他们的打字速度再加上熬夜的能力,代码的日产量,几乎肯定是要超过我们的。
如果一味的盯着我们不如他们的地方,这就是『前浪快要死在沙滩上的节奏』了。
那么,正面一点,正能量一点,积极向上一点,想想我们现在有些什么吧。
- 架构能力
上次去一个公司面试,聊到『什么叫架构』,我的回答是:一系列最早做出的,关键的决策。
面对一个复杂系统,我们需要做很多很多的决策,有些事关全局,有些只是细枝末节。有些决策不言而喻,有些却只能在两害之中,取其轻者。
所谓架构的能力,就是及时、准确的识别出系统中最早需要决策的关键问题,并且给出较为合理、可行、甚至优秀的解决方案的能力。
这个,没有多年的经验,的确很难做到。即使做出了各种决策,也往往很难做对。
- 思维能力
我的工作经验比较复杂,接触过的编程语言,项目类别也比较多。最早使用的想 FoxPro、VB 这样的语言,我几乎已经连语法都不记得了。
那么,这样的编程经验,对我还有价值吗?那几年已经浪费了吗?
在忘记了函数、方法、类库、甚至关键字以后,那些我不会忘记掉的知识与经验,是写什么呢?
网上有一句流传很广的话是这么说的:『究竟是十年的工作经验,还是一年的工作经验用了十年呢?』
还是说回到我最近经历过的一次面试,有两个我印象深刻的问题:『如何定义一个桌子,在描述中不能出现桌子这个词。』、『一个 User 类,如果撇开具体的业务逻辑,有哪些属性是这个 User 类一定会有的呢?』
这种问题,我们自己平时会思考吗?一些看起来空洞、或者无聊、或者漫无边际的问题,思考了有什么用?
A. 训练思考的能力;B. 保持思维的深度与广度;C. 从自己的工作经验中,挖出更多的价值。
通过不断的思考、总结、融会贯通之后,那些工作经验,才能变成我们的宝贵财富。那些吃过的苦,才不会白吃。
- 学习能力
为何老手在学习新技术的时候,学得更快、更好、更深入?以前我写过一篇文章,谈到过这个话题《Ajax 新手快车道》
一、本质,一种技术与另一种技术之间,往往会有本质上的相通之处,当你对一种技术的理解与思考越来越深入时,学习一种新技术也会更加容易。触类旁通,举一反三的能力,就是来自于对于技术本质的追寻。
二、 地图,本质上或多或少的相通,也提示着我们技术之间的相互关联,当你了解的技术越多,了解得越是深入,在你的内心,就能建立起越发清晰的技术地图。各种知 识都有一个自然、合理的位置。那么当一个老手要学习一门新技术的时候,他其实并非在探索一个全新的、未知的领域,而是有很多脉络可寻,也很多已知可以帮助 他们快速了解未知。
三、技巧,面对同样的未知,面对同样的难题,新手们一筹莫展,而老手们却掌握着更多的技巧和手段,帮助他们试探可能性、 缩小问题的范围、迅速定位问题、不犯明显愚蠢的错误、甚至能够列举出更具命中力的搜索关键词,而这些技巧,都帮助老手在前进的道路上,更少跌倒,即使跌 倒,也能更快的爬起来。
- 好习惯
在我现在看来,无论是软件开发,还是企业管理,最为困难也是最为重要的,都是培养良好的习惯。
XX 事情,大家都知道做了是对的,但是只有养成了习惯,才能坚持不懈的做下去。一个老兵,能在战场上活下来,活那么多年,除了运气之外,就是他的各种好习惯了。
而一个老程序员,不仅自己要有意识的培养自己的好习惯,更重要的,是在带团队的过程中,将这种习惯逐步潜移默化的传递下去,这才是老程序员能够为后辈提供的最大的帮助。
——————————————————————
以上都是我想得比较明白的部分,其实,依然有很多的困扰,我自己也没有想明白(这才是碎碎念的开始啊…)。
- 打工还是创业?
- 做技术为主还是做管理为主?
- 什么时候能够选择『退休』?
- 『退休』以后我能够去干啥?
- 在工作之余,写代码与写文章的比例怎么分配(池建强的 MacTalk是我的榜样)?
- 自己的身体也渐渐的在变差,要锻炼、要减肥、要……
碎的太厉害了,就此打住吧!