程式設計師該如何學習程式知識

  大家都知道,象牙成為一名合格的程式設計師必須學習大量的程式知識,還要學會英語,那麼程式設計師可以如何學習這些程式設計知識呢?下面是由小編整理的程式設計師的學習程式知識的方法,希望對您有用。

  程式設計師的學習程式知識的方法一

  1. 紮實的基礎。資料結構、離散數學、編譯原理,這些是所有電腦科學的基礎,如果不掌握他們,很難寫出高水平的程式。據我的觀察,學計算機專業的人比學其他專業的人更能寫出高質量的軟體。程式人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學OOP,即使你再精通OOP,遇到一些基本演算法的時候可能也會束手無策。

  2. 豐富的想象力。不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想象力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等等。另外,多看科幻電影也是一個很好的途徑。

  3. 最簡單的是最好的。這也許是所有科學都遵循的一條準則,如此複雜的質能互換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮複雜的方案。

  4. 不鑽牛角尖。當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當我遇到難題的時候會去玩遊戲,而且是那種極暴力的打鬥類遊戲,當負責遊戲的那部分大腦細胞極度亢奮的時候,負責程式設計的那部分大腦細胞就得到了充分的休息。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解。

  5. 對答案的渴求。人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。

  6. 多與別人交流。三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會給你很大的啟發。

  7. 良好的程式設計風格。注意養成良好的習慣,程式碼的縮排編排,變數的命名規則要始終保持一致。大家都知道如何排除程式碼中錯誤,卻往往忽視了對註釋的排錯。註釋是程式的一個重要組成部分,它可以使你的程式碼更容易理解,而如果程式碼已經清楚地表達了你的思想,就不必再加註釋了,如果註釋和程式碼不一致,那就更加糟糕。

  8. 韌性和毅力。這也許是"高手"和一般程式設計師最大的區別。A good programming is 99% sweat and 1% coffee。高手們並不是天才,他們是在無數個日日夜夜中磨練出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。

  程式設計師的學習程式知識的方法二

  IT技術的發展日新月異,新技術層出不窮,具有良好的學習能力,能及時獲取新知識、隨時補充和豐富自己,已成為程式設計師職業發展的核心競爭力。本文中,作者結合多年的學習經驗總結出了提高程式設計師學習能力的三個要點。

  眾所周知,現在是一個知識爆炸的時代,知識更新非常快。據測算,一個大學畢業生所學到的知識,在畢業之後2年內,有效的不過剩下5%。對於軟體行業而言,這種形勢更為明顯,我們賴以立足的,不在於我們現在掌握了多少知識,而是我們有多強的學習能力。

  學習人人都會,但不同的人學習效果卻千差萬別。一個善於學習的人,首先應該是一個善於讀書的人,懂得如何高效地學習,並且擁有良好的心態。唯有如此,才能成為一個卓有成效的學習者,成就卓越的程式人生。

  要善於讀書

  買書是最划算的投資

  古人云:“書中自有黃金屋,書中自有顏如玉。”這說明先賢們早認識到,買書是最划算的投資。

  我剛出道時,拿著非常微薄的工資。有一次向主管抱怨道:“現在的書真貴啊,這點工資連飯都吃不起,更別說買書了!”主管對我說:“不要吝惜買書的錢,寧可忍著不吃飯,也不要忍著不買書,因為買書是回報率最高的投資。”

  主管的話讓我非常震動。後來,我看到喜歡的書時,再也沒有手軟過。通過不斷學習,我的開發能力不斷提高,工資水平也大幅提高。一年後,我一個月工資的漲幅,就足夠買兩年的書了。你說,還有比這更划算的投資嗎?

  一本書,哪怕只有一頁紙是有用的,它所將產生的潛在價值,也會遠遠超過書本身的價格。當然,書不在多,踏踏實實消化掉一本好書,比泛泛而讀10本普通書,要有價值得多。

  多讀經典書

  現在市面上給程式設計師讀的書種類非常豐富。人生有涯,我們只能有選擇性地看,要多看好書、多看經典書。

  軟體開發方面的圖書大致分為三類。

  1. 淺顯的入門類圖書。這類書的標題往往是《XX天精通XXX》、《XXX從入門到精通》、《XX開發實戰》等,通常從軟體的安裝講起。有人批評這類書為爛 書、毫無價值,這並不公平。至少我曾經從這些書中學到了一些東西。即使是21天系列書,也有適合看的人群。只不過,它一般也就只能看21天而已,過後就可 以扔到廢紙堆。這類書只適於還沒有入門的初學者,從中學到一些入門招式。在剛起步時一般買一本就夠了。如果你善於使用搜索引擎,那幾乎沒有買這類書的必 要。

  2. 國內外高手寫的實戰類圖書。這類書實戰性很強,將技術及原理講得很透徹。比如《Windows環境下32位組合語言程式設計》、《深入解析MFC》、 《Delphi深度探索》、《深入淺出WPF》、《深入剖析ASP .NET元件設計》等。以前這類書都是從國外翻譯或從臺灣引進的,現在國內高手越來越多,出自國內作者的圖書也越來越多。如果能在學習的每個方向看兩三本 這類圖書,並通過實踐消化掉,那麼毫無疑問,你會成為一名優秀的程式設計師。

  3. 國外大牛寫的揭露本質、有豐富思想的書。這類書就是所謂的經典書,例如《程式碼大全》、《程式設計珠璣》、《設計模式》、《重構》、《程式碼整潔之道》等。經典書 就像一個有深度、有思想的朋友,能給你啟發,每次閱讀都會有新的收穫,這類書具有真正的收藏價值。看經典書永遠是正確的選擇,它絕不會浪費你的時間,因為 經典書是無數人沙裡淘金、幫你挑選出的結果。

  然而,閱讀這類書並不是一件容易的事情。讀者需要有豐富的開發經驗,才能與作者產生共鳴。如果一本經典書你看得很辛苦,那麼很有可能是因為你功力未夠,這種情況下不要著急,慢點來,不妨先將其束之高閣,多看看實戰類圖書。過一段時間再回頭來看,也許你會有新的驚喜。

  程式設計師的學習程式知識的方法三

  我始終認為,對一個初學者來說,IT 界的技術風潮是不可以追趕的,而且也沒有能力去追趕。我時常看見自己的DDMM 們把課本扔了,去賣些價格不菲的諸如C#, VB.Net 這樣的大部頭,這讓我感到非常痛心。而許多搞不清指標是咋回事的BBS 站友眉飛色舞的討論C# 裡面可以不用指標等等則讓我覺得好笑。C# 就象當年的ASP 一樣,“忽如一夜春風來,千樹萬樹梨花開”,結果許多學校的資訊學院成了“Web 學院”96,97 級的不少大學生都去做Web 了。當然我沒有任何歧視某一行業的意識。我只是覺得如果他們把追趕這些時髦技術的時間多花一點在基礎的課程上應該是可以走得更遠的.

  幾個誤區

  初學者對C# 風潮的追趕其實也只是學習過程中經常遇到的幾個誤區之一。我將用一些實際的例子來說明這些現象,你可以按部就班的看看自己是不是屬於其中的一種或者幾種:

  1. 認為計算機技術等於程式設計技術:

  有些人即使沒有這個想法,在潛意識中也有這樣的衝動。讓我奇怪的是,許多資訊學院的學生也有這樣的念頭。認為計算機專業就是程式設計專業,與程式設計無關的,或者不太相關的課程他統統都不管,極端的學生只要書上沒帶“程式設計”兩個字他就不看。

  其實程式設計只是計算機技術應用過程中一種複雜性最低的勞動,這就是為什麼IT 業最底層的人是程式設計師***CODER ***。計算機技術包括了多媒體,計算機網路,人工智慧,模式識別,管理資訊系統等等這些方面。程式設計工作只是在這些具體技術在理論研究或者工程實踐的過程中表達演算法的過程。程式設計的人不一定對計算機技術的瞭解就一定很高。而一個有趣的現象是,不少大師級的計算機技術研究者是不懂程式設計的。網上的炒作和現實中良好的工作待遇把程式設計這種勞動神祕化了。其實每一個程式設計師心裡都明白,自己這些東西,學的時候並不比其它專業難,所以自然也不會高檔到哪裡去。

  2. 咬文嚼字的孔已己作風:

  我見過一本女生的《計算機網路原理》教材,這個女生像封學生一樣在書上劃滿了橫槓槓,筆記做得滿滿的,打印出來一定比教材還厚。我不明白的是,像計算機網路原理這樣的課程有必要做筆記?我們的應試教育的確害了不少學生,在上《原理》這一類課程的時候許多學生像學《馬列原理》一樣逐字背誦記憶。這乃是我見過的最愚蠢的行為。所謂《原理》,即是需要掌握它為什麼這樣做,學習why ,而不是how ***怎樣做***。極端認真的學生背下乙太網的網線最大長度,資料幀的長度,每個欄位的意義,IP報頭的格式等等,但是忘了路由的原則,忘了TCP/IP 協議設計的宗旨。總之許多人花了大量的時間把書背得滾瓜爛熟卻等於什麼也沒學。

  在學習程式設計的時候這些學生也是這樣,他們確切的記得C++ 語法的各個細節。看完了C++ 教程後看《Thinkingin C++ 》***確實是好書***,《Inside C++ 》,《C++ reference 》,this C++, that C++……,然後是網上各種各樣的關於C++ 語法的奇聞逸事,然後發現自己又忘了C++ 的一些語法,最後回頭繼續惡補…。有個師弟就跟我說:“C++ 太難了,學了這裡忘了那裡,學了繼承忘了模板。” 我的回答道:“你不去學就容易了”。我並沒有教壞他,只是告訴他,死摳C++ 的語法就和孔已己炫耀茴香豆的茴字有幾種寫法一樣毫無意義。你根本不需要對的C++ 語法太關心,動手程式設計就是了,有不記得的地方一查MSDN 就立馬搞定。我有個結論就是,實際的開發過程中對程式語法的瞭解是最微不足道的瞄識。這是為什麼我在為同學用

  Basic ***我以前從沒有學過它***寫一個封程式的時候,只花了半個封時看語法,然後再用半個封時完成了程式,而一個封時後我又完全忘記了Basic 的所有關鍵字。

  3. 不顧基礎,盲目追趕時髦技術:

  終於點到題目上來了。大多數的人都希望自己的東西能夠馬上跑起來,變成錢。這種想法對一個已經進入職業領域的程式設計師或者專案經理來說是合理的,而且IT 技術進步是如此的快,不跟進就是失業。但是對於初學者來說***尤其是時間充裕的大中專在校生***,這種想法是另人費解的。一個並未進入到行業競爭中來的初學者最大的資本便是他有足夠的時間沉下心來學習基礎性的東西,學習why 而不是how 。時髦的技術往往容易掌握,而且越來越容易掌握,這是商業利益的驅使,為了最大化的降低軟體開發的成本。但在IT 領域內的現實就是這樣,越容易掌握的東西,學習的人越多,而且淘汰得越快。每一次新的技術出來,都有許多初學者跟進,這些初學者由於缺乏必要的基礎而使得自己在跟進的過程中花費大量的時間,而等他學會了,這種技術也快淘汰了。基礎的課程,比方資料結構,作業系統原理等等雖然不能讓你立馬就實現一個linux ***這是許多人嘲笑理論課程無用的原因***,但它們能夠顯著的減少你在學習新技術時學習曲線的坡度。而且對於許多關鍵的技術***比方Win32 SDK 程式的設計,DDK 的程式設計***來說甚至是不可或缺的。