1. 程式人生 > >一個程式設計師的自白:我為什麼寫部落格

一個程式設計師的自白:我為什麼寫部落格


牛人都這麼幹

時間: 2011年

人物: 初出茅廬的臭小子, 臭石頭一般堅硬的相信我將來一定會成為富二代他爹.

我來到一個大型網際網路公司, 同事很nice, 管理很自由, 在這裡開始了我的碼農生涯.

我很敬重部門老大, 但更相信我將來一定比他強. 我看到30歲左右的公司前輩們, 為了家庭奔波, 為了孩子操勞, 心裡或許拂過一絲輕謔. ( 當我寫這句話, 我是在對自己幼稚的輕謔 )

當然我並不是毫無基礎的就有了這些脆弱的自信. 我一直相信, 只要我每一天都在進步, 總會有到達成功的那一天. 所以, 每次遊戲碰到大家都不熟悉的領域, 我都自告奮勇去領命, 然後在前輩們都回家 陪老婆孩子的時候, 我卻在鑽研這些小眾歪門的技術, 自以為這是能力的體現. 事實也證明了它的確代表了我的一部分能力, 也讓它在上級面前得到了彰顯, 但遠沒有我想象的那麼重要. 因為, 如果真的有那麼重要, 為什麼旁邊獨立辦公室裡沒有我.

那時天真的以為月入N萬, 能在北京好好生存, 便是成功. 於是我很開心, 因為那”成功”是如此的可以觸控, 就在眼前. 我隨便搞搞5,6年也就達到了, 稍微使點勁兒也許就3,4年. 而在那之後, 我就可以放心的做很多自己想做的事情, 旅遊, 攝影, 吃喝玩樂之類.

而現在, 我缺找不到對”成功”的定義了. 人生最大的無耐就在於, 當馬上就達到終點卻發現自己看走了眼. 讓我開始懷疑它的因素有很多: 比如發現即使月入2N萬也沒法過得上我上面提到的體面的生活, 比如北京的空氣和氣候總是把出門散心的想法扼殺在搖籃裡, 再比如北京複雜的生存環境.

一方面,我對新的社會各種無知; 另一方面卻堅定不移的相信努力就會比別人強. 我見過很多牛人寫

部落格, 就以為這是牛人謂之牛人的原因. 我如果堅持照做, 就會成為牛人. 說白了, 這從頭至尾就是一種低階的模仿, 不明所以的跟隨.

寫一年後還能看懂的部落格

嘗試和接觸的知識一多, 便發現自己的腦袋跟硬碟相比, 速度和精準度上都差得不止一星半點. 事情越來越多, 且沒有交集, 所有的知識點都零散的分佈在腦袋的不同次元, 想要回憶起來特別困難. 一度讓我覺得, 學越來越多的東西根本就是一個錯誤, 正確的方式應該是瞅準一個東西, 精益求精. 雖然這麼想, 但是工作不是你想不做就不做的.

於是我有了兩個轉變:

  • 一是, 我不再那麼樂於去學新的註定不會成為體系的東西了, 因為它除了能展示一下小聰明, 時間回報率特別小.
  • 二是, 如果我決定去深究一個東西, 我一定要完全搞懂, 並認真總結一篇部落格讓我以後能在短時間拾起來 ( 因為不搞懂你很難寫一篇半年後還能理解的部落格 ).

我並不百分百的確定這些轉變都是好的, 因為在這種問題上時間已經打過我很多次臉了.所以我會想, “轉變一”是不是跟我”追求不斷進步”的想法衝突. 直到我看到另一句話, “三十歲之前, 想學啥就學啥, 三十歲之後請用金錢解決你不擅長的問題”, 給了我一些安慰. 但這句話又丟給我更大的問號: 怎麼界定”擅長”與否, 怎麼界定”時間”. Anyway, 並不是所有問題都有合理答案, 但你開始意識到這個問題, 就有不一樣的收穫.

把經驗變成不可替代性

到現在, 我經歷了三個公司, 四個專案, 兩個由我負責.

從產品角度講, 我出色的完成了策劃(/產品)的需求; 在共事過的同事上司面前, 我為自己留下了最真實的, 品質不錯的, 名片.

從技術角度講, 它們並沒有太大的難度. 大學<自動機理論>的老師向我們提供了一種衡量人生價值(/或意義)的方式: 你的不可替代性. 若依這個理論, 近三年的工作是沒有什麼意義可言的. 這讓我如鯁在喉: 我的努力怎麼就變成了沒有意義.

我先後寫 AS3(+Flex), iOS(用UIKit做應用) 和 cocos2dx, 他們看起來相差萬里, 但本質上都是影象顯示引擎和通用UI邏輯組成的工具庫.

  • 影象顯示引擎, 提供最基礎的影象繪製, 常見的影象顯示引擎都大同小異, 都包括繪製點, 線, 形狀, 照片, 文字等基本繪製介面.
  • 通用UI邏輯, 雖各個平臺功能千差萬別, 但理論上都是為了讓常用的互動或佈局元件被更高效遍歷的應用, 而對底層影象顯示引擎的封裝.

接觸新框架的時間成本越來越小, 我也漸漸發現: 基礎工作的長期積累會自動的幫你總結這些事物的共有原理. 本來, 我做的四件事情, 任何一件都有1萬個人可以替代我. 但是它們給我帶來的經驗和理論的昇華, 讓我可以hold住那些只有一千個人能hold住的事情. 也就是, 我的不可替代性增加了.

收入不受時間限制的職業

最近在看《黑天鵝-如何應對不可知的未來》, 不妨簡單的羅列一下作者的觀點:

  1. 世界上的事情可簡單的分為兩種: 平均斯坦和極端斯坦.
  2. 平均斯坦裡,個體對結果的影響不大,只有大量的個體才對結果有影響。極端斯坦裡,個體能夠對整體產生不可思議的影響。
  3. 舉兩個例子:隨機取一百個人,得到平均身高,這個數不會因為某一兩個人而出現大的變動,這屬於平均斯坦;如果把身高換成財富,結果就大不相同了,可能因為比爾蓋茨的加入而使得平均數成萬倍的增長,這屬於極端斯坦。
  4. 絕大多數社會問題屬於極端斯坦,換句話說社會變數是資訊化的,不是物理的。
  5. 有一位朋友建議我,尋找一份報酬不受時間限制的工作。麵包師必須不斷的烘烤麵包才能得到更多的收入; 而 J.K.羅琳 不用在每次讀者購買哈利波特的時候再寫一遍。這也是腦力勞動與體力勞動的分界線。

按照這個理論, Coder也分為兩種: 幸苦搬磚型和一勞永逸型. 對號入座的事情我就不做了, 顯然我屬於前者.

程式設計師的抽象化修養

一般來說, 程式設計師的思維總是抽象化的思維, 善於從事物中總結規律, 同時特別特別特別討厭特例. ( 想象一下產品讓你為新手使用者新增不一樣的行為規範的時候你的心情吧. ) 抽象化的能力也決定了在程式設計師這一行當裡的高度: 更擅長歸納事物本質的程式設計師漸漸都成了構架師, 而剩下的人完成了專案80%的工作卻領到20%的報酬.

程式設計師的名片

前面我提到自己在前同事上司那裡留下的名片, 它同時也是一張可以預支的信用卡.

在程式設計師跳槽的代價裡, 標價最高的一條便是: 你需要重新證明自己. 每次初到一個環境, 不管ceo是你的同學還是以前的老闆, 你必須在短時間裡證明自己的能力, 因為第一印象決定了很多. 不管在上級,下級,還是平級同事裡, 它都影響著你的工作或收入.

  • 從金錢上講, 試用期你是拿不到全額薪水的. 老闆必須先看到你的能力, 才會漲你的薪水, 也就是說證明自己的過程越短, 能越早拿到與你能力相配的薪水.
  • 從工作上講, 證明自己的過程, 你不能完全按照自己最擅長的方式去做事情, 完成同樣的工作你需要花費更多的時間.

誠然, 你在前同事那裡得到的信用額度比較大, 他們在後來的工作中能經常記起你, 不用面試和試用便可給你不錯的報酬和職位. 但是, . 如果你需要更多公司的承認, 便要在這家公司證明. 聽起來像是麵包師的工作, 對吧? 於是, 我寫部落格.

總結

屌絲 程式設計師 的逆襲一般分兩步: 讓自己變得牛逼, 讓別人知道你牛逼. 我通過寫部落格來讓自己更擅長歸納和抽象, 也通過寫部落格來讓別人知道我能勝任一工作.