個人在編程學習之路上的一點思考——暨個人對編程語言理解的變化

記得自己第一次接觸計算機編程是在大一的下學期。那是開的第一門專業課——《C++ 程序設計》,教材用的是久負盛名的清華大學出版社出版、譚浩強編著的《C++ 程序設計》。

老師按着書本的章節講,前一半的課講的是面向過程的程序設計,後一半講的是基於對象的程序設計,也大致介紹了多態與虛函數的概念、面向流的概念、面向文件的概念等等。我們是用一個學期的時間上完的,記得老師那時說,清華是上兩個學期的。那時覺得,牛X的學校就是不一樣。因爲剛開始接觸程序設計,以前腦子裏根本沒有那種概念,所以,課剛開始聽的昏昏沉沉的。

當然,這門課也有相應的實驗課,用的軟件是Visual C++ 6.0. 說實話,我第一眼見到它就感覺那界面它很土,很難看,到現在也是!實驗課,一開始的面向過程的題目感覺還可以,後面的基於對象的題目感覺就有點暈了,後面的一些提高題就不用說了,看都看不懂啊!

一晃實驗課就結束了。後來才知道,實驗課一結束,也就意味着大學裏的程序設計課結束了,剩下的就要靠自己去學了。這一學期,也算是對程序設計有個初步的瞭解吧,會用VC 編一些小程序(小的、很小的、沒有多少邏輯性的)。說實話,感覺自己學的不怎麼咋的,不過自己也花了七八分的時間去學習了。

到了第三學期,也就是大二上的時候,有軟件課程實踐課,也就是在學了C++ 的基礎之上,加強鍛鍊程序設計。練習的題目在上一學期的基礎之上,加上一些可視化編程,也就是做些帶窗口界面的程序。記得當時做實驗差不多也就是把前面的部分(面向過程和基於對象的)做了個大概,而後面的帶窗體的就不行了。還記得可視化編程那些題,什麼編一個小型計算器啊等等。不會啊!老師從來沒有講過這種東西,也沒見老師在課上運行例題時有什麼窗體界面出現啊,老師用的也是黑屏的那種啊!怎麼做啊!於是上網翻找,看看裏面代碼,什麼玩意啊,看都看不懂啊!自己按着步驟做,一會兒就出錯了,出錯了沒關係,難就難在連錯誤都看不懂!所以那些題也就沒怎麼看!而且也一直拖到現在,說實話現在讓我用VC(Visual C++ 6.0 簡稱) 寫個窗體也寫不出來!

由於感覺挺難的,所以我的編程之路也就先放了放。在加上那時沒有電腦,想要多實踐也難啊。這一放也就是差不多四五個月。

到了大二下學期,終於自己組裝了臺式電腦,3000 RMB,那時這價格的配置是相當牛逼的,就算放到現在,也很牛逼!還記得我是當時班上第一個買的,後來班上的同學也全帶了,筆記本的就不用說了,臺式的都是按照我的配置買的,哈哈!

因爲買了電腦,我的學習的熱情又被激發了!一下子去圖書館借了很多書,什麼Ubuntu 詳解、 Red Hat 9.0 基礎知識、 C#從入門到精通、 Apache + PHP + MySQL網站開發、 Java 完全面向對象學習等等很多的書。那些書也只是看個大概,沒有多少真正深入的學習。

有一天,也不知道是怎麼想到的,可能是心裏早就這麼想過的吧,思考了下自己在程序設計方面的能力,雖說學過C++ ,但自己也知道自己是個什麼水平:只會編幾個題目,可視化界面都不會,更不用提什麼數據庫編程等等的高級的知識了,就一菜鳥中的菜鳥級別,還是計算機專業的,拿出去丟啊!想到老師也不會再教了,覺得得自己去學了,不然以後畢業了去哪混飯喫,而且一定要學好,要學的牛X!可能就是在那一天,小小的下了一次大的決心:要精通一門編程語言,至少一門。

首先考慮學什麼,硬件不感冒;程序設計,還不錯,學什麼呢?可能是之前對用C++ 編個帶界面的程序尷尬的原因,我沒有選擇繼續學習C++ ,想換一門語言去試試。也許是當時經常聽到周圍的學長或者在網上、圖書館書籍中看到的Java C++ 的優越性(完全面向對象、一次編寫,到處運行、沒有指針等等),我試着去接觸Java ,去圖書館借了幾本書,網上下了尚學堂——馬士兵的J2SE 視頻教程,慢慢的開始學習起 Java .

