2013-02-07 358 views
-1

多年來我一直在編程。我在Linux中使用C/C++和make/open源代碼。我使用Python來對算法進行原型設計。我使用C#/ Visual C++ MFC在Windows上創建玩具程序。這些代碼保存在版本控制系統下。但是在回顧了面向軟件工程的面試問題後,我意識到我還沒有CS的基礎知識。我的大部分節目都是盲目的,沒有經過精心的設計。所以我的問題是SE必須知道的基本CS知識是什麼?CS基礎知識

1)數據結構和算法

2)離散數學

別的我應該學習?

+2

錯誤的地方要問,因爲與源代碼無關。嘗試http://programmers.stackexchange.com/並閱讀http://mitpress.mit.edu/sicp/;也學會使用Linux,並學習您選擇的免費軟件源代碼。 –

+1

設計模式。 –

+0

恐怕這個問題不適合這個網站。 –

回答

1

從「編碼器」到「軟件工程師」的過渡是一個終身的過程。事實上,你認識到自己在該領域的弱點,表明你已經朝着正確的方向邁出了一步。恭喜!

經過對數據結構和基本算法的深入瞭解後,我建議將「設計模式」作爲您的#2。其經典文本是「設計模式:可重用面向對象軟件的元素」

第三個研究領域可以是「軟件工程過程」。這些是人員創建軟件時使用的技術和工作流程。公司對這些流程的瞭解以及以協調一致的方式與他人合作的能力看好。