入行之初,如魚得水【程序員成長之道系列文章之2】

當我們選擇程序員這個職業以後,相信每個人內心中都至少會有一些以技術自居的驕傲。對於其他行業的人來說,我們做的事情是神祕的、無法理解的,程序員就像是迷一般的行業,旁人的這些看法更加深了我們以技術自居的傲氣。

程序員這個職業,有一個基本要求,那就是保持學習心態。自己所在的領域的知識要想學精通,需要花費大量的時間和精力,還需要充足的強化訓練。除此之外,每年還都有數不清的新技術出現,也說不準哪個領域會火起來。所以,我們要想保持競爭力,除了掌握好已經知道的知識外,還需要時刻學習新技術,甚至轉到新的開發領域。一個基本現狀是,職業對我們的要求非常高。我相信每個程序員都能明白這個要求。

根據我的觀察,新入職的程序員可以大致分爲三類:

1)第一類,把自己平時會用到的東西學會使用之後,便安於現狀,如果不是工作需要,便不再學習新東西;

2)第二類,感覺自己要學的東西很多,但不是非常清楚該學習什麼,所以一直想做新東西,想學新技術,並時刻保持學習的動力;

3)第三類,明確知道自己該學習什麼,以及該如何學習,並時刻保持學習的動力。

讀者朋友可以先對號入座,並排坐好。接下來我們詳細分析一下每一類程序員的特點,以及每一類同學該如何突破這一階段的限制。

在討論之前,我向讀者朋友們真誠的表達一下我的想法:對於每一種生活、工作方式,我都沒有鄙視的意思。我始終認爲,人人都是不同的,每種生活和工作方式都可以理解的,都是有意義的。下面我單純的從職業發展的角度去討論每一類同學的認知缺失,以及真誠的給出我在職業發展方面的建議。

第一類人

把自己平時會用到的東西學會使用之後,便安於現狀,如果不是工作需要,便不再學習新東西。

在我們周邊能發現不少第一類的同學,剛入職的同學中,有超過50%的人是這個狀態。他們的表現往往是:工作做完就好,工資不低就好,工作氛圍過得去就好,知識夠用就好,經常定時上下班,偶爾加加班趕工作,有了空閒時間,看看小說,跟跟劇,打會遊戲,陪陪女朋友,非工作時間很少看書學習。

對於這一類的同學,他們沒有學習的動力和意識。我曾深入思考過這個原因,我得到的結論是:這部分同學不能意識到以及確定主動學習能給自己帶來哪些明確的好處。在不明確主動學習給自己帶來多麼具體的好處時,他們更傾向於被動學習,因爲被動學習的好處是很明確的,能夠解決工作中的實際問題。如果這部分同學能從心底認定,自己堅持學習,一年後年薪漲5萬,兩年後漲10萬,三年後漲20萬...... 我相信他們也會有充足的動力去堅持學習(這裏我們只討論普通人,有的“高富帥”可能對錢不感冒)。這樣,我們便弄明白了這部分同學不能主動學習的根本原因:沒有從心裏認定主動學習能給自己帶來足夠大的好處。這種思想的成因有很多種,其中,最常見的一種心理學成因是:長期養成的內心不自信。這類同學出於對自己智商和學習能力的懷疑,他們並不認爲自己足夠聰明,並不認爲自己付出一定的努力,能取得相應的回報,甚至他們會擔心自己付出很多,但還是沒有長進,會被別人嘲笑自己不聰明。基於以上心理,他們傾向於把自己套在一個“自我保護圈”中,他們被動的去接受新東西,穩定住現有的工作,一切都中規中矩,這樣就沒有人質疑自己的能力了。客觀的說,這是一種消極的工作態度,自己認爲的中規中矩,其實會限制自己的職業發展,因爲其他人都在進步,而自己是逆水行舟,不進則退。

對於這類同學,我建議大家多看一些能夠幫助自己突破認知限制的書,比如《認知突圍》、《番茄工作法圖解》、《麥肯錫工作法系列》等。這個心理障礙需要系統化的去突破和克服,首先需要認識到通過改進自己的學習方法是可以提高學習效率的,然後需要理解學習是提高自己的唯一途徑,最後,需要突破認知,明白每個人都是有無限發展可能的,千萬不要把自己限制在一個固定領域中。