因爲個人覺得學習先看視頻、再仔細看書比一開始就往書堆裏扎的效果要好,於是我就先看視頻。看了一段時間,覺得講的挺好的,也都能理解,當然有一部分原因是因爲我學過C++ ,有編程的概念以及面向對象對象的基礎。慢慢的,我發現我越來越喜歡馬老師的講課的風格:首先他講課先講學習的方法、爲什麼而學、該怎麼學習、怎麼學好。這點對我的以後的學習有很大的影響,改變了我學習的方法,應該一生受用。其次是他講課時一步一步引導學生思考的授課方法讓我很喜歡。尤其是在面向對象的學習中讓我收穫頗多,因爲自己覺得在——C++ 程序設計的課上根本就好像沒有學到面向對象的知識,什麼多態、封裝、虛函數都沒學好。於是又下載了他的Java 高級視頻: J2SE 項目訓練、 JDBC編程、 Html&CSS&JavaScript Java Web<Tomcat JSP Servlet Struts Springs Hibernate> 等等,當然很大一部分原因是我自己越學越有興趣、越自信啊!後來我也用 JSP 寫了一個小型聊天室。隨着不斷的深入學習,發現自己也慢慢的對 Java 情有獨鍾。

學了一段時間,感覺自己Java 學的不錯。有時就感覺自己與 Java 有着很密切的關係。比如:聽到別人在討論 Java C++ 的優缺點或 Java C++ 怎麼優越時,恨不得告訴別人自己是學Java 的,而且學得也不懶。有時上網看到編程排行榜時,看到Java 佔據第一的位置,心裏就感覺很自豪,而看到Java 的比率下跌,心裏就有點落空的感覺,好像Java 語言就是自己開發似的。 當然這種心態後來慢慢地就沒了,也許是自己瞭解的更多了。我的那種偏愛Java 、甚至有些鄙視 C++ 的心態沒有一直持續,因爲經常逛 CSDN ,看一些文章、自己瞭解的更多了,對那些語言的認識也不再那麼膚淺。

現在回過頭來想想,當時學習C++ 感覺很難,其實並不難,當然其中有些知識點確實有點難: 比如指針操作很麻煩,容易帶來錯誤。那時感覺難,其實只是剛剛接觸編程,沒有那種邏輯思維,對代碼不敏感,沒有多看看、多熟悉!

另一點也是後來才明白的,在編寫帶窗口的程序時,總覺得不知所錯,《C++ 程序設計》書上也沒有講過啊,也沒見寫一段程序就出來一個窗口啊,難道C++ 還沒有學好?後來才知道其實 VC C++ 是兩碼事, C++ 是一門語言,一門講解程序設計的語言;而VC 是一個開發工具,一個開發 C++ 程序的工具,它是 Microsoft的產品。直到後來才明白要學好 C++ ,能熟練運用 C++ 編程,不僅要很好的掌握C++ 程序設計,而且還要掌握 VC這個IDE ,熟悉 MFC類庫,這樣才能算是一名合格的 C++ 程序員。

 

以前一直以爲Java 有多麼的好,其實真有那麼好嗎?

Java 的解釋執行的速度難道有 C++ 的編譯的快嗎?沒有!

VC++ 編寫一個殺毒軟件, Java 能嗎?不能!

C++ 編一個大型網遊, Java 能嗎?不能!

C 能寫一個操作 Unix 系統, Java能嗎?不能!

所以任何一種語言都有其優勢,哪種語言也替代不了其它語言!

最近在CSDN 上經常看到發表一篇關於什麼開發平臺升級的文章後,下面跟帖的就分成兩個陣營在那吵:一個說什麼垃圾,一個說什麼怎麼好。其實那些都是非常片面的想法,編程語言沒有優劣之分,任何一種編程語言都是隨着需求而產生的,在前一種語言的基礎之上進行改進提升。比如因爲需要面向對象所以在C 的基礎之上產生了 C++ 、因爲網絡應用發展所以在 C++的基礎之上產生了 Java ,隨後又在 Java 的基礎之上產生了C# ,每一種都有其優勢及應用領域,都無可替代的!經常看到學 Java 的和學 C# 在那叫囂,他們也不想一想,如果沒有Java, 會有今天的 C# 嗎?可能今天還是有很多人在叫 C++中的指針怎麼這麼不安全啊!有誰開發一種新的語言啊,把指針給簡化一下啊!沒有 Java 會有今天網絡應用的輝煌嗎?

所以我對Java的心態,也慢慢平和了。因爲任何一種語言,曾經都創造了奇蹟,哪怕N 年以後可能會慢慢的消失於人們的視野。

當然我也不再死扎於Java ,開始接觸或是深入學習其他語言。之前很欣賞這樣的一句話:高手不在於熟悉多種編程語言,而在於精通一種編程語言。後來自己想明白了這樣的一句話:真正的程序員不在於用他所精通的一門編程語言解決所有的問題,而是對於不同的問題,能給出最佳的解決方案,而不在於何種語言!

這就是我的編程之路上的一些思考,寫下來與大家一起分享!共同進步!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章