程式設計師的十層樓(3)

cow977發表於2011-03-15

第3層 牛人

  由於”大蝦”們經常被一些疑難問題給卡住,所以有了”大蝦”們只好繼續學習,他們需要將原來所學的知識進一步熟練掌握,比如以熟練掌握C++程式語言為例,除了學一些基礎性的C++書籍如《C++ Primer》,《Effective C++》,《Think in C++》,《Exception C++》等之外,更重要的是需要了解C++編譯器的原理和實現機制,瞭解作業系統中的內部機制如記憶體管理、程式和執行緒的管理機制,瞭解處理器的基礎知識和程式碼最佳化的方法,此外還需要更深入地學習更多的資料結構與演算法,掌握更深入的測試和除錯知識以及質量管理和控制方法,對各種設計方法有更好的理解等。

  學習上面說的這些知識不是一揮而就的,不看個三五十本書並掌握它是做不到的。以資料結構演算法來說,至少要看個5~10本這方面的著作;以軟體設計來說,光懂結構化設計、物件導向設計和一些設計模式是不夠的,還要了解軟體架構設計、互動設計、面向方面的設計、面向使用的設計、面向資料結構演算法的設計、情感化設計等,否則是很難進到這個樓層的。

  當然除了上面說的知識外,大蝦們還需要去學習各種經驗和技巧。當然這點難不倒他們,現在出版的書籍眾多,網路上的技術文章更是不勝數,然後再去各種專業論壇裡泡一泡,把這些書籍和文章中的各種經驗、技能、技巧掌握下來,再去學習一些知名的開源專案如Apache或Linux作業系統的原始碼實現等。此時對付一般的疑難問題通常都不在話下,菜鳥和大蝦們會覺得你很”牛”,你也就爬到了第3層,晉升為”牛人”了。

  看了上面所講的要求,可能有些大蝦要暈過去了,成為牛人要學這麼多東西啊!要求是不是太高了?其實要求一點也不高,這麼點東西都掌握不了的話,怎麼能讓別人覺得你”牛”呢?

  需要提一下的是,進入多核時代後,從第2層爬到第3層增加了一道多核程式設計的門檻。當然要邁過這道門檻並不難,已經有很多前輩高人邁進了這道門檻,只要循著他們的足跡前進就可以了。想邁進這道門檻者不妨去學習一下TBB開源專案的原始碼(連結:),然後上Intel的部落格(http://softwareblogs-zho.intel.com/)和多核論壇()去看看相關文章,再買上幾本相關的書籍學習一下。

  在國內, 一旦成為”牛人”,通常可以到許多知名的公司裡去,運氣好者可以掛上一個架構師的頭銜,甚至掛上一個”首席架構師”或者”首席xx學家”的頭銜也不足為奇。有不少爬到這層的人就以為到了樓頂了,可以眼睛往天上看了,開始目空一切起來,以為自己什麼都可以做了,什麼都懂了,經常在網路上亂砸板磚是這個群體的最好寫照。由此也看出,國內的牛人數量仍然眾多,遠多於西方的牛人數量,在這層上仍然是領先的。

  也有不少謙虛的”牛人”,知道自己現在還不到半桶水階段。他們深知爬樓的遊戲就像猴子上樹一樣,往下看是笑臉,往上看是屁股。為了多看笑臉,少看屁股,他們並沒有在此停步不前,而是繼續尋找到更上一層的樓梯,以便繼續往上爬。

 

轉自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/81227/viewspace-689492/,如需轉載,請註明出處,否則將追究法律責任。

相關文章