程式設計師到底怎麼了
程式設計師到底怎麼了,我們當然不否認有很多出色的程式設計師,他們生活的好,賺的也多,可是畢竟大多數都還是一般水平,很多還是掙扎在基本滿足吃住的水平。特別深的問題,比如國家社會問題(總有人會說我們的社會把我們搞成了這個樣子),我這裡不想談,我來結合自己的體會來講講我所認識的一些程式設計師都在怎樣工作和生活。
我周圍的程式設計師大都不喜歡程式設計師這個行業,總希望如果未來可能,一定要跳出這個圈,去做別的行業,有的說去做銷售,有的說回老家開個小超市,有的說的更是離譜。我不知道為什麼他們都在這麼說,原因在於我從未見過他們努力過,如果沒有努力過如何知道這個職業就是沒有前途的呢?工作的時候,他們大都在談論社會問題,昨天看了什麼電影,誰也買了個iPhone,她的爸爸給她在北京買了套房子等等無聊的問題,後來他們談論什麼我就不知道了,我帶上了耳機,暢遊在程式碼的世界裡,享受著原來100行完成的功能,經過我重寫,只要50行就能執行的比以前好,而且效率更高。第一個問題,程式設計師和其他行業一樣,最起碼需要一個態度。如果你連基本的態度都沒有,不要談程式設計師沒有前途,以為每個行業對這樣的人來說都沒有前途。
我做完一個功能,演示給我的同事看,然後告訴他我是怎麼實現的,以及這樣做的好處是什麼。他的一句話像一盆涼水一樣潑在我的臉上,“你費這麼大勁幹嘛啊,你不要想這麼多,領導又看不見你是怎麼設計的。”,“哦”。我很無語,也更不知道怎麼答覆他。聽完那句話我徹底明白程式設計師沒前途的原因了,和其他很多行業相比,軟體不容易發現問題,也許你做個特效,讓一個東西蹦來蹦去反而得到領導的賞識,而你自己花費了很多自己私有的時間來設計的結構沒有人會採用,因為你的領導要向他的領導交差,他也希望能拿的出一點能看得見的東西。很多程式設計師被這樣的領導強姦了,只做哪些表面工作來取悅領導,2,3年過後,發現自己什麼都不會了。也就看不見前途了,做那點破東西,可以讓你得到一會兒的“賞識”,計算機是個技術活,需要技術和經驗的積累。第二個問題,程式設計師的前途是程式設計師自己造就的,如果你覺得你現在沒有前途,那隻能說明你做的不夠好。
計算機業界有很多好書,非常著名的書,比如《黑客與畫家》、《Unix程式設計藝術》,我不想說《演算法導論》這種書,因為它確實枯燥無比,我自己也從未完整的看過一遍。但是像《黑客與畫家》此類的書是不同的,它能打通你的思路,告訴你問題出在哪裡,未來的方向在哪裡。如果你想看看一個程式設計師的視野是否還算開闊,問問他是否聽說過某本書,聽說過,那就還可以,說明自己懂點門道,如果讀過,那就太好了,可以問問關於書中的一些觀點,這裡沒有對或錯,完全是自己的觀點。我問過我身邊的同事,讀過這些著作的人屈指可數,而讀過的確實不一樣,眼界比較開闊,不回侷限在非常狹小的範圍內,更不會跟你扯閒天。第三個問題,要多讀書,讀好書,而且不要只讀一遍。讀書應該像高中老師說的那樣,從厚讀到薄,從薄讀到厚。
我去年認識了一個朋友,這個人三句話離不開寫程式,我們吃午飯談程式,我們在電梯裡談程式,只要我們在一起我們就討論如何實現某個系統,如何然讓這個系統執行的更快,某個新技術的機制是怎樣的,在什麼情況下采用是比較好的選擇。和他在一起待了3個月,我感覺自己的眼界比以前開闊了一倍。這三個月我感覺每天都非常充實,完全沒有了以前浪費生命的感覺,因為感覺每天都在補充知識,懂的更多了,更有信心了。第四個問題,如果你是個程式設計師,你必須認識一些在這個領域裡比你強的人,並和他們交談,去開闊眼界,去了解未來是什麼樣子的,哪怕只是聽他們說,都能有很多收穫。
公司來了個新同事,他還沒有畢業,但是當我跟他討論一些問題時,發現他知道的事情非常多,儘管技術不是非常好,但是他的方向很明確,而且基礎知識掌握的非常好,比如位操作(讀到這裡的朋友,你能用你最熟悉的程式語言進行位操作嗎?)。有一次他遇到一個問題,我過去幫助他,偶然間發現他的一個資料夾,這個資料夾的名稱是Daily Reading,裡面都是一個個按照日期分好的資料夾,從他來公司的那天起,一直都記得很好,我簡單的看了看,裡面都是每天看了哪些網上的文章,以及他對這些文章的一個總結。這種方式也許不是最好的方式,用一些軟體可能更好,比如evernote,但是不是不得不說的是,他把自己曾經閱讀過的資源都整理起來了。第五個問題,你每天都會遇到問題,每天都會在網上查資料,或者查書,但是否總結過這些問題呢。總結,真的能讓人進步。方式多種多樣,比如寫部落格。
老闆總說我沒有計劃,我也不懂的如何計劃,老闆說很簡單,不需要太複雜,只需要一個excel檔案,早晨來了以後,想想昨天的工作完成的什麼樣,今天要做哪些工作,然後添進excel,把所有任務的背景色設定成紅色的,代表未完成;下班的時候,完成的,背景色換成綠色的。第二天接著這樣做。我跟一個朋友說了這個方法,這個朋友立馬要我把這個excel的模板給他,我頓時無語了,然後告訴他,沒有模板。第六個問題,學會計劃和安排。不需要太複雜,先從簡單的開始,但是不要把自己侷限死,再強大人都需要安排和計劃,你應該聽說過bug管理系統,它本身就是一種計劃與安排工具,但是它更高階,你可以隨時知道軟體的bug。當你每時每刻知道自己需要做什麼的時候,你的效率會是最高的。
做到這幾點,我相信你就是一個比較合格的程式設計師了,記住,也只是合格而已。程式設計師不是沒有前途,而是很多程式設計師葬送了自己的前途。
來源:http://developer.51cto.com/art/201206/341162.htm