1樓:野豬出出
如何成為好的程式設計師?
how to become a good programmer?
首先問你乙個問題:
你們在學校都學些什麼課程?問這個問題的原因是,我認為學校的電腦科學基礎課很重要。如果你所在學校的課程設定合理,那你應該先把主要精力花在這些基礎課上。
很多學生看到基礎理論就茫然,不知道這些圖表,符號,甚至硬體的知識對將來的軟體開發有什麼用。用處大得很哪。比如,作業系統課裡講到的多執行緒的東西在系統程式設計裡很有用。
又比如,儘管你將來不會去涉及電腦的硬體,計算機架構裡的知識對分析演算法的效能(快慢等等)很有用。可以把計算機語言和開發工具比作文字,而把電腦科學的知識比做思想。只有思想,不會行文,不行;但是,行文流暢,思想空洞,也不行。
大學的階段正是打好基礎,豐富思想的年代。
成為一名好的程式設計師,不是簡單地通過學幾門課程就能做到的。我個人認為成為一名好的程式設計師的要素有:
1。紮實的基礎知識;
2。很強的解決問題的能力;
3。熟練的程式設計除錯能力;
4。創新能力;
5。團隊合作能力;
6。持續的自學能力;
7。好奇心
這些能力和品質(甚至可以說是習慣)都應該從大學階段就著手培養,並且從身邊的小事開始培養。比如,很多中國的大學畢業生都缺乏程式設計和除錯經驗。學習c語言,考試過關就算學會了。
課題專案中,只要程式能夠編譯,執行,並且輸入輸出滿足要求就了事了。但是,寫程式的時候是否想過如何把程式寫得更加精煉,高效,高質量?對程式除錯中出現的問題是否刨根問底知道原因,還是不求甚解搪塞過去算數?
還有,很多中國的大學畢業生對於知識的掌握膚淺,機械,沒有好奇心,不會刨根問底。比如,學會了c++,有沒有看過乙個object在編譯後,在彙編**中是如何被初始化的?這個object的各個成員在記憶體中是如何放的?
在乙個成員函式被呼叫的時候編譯器在彙編**中加入了哪些額外的動作?虛函式的呼叫是如何實現的? 這些東西恐怕在程式語言或編譯原理中都沒有詳細提到。
但是,你是否有過好奇心去知道?最後,一些中國學生的大問題就是死記硬背,沒有學到某種演算法技術的根本原理,沒有應變和創新的能力。比如,有個問題是如何在不用額外記憶體的情況下把一棵樹的同一層節點都連起來。
很多學生都能夠回答這是乙個廣度遍歷的問題。但是,課本上說了廣度遍歷是一定要有額外資料結構輔助的(佇列)。所以,不給額外記憶體怎麼行?
請看,課本上說的用佇列的方法記住了,但是就是不知道為什麼要用佇列。如果深刻掌握了這個佇列的作用,那麼這個問題是很容易的。
舉了這麼多例子,我想說明的事,想成為一位好程式設計師(其實從事任何乙個行業都是如此),重要的是要養成乙個鑽研,好奇,創新,動手,合作,不滿足於填鴨,不滿足於考試交差,不滿足於表象的一種優秀的習慣。這不是學幾門課能夠一蹴而就的。當然,如果你的在校課程不能使你滿足,我以及論壇上的朋友可能能夠給你推薦一些書或科目。
我覺得要提高程式設計的能力,有一位良師很重要。這位良師可以是在程式設計方面比你走在前面的同學,也可以是學校裡你幫他做專案的老師,也可以是校外公司裡的老師或老闆。很多東西在實際的專案中,有一位良師察看你的程式,幫你指出不足,手把手地指導你除錯,會對你很有幫助。
所以,當學會了書本上的基本知識以後,可以努力尋找一些有實用性的專案,藉機在專案中找到高手指導。這個專案可以在學校找,也可以到校外找。一開始不要計較報酬,甚至如果能夠尋到高手指點,白幹也行。
其次是讀好的源**。多讀好的源**就象多讀好的文章,會有利於自己寫作。能夠讀懂別人的**也是一門硬功夫。
將來很多專案中你不會重頭做,而是在半途加入(一般文件又不很齊全),因此需要能夠很快讀懂別人**和想法的能力。
再次是看一些程式設計方面的好書。writing solid code是一本很經典的書。最近出的writing secure code也不錯。
在你熟練掌握c以後,可以學一下c++並熟悉物件導向的程式設計思路。在掌握c++的基礎上可以看一下design patterns。
看你要把程式設計學到多麼專業。到一定程度,你會發現如果沒有學過資料結構,演算法原理,編譯原理和作業系統,可能在某些方面會遇到一些障礙。所以,如果有精力和條件的話,可以同時了解這些方面的知識。
最後,我要提醒你不要因為程式設計這一業餘愛好而影響了你本專業的課程,除非你決定轉行。對很多在校學生來說,本專業的成績很重要,因為這個成績可能會影響到將 來找工作,申請研究生院等等。英語也很重要。
我讀翻譯的計算機書總覺得隔了一層,翻得不貼切。能夠直接閱讀英文資料更好。
計算機專業修煉和武俠**中功夫修煉都是一樣的:
金庸先生**中提到高手習武包括內功和外功,其實這個道理在計算機專業同學中一樣適用!
內功包括:基本心法和高階心法
基本心法需要每個習武者必須修煉,包括:資料結構、編譯原理、計算機組成原理、高等數學、線性代數以及外語等。
高階心法根據個人需要定,比如:網路類需要學習包括tcp/ip原理等;軟體工程需要學習包括軟體工程的基礎課程。
外功包括:基本招式和獨門武功
基本招式:比如像c,c++,c#,sql,xml 一些語言使用或者是windows 2000 server的知識等基礎應用知識。
高階招式:比如像dx9,web-services高階等技術。
2樓:匿名使用者
首先問你一下,你對程式設計感興趣嗎?你數學思維如何?
只有對程式設計感興趣,數學思維強的人才能學好程式設計的!另外還要具備一定的英語基礎·
如果你都具備了以上的條件,那行,你夠勤奮的話一定行。
你可以找一些比較權威的教程,通讀教程,邊學教程邊做聯絡,那樣一步步的就可以學程式設計了。注意一下定位,你要成為怎麼樣的程式設計師?你要學哪種語言?通過對語言的了解,最後決定!
一定不要氣餒,學程式設計比較乏味!
可以從比較簡單的語言開始,比如 你打算學c++方向的,你可以先學一下vb。學到有感覺了,再學 c++,那樣壓力小一點,成功都是從一小步開始的,而很多的一小步就可以湊成很大的一大步!
堅持下去,相信你ok的!對了,培訓班什麼的都不用怎麼上,相信自己,那些培訓費用很高的!低消費的又學不到什麼東西!
3樓:抽出脂肪來點燈
呵呵! 學好一門技術不容易,要相信付出回報總是有的.不過你要是是一時衝動,勸你別浪費時間.
4樓:琴曜邇
首先問你乙個問題:
你們在學校都學些什麼課程?問這個問題的原因是,我認為學校的電腦科學基礎課很重要。如果你所在學校的課程設定合理,那你應該先把主要精力花在這些基礎課上。
很多學生看到基礎理論就茫然,不知道這些圖表,符號,甚至硬體的知識對將來的軟體開發有什麼用。用處大得很哪。比如,作業系統課裡講到的多執行緒的東西在系統程式設計裡很有用。
又比如,儘管你將來不會去涉及電腦的硬體,計算機架構裡的知識對分析演算法的效能(快慢等等)很有用。可以把計算機語言和開發工具比作文字,而把電腦科學的知識比做思想。只有思想,不會行文,不行;但是,行文流暢,思想空洞,也不行。
大學的階段正是打好基礎,豐富思想的年代。
成為一名好的程式設計師,不是簡單地通過學幾門課程就能做到的。我個人認為成為一名好的程式設計師的要素有:
1。紮實的基礎知識;
2。很強的解決問題的能力;
3。熟練的程式設計除錯能力;
4。創新能力;
5。團隊合作能力;
6。持續的自學能力;
7。好奇心
這些能力和品質(甚至可以說是習慣)都應該從大學階段就著手培養,並且從身邊的小事開始培養。比如,很多中國的大學畢業生都缺乏程式設計和除錯經驗。學習c語言,考試過關就算學會了。
課題專案中,只要程式能夠編譯,執行,並且輸入輸出滿足要求就了事了。但是,寫程式的時候是否想過如何把程式寫得更加精煉,高效,高質量?對程式除錯中出現的問題是否刨根問底知道原因,還是不求甚解搪塞過去算數?
還有,很多中國的大學畢業生對於知識的掌握膚淺,機械,沒有好奇心,不會刨根問底。比如,學會了c++,有沒有看過乙個object在編譯後,在彙編**中是如何被初始化的?這個object的各個成員在記憶體中是如何放的?
在乙個成員函式被呼叫的時候編譯器在彙編**中加入了哪些額外的動作?虛函式的呼叫是如何實現的? 這些東西恐怕在程式語言或編譯原理中都沒有詳細提到。
但是,你是否有過好奇心去知道?最後,一些中國學生的大問題就是死記硬背,沒有學到某種演算法技術的根本原理,沒有應變和創新的能力。比如,有個問題是如何在不用額外記憶體的情況下把一棵樹的同一層節點都連起來。
很多學生都能夠回答這是乙個廣度遍歷的問題。但是,課本上說了廣度遍歷是一定要有額外資料結構輔助的(佇列)。所以,不給額外記憶體怎麼行?
請看,課本上說的用佇列的方法記住了,但是就是不知道為什麼要用佇列。如果深刻掌握了這個佇列的作用,那麼這個問題是很容易的。
舉了這麼多例子,我想說明的事,想成為一位好程式設計師(其實從事任何乙個行業都是如此),重要的是要養成乙個鑽研,好奇,創新,動手,合作,不滿足於填鴨,不滿足於考試交差,不滿足於表象的一種優秀的習慣。這不是學幾門課能夠一蹴而就的。當然,如果你的在校課程不能使你滿足,我以及論壇上的朋友可能能夠給你推薦一些書或科目。
我覺得要提高程式設計的能力,有一位良師很重要。這位良師可以是在程式設計方面比你走在前面的同學,也可以是學校裡你幫他做專案的老師,也可以是校外公司裡的老師或老闆。很多東西在實際的專案中,有一位良師察看你的程式,幫你指出不足,手把手地指導你除錯,會對你很有幫助。
所以,當學會了書本上的基本知識以後,可以努力尋找一些有實用性的專案,藉機在專案中找到高手指導。這個專案可以在學校找,也可以到校外找。一開始不要計較報酬,甚至如果能夠尋到高手指點,白幹也行。
其次是讀好的源**。多讀好的源**就象多讀好的文章,會有利於自己寫作。能夠讀懂別人的**也是一門硬功夫。
將來很多專案中你不會重頭做,而是在半途加入(一般文件又不很齊全),因此需要能夠很快讀懂別人**和想法的能力。
再次是看一些程式設計方面的好書。writing solid code是一本很經典的書。最近出的writing secure code也不錯。
在你熟練掌握c以後,可以學一下c++並熟悉物件導向的程式設計思路。在掌握c++的基礎上可以看一下design patterns。
看你要把程式設計學到多麼專業。到一定程度,你會發現如果沒有學過資料結構,演算法原理,編譯原理和作業系統,可能在某些方面會遇到一些障礙。所以,如果有精力和條件的話,可以同時了解這些方面的知識。
最後,我要提醒你不要因為程式設計這一業餘愛好而影響了你本專業的課程,除非你決定轉行。對很多在校學生來說,本專業的成績很重要,因為這個成績可能會影響到將 來找工作,申請研究生院等等。英語也很重要。
我讀翻譯的計算機書總覺得隔了一層,翻得不貼切。能夠直接閱讀英文資料更好。
計算機專業修煉和武俠**中功夫修煉都是一樣的:
金庸先生**中提到高手習武包括內功和外功,其實這個道理在計算機專業同學中一樣適用!
內功包括:基本心法和高階心法
基本心法需要每個習武者必須修煉,包括:資料結構、編譯原理、計算機組成原理、高等數學、線性代數以及外語等。
高階心法根據個人需要定,比如:網路類需要學習包括tcp/ip原理等;軟體工程需要學習包括軟體工程的基礎課程。
外功包括:基本招式和獨門武功
基本招式:比如像c,c++,c#,sql,xml 一些語言使用或者是windows 2000 server的知識等基礎應用知識。
高階招式:比如像dx9,web-services高階等技術
大學畢業兩年了,再去學軟體開發可以嗎?哪個培訓學校比較好一點
我知道現在還有家深圳華夏it口碑挺不錯 課程以就來為嚮導 教學跟就業都很給力 學完課程學校負責推薦工作 想從事軟體開發,軟體開發培訓學校哪家好一些 選擇乙個好學校是成功的第一步,也為後來的學習效果做強有力的支撐,所以選學校要注意以下三點。第一,品牌知名度。選擇知名度高 口碑好的品牌相對來說更保險,一...
大學畢業了你想對ta說些什麼,畢業了,你最想對你喜歡的ta說什麼?
即將踏出大學的校門,就要真正的融入那個社會中去了,雖然會有很多你意想不到的意外,但是也希望你能一直如現在一般。我們也一起度過了幾年的學校時光。對彼此多多少少都有一些了解,雖然還沒有達到親姐妹的那種程度,但是我覺得我們對對方也沒有多少的隱瞞。今年暑假的時候你也是第一次去做了暑假工,但是你也覺得人心險惡...
大學畢業了,想去日本讀語言學校,然後再去考研,各位有什麼好建議嗎
首先第一次去日本讀語言的時候要準備10萬,包括一年學費大致5萬,半年住宿費大致2萬,半年生活費大致3萬。半年以後基本都能找到工作。選擇一所好的語言學校是非常關鍵的,可以根據你的目的,經濟條件,地點,打工,規模,等具體選擇語言學校。目前經 日本文部科學省 認定的各類大學共有670餘所 其中國立99所,...