@seahouse
你好,看到你的留言,我以前有段時間和你的情況有一定的相似度。
我特意去你的博客看了一下。這篇文章已經從宏觀上回答了你的問題了---《20-30歲,我拿這十年做什么?》
那么我想我也并不算有多厲害的技術,只是對整體知識有了透徹的理解。下面我針對你的情況給出幾個建議吧,希望能幫到你。(如果你覺得有疑問的,我們可以討論,我也希望我們可以相互學習、交流。)
1.學習編程,一定要接觸多個平臺,最好是在類似UNIX的平臺上做開發,C#思想是很先進的,我也沒有系統的學過它,但是我知道他有一部分特性非常優于C++的特性,比如它的事件機制是內置的而C++要用觀察者模式做這件事情,但問題在于他是專屬與微軟公司的,所以不用特別在意語言,如果你能精通C++,那么這幾個語言包括C#、JAVA、object-c、c等語言你都會精通,這中間的路很長,0基礎的人要5年左右,你的情況。可能還有2~3年。
2.精通C++,一定要在大環境下去精通它,比如跨平臺程序框架,比如和其他語言混編,或者openGL、openCV這樣的庫,以及在項目中做一些綜合嘗試,不用拘束與語言,你用的多了,自然就精通了,而且不止精通C++一種語言。
你也可以照著我以前的學習方法,去重寫一遍STL(參考《STL源碼剖析》),這對工作沒有特別大的幫助,但是是屬于內功,長久看是很有益處的。從STL的代碼里面,你能學到內存池管理技術、模版組合技術、幾個設計模式、數據結構、常用算法、函數對象的使用技巧以及怎樣擴展STL才最合理等內容。
有兩本書是學習C++必讀的,并且在C++的知識系統中是不可替代的,分別是:《C++程序設計語言》、《深度探索C++對象模型》。另外需要制定自己的編碼規范,可以參考google C++ 編碼規范、 K&R編碼風格。然后是和業務知識相關的實踐。還有一本好書我想推薦給你---《C++語言常見99個編程錯誤》。
3.你最好開始定制自己的編程工具,比如Vim、emacs等,Eclipse也是可以定制的。有一把利器,無往而不利。用IDE熟悉的話自然有好處,但是深入定制一個IDE,你就會知道背后的故事。
4.你需要全面的計算機知識,根據你的博客來看,有一些東西我就不用說了,那么我只說可能你不夠重視的。操作系統要加強(大學知識不夠用的,可以看這個網站的教程:
http://oss.org.cn/kernel-book/,我現在把它當作參考書用,非常易學易用)、算法(基本算法需要記住根本的原理,能用偽代碼實現)、了解編程范式。
如果你用emacs的話,學一下lisp,推薦書籍《on lisp》、《黑客與畫家》
5.一定要去UNIX下走一趟,學習正則表達式,UNIX的腳本語言等,推薦Pearl和python。
以上是主流的建議,你可以根據個人喜好做取舍,還有一點:不要灰心,沒去500強不算什么損失,除了技術外這里面還有很多人事方面的因素。我以前500強挖我去我不去,后來我想去了,反而去不成了。所以去不去500強并不證明什么。
還有就是,在IT行業,先掙點錢,同時加強技術。這方面我不能很細的告訴你。如果有空了,再看看《編程珠璣》、如果想更深入的,可以翻翻《計算機程序設計藝術》。優先推薦第一本,原因--薄、精!
好了,寫太多了,有問題再討論。