編程除了學語言還要學什麼?

本人並非計算機及其相關專業,但是非常想學習編程,想能編寫出一個真正的程序,現在在學習c++,但是很迷茫,不知道還需要些什麼,才能成一個合格的程序員?可以推介一些書給我么?(因為計算機的學問太龐大,不知道如何入手)


程序是什麼 - 計算機組成

程序怎麼被翻譯 - 編譯原理

程序怎麼被執行 - 操作系統

如何利用別人的牛X成果來實現更好的數據組織 - 資料庫

如何讓你的程序容易維護/被人看懂 - 設計模式/編碼規範

如何寫出更快更好的程序 - 演算法與數據結構

如何利用別人的成果 - 學會利用開源庫、框架


操作系統提供的API。


數學。


首先要明白,編程並不是一條輕鬆的路,不要只是因為,現在大家都鼓吹程序員工資高才選擇學編程。(當然追求高工資是很正常的) ,太強的目的性、功利心,會使你不願意學習什麼數據結構,體系知識或是一些技術難題,會說以後工作用不到云云,很難靜下心認真學習編程。半路出家最容易就是功利心太強。

好下面說正題,首先題主不是計算機科學系專業,開始自學編程,推測是想通過自己的努力,找一份收入不錯的工作,同時很有追求,不願意只是當一個碼農。

好了再以上前提下,我覺得直接給樓主說要學習,演算法導論,編譯原理,計算機組成原理,計算機網路,操作系統云云,的完全標準的計算機科學體系並不合適。

說點自己的建議,入門階段: 數據結構:至少要學會,棧,隊列,鏈表吧經常用到,尤其是棧的概念。計算機網路:看題主用的不了,TCP/IP協議,了解下吧,用到網路相關的編程,那Http協議多研究下。 先從一門語言開始入門,不過話說,以C++開始怎麼說呢有好有壞,還是不說了以免被噴。 從一門語言入門,自然就會接觸一些數據結構,演算法。再往後如果你想成為一名優秀的程序員,專註技術,打好體系基礎。後來的路太長了,現在說實在太早了。

覺得在回答也沒啥實際的可說,樓主才剛學編程,真不知道說些啥。 自己推測下樓主真正想關心的回答下吧。 如果想靠一段時間的,自學找一份還不錯的工作, 那就選擇一項技術,比如Android開發,IOS開發,JavaWeb開發,Php網站開發,以開發為驅動需要什麼學什麼。 期間你肯定要學會 資料庫的增刪改查,Http協議什麼的。

不過想要有更好的發展,基礎真的很重要,很重要,很重要。 成為優秀的程序員道路是很艱難的,保持對技術的熱愛,不斷學習,才能成為一個優秀的程序員。尤其是非計算機專業的就更不容易了,題主

加油吧。


1、數據結構

2、演算法

3、代碼風格

4、編程思想

5、資料庫、操作系統、網路、編譯原理、軟體工程、軟體測試…

6、其他語言

7、不斷出現的新語言、新工具等等


和題主的背景類似,所以提供一點建議。

1、看書:C++ primer, effective c++,C++實現的演算法書

2、看隨書代碼,編譯、調試、修改這些代碼

3、把上述兩步的內部重複N遍,達到滾瓜爛熟的程度。因為你不是科班出身,所以你必須達到非常熟悉的程度,用對答如流的面試表現為自己爭取offer.

4、適當地看看計算機組成和操作系統方面的書


推薦閱讀:

有那些好的github上c/c++學習項目?
為什麼一個MessageBox都要佔用18M內存?
在 n 個整數里,找出2個數相加等於 sum 的所有整數?
WPF是可行的C++程序GUI解決方案么?
如何提高C++編程能力,以及為將來找工作做準備?

TAG:程序員 | 編程 | 計算機 | C | 自學編程 |