如何更好的思考和學習

            最近幾個月,工作上的事情很忙,很少有自己的時間,所以我的博文很久沒有更新了,但是經常看到一些同學看了我的博文之後希望我給出demo,其實我寫這些東西的時候確實是我項目中遇到的問題,很多代碼都是項目中抽離出來的,沒有專門爲了寫博文而做一個demo。我寫這些東西的初衷是希望有地同學在工作和學習的過程中遇到了問題能夠通過我的博文能有一些幫助,解決一些實際問題,並不是爲了僅僅是出一個可以跑的小例子。所以我有時候看到那些要求我發例子的同學的郵件或者回復我也有些遺憾,因爲我更希望他們能和我討論我代碼中的問題,或者一些解決問題的方法經驗。如果是僅僅給出一個例子,然後可能某些同學就拿這個例子直接用在項目中,卻沒有很好的理解這個方法的用意,更不要說引入這個例子帶來的bug。

  說了這麼一些終於引入我今天想說的話題了,如何更好的學習和思考(當然更多是討論成爲一個更好的程序員,但仍然對其他的領域普遍適用)?當然我今天說的這些僅僅適用於還在學校,或者像我這樣畢業時間還不太長的程序員,可能有些主觀,並不對所有人都合適。一方面我自認爲自己不是很牛掰的程序員,另一方面自己所學的,所經歷的未免還是有些匱乏,如果看到的同學覺得我說的並無太多的營養,就當是在看一個灌水帖吧。
        下面開始我的一些思考:

         1 .徵求專業人士的意見,但無論是徵求誰的意見,都要有自己的思考。

      先舉2個我大學時候負面的例子:第一件事情是我認識的第一個師兄,學生會副主席,各種社團的負責人,剛去大學我各方面都徵求他的意見。有一次我聽他說java好,於是我開始看java方面的書,當然我當時並沒意識到上機操作纔是學習編程的最重要的手段。有一天我拿一本java書去問他,他說,我沒學過java啊,我當時就特無語,當時心裏怎麼想的記不太清楚了,只是從此不再看java書了。第二件事情是,大概是大2了有了轉專業的機會,當時我已經學過幾門計算機的課程了,覺得學計算機蠻有意思的,想直接轉去計算機,但是就找了我們輔導員,問問他的意見如何。他當時就說了,計算機專業的課程很枯燥,轉了幹嘛(太無語了,這位牛掰的輔導員據說後來去了國務院,國務院果然慧眼識珠.....).後來當然我也沒轉去計算機專業,所有在之後工作中遇到關於算法,設計模式,計算機組成原理諸如此類的知識我都是自己看書,查資料才略有了解。可想而知,當時如果我是碰到一個以編程見長的師兄,以善於引導學生做自己感興趣的良師,當時我範的錯誤有二,1.我沒有去徵求以編程見長的師兄或者老師的意見,2,我輕易的在重大的抉擇上做決定。如果不是那樣,我現在的知識體系將更加的完善,可惜我時間不可能回到過去。


         所以在之後的日子中我都深刻記住了這2次教訓,遇事自己仔細思考,不輕易聽信別人的,而是自己仔細分析。但是往往很多人還在犯這個錯誤,很多人就親信家裏,親戚的的建議,進入IT這個行業。自己喜歡不喜歡不要緊,別人覺得好,就幹下去。很多的人每天都在掙扎,所以他們都是既不成功也不快樂的那些程序員。每個人都是最瞭解自己的,所以做決定,尤其是重大的決定的時候,再多的思考,再多的衡量都是必要的。


         2.多些正能量,少些抱怨,多些學習,少些浮躁。


        大學一年級開始關注csdn的論壇,我當時特喜歡看灌水區。灌水區真是名符其實,各種程序員(所謂的程序員)整天在抱怨工資低,加班多,我當時就覺得這個行業太不好了,所以大學四年最後才決定從事這個行業。直到現在,我偶爾有時間去看看,還是很多這樣的程序員,其實這是個悲劇。通常這些程序員會抱怨社會不公平,制度不合理導致他們懷才不遇等等這些,除了抱怨我覺得他們很少去想自己的原因,自己是不是足夠努力,是不是真的能爲老闆創造價值,你有沒有給足夠的理由能讓老闆給你加薪或者升值,如果你自己是老闆會不會解僱自己,老闆會喜歡一個整天抱怨,不認真幹活的程序員麼?

        說到抱怨,其實很多人都應該有些不滿,現實中存在各種問題,平庸的人只是抱怨,牛掰的人會去尋找解決或者規避的辦法。如果我們都身在某國或者採用你你所希望的體制,社會的不同層次和社會的競爭還是存在的,恐怕這些喜歡抱怨不願意實實在在幹些事情的人還是處在這樣的位置吧。套用一句話,彪悍的人生不需要解釋,爲何不收起你的抱怨,做一些能改變現狀的事情呢?


     3.熱愛並堅持

       在我暫時還不太長的職業生涯中,我認識一些牛掰的程序員,也接觸過很多很一般的程序員。我發現他們最大地差別是,水平一般的程序員不太喜歡編程,編程只是他們謀生的  手段,生活和工作是完全分開的,甚至有時候工作還乾點別的事情。我剛畢業的時候認識一個三年的女程序員,幹了三年並不比我剛畢業強,在學習能力和對編程的理解上比我差多了,薪水也只比我多那麼一點。 牛掰的程序員都是很熱愛編程,把它當做樂趣在做這件事情,生活中離不開編程,工作之餘還在不管學習,討論技術方面的心得。我有些同事編程十多年對寫代碼的熱愛還是一如從前,經常自覺學習新的技術,和人討論技術心得。

       其實我覺得前者不是真正的程序員,他們不熱愛編程,所以他們在技術上提升不快,做出的產品不是那麼的好,當然他們的薪水和職位都不是那麼高,久而久之,他們和另一些提升快的程序員拉開差距,對程序員這個行業愈來愈不感興趣,形成了一個死循環。一方面,真的熱愛編程的人,則越來越得心應手,快樂的從事自己喜歡的工作。(以上關於牛掰程序員和平庸的程序員的論斷絕對適用,肯定存在一些天賦奇高或者特殊的牛人。)

       我說的很明白了,真的不喜歡編程的人從事這個行業是比較悲劇的,因爲程序員經常加班,趕進度,不是那麼喜歡編程的人沒有興趣支撐的人是無法適應這個工作的,所以如果你不喜歡編程,乘早選擇你喜歡的行業,並堅持下來。

      4.堅持學習

       有一次我調試一個接口,搞了2天,很沮喪。當時一個工作了十多年的程序員(真正的資深,我非常佩服)跟我說,別灰心,繼續學習,所有的行業都遵守一萬小時定理。等你的時間到了,你自然就瞭解了。這所謂的一萬小時成就大師,道理很簡單經過7-10的時間,成爲一個專家。程序員是個需要不斷的學習的行業,彙編,通訊,硬件,app,大數據,腳本,高級語言等等這些每一個小的領域都非常深,都需要不斷的積累,不斷的學習。就我做的這一塊而言,我總是感覺自己的知識不太夠用,經常要向別人請教,上網查資料,所以我經常在地鐵上看一些書,週末也堅持學習,花了很多時間在編程上面,即便如此我還是覺得技術上不是那麼的自信(當然我逐漸的有了一些自信)。我周圍的很多程序員也都是這樣,會要花很多的時間在學習上面,關於具體技巧的,關於理論的,太多了。所以如果不能持續的學習,無法成爲大師。 


      5.我的一些學習的方法。

      1)最好的辦法是看別人的代碼,如果自己team中有很好的程序員,那是最好的,看完高手的代碼,能學到不少的東西,學完你還能親自去請教。2)關注牛掰人的博客或者論壇,推薦劉未鵬,徐宥,tinyfool這些大牛的blog。3) 看一些經典的書籍,代碼大全,head first,C programming language, C++ primer,算法導論等等這些。4)不斷的反思,這一點我要多說幾句。反思,包括我們在解決實際問題的過程中不斷的思考更好的解決方法,總結失敗教訓或者成功經驗,也包括在和人的交往中自己處理不當的思考,人只有在不斷的總結中才能成長,不然我們掉到同一個坑裏,以前的種種失敗和挫折就毫無意義了。


      6總結

       關於我最先提到關於要demo的那些同學,其實我覺得從一個人的博文中能得到某些啓發就不錯,然後結合自己的實際問題去分析,逐步的分解問題,解決問題。這樣你的解決問題的能力纔會得到提高,即便你套用了某個例子暫時解決了一個問題,但總不能每次遇到問題都套用例子吧。其實有時候遇到麻煩問題的時候,別人一個指點,或者在搜索引擎上找到一個關鍵的術語也許就是你解決問題的關鍵,等待別人完整的解決方案是不現實的,自己也失去了價值。我決定,以後我每次分享的時候我會附上一個demo,但是我希望諸位同學能和我討論而不是直接下載例子,這樣纔是正確的學習的方式。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章