同學們,我真誠的希望大家相信我上面說的話。讓自己的內心堅定的相信以下幾點:

1)優秀的人永遠在學習、進步,只靠被動的去學習工作中遇到的新問題來實現成長,是遠遠不夠的;

1)付出就會有回報,你的持續努力,一定會讓你變得越來越優秀,將來一定會改善你的薪水收入;

2)如果懷疑自己的智商和聰明程度,可以試着學習一下新的學習工作方法,比如《番茄工作法圖解》,你需要探索出一套適合自己的方法,勇於嘗試,你一定能發現它;

堅定信念是保持實踐的前提,我真誠的希望你能突破這個認知限制。當你突破了這個限制,你很可能會成長爲第二類同學。

第二類人

感覺自己要學的東西很多,但不是非常清楚該學習什麼,所以一直想做新東西,想學新技術,並時刻保持學習的動力。

每當談到第二類同學,我的腦海中總能浮現出這樣一個畫面:這些同學經常買各種技術書籍(算法類、網絡開發、系統開發、語言類等等),樂此不疲,但是很多買過書並沒有真正深入的閱讀;在工作中,總想做新東西,總覺得做過的東西都沒有意思了,這類同學還有一個重要的特點,他們的工作中,經常會犯一些小錯誤,做的東西會有一些問題,但他們認爲這都是正常的,並不太放在心上。這類同學也很常見,大家能不能發現身邊這樣的同事呢?或者,大家自己是不是也有這個特點呢?

這類同學,一直在學習,也會一直成長,這一點是毋庸置疑的。我想跟第二類同學討論一下學習的目標和學習的方法。

第二類同學,在學習時,容易犯的一個問題是,對技術淺嘗輒止,沒有積澱成自己的知識,這是學習的目標不明確造成的結果。根據我自己的經驗,我們在學習和接觸新知識時,直接接觸到的知識往往是別人的博客、官方文檔等信息載體,這些信息傳達到我們的大腦後,需要自己的理解、邏輯推理、分析、判斷,最終轉化成自己的知識,纔算是完成了知識的學習。只有把知識完成這個轉化過程,才能算是真正的學習,纔會讓自己的知識實現積累。否則,看到的知識點如同過眼雲煙,稍後就忘記了。所以,在學習過程中,需要多思考。建議大家在學習新知識時,做一些筆記或者腦圖,把這些知識點歸納總結起來,有一些真正的轉化後的知識輸出。沒有積澱的學習,等同於做無用功。

在知識的學習和轉化爲自己的積澱過程中,還有一個學習的程度的問題需要注意。學習到什麼程度,最好聯繫實際問題去衡量,需要依賴於自己對於當前問題的架構和一些性能指標的理解。對於第二類同學,他們往往無法從架構和性能指標等角度去分析,當前問題需要解決到什麼程度,這也決定了這些同學無法衡量這個知識點自己需要學習到什麼程度。給大家舉個栗子,假如我們用到了MySQL存儲我們的數據,但是發現MySQL偶爾會出現內存溢出導致MySQL掛掉的問題,於是我們需要解決這個問題。

首先需要明確這個問題需要解決到什麼程度。很顯然,我們要弄明白出現問題的根本原因,並且保證這個問題不會再出現。這個時候,我們就有了一定的方向,首先需要查詢一下導致這個現象的常見原因都有哪些。假如我們不熟悉這個問題,那可以通過諮詢大牛或者google之,總結出原因可能有A、B、C、D、E......幾個可能性。然後我們一一分析和排除這些可能性。這個分析和排除的過程是極其複雜的,針對每一個可能性,需要歸納總結所有可能的原因,然後一一排除,只有有了100%的信心才能排除這種可能性。假如我們最終確定,是因爲QUERY語句的問題,QUERY的記錄數過多,而且併發過高導致的。那麼我們就需要解決問題,思考如何修改,能永久的避免這個問題。是否需要修改MySQL可用內存大小?是否需要修改查詢的併發度?是否需要優化出現問題的查詢?如何避免以後再有這種查詢出現?如何添加監控機制,再遇到這種問題時,能快速預警,避免花時間定位問題?這些都需要我們去思考。試着從架構的角度去思考問題,思考自己應該學習什麼,應該解決什麼,給自己定一些指標,去要求自己必須完成。這樣,我們就確定了這個學習的度。只有徹底的解決了這個問題,我們的學習就是有意義的。最後,在解決完問題之後,把解決問題學習到的知識點進行歸納總結,轉化積澱,然後再進行適當的擴展學習。比如,MySQL的內存管理機制是怎麼樣的呢?是否需要學習呢?

上面我們提到了第二類同學最需要注意的問題,學習新知識,最好結合實際問題去學習。我們工作中遇到問題的情況必然不少,如何學到位,把解決問題做到位,是一個很值得注意的問題。這裏還有個大家很關心的問題:應該如何平衡時間和精力去學習新技能呢?我的看法是:如果新技能在工作中用不到,那麼可以適當花時間去學習,但不要過多,因爲用不到的技術,很難去深入使用和理解,而且沒有真正的應用來解決問題,很容易忘記。工作中遇到的具體問題,如果需要學習新知識和新技能,那就值得花足夠多的精力去解決,這麼做,一是可以很好的完成我們的工作,還可以深刻的學習新知識點,何樂而不爲呢?而且,工作中遇到的問題是層出不窮的,把這部分的問題和知識學好,對我們的成長已經足夠有幫助了。在未來的面試中,也主要考察在既往的工作中解決的問題等個人貢獻,沒有面試官會寄希望於你自學的新技能。看到這裏,大家是不是已經有答案了呢?學習時最好聯繫工作中的具體問題,從全局的架構層次去弄清楚應該學習到什麼程度,並以高標準要求自己去學習知識,並將知識轉化成自己的積澱。

通過問題現象看本質,通過本質找規律,用積累的規律來指導自己的工作,這是成長的最佳實踐。

說了這麼多,有一個很核心的問題:如何才能從全局的架構層次去弄清楚問題該解決到什麼程度呢?這一點我也幫助不了大家,因爲我不可能幫大家去看具體的問題。那怎麼辦呢?去請教同組的大牛吧!大牛之所以成爲大牛,主要原因就是他比較厲害(當然也可能是吹出來的,這種人很多,謹防被忽悠)。讓大牛幫你分析問題該解決到什麼程度,然後,自己再去執行就好了。既然提到了大牛的作用,這裏給大家一個建議:跟至少兩個大牛搞好關係,虛心學習,有了問題,想辦法得到他們的指導。《權力與影響力》這本書在指導初入職場的人時,提出了一個觀點:幾乎所有成功的職場人士在其職業生涯初期都得到了兩個或者更多的良師指導自己。對於程序員這個職業,這一點也非常重要。我們的學習方向和學習深度,可以多請教大牛。只要方向是對的,就可以放心的學習了。

再說一遍,找準職場導師很重要!這裏提一下如何找個好導師。古語云:名師出高徒。我們要想做一個“高徒”,有一個名師能給我們帶來很大幫助。那麼如何選擇名師呢?我認爲有三個標準:正能量足、格局大、善於分享知識。每個標準都非常重要!正能量足的人,能帶動身邊的人以積極向上的視角來看待生活、工作,能以自己帶動大家去學習、拼搏奮進,大家可以根據這個描述來分辨一個人是否有足夠多的正能量。負能量多的人,一定要遠離,負能量的人只會交給你消極抱怨。格局大的人,看待任何事情都能站在更高的層次上,在技術上,他們高瞻遠矚,在工作中,他們深謀遠慮,總之,格局大的人志在遠方,胸懷大志!多和格局大的人接觸,自己看待事情的眼光也會慢慢開闊起來,而不再對小人和小事情斤斤計較。善於分享知識的人,一般會有一套自己的學習方法論,分享只是這個方法論中的一個環節,牛人的分享能成就我們,更重要的是能成就他們自己。我們需要學習牛人的學習方法論,同時從牛人的分享中學習牛人的智慧結晶。

對於第二類同學,還有幾個我常用的思維方式,希望對大家有幫助。

1)學會分享,可以嘗試着把自己學習的東西分享給同事和朋友。自己的學習、積澱,跟自己分享知識,完全是兩個層次。大家可以試試,一個知識,能給別人講明白,纔是真正的弄明白了。這一點,對我們昇華自己的知識積累非常有幫助,而且還會積累我們的影響力;

2)持續積累思維模型,這裏給大家介紹一下思維模型,我們工作中常見的架構和需求,基本都可以用一個思維模型去概括。舉個栗子,假如數據庫的記錄數過多,該如何解決呢?其實,有很多的成熟的方案可以借鑑。我們在工作的過程中需要不斷的歸納總結,將公共的問題進行建模,積累這些問題的解決方案,積澱成自己的思維模型。以後再遇到類似問題,可以快速的套到積累的模型中,從而用成熟方案解決問題。我的經驗是,當積累到足夠豐富的思維模型後,量變到質變,就化身成了架構師;

3)學習系統化思維。我們身邊的一切都是處在一個固定的系統之中的,公司的組織架構是一個完整的系統,產品的設計是一個完整的系統,技術的架構也是一個完整的系統,我們所接觸到的一些問題和事物,都是處於一個系統之中的。有了系統化思維,我們看待業務、架構、職業發展時,可以通過全局來分析局部,看問題能夠更全面。系統化思維可以提高我們思考問題的廣度和高度,正確的學習和分析問題,可以保證我們分析問題的深度。有了廣度、高度和深度,我們在解決問題、自我認知和定位、職業發展等問題上,才能看的更準確。

4)在分析問題時善於變換思路。在分析問題時,如果在某一個思路上思考了很久,還沒有突破,就沒有必要再花時間在這個思路上了。當然,也不能把問題拋到一邊不理睬,而是要想辦法找到一個新思路去嘗試。換個思路可能豁然開朗,也或者,我們靈光乍現,舊的思路一下子想通了。總之,靈活變換思路,切忌鑽牛角尖。

如果大家做好了上面的這些點,大概可以成爲第三類同學。

第三類人

明確知道自己該學習什麼,以及該如何學習,並時刻保持學習的動力。

如果讀者朋友感到自己一直在高效的學習,並且有充足的動力保持這個學習狀態,而且沒有上面提到的一些問題。那麼你很有可能屬於第三類同學。

對於這類同學,在學習上,我沒有什麼能指導大家的。學習方法因人而異,希望大家保持。

最後,說一下我認爲比較好的幾個工作方法,希望這些方法能讓你們如虎添翼。

1)工作中,我們的目的是把工作做好,要以目的爲導向。切忌以下幾點:不要帶情緒上班,用一個真誠的友誼態度對待每一個同事;解決問題纔是最重要的,不要做無謂的爭吵。當我們時時以解決工作中的問題爲主要目標時,我們是最高效的。


2)做任何事情,不要急着把事情做完。建議大家看看《你的燈亮着嗎》這本書,在有問題時,挖掘真正的問題,分析問題纔是最重要的。牛人之所以是牛人,牛在能夠準確的把握問題,系統的分析問題,準確的解決問題,其中把握問題、分析問題是最重要的,解決問題是執行的範疇,當問題分析清楚之後,制定了具體解決方案,執行起來往往並不太複雜。程序員往往容易看到設計文檔或者需求描述後,就一股腦的開始幹活。就我的觀察,很大一部分程序員做的工作,都需要返工,這就是沒弄明白真正的問題是什麼。一廂情願的開發,這叫單戀,如何達到兩情相悅,真的需要花時間去思考明白。


3)善於溝通、並且時刻同步進度。自己單獨完成一個工作時,讓需求方及時的知道進展和遇到的問題,及時同步進度;當和別人合作完成工作時,這一點會更重要。友善提醒一下大家,讓lead時刻清楚你在做什麼,做了哪些東西,是非常重要的。隨時同步進度,能避免我們走很多彎路。如果走錯了方向,及時止步,然後糾正方向纔是最明智的選擇。而不是一股腦走到底。

這一篇,就寫到這裏吧。下一篇文章,我會介紹新入行的程序員在工作中,常有的幾個錯誤觀點,以及我的一些看法。

在第四篇中,我將介紹如何樹立正確的價值觀和職業素養,在我看來,這是事業的基石。

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