一个程序员的自白:我为什么写博客
牛人都这么干
时间: 2011年
人物: 初出茅庐的臭小子, 臭石头一般坚硬的相信我将来一定会成为富二代他爹.
我来到一个大型互联网公司, 同事很nice, 管理很自由, 在这里开始了我的码农生涯.
我很敬重部门老大, 但更相信我将来一定比他强. 我看到30岁左右的公司前辈们, 为了家庭奔波, 为了孩子操劳, 心里或许拂过一丝轻谑. ( 当我写这句话, 我是在对自己幼稚的轻谑 )
当然我并不是毫无基础的就有了这些脆弱的自信. 我一直相信, 只要我每一天都在进步, 总会有到达成功的那一天. 所以, 每次游戏碰到大家都不熟悉的领域, 我都自告奋勇去领命, 然后在前辈们都回家 陪老婆孩子的时候, 我却在钻研这些小众歪门的技术, 自以为这是能力的体现. 事实也证明了它的确代表了我的一部分能力, 也让它在上级面前得到了彰显, 但远没有我想象的那么重要. 因为, 如果真的有那么重要, 为什么旁边独立办公室里没有我.
那时天真的以为月入N万, 能在北京好好生存, 便是成功. 于是我很开心, 因为那”成功”是如此的可以触摸, 就在眼前. 我随便搞搞5,6年也就达到了, 稍微使点劲儿也许就3,4年. 而在那之后, 我就可以放心的做很多自己想做的事情, 旅游, 摄影, 吃喝玩乐之类.
而现在, 我缺找不到对”成功”的定义了. 人生最大的无耐就在于, 当马上就达到终点却发现自己看走了眼. 让我开始怀疑它的因素有很多: 比如发现即使月入2N万也没法过得上我上面提到的体面的生活, 比如北京的空气和气候总是把出门散心的想法扼杀在摇篮里, 再比如北京复杂的生存环境.
一方面,我对新的社会各种无知; 另一方面却坚定不移的相信努力就会比别人强. 我见过很多牛人写博客, 就以为这是牛人谓之牛人的原因. 我如果坚持照做, 就会成为牛人. 说白了, 这从头至尾就是一种低级的模仿, 不明所以的跟随.
写一年后还能看懂的博客
尝试和接触的知识一多, 便发现自己的脑袋跟硬盘相比, 速度和精准度上都差得不止一星半点. 事情越来越多, 且没有交集, 所有的知识点都零散的分布在脑袋的不同次元, 想要回忆起来特别困难. 一度让我觉得, 学越来越多的东西根本就是一个错误, 正确的方式应该是瞅准一个东西, 精益求精. 虽然这么想, 但是工作不是你想不做就不做的.
于是我有了两个转变:
- 一是, 我不再那么乐于去学新的注定不会成为体系的东西了, 因为它除了能展示一下小聪明, 时间回报率特别小.
- 二是, 如果我决定去深究一个东西, 我一定要完全搞懂, 并认真总结一篇博客让我以后能在短时间拾起来 ( 因为不搞懂你很难写一篇半年后还能理解的博客 ).
我并不百分百的确定这些转变都是好的, 因为在这种问题上时间已经打过我很多次脸了.所以我会想, “转变一”是不是跟我”追求不断进步”的想法冲突. 直到我看到另一句话, “三十岁之前, 想学啥就学啥, 三十岁之后请用金钱解决你不擅长的问题”, 给了我一些安慰. 但这句话又丢给我更大的问号: 怎么界定”擅长”与否, 怎么界定”时间”. Anyway, 并不是所有问题都有合理答案, 但你开始意识到这个问题, 就有不一样的收获.
把经验变成不可替代性
到现在, 我经历了三个公司, 四个项目, 两个由我负责.
从产品角度讲, 我出色的完成了策划(/产品)的需求; 在共事过的同事上司面前, 我为自己留下了最真实的, 品质不错的, 名片.
从技术角度讲, 它们并没有太大的难度. 大学<自动机理论>的老师向我们提供了一种衡量人生价值(/或意义)的方式: 你的不可替代性. 若依这个理论, 近三年的工作是没有什么意义可言的. 这让我如鲠在喉: 我的努力怎么就变成了没有意义.
我先后写 AS3(+Flex), iOS(用UIKit做应用) 和 cocos2dx, 他们看起来相差万里, 但本质上都是图像显示引擎和通用UI逻辑组成的工具库.
- 图像显示引擎, 提供最基础的图像绘制, 常见的图像显示引擎都大同小异, 都包括绘制点, 线, 形状, 照片, 文字等基本绘制接口.
- 通用UI逻辑, 虽各个平台功能千差万别, 但理论上都是为了让常用的交互或布局组件被更高效遍历的应用, 而对底层图像显示引擎的封装.
接触新框架的时间成本越来越小, 我也渐渐发现: 基础工作的长期积累会自动的帮你总结这些事物的共有原理. 本来, 我做的四件事情, 任何一件都有1万个人可以替代我. 但是它们给我带来的经验和理论的升华, 让我可以hold住那些只有一千个人能hold住的事情. 也就是, 我的不可替代性增加了.
收入不受时间限制的职业
最近在看《黑天鹅-如何应对不可知的未来》, 不妨简单的罗列一下作者的观点:
- 世界上的事情可简单的分为两种: 平均斯坦和极端斯坦.
- 平均斯坦里,个体对结果的影响不大,只有大量的个体才对结果有影响。极端斯坦里,个体能够对整体产生不可思议的影响。
- 举两个例子:随机取一百个人,得到平均身高,这个数不会因为某一两个人而出现大的变动,这属于平均斯坦;如果把身高换成财富,结果就大不相同了,可能因为比尔盖茨的加入而使得平均数成万倍的增长,这属于极端斯坦。
- 绝大多数社会问题属于极端斯坦,换句话说社会变量是信息化的,不是物理的。
- 有一位朋友建议我,寻找一份报酬不受时间限制的工作。面包师必须不断的烘烤面包才能得到更多的收入; 而 J.K.罗琳 不用在每次读者购买哈利波特的时候再写一遍。这也是脑力劳动与体力劳动的分界线。
按照这个理论, Coder也分为两种: 幸苦搬砖型和一劳永逸型. 对号入座的事情我就不做了, 显然我属于前者.
程序员的抽象化修养
一般来说, 程序员的思维总是抽象化的思维, 善于从事物中总结规律, 同时特别特别特别讨厌特例. ( 想象一下产品让你为新手用户添加不一样的行为规范的时候你的心情吧. ) 抽象化的能力也决定了在程序员这一行当里的高度: 更擅长归纳事物本质的程序员渐渐都成了构架师, 而剩下的人完成了项目80%的工作却领到20%的报酬.
程序员的名片
前面我提到自己在前同事上司那里留下的名片, 它同时也是一张可以预支的信用卡.
在程序员跳槽的代价里, 标价最高的一条便是: 你需要重新证明自己. 每次初到一个环境, 不管ceo是你的同学还是以前的老板, 你必须在短时间里证明自己的能力, 因为第一印象决定了很多. 不管在上级,下级,还是平级同事里, 它都影响着你的工作或收入.
- 从金钱上讲, 试用期你是拿不到全额薪水的. 老板必须先看到你的能力, 才会涨你的薪水, 也就是说证明自己的过程越短, 能越早拿到与你能力相配的薪水.
- 从工作上讲, 证明自己的过程, 你不能完全按照自己最擅长的方式去做事情, 完成同样的工作你需要花费更多的时间.
诚然, 你在前同事那里得到的信用额度比较大, 他们在后来的工作中能经常记起你, 不用面试和试用便可给你不错的报酬和职位. 但是, . 如果你需要更多公司的承认, 便要在这家公司证明. 听起来像是面包师的工作, 对吧? 于是, 我写博客.
总结
屌丝 程序员 的逆袭一般分两步: 让自己变得牛逼, 让别人知道你牛逼. 我通过写博客来让自己更擅长归纳和抽象, 也通过写博客来让别人知道我能胜任一工作.