|
錯誤認識1. C/C++太老了,過時了,平時用得很少,現在流行都Java、C#等等。
解惑:不要動不動覺得什么東西過時了,COBOL還有OO版本面世,還有FORTRAN,LISP,好古老的語言吧,現在還用得很廣呢。楊中科老師經常提醒我們“一切語言都是紙老虎,一通百通”,學校已經開了 C/C++的課,并且想繼續深入學習編程,那么就繼續使用學過的語言來學習,不要再去學一門新的語言。等把C/C++弄熟了以后,回頭一看,相信你也能像楊中科老師那樣“半天學會一門新語言”了吧。
錯誤認識2.入門要從OO開始,培養用OO方式思考的習慣。
解惑:初學者一入門便擺弄Java、C++等很容易形成誤解,似乎OO=Java, C++...。一切編程語言的根本都是面向過程的,Java、C++等語言也是支持面向對象特性的面向過程的語言。面向過程就是if……else……、while、for這些東西,Java、C++等語言中難道就沒有這些語句了嗎?
過程式語言(或者說結構化方法)的精髓不會消亡,OO里面也不可能擺脫掉一條條的語句、函數調用,結構化方法還是需要提倡的。OO方法不是那么容易學會的(OO語言的語法弄得很熟練不代表你懂OO),而結構化那套方法,自個寫個千把行的程序就很能體會了,我是說寫個實用點的東西,比如試著自個實現一些數據結構和算法,寫幾個小游戲等。寫個一千行Hello world等于沒寫。
我覺得方法是實踐中體會出來的,不是看看書就能學會的。過程式語言的代碼一般比較簡練,我們編程序最終的目的是要解決問題,是要計算,是要獲取信息,不要被OO, 設計模式等迷糊了。
錯誤認識3.過程式語言弄久了,很難轉入OO的思維模式
解惑:我以前也沒有深想過這個理由,不過時間久了,發覺自己不過是把數據和方法集中在一起而已,看著方便,其實有很多不合理的東西,這里頭就需要OO的理論指導了,還是需要時間來體會。我相信有很多用OO語言的人也不過是在框架里頭添添代碼,調用來調用去而已,把人類當作數據和操作的打包器。
個人覺得只有在用過程式方法做了十來年,編碼上十萬行后才有思維定勢,難以習慣用OO的眼光看待系統,然而這個轉變,我仍覺得比改變一個人的惡習容易許多。OO方法不是學了個Java,C++等就能掌握的,需要實踐,需要時間。過程式語言也容易培養一個人嚴謹的做事態度,比如用匯編, C等寫代碼,沒有命名空間、沒有一大堆類庫,沒有模板、沒有異常, 你要花很多心思處理一些細節,比如警惕數組索引越界、懸掛指針、野指針等等,請不要覺得麻煩,這個就是計算機啊,底層就是這樣的啊。
錯誤認識4.別用C了,看我用Java、 VC等輕輕松松就寫了個漂亮的圖形界面
這篇文章是給初學者看的,也可以給一些浮躁的人看看,初學編程的人精力應該放在數據結構、算法上面,盡量多看一些底層的東西,數字邏輯,操作系統,編譯原理,計算機組成、體系結構,計算機網絡等等基礎知識。編寫GUI拖幾個控件有什么好吹的,既然你會拖幾個控件那么一個初中都沒畢業的也會拖控件,你和他的差異性體現在哪里?你知道窗口消息怎么回事么,你編的界面是把易用放在第一位呢還是把漂亮放在第一位呢,你的GUI程序容易修改嗎?比如我一會要加個button,一會去個listbox,你會不會改的瘋掉呢?你是不是在OnClick里頭寫了大段大段的代碼,做類似“從edit1.text中去掉不是數字的字符,搜索xxx再轉成16進制,再復制到edit2.text”的事?
學習還是找紙版的書老實的看比較好,想想你積攢了多少電子書而又看了多少。
底層不了解,僅多也就飄在別人上頭,別人一閃身,你就得摔下來。
初學編程的人一來就IDE, GUI, Network啥的猛搞,能不浮躁么?還是沉下心來研究一下基礎知識吧,我以腦袋擔保你有生之年會覺得他們有用的(呵呵,你轉行我就沒轍了),別看著別人弄JFC, Socket了你還在頭大這個quick sort怎么就不對呢就心里惶惶的,你要知道在一批API不被支持后不少人心里空空的沒個著落:天啊,我除了那個就啥都不會了,郁悶啊,花了我那么久時間鉆研那套API,嗚嗚。。。。
錯誤認識5. C好難啊,我入門還是從Java,C#開始吧
解惑:語言只是表達思想的工具,不要只局限于一種語言,不要狂熱于某一門語言。記住楊中科老師說那句話“價值規律就是——越是容易得到的越不值錢”。
|
評分
-
查看全部評分
|