我的編程之路__編程

來源:互聯網
上載者:User

 

突然想記錄一下自己的編程經曆,邊走邊思考…我一直認為要想成為一名卓越的程式員,必須具有編程天賦。當然先天條件不具備,通過後天的努力,仍然可以成為一名優秀的程式員。而像我這樣上大學前連電腦見都沒見過的人來說,壓根就沒想日後會成為一個程式員。大學雖然有C語言和8086組合語言課程,但是對於我來說,它們的存在對我來說只是多了兩個名詞而已。

本科畢業後,參加工作與編程更是毫無關係。直到決定考研,其中複試時有一門課程是8051組合語言,課時我連8051都沒有聽說過,哎。還好終於再次踏進了校園。我想經曆過工作的人應該會更加重視學習,特別是學習什麼。此刻我毅然的選擇了嵌入式軟體方向。此後便是日日夜夜的學習C語言,ARM組合語言,也是在這個時候,我發現一本好書真的可以把一個人帶入一個新的世界,一個程式世界。K&R的The C Programming Language讓我真正的知道了什麼才是C語言。而ARM的各種晶片手冊,程式員參考手冊和應用筆記,讓我瞭解了組合語言的世界。如果理解組合語言,你可以明白代碼是如何啟動並執行,從而編寫出效率更高的代碼。

學習哪種語言比怎麼學習更加關鍵,一步走錯,滿盤皆輸。之後我又學習了C++程式設計語言,C++大而雜,需要閱讀大量的書籍。更為關鍵的是編程思想的轉變,由C語言的面向過程變成物件導向。注意這裡並不是說面向過程是一種落後的編程思想,而是說你又多了一種武功,至於修鍊物件導向這門武功,則是一個長時間的摸索過程、如果經過實戰的磨練,或者你的運氣足夠好,能夠得到一位富有耐心和愛心的高手的指導,那再好不過了。

工作後,由於某種原因,不得不再學習一種語言,Java or C#。最後選擇一種更適合項目的C#。其實這兩種語言和其它各種語言一樣,它們都有自己存在的理由。我們只需要根據自己的愛好,但更多的時候是根據項目的需要,選擇一種語言掌握它就足夠了。

細細琢磨自己學習的這些語言,做個評論吧。

C語言,每個程式員都應該學習它,當前主流語言或多或少都和它具有某種聯絡,因此好好的研究一下它吧。推薦The C Programming Language和C缺陷與陷阱,如果有精力再閱讀一下C標準吧。

組合語言,學習它們可以讓你明白語言關鍵字背後的秘密。

C++語言,太複雜了,功底不深的話不要輕易學習它。

Java語言,略知一二,不敢妄加評論。

C#語言,Windows平台編程的理想選擇,當然底層編程還需要C和C++。

後記:

趕快放棄MFC,轉向.NET架構吧。現在很多人動不動說學習VC,從語氣上感覺就好像學習了VC就多牛一樣,我當初也學習過VC6,現在想想,走了很多彎路,浪費了很多時間和精力,最後得不償失。其實首先要弄清楚自己要學習什麼東西。C++語言,MFC類庫,還是Visual C++ IDE。很明顯Visual C++ IDE基本上不需要學習,學習VC的人其實大部分時間都浪費在學習MFC上面,而MFC類庫作為一種設計糟糕的類庫,學習成本及其昂貴,我們實在是很難從中學習到什麼有價值的東西。我們恰恰忽略了最應該學習的東西,C++語言本身,當然學習它的難度也很大,但是值得。

學習一門語言就要學習它的精華。C語言的簡練和強悍,C#/Java語言的優美和強大,它們各有自己的特點。如果是編寫嵌入式軟體或者底層操作,那麼請使用C語言吧。不過你仍然可以學習一下C#/Java語言,因為通過學習它們,你可以學習設計模式,乃至架構的知識,而這對於程式員的發展是至關重要的。

前幾天,突然發現搜狗拼音IME添加了英文智能感知功能,不錯,不錯。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.