如果說掌握一門賴以生計的技術是技術人員要學會的第一課的話, 那麼, 我覺得, 技術人員要真正學會的第二課,不是技術,而是業務、交流與協作,學會關心其他工作夥伴的工作情況和進展。
為什麼這麼說呢? 因為技術人員太容易陷入“孤島”狀態,更注重自己的工作任務的完成,忽視其他工作夥伴的工作,甚至一無所知。 我就一直犯這樣的錯誤。我敢說,對內心我還是比較明白清楚的,但是對外面所發生的事情實在是知之甚少,這不是好的狀態。 一個開明、開放的程式設計師不應該囿於自己狹隘的小天地,而是更廣闊地去看待工作和職業,和同伴一起進步和成功。
為什麼要關心業務?
很多技術人員都立志成為系統架構師, 那是程式設計領域的“聖盃級職業”。問題是, 系統架構本身是為了業務需求和擴充套件而服務的,必須充分理解業務需求和未來的發展趨勢,深入理解系統所涉及的資料及分佈, 才能作出更可靠的設計決策。如果對業務知之甚少,以為僅靠書上說的那一套,或者以前的零碎經驗,就能夠勝任的話,那這個專案多半要失敗的。 因此,即使立志要成為系統架構師,也要對業務有很深的理解。
其次, 技術的發揮必須有用武之地。如果沒有足夠強度和有挑戰性的業務需求和擴充套件, 足夠多的問題的磨鍊,技術的提升又從何談起? 僅僅靠閱讀那些技術書籍嗎? 那隻能提供一個指導的作用罷了;真正還是要在實戰中得到提高。
如果一個技術人員對業務不感興趣,只對技術感興趣, 那會發生什麼事情呢?他將只能滿足於使用自己所熟悉的技術去完成上面分派下來的任務; 也許今天是做一個系統A, 明天是做另外一個類似的系統B。 他對系統涉及的各種業務都不甚瞭解,也不清楚行業領域的發展狀況, 就只能侷限於使用技術來做各種具體的功能,無法提出中肯的建議。他的職業發展將嚴重耦合於所掌握的技術。如果該技術保持比較長久的生命力,那麼, 他還能兵來將擋水來土淹, 但無論如何,也只能侷限於成為這門技術的“高階工程師”而已;如果該技術開始被淘汰,那就悲劇了。
換一種方式。如果一個技術人員很關心業務。 那麼,經過一段時間的磨練之後,他能夠提出中肯的意見,知曉行業領域的發展狀況, 在深入理解業務的基礎上,同時發展相應的技術專長, 做一個在業務和技術方面並行發展的技術人員。 他的職業發展將不是完全耦合於特定的某種開發技術,而具備了更大的靈活性。
你知道嗎? 三國時期,我最佩服的是徐元直先生。 他是一個技術和業務同樣精通的人才; 技術方面, 作戰思想豐富, 業務方面, 實際指揮作戰和應變能力都很強, 這樣的人才, 難怪即使不獻一策, 曹操這樣的人物也願意留他在帳下, 讓他無功受祿,—— 能夠不讓他為競爭對手所用就已經是大功一件了。
放下技術情結
技術人員要學會放下心中的“技術情結”。 因為我也是技術人員,也有技術崇拜的傾向, 也能夠感受到這種情結帶來的益處和束縛。 “技術情結” 表現在哪裡呢? 你期望能夠儘可能多儘可能深入地掌握各種技術,這給你帶來一種很好的安全感,因為有了強有力的依靠,—— 你對自己的能力充分自信; 但也束縛了一個人的發展: 他的內心容易更加依賴於自己的能力,而對別人的能力抱有懷疑,難以與別人形成優勢互補和良好搭檔,很難發揮出超出自己能力的能量。
是的, 你學了 C, java, python , Lisp , …., 還可以列出更長,你還想掌握併發程式設計,軟體架構等等,你的同事卻只會C, java 或 python , 會敲入一些命令, 這樣你就舒服了嗎? 感到優越了嗎? 高枕無憂了嗎? 成為核心骨幹了嗎?
技術是學無止境的, 一個人的精力卻有限,就算一個人在某個領域裡非常精通,那麼同時也可能意味著這個人在其它方面是孤陋寡聞,“技術牛人” 和 “科學大師” 一樣, 可能只是一個美妙的光環,是程式設計師給自己套上的鐵鏈。不要妄想一攬子全抓在手裡, 確立自己的專長, 善於與別人優勢互補,良好協作才是。敢於捨棄 “技術情結” 給自己帶來的安全感, 才能走出更廣闊的空間。
技術人員的通病
大多數技術人員,包括我在內, 都不甚明瞭自己究竟能夠利用計算機做什麼。 我們只是年復一年日復一日地學習和使用某種程式語言和技術來寫程式,以為這就是利用計算機的唯一的正統方式。你用過MATLAB嗎, 一種很強悍的科學計算軟體? 那裡一條命令, 就頂一個程式設計人員幾個月的努力。作為一名計算機專業人士, 學習了那麼多專業知識,難道僅僅只是為了掌握一兩門程式語言和技術來寫點程式養家餬口嗎? 如果一個程式設計師懂得去使用一些專業軟體,學習一些資訊處理、統計分析方法, 那麼, 他所能提供的價值可能遠遠超過一個普通開發者所能提供的價值。具備程式設計能力和對程式設計技術的領悟,是技術人員擁有的特別優勢, 但並不意味著一個技術人員能夠乾的活就只是程式設計。只是,大多數技術人員,由於各種原因,就把自己定位在一名普通的程式開發人員身上, 跳不出“開發人員”的視角。
我們總是沉迷於重新發明輪子,以及被迫重新發明輪子,用不同的程式語言,或者用同一套技術框架,搭完了管理系統ABCDEFG,再搭HIJKLMN,以及OPQRSTUVWXYZ, 感覺很有成就感吧? 不懂尊重和利用別人已有的工作成果,低水平重複建設,耗費大量的時間、精力、人力和資源成本去做那些沒有太大意義的事情; 總是沉迷於爭論語言、技術之間的孰優孰劣,卻甚少關心哪些事當做不當做,甚少關心做那些關鍵重要的事情有哪些方案以及孰優孰劣;總是沉迷於某款科技產品的宣傳和特性,甚少關心環境問題和兒童失學問題,如果說程式設計師有什麼可憐可恨之處,那絕對不在於這一族自甘被孤立,難以為人所理解, 而在於他們自身的心態就將自己鎖在了井底之中,還自以為很與眾不同。
假設你不再為公司程式設計,而為自己寫程式, 你知道自己該幹些什麼嗎? 你會感到迷茫嗎? 如果我們連自己該幹什麼能幹什麼都不清楚, 那麼徒有一身武藝,又有什麼用呢?
大多數技術人員,包括我在內,都還不懂得主動與工作夥伴良好協作,只是因為工作關係而不自覺地交流和協作。不信,在你工作之餘的時候,你會主動邀請別人一起來程式設計,共同去做一個有用的產品, 還是埋頭去學習技術,孤立地去做一些技術實驗,來掌握所謂的某門開發技術?
一個技術人員對於另一個技術人員的認可往往起始於對其技術能力的是否認可。技術人員面試的時候通常會更關注:他掌握了哪些技術? 對這些技術的掌握程度如何? 而不是這個人利用自己的技術能力和所學做了哪些影響卓著的事情。這就導致了: 技術人員往往更關注自己的技術能力的發展,而忽視其他能力的培養。
因此,大多數技術人員,包括我在內, 都有四個通病: 一,不清楚自己究竟能夠利用計算機做什麼,不懂得如何充分利用計算機的真正威力; 二. 不能主動與別人優勢互補和良好協作; 三。放不下技術情結; 四. 侷限於狹隘的自我優越感,以及伴隨而生的強迫症。這四個通病導致一個人永遠侷限於只見一葉不見林的狹隘視角。
真正優秀的技術人才
作為一名技術人員,你對公司的業務發展能夠提出自己的建議嗎? 你有能力說服工作夥伴和主管來採納你的提議嗎? 能夠集思廣益,融眾人之所長嗎? 我認為,一個真正優秀的技術人才,應當具備這種多方面的能力,除了技術專長,他具備說服能力,集思廣益,能夠有力地推動事情的發展。企業也應當提供機會,讓技術人員參與更廣闊的工作,而不僅僅是寫程式碼和完成需求功能。
我相信,從企業聘用人才的角度來說,它們更看重一名技術人才究竟產生了怎樣的影響。只是當大量技術人員沒有什麼可證明自己做過有影響力的事情的情況下,才不得不求其次,去聘用那些在技術能力上有更高造詣的技術人員; 從技術人員的角度來說,因為他沒有什麼可以證明自己確實做過有影響力的事情,只好倚靠有限的技術水平為自己尋一個差強人意的安身之所。我覺得, 那些沒有做過有影響力的事情的技術人員,相比那些利用自己所學做過有價值的事情的人來說,其職業高度就已經低了一個檔次,儘管後者可能在技術能力上要差一些。
事實上,我敢斷言: 中國不缺技術能力優秀的人才,雖然技術級別與國外還差一兩個檔次, 但還是人才濟濟的。確實有很多人依然努力成為最好的技術人才,致力於引進國外先進技術。中國缺少的是那些懂得利用計算機能力創造價值、服務和效益的技術人才。 這種技術人才必須能夠放下技術情結,以更開放、開明的心態去與其他的人良好協作,優勢互補, 一個真正優秀的產品往往是多個人共同協作完成,孤膽英雄的年代已經過去。即便是一個黑客,如果他能與另一個黑客強強聯合, 也能產生出比自己一個人更強大的能量。要知道,蘋果至少也是由賈伯斯和沃茲尼亞克兩個人初創起來的。
要一起進步和成功
最後, 如果一個技術人員通過重重磨難終於成為了很牛級的人物,而他的親友早已埋沒於塵世中,過著一般的日子, 他的成功又有多大意義呢? 應該聚合所有人的才智和經驗,一起創造共贏的結局才對,缺了誰都不行。人生苦短,正是因為一路上有了親友的陪伴, 才不會寂寞, 人生才不至於蒼白。不要只顧著自己一個人往前走路, 把親友們拋在看不見的後面。