希望我的每一位打算從事編程開發的讀者都能把這篇文章認認真真地看完。
初入職場到現在已經三年有餘,從當時技術小白到現在的勉強小手,顯然這樣的結果是我不曾希望的。步入職場之初,暗下決心,三年時間裡希望能在工作技術上有一個質的變化。奈何事實卻是時間消磨了鬥志,抹滅了激情,夢想被現實打敗,而且是一敗塗地。三年的時間裡,回首思考過去的計劃安排,卻發現花在鑽研技術上的時間其實並不少的,為何卻沒有比較深入的提高呢?或者說,為什麼感覺不到進步呢?在寫這個之前,自己也冥思苦想了好久,尋找根本原因,不論客觀的主觀的,最後總結於如下幾個方面:
於自制力
我想這應該是讓我這幾年停滯不前,甚至有些後退的根本原因之所在吧。雖然能勉強應付工作了,雖然計劃趕不上變化了,雖然明日復明日,明日何其多,雖然...太多的誘惑,太多的藉口讓自己放鬆自己,任由計劃放空,甚至有些放縱自己。當一次鬆懈的有恃無恐,當舒適的感覺已養成習慣了,當計劃一而再的變成了可有可無的時候,怎麼可能還會有翹首企盼的進步和突破呢?溫水煮青蛙的故事,誰又不懂呢?勞逸結合固然是提高效率的決定因素,但是當原本計劃落空導致嚴重的壓迫感的時候,因鬆懈而帶來內心強烈的自責感的時候,行動和回報距離過於遙遠甚至可能沒有回報的時候,無一不深深的牽絆著下一步計劃的實施和泯滅鑽研的熱情。自制力這個時候顯然是軟弱無能的,當你這刻吃下了一塊炸雞,你能堅持明天一直吃素嗎?當你今天一直不學習,真的相信明天會補回來嗎?別騙自己了。遇到事情或者遭遇問題,最好立馬實施去做去解決,而不是過多的考慮和依賴如何,在哪裡,何時去做。當一切準備就緒的時候,可能又沒有做的心情了。不做就是停滯不前,做了即使做錯,也有經驗的積累,而且也能提高自己的自制力和執行力。遇事不存事,立馬制定計劃,開始實施。套用別人的話,自制力是最優秀的品德。
於側重點
翻開過去的一些計劃安排,發現自己有點餓壞了的感覺,看到了東西就抓過來吃,不管能不能吃,是什麼味道都塞進嘴裡,還沒來得及咀嚼消化就吞進肚裡然後排泄出來,占了空間就沒能吸收到必須的營養。回頭想這幾年花時間學的一些技術知識:c/c++,shell ,kernel, Qt,正則 python,java,還包括一些網絡開源的庫等等,無一不是這樣。隨著時間的推移以及工作的不相關等因素,現在能熟練使用的也只是目前工作需要的,其他都忘記的十之八九了,而工作中需要的去了解,去深入鑽研的卻無暇顧及,導致工作上有時問題不能完美的解決或者無法解決。這個顯然也是導致營養不良的一個嚴重問題。一把抓式學習顯然對我們鑽研技術的來說不是一件好事。於時間,於精力都是不被允許的,懂的多固然是一件好事,但是我想這應該是立足於熟練自己擅長的基礎之上的還有足夠精力和興趣的,如果本身的都沒有抓好,又出四處亂抓一把,虛胖顯然是很不健康的,到頭來只會越陷越深,失去方向。寫到這裡,突然想起前段時間公司培訓,講到時間管理坐標系的問題(緊急為x軸和重要為y軸,正為緊急 重要,負為不緊急,不重要),將自己列入其中,才發現自己一直在錯誤的象限中(不緊急不重要和緊急重要)忙的團團轉,卻忘記了最應該花大量時間去的管理的象限(重要不緊急)的事情。
於難易度
前段時間看一位牛人的博客,裡面談到人對外部世界的認知區域。感覺對於程式設計師來說挺有用,也正好適合我想表達的想法。分享一下,心理學認為人對於外部世界的認識可以分為三個區域:舒適區(comfort zone)、學習區(learning zone)、恐慌區(panic zone)。比如我們看一本書,如果這本書所說的內容都是我們熟悉的,完全符合我們的人生觀和世界觀,那麼這本書就在我們的舒適區內,但如果這本書說的內容和我們的人生觀和世界觀不符,但是我們思考後之後仍能接收理解的,那麼這本書就在我們的學習區內。如果這本書的內容在我們閱讀的時候很難理解和吸收,那麼就在我們的恐慌區內。心理學研究說,只有在「學習區」內做事,人才會進步。縱觀我這幾年的額外學習的重點知識都不是在「學習區」內的,對於基礎 Qt、python、java 語法等這些幾乎都是趨於「舒適區」內的,在某種意義上的重複勞動。而 kernel、某些開源網絡框架等趨於「恐慌區」內的,也只是短暫時間的逼迫接受。而這些卻是我耗費時間精力最多的兩個區域,這樣又如何進步呢。
寫到這裡我想要表達的都總結的差不多了。反省總是有所收穫的,或茁壯成長,或自甘墮落,在這裡,一切的言語在行動面前都是蒼白的。希望在下一個階段性的回望時,能給自己交一份真正意義答卷。最後套用一位牛人的的話送給自己:
「寫到這裡,我想有很多人都問過我,程序要怎麼寫才能寫得好,或者說設計模式要怎麼寫,之類的問題。如果把學習編程花費的精神代價作為標準的話,捷徑是沒有的。但是如果僅僅把時間作為標準的話,捷徑顯然是有的。怎麼才能加速你學習的過程呢?答案就是,先寫再看書。對於像編譯原理這種略微高深的知識,總要自己寫過幾遍,吃一些苦頭,才能知道為什麼書里非要把算法那麼設計,結構那麼安排。對於像設計模式這種需要大量經驗才可以領悟到的知識,如果你從來沒有獨立寫過一個上萬行的程序,你覺得你能理解設計模式在講什麼嗎?我覺得這個時候能做的就也就是背下來,理解什麼的都是扯淡。諸如此類,學習程序,如果要加速那個過程,肯定要花大量的時間寫代碼。當你把項目做的越大、越複雜、算法越扭曲、介面越華麗、尺寸已經大到你覺得不學習新的方法論就肯定會讓代碼失控的時候,這個時候你來看設計模式的書,保證是每看到一個模式都覺得人家說到你心坎里去了。那你不僅可以迅速理解,而且以後還可以不由自主的想起來使用它。」
「 在程式設計師的生涯裡面,最重要的就是保持對編程的熱情,不要被生活的瑣事所磨滅。其次是要給自己不斷地創造一些足夠困難但是又有辦法完成的挑戰,這樣才可以總是讓自己保持著一個快速前進的狀態。「