對於非科班的同學來說,我覺得首先第一步是擺正心態,即我們的技術並不會比科班差,也可以走的很遠,首先要有這樣的信心,很多科班的同學並沒有說在那幾年就學到了絕世神功,從此一騎紅塵而去。

但是除了這樣的信心以外,我們也需要擺正我們的位置,即我們相比科班的同學來說,缺乏了幾年的系統學習,若我們要走的更遠,我們需要補上我們缺乏的計算機系統相關的課程。計算機科班的同學在四年中學習了很多的課程,但是以我的看法,最重要的其實就幾門課程,智遞科技想向你進行推薦,希望對你有所幫助。

第一門課程是數據結構與算法。這門課程會對你後面的技術成長與實際工作都起到莫大的作用,很多問題都是數據結構與算法的體現,包括需要實現高效的算法所依賴的基礎也在此。這門課程我推薦閱讀的教材是《算法》第四版,作者是Robert Sedgewick。我知道可能很多人會推薦《算法導論》,但是作爲你首先補充的資料我覺得並不適合,可以先考慮更易讀的《算法》,後面更感興趣的時候再來閱讀《算法導論》。

第二門課程是操作系統。這門課程的學習並非說是要你一定要做一個操作系統內核出來,那不現實。但是這門課程會讓你深刻的理解內存、進程、線程等相關知識,這是作爲高級程序員必須要懂得的知識。我推薦的書籍是《現代操作系統》,作者是Andrew S. Tanenbaum。

第三門課程是計算機體系結構。這門課程無疑會比較枯燥,但是這個是內功中的內功,你可以學習到Cache,指令週期等知識,這會讓你看問題看的更本質,而且在一些非常困難的Bug與性能優化的場合,這門課程的知識一定能幫助很多。我推薦的書籍是《計算機體系結構 : 量化研究方法》第五版,作者是John L. Hennessy等。

其實還有其他一些需要學習的(如編譯原理),但是我覺得這三門是最關鍵的,其餘的可以待有場景時再來補。

相關文章