學習語言的感悟

過去的一年裏學習了c++和python兩門編程語言,自己也學習了一點點html和css相關的語言。python和c++主要都是課堂上去學習的,自己的預習,聽老師對難點的講解,以及自己課下的練習相結合。三種類型的語言可以說c++主要在老師的帶領下學習,python自學和上課學習大概一半一半,而html則是自學,其中的感悟和體會有諸多不同。
主要靠課堂學習的c++學習的相對系統,帶着剛入門的懵懂和些許的不解來課堂汲取所需的知識,主要的問題基本上都能在課堂上解決,剩下的就是課下自己的作業練習,去學會找出bug,對自己的代碼一點點改進,去做一個小小的練習項目,是一種逐步深入一點點進步的感覺,這種自學習到實踐的過程和從實踐中學習的反饋讓c++母語的學習比較紮實一些,這種學習方法打下了良好的基礎,但是也有一點點問題就是這種學習的速度很慢,很依賴老師的進度,缺乏自發的學習動力和進步性。
課堂和自學同步進行的python則有了許多不同。首先python的學習建立在已經學過c++的基礎上,基礎語法的學習速度很快,但是由於python的涉及範圍很廣,幾乎所有的應用都稍有涉獵,但又因爲課時的問題使得課堂上並不能較爲細緻和系統的去學習,所以一半還依賴自學。這種方式爲上課老師將所需要掌握的東西粗略的介紹而更多的細節是自己課下去學習記憶練習。由於老師講解的內容和書上的內容並不完全一致導致一些問題的出現,例如一些老師展開講的東西書上並沒有,自學和老師的講解略微脫節。自學中很多是在練習和作業中學習,也就是自上而下的學習。學的很多都是作業中需要的但並不系統,這種方式使得學會了許多課外的庫類用法但是對基礎的類庫使用並不紮實,可以說是走了許多彎路的一次學習體驗。
html和css則是完全自學的,雖然是很簡單的入門學習,但是自學和老師完全不同。所有學習的內容和方向全部是由自己去摸索的,一點點學習記憶基本知識,靠着一些練習來學習應用,去找各種別人的代碼去臨摹,去學習別人如何使用這類代碼,別人如何去巧妙的佈局和設計開發。這種學習的好處在於可以鍛鍊自己的學習能力,而且學習內容和時間完全由自己分配,不會由於和老師進度不統一出現各種奇怪的狀況;並且自己學習掌握一些知識,去完成一些任務是很有成就感的事情,很能激發人的熱情。當然也有一些缺點,比如完全自學就會失去監督,在其餘必修任務緊張時就會容易被戰略性放棄,導致進度時快時慢,容易不牢固需要頻繁回頭看以前學過的東西讓自己找回熟悉的感覺。並且遺憾的是由於種種原因我還暫時中斷了前端的學習,但這個學期也會在空閒之餘重新撿起來的。
我對Java的接觸也纔剛剛開始,理解並不深刻但也略有一點。首先Java虛擬機是一種非常智慧的解決問題的方法,其讓java擁有了良好的跨平臺性能,這可以說是一種很大的飛躍,也是Java如此流行的重要原因之一。在這一點上python也有所對比,python同樣是擁有跨平臺能力的語言,但其跨平臺的原理和方法則與Java不同,並且擁有諸多限制,雖然Java跨平臺也並不徹底,但其性能遠超python。並且Java更適合大型項目的開發,這使得python暫時無法撼動Java的絕對優勢地位。但是這樣對比一下也能發現,同樣是面向對象的編程語言,Java面向對象更爲細緻規範,而python則簡單粗暴,兩者的特性決定了Java性能更好更安全但python的代碼更爲簡短,對比來看可以說各有優勢吧。從類庫的角度來看,c++的類庫較少,python較多而Java則更多,Java良好的生態環境,大量方便的類庫和框架使得Java的地位更爲穩固,無數大型項目都由Java編寫。從代碼風格,c,c++,和Java的風格比較相像,都由比較嚴格的定義和想多繁瑣的格式,這使得他們更加快速而安全,但對比c來看,Java並沒有c的硬件效率高,也沒有c的安全性能強,所以應用起來c更偏向硬件低層優化而Java更偏向於企業項目應用。以上是對Java接觸不久的一些小感觸,一些不深刻的地方和一些謬誤的地方還有待改正,在以後學習更多之後再回頭看應該會有更深的體悟。

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