如何做一名程序員?
如何成為一名程序員?
首先先選擇一門語言 現在比較火的是sun公司的java 和微軟的C#
友情提示:java移植性很好,這是網絡平臺所需要的。C#只能運行在微軟的平臺,有侷限性。
我不排斥其他的計算機語言 不過一般只要學懂一門語言後就相當進入程序的天堂,在學其他的語言時候就能簡單的多,因為很多軟件語言是相同的,學懂一門就能夠看懂其他的。
買書,見意買比較薄的書開始學,太厚的書看不完會打擊心靈。
需要有耐心,其實是非常有耐心,因為學軟件做軟件是一輩子的,沒有任何一門技術能做到老,必須一路學下去。每當度過一個階段儘量總結所學過的。
一定要沉得住寂寞,無論是學軟件還是做軟件。
只要認真學,一般一年自學都可以有所小成,程度還要看個人的領悟。
做軟件是需要注意很多細節,正是這些細節所以讓人很頭疼,所以需要耐心。
順便提一句:學軟件就儘量學比較火的,因為市場需要,才會火。
我不是鄙視某某某語言,而是實話說,畢竟學出來需要應付工作的,如果工作不需要,就算學的很有本事,沒人僱也沒用,對吧!
你完全可以去招聘網看看軟件這個行業哪些軟件需要的人才多。
別聽誰誰誰說哪種語言火,火不火招聘的數量就能說明一切。
一定要對軟件充滿信心,千萬別輕易放棄。相信軟件是有“錢”途的。
本人現在也是在自學軟件,也有三年的學習。
以上是我一些經驗,如果有需要,可以按右下角Hi我,相互促進。
如何成為一個程序員
1、 程序員意味著要編程序。(如果你僅僅想得到一份高薪水的工作,喝喝咖啡就等老闆發薪水,我奉勸你還是另找一份更合適的工作,譬如練攤,真的,兄弟,這份工作不適合你)
2、你是學文的還是學理的,編程序也許需要浪漫,但更需要邏輯和嚴謹。(說坦白點就是,在你沒有找到樂趣以前,它很枯燥)
3、你有對新技術追求的熱情嗎?你有刨根問底的探索精神嗎?(熱情絕對是最重要的!你仔細思考一下自己的性格適合當程序員嗎?)
4、當程序員決不是什麼好差事,時刻需要學習,需要思考。(直到你成為那個可以引導別人去學習和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)
5、程序員的未來很迷茫。(但我認為關鍵看你自己!我希望你是一個有追求的人,不僅僅是混碗飯吃。因為真正的樂趣在於創造;如果你能改變軟件業的歷史,那才是英雄;不想成為Bill Gates,不想成為Dennis Ritchie和 Bjarne Stroustrup,我會說你沒有追求。有個關於程序員未來的笑話,也許你還沒聽過,你該聽一聽,摘抄如下:
一個程序員對自己的未來很迷茫,於是去問上帝。
“萬能的上帝呀,請你告訴我,我的未來會怎樣?”
上帝說“我的孩子,你去問Lippman,他現在領導的程序員的隊伍可能是地球上最大的”
於是他去問Lippman。
Lippman說“程序員的未來就是駕馭程序員”
這個程序員對這個未來不滿意,於是他又去問上帝。
“萬能的上帝呀,請你告訴我,我的未來會怎樣?”
上帝說“我的孩子,你去問Gates,他現在所擁有的財產可能是地球上最多的”
於是他去問Gates。
Gates說“程序員的未來就是榨取程序員”
這個程序員對這個未來不滿意,於是他又去問上帝。
“萬能的上帝呀,請你告訴我,我的未來會怎樣?”
上帝說“我的孩子,你去問侯捷,他寫的計算機書的讀者可能是地球上最多的”
於是他去問侯捷。
侯捷說“程序員的未來就是誘惑程序員”
這個程序員對這個未來不滿意,於是他又去問上帝。
“萬能的上帝呀,請你告訴我,我的未來會怎樣?”
上帝搖搖頭“唉,我的孩子,你還是別當程序員了”)
6、當程序員還是很有樂趣的。(當你學到新知識時,當你有新的思想見解時,當你有新的產品問世時,和知己探討你的成果時…我問你,覺得這些是樂趣嗎?)
7、當程序員不易也不難。(世間事有難易乎?為之…;不為…。你有決心和信心嗎?)
8、你真的要當程序員?是你自己的想法?
9、你捨得花錢買書嗎?(讀好書絕對是學習編程的最佳捷徑。你一定會說,現在電腦書籍真他XX的貴,沒法子,誰讓知識和技術在人家的腦袋,在人家的書裡呢;等你寫書時可以把價格定低一點,記著還有好多沒錢但想買書的兄弟很困難呀。要捨得買書,買好書,不好的的書不如不讀,其害大於其益,關於買什麼書,你可以問高手或看候捷的書評;準備一個小本子記錄你想買的書的名字,逛書店時看看,如果好就買下,記住要讀,別光買不看。) 10、我告訴你,程序就是:任何有目的的、預想好的動作序列,它是一種軟件。
11、編程序就是編寫程序。
12、你想好了嗎?(如果你想好了還是決定要當程序員,可以繼續往下讀;否則,你可以繼續尋找別的出路了。)
(三) 一個程序員應該具備的基礎知識和概念
1、計算機是有什麼組成的,CPU是什麼東西,其工作原理是什麼。(對於這些以及下面將要提到的概念我不會告訴你什麼答案,你可以看相應的教材,關於教材我會在下一部分詳述,記住理解最重要!)
2、機器語言和微指令集的概念。
3、程序的概念。
4、彙編語言是低級語言但不是機器語言。
5、高級語言主要有那些?(C......
如何才能成為一名優秀的程序員
中國的信息技術發展迅速,由它所帶來的浪潮已經滲入到了人們生活的每一個角落,而程序員們成為了這場信息化浪潮的見證者之一,更是其中的主要參與者,這是時代賦予每個程序員的機會和責任。 做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟件還是用C/C編寫。而JAVA的跨平臺和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVA One很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。 熟知數據庫 為什麼數據庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以數據庫的數據為中心,而數據庫的產品也有不少,其中關係型數據庫仍是主流形式,所以程序員至少熟練掌握一兩種數據庫,對關係型數據庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多數據庫產品提供了可視化的數據庫管理工具,但SQL是基礎,是通用的數據庫操作方法。如果沒有機會接觸商業數據庫系統,可以使用免費的數據庫產品是一個不錯的選擇,如mySQL, Postgres等。 對操作系統有一定的瞭解 當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入瞭解操作系統,瞭解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平臺,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的瞭解後,你會發現自己上了一個新的臺階。 懂得網絡協議TCP/IP 在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網絡技術已改變了軟件運行的模式,從最早的客戶/服務器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網絡協議支持,所以,深入掌握TCP/IP協議是非常必要的。
如何做一個成功的程序員
程序員是一種技術工作.在IT的發展中有相當重要的地位.從底層硬件通訊協議的建立. 到數據傳輸層的處理.到操作系統的建設.到數據庫平臺的建設.一直到應用層上各種數 據營銷平臺的搭建.程序員在裡面都扮演著舉足輕重的角色併為IT事業的發展做出了巨大 的貢獻.
中國有很多精於編碼的人.但是中國軟件行業.尤其是網絡應用開發方面誤區很大.很難形成有規模的軟件開發力量和產品能力.不但比美國差距甚遠.和印度相比也是頗有不 如.這些問題不是在於中國程序員的智商和工作努力狀況.也不是在於國家和民間對開發 的投入程度.而是很大程度上.有一些對技術.對程序開發.對項目設計方面的思想誤 區.這些誤區.導致了軟件行業的產品化能力不足.缺乏規模化和大型複用系統研發能 力.可以說.改變認識誤區.是解決軟件行業小作坊模式和個體英雄模式所帶來的侷限性 的重要工作.
中國有很多小朋友.他們18.9歲或21.2歲.通過自學也寫了不少代碼.他們有的代碼寫的很漂亮.一些技術細節相當出眾.也很有鑽研精神.但是他們被一些錯誤的認識和觀點左右.缺乏對系統.對程序的整體理解能力.這些人.一個網上的朋友說得很好.他們實際 上只是一些Coding fans.壓根沒有資格稱為程序員.但是據我所知.不少小網絡公司的 CTO就是這樣的coding fans.拿著嚇人的工資.做著嚇人的項目.項目的結局通常也很嚇人.
一.程序員基本素質
作一個真正合格的程序員.或者說就是可以真正合格完成一些代碼工作的程序員.應該具有的素質.
1:團隊精神和協作能力
把它作為基本素質.並不是不重要.恰恰相反.這是程序員應該具備的最基本的.也是最 重要的安身立命之本.把高水平程序員說成獨行俠的都是在囈語.任何個人的力量都是有 限的.即便如linus這樣的天才.也需要通過組成強大的團隊來創造奇蹟.那些遍佈全球 的為linux寫核心的高手們.沒有協作精神是不可想象的.獨行俠可以作一些賺錢的小軟 件發點小財.但是一旦進入一些大系統的研發團隊.進入商業化和產品化的開發任務.缺 乏這種素質的人就完全不合格了.
2:文檔習慣
說高水平程序員從來不寫文檔的肯定是乳臭未乾的毛孩子.良好的文檔是正規研發流程中 非常重要的環節.作為代碼程序員.30%的工作時間寫技術文檔是很正常的.而作為高級 程序員和系統分析員.這個比例還要高很多.
缺乏文檔.一個軟件系統就缺乏生命力.在未來的查錯.升級以及模塊的複用時就都會遇 到極大的麻煩.
3:規範化.標準化的代碼編寫習慣
作為一些外國知名軟件公司的規矩.代碼的變量命名.代碼內註釋格式.甚至嵌套中行縮 進的長度和函數間的空行數字都有明確規定.良好的編寫習慣.不但有助於代碼的移植和 糾錯.也有助於不同技術人員之間的協作.
有些coding fans叫囂高水平程序員寫的代碼旁人從來看不懂.這種叫囂只能證明他們自 己壓根不配自稱程序員.代碼具有良好的可讀性.是程序員基本的素質需求.
再看看整個linux的搭建.沒有規範化和標準化的代碼習慣.全球的研發協作是絕對不可 想象的.
4:需求理解能力
程序員需要理解一個模塊的需求.很多小朋友寫程序往往只關注一個功能需求.他們把性 能指標全部歸結到硬件.操作系統和開發環境上.而忽視了本身代碼的性能考慮.有人曾 經放言說寫一個廣告交換程序很簡單.這種人從來不知道在百萬甚至千萬數量級的訪問情 況下的性能指標是如何實現的.對於這樣的程序員.你給他深藍那套系統.他也做不出太 極鏈的並訪能力.性能需求指標中.穩定性.並訪支撐能......
怎麼從菜鳥成為一個程序員啊
我建議你看一下網上很火的一篇文章叫:程序員的十層樓。
我再寫寫我自己的經驗吧:
[經驗之談]30歲,我的程序,我的夢!
程序人生 : 30歲,我的程序員夢想
作 者: redbridge (雪燃)
30歲,開始實現我的程序員夢,從一個編程愛好者,從一個業餘的程序員,一個水平不高的程序員,一個半道出家的程序員......
我的經歷到這裡就告一段落了,五年裡跳了五次槽,不知道和大家比算不算多J,沒有什麼太多起伏,但我想很多朋友可能會和我有類似的經歷,不知道能不能引起你們的共鳴。我想對我上面所說的話給一個總結:
1. 如果你覺得自己應該追求什麼,不管遇到什麼困難千萬不要放棄,一定要堅持下去。
2. 不要因為自己年輕就找理由揮霍時間,少玩一點SC、CS、魔獸3、傳奇、魔力或者…….,多看點書,多練練題。
3. 如果你還是在校的學生,英語很差,專業課也很差。沒關係,想怎麼學計算機就怎麼學計算機吧。其它地只要能混到畢業證就行了。除非你對自己的未來沒有信心。(當然,如果你的理想不僅僅是要做一個程序員,那你別丟掉英語。)
4. 如果你不是科班出身,想要轉行而不知該怎麼開始的話,建議你先看兩類書:(1)計算機原理;(2)數據結構和算法。(看數據結構之前先看C語言)。
5. 什麼時候努力都不晚,關鍵是你明白要努力了,大器晚成總比一事無成要好的多。
6. Java、.net、C++、PB、VB、Delphi、彙編到底應該學哪個?我的經驗,哪個最簡單就先學哪個、公司用哪個你就學哪個、哪個和你有緣(比如剛好你認識一個願意幫助你的Delphi高手)你就學哪個,如果你都學,或者三天兩頭的換,我可以告訴你結果肯定是什麼都不會,不要心浮氣燥,他們都只是工具,學精一門其它的就相通了,重要的是掌握編程的思想。如果你問我面向對象(好像現在已經是面向需求了)、UML、WebLogic、WebService、軟件工程、XML…….應該怎麼學呀,對不起,這些我也確實不是都會,但請相信,你先實實在在的寫上十萬行以上的代碼以後,那些東西你自然就慢慢會了。
7. 不要以為程序員的工資都很高,程序員之間的水平差異也大。公司衡量一個人的待遇標準是他能給公司帶來多大的效益。如果你體現了自己的價值,公司會主動給你加薪的,當然你也可以自己主動提,但一定要在你表現出了自己的價值之後。
8. 輕易不要跳槽,如果非要跳,也要保持工作經驗上的延續,而不是從新開始,不然就會象我一樣走很多彎路。
9. 如果你以為程序員都是熬夜熬出來的,那麼你錯了,因為它的代價就是縮短你的青春!大家不要象我一樣,真的,熬夜一點也不好!記住老毛的話:如有恆,何須三更起,半夜眠;最怕莫,三天打魚兩天晒網,竹籃打水一場空!
10. 這一點是我覺得最精華的一點:“君子性非異也,善假於物也。”這句話的本意是一個水平很高的人本身並不一定很高明,關鍵是他善於利用別人的高明!我在這裡做個借鑑,就是要充分利用自己身邊的資源,不放過任何一個可以提高自己的機會。大家不要誤會,這裡的假於物可不是指抄襲別人的源代碼,而是指通過學習別人的源代碼把他的思想擴展到自己的思想裡去。
注:上面的十大“精華”純屬我個人的“謬論”,您自己看著消化,有用的收下,沒用的請拖入“回收站”。如果你覺得這些總結不過是一些浮華之詞,那請你先問問自己:“是不是在行動上都真正做到了。”
這就是我,一個不算優秀,不算勤奮;玩能玩通宵,學也學能學通宵;對夢想的追求很執著;到了30才開始真正寫程序;一個很平凡......
怎樣才能快速成為一名程序員
1 學習如何編程
這當然是最基本的黑客技術。如果你還不會任何計算機語言,我建議你從Python開始。它設計清晰,文檔齊全,對初學者很合適。儘管是一門很好的初級語言,它不僅僅只是個玩具。它非常強大,靈活,也適合做大型項目。
但是記住,如果你只會一門語言,你將不會達到黑客所要求的技術水平,甚至也不能達到一個普通程序員的水平---你需要學會如何以一個通用的方法思考編程問題,獨立於任何語言。要做一名真正的黑客,你需要學會如何在幾天內通過一些手冊,結合你現在所知,迅速掌握一門新語言。這意味著你應該學會幾種不同的語言。
如果要做一些重要的編程,你將不得不學習C語言,Unix的核心語言。其他對黑客而言比較重要的語言包括Perl和LISP。 Perl很實用,值得一學;它被廣泛用於活動網頁和系統管理,因此即便你從不用Perl寫程序,至少也應該能讀懂它。 LISP 值得學習是因為當你最終掌握了它你會得到豐富的經驗;這些經驗使你在以後的日子裡成為一個更好的程序員,即使你實際上可能很少使用LISP本身。
當然,實際上你最好四種都會。 (Python, C, Perl, and LISP). 除了是最重要的四種基本語言,它們還代表了四種非常不同的編程方法,每種都會讓你受益非淺。
這裡我無法完整地教會你如何編程---這是個複雜的活兒。但我可以告訴你,書本和課程也不能作到。幾乎所有最好的黑客都是自學成材的。真正能起作用的就是去親自讀代碼和寫代碼。
學習如何編程就象學習用自然語言寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,又讀些,又寫點....如此往復,直到你達到自己在範文中看到的簡潔和力量。
過去找到好的代碼去讀是困難的,因為很少有大型程序的可用源代碼能讓新手練手。這種狀況已經得到了很大的改善;現在有很多可用的開放源碼軟件,編程工具和操作系統(全都有黑客寫成)。這使我們自然地來到第二個話題...
2 得到一個開放源碼的Unix並學會使用、運行它
我假設你已經擁有了一臺個人計算機或者有一個可用的( 今天的孩子們真幸福 :-) )。新手們最基本的一步就是得到一份Linux或BSD-Unix,安裝在個人計算機上,並運行它。
當然,這世界上除了Unix還有其他操作系統。但它們都是以二進制形式發送的---你無法讀到它的源碼,更不可能修改它。嘗試在DOS或Windows的機器上學習黑客技術,就象是在腿上綁了鐵塊去學跳舞。
除此之外,Unix還是Internet的操作系統。你可以不知道Unix而學會用Internet,但不懂它你就無法成為一名Internet黑客。因為這個原因,今天的黑客文化在很大程度上是以Unix為中心的。(這點並不總是真的,一些很早的黑客對此很不高興,但Unix和Internet之間的共生關係已是如此之強,甚至連微軟也無可奈何)
So,裝一個Unix---我個人喜歡Linux,不過也有其他選擇。(你也可以在同一臺機器上同時運行DOS,Windows和Linux)學會它。運行它。用它跟Internet對話。讀它的代碼。試著去修改他。你會得到比微軟操作系統上好的多的編程工具(包括C,Lisp, Python, and Perl),你會得到樂趣,並將學到比你想象的更多知識。
關於學習Unix的更多信息,請看 The Loginataka.
要得到Linux,請看: 哪裡能得到 Linux...
想做一名程序員,要怎麼做?
學c 和 c++ 然後做點作品找工作
程序開發最重要的就是邏輯思維,數學只是對思維有好處 並不是必須,
大概是工學數學競賽的邏輯思維就ok了,你可以看看那些競賽題 我說的就是那個意思
其次是英文文檔 英語初中畢業水平得有,然後baidu或google翻譯就行了,,大學6級過了的人看計算機文檔都得用翻譯。聽說不用,遇到問題先查百度再查google
如何成為一名合格的程序員?
一、需求理解能力
在開發過程中,要在需求細節不明的情況下,有責任設法搞清楚,積極學習編程思想和方法,並在設計、編碼工作中自覺應用,對有一些複雜程度的設計,主動申請設計審查。並能在開發用戶界面之前,儘可能使用界面原型方法獲取用戶的確認。
二、 合作與團隊精神及計劃性
服從分配的工作,並在保證質量的前提下儘快完成任務。如果接到的新任務沒有給出工作量估計,首先估計出完成任務所需要的工作量,並有責任向領導說明其估計的合理性,如果接到的新任務已經給出工作量,除非能提出充分的理由,否則必須接受該工作量估計。提前完成任務時,應該及時通知上級。在同時承擔幾個模塊任務時應能根據優先級的變化及時調整自己的工作時間分配。
三、 測試意識
在工作負擔允許的情況下,採用測試驅動的編碼方式,及時把完成編碼的部分提交測試,並及時排錯。不斷通過自己的測試來驅動程序質量的提升。
四、規範化,標準化的代碼編寫習慣
良好的文檔是正規研發流程中非常重要的環節,作為代碼程序員,25%的工作時間寫技術文檔是很正常的。缺乏文檔,一個軟件系統就缺乏生命力,在未來的查錯,升級以及模塊的複用時就都會遇到極大的麻煩。
字串4
對正規的企業,會有完整的編碼規定,代碼的變量命名,代碼內註釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。代碼具有良好的可讀性,是程序員基本的素質需求。
五、總結與全局觀
以項目全局為重,採取儘可能簡捷的解決方案,把完美方案的設想提交設計人員,有問題時首先向同事們徵求解決辦法,不鼓勵花大量時間解決難題,並鼓勵給同事提供技術支持。項目結束,做出個人小結,以利個人和集體的改進。
如何成為一名程序員
第一步:
掌握一種編程語言。學習任意一種主流的編程語言,例如C++語言。熟練掌握一種語言的語法和基本的編程技巧。
學習時間:
3個月左右
注意事項:
編程語言和編程工具是兩回事情,編程語言是指C++、Basic、Object Pascal等。程序設計語言,它們是像漢語、英語一樣的抽象的語法規則,編程工具是指Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代碼編輯器、程序編譯器 在內的集成化、可視化的軟件開發工具。C++源程序可以在Visual C++ 6.0裡編寫,也可以在記事本里編寫,而同一個C++源程序可以用Visual C++ 6.0編譯、執行,也可以用C++ Builder 5.0
編譯、執行,所以: C++ 不等於 Visual C++ 6.0。
第二步:
掌握一種編程工具,學習任意一種主流的編程工具。注意編程工具要和第一階段學習的編程語言一致,例如你學習的編程語言是C++,那麼編程工具要選Visual C++ 6.0或者C++ Builder 5.0。熟練掌握這種編程工具基本用法,例如:菜單、組件、程序跟蹤調試、編寫Windows程序等。
學習時間:
3個月左右
注意事項:
這個階段側重編程工具的使用,同時進一步熟習編程語言,最後達到能熟練編寫各種基本的Windows程序。
第三步:
掌握“算法與數據結構”這門課程,推薦許卓群的《數據結構》,熟練掌握各種常用的算法與數據結構。
學習時間:
4個月左右
注意事項:
這是一門不可或缺的軟件開發課程,曾經有一本經典計算機專業書籍叫做《數據結構+算法=程序》,這說明了數據結構和算法的重要性。它能幫我們建立良好的程序分析與設計能力。
第四步:
實現一個模擬的小型軟件項目,掌握軟件項目的基本開發過程和方法。
學習時間:
4個月左右
注意事項:
自己完成一個模擬的小型軟件項目,強烈推薦做一個MIS(管理信息系統)軟件,參考用書推“中小型信息管理系統開發實例系列叢書”,人民郵電出版社,它的例子詳實有效, 以它為基礎再加以擴展,就可以做出實用的MIS軟件來。
如何成為一個程序員
要成為這樣的程序員,其實沒那麼難。
在這個答案裡,我想把程序員分為兩個層次:
L1-能根據上級的指示,按照公司的要求和規範開展開發工作的,稱為程序員。
L2-能根據客戶的需求,選擇恰當的技術方案,制定合理的工作計劃,獨自或帶領團隊完成開發工作並達到質量要求,稱為軟件工程師。
我想題主可能想成為的是後者,而不是普通的編碼人員,在我接觸到的程序員中,其實很少有單純從事簡單編碼工作的,他們大多數都是乾的軟件工程師的活。
軟件工程師應該具備哪些能力呢?我們以前歸納過:
1. 分析問題的能力
2. 設計解決方案的能力
3. 編碼實施的能力
4. 排除故障的能力
這四種能力如果要展開來講,要寫好長的,暫時就不寫了。
開始回答——”如何成為“的問題。
科學家追求的是知識,工程師追求的是能力。而能力是很難從書本上的來的,只能從實踐當中來。
我注意到題主的問題中,提到看書靜不下心,看視頻又覺得太慢,可能從一個具體的項目開始更能激發學習興趣並且獲得成就感。
先給第一種路徑建議吧——從C語言開始。
之所以建議C語言,是因為C語言裡沒有那麼多現成的、強大的類庫,在不熟悉基本的語法、面向對象這些概念時C#其實比C語言難以理解,很難深入。學習C語言不僅限於對C語言語法的掌握,而是通過C語言的學習,建立程序設計的思維,比較深入地瞭解一些計算機系統的工作原理。
在我的教學班級中,我的教學內容是這樣組織的,題主似乎也可以按照這種方式來學習:
第一階段高級程序語言的基本概念(編譯、庫、鏈接等),開發工具的使用(Visual Studio 2010), C語言的基本結構以及在VC中的一些差異,動手能力上達到能按照書本輸入一個程序,能編譯,能運行的結果即可。
第二階段變量、指針、表達式、函數、分支、循環、簡單的輸入與輸出。
第一階段和第二階段的時間往往很短。
第三階段開始做第一個小程序(比如最簡單的超市收銀系統),這個時候學生開始頭大,因為很多要用到的東西根本就沒給他們講過,即使網上查得到資料也未必都能用在項目裡。學生被我帶進一個接一個的坑裡,我從不在第一時間告訴他們答案,總要他們冥思苦想抓耳撓腮一個星期了,下週上課的時候才開始講解決的思路和方法。
經過1個月左右的折磨,他們基本可以完成一個單機版的的超市收銀系統,完成比如輸入(從鍵盤,掃描槍就免了)信息、修改輸入、價格查詢、彙總結賬這樣的功能。從知識層面上,結構體、指針、文件訪問這些基本都解決了,順帶著把簡單的查找、排序算法也學了。
可以說這是學生最痛苦的階段,但是正是這個階段開始培養他們的自學能力,這個太重要了。但是效果也很明顯,到後期的時候,少數學生開始先於我提出解決方案了。
然後接著折騰,先帶學生回顧做過的這個程序,看如何能做的更好,運行的更快,Review和重構。
由於是純C完成的,程序總是看上去很混亂,修改、擴充也不是很方便,於是我們開始探索另一種編程思想——面向對象,C++上場,又是1-2個月,用C++重新寫這個程序,在這個過程中,要求他們自己實現String類,封裝數據結構和業務邏輯、數據訪問......
到這裡,一個學期結束了,第二學期要求學生把這個控制檯的黑窗口改成圖形用戶界面。MFC不準用,只准用一個叫做Easy-x的圖形庫,而且只准用其中的putpixel函數來繪製點,一輪新的折磨開始,從畫點、劃線、逐點寫漢字開始,繪製按鈕、繪製文本框、響應鼠標和鍵盤,並且要求他們開始設計和實現TextBox, Button,Image這些類.....,,順便把消息循環之類的機制也做了初步的瞭解和簡單的實現。......