你當前所在位置:首頁 > IT技術探討 > 昨晚做了一個夢,我學過的那些語言和技術都來找我了

昨晚做了一個夢,我學過的那些語言和技術都來找我了

昨晚做了一個夢,我學過的那些語言和技術都來找我了,爭吵不休。


C語言:老劉你肯定記得我,我是你的“初戀”語言,在大學里用指針把你蹂躪得痛不欲生。


我:當然,我自以為學會了,可是工作后看到林銳寫的《高質量 C++/C 編程指南 》,里邊有一套試題,做過以后才知道我對指針的理解還是一塌糊涂。


C語言:哈哈,你那時候還不知道我的主要用途是系統級編程,像操作系統,數據庫,虛擬機,編譯器,Web服務器都是用C語言寫的,總是覺得只能在命令行窗口折騰呢。


我:可不是,所以我“急功近利”地學了幾個能快速創建GUI應用的語言,也是為了做點兒項目賺外快,包括VB、Visual FoxPro,還有PowerBuilder,在上面可是花了不少精力, 現在呢, 除了VB變成了VB.NET, 另外兩個早已不見蹤影,可惜啊。


Linux :還有我,你那時候學了Linux的基本操作和Shell編程,我一直很納悶,你怎么不把vi 給好好練練呢,你看看你現在用起來還是那么笨拙,一點兒都不絲滑流暢。


我:唉,我那時候熱愛GUI啊,再說了vi的命令太變態了。


C語言:現在你明白了吧, 沒有GUI的東西生命力更長久啊!


我:是啊,時間證明了一切,C和Linux太重要,我后來才意識到你們的好處,能讓我對系統級的東西有更深的理解,對學習OS,網絡編程都有極大的幫助。《深入理解計算機系統》這本神書,通篇用C和匯編來描述, 操作系統的源碼,Ngnix源碼, Redis源碼, 都是C語言, 幾乎都跑著Linux之上。


C++ :老劉,難道我就不重要了?我剛看了下你放在雜物間最下層的C++書,有侯捷的《深入淺出MFC》,潘愛民的《COM原理與應用》, 《Inside MFC》,《COM技術內幕》,《COM本質論》。還有C++的經典書《C++ Primer》,《深入探索C++對象模型》,《Effective C++》等, 你有10年沒有搭理過他們了吧,真是讓人心痛啊。


我:抱歉抱歉,C++老大,我確實是學不會,你看看這幅漫畫就會理解我的心情了。


《21天自學C++》

21天自學C++


數據結構:哈哈哈,太形象了,老劉,我還記得你當時為了考高程,用C語言把書上的習題都做了一遍,感覺如何啊?


我:非常酸爽!估計和現在大家刷LeetCode的感覺差不多吧!不過真是受益匪淺啊,雖然工作中設計數據結構的機會極少,但是確實培養了邏輯思維能力,必須得感謝你啊。


ASP :老劉老劉,可別忘了我, 我是帶著你入門做動態網頁的, 你還記得用我做了哪些網站不?


我:當然記得,我那時候抱微軟的大腿啊!用ASP來寫動態的Web界面,用COM組件來實現業務邏輯,這事兒我干過不少,我花了很多時間學習COM,不信你看看雜物間最下層的書。唉,當時的ASP連MVC都沒有,頁面之間的跳轉鏈接都寫在頁面中,幸虧業務不復雜,要不然這意大利面條式的代碼怎么讀啊!


ASP:那都是過去時了,微軟推出.NET戰略以后,我們現在都升級為.NET了,MVC不在話下,可是你怎么狠心拋棄了我們,跑著向Java大獻殷勤去了?


我:這個....


Java :這有什么奇怪的,向我獻殷勤的又不止老劉一個,開放的Java是大勢所趨,封閉的.NET是比不上的。我那時候多火啊,Applet, JSP, Servlet , Tomcat, Struts,老劉一直悶著頭學,對了還有人氣爆棚的EJB, 老劉你說說,你花了多少時間在EJB上?


我:唉,每個晚上的時間都用來學習了,Session Bean , Entity Bean , JBoss, WebLogic......  《精通EJB》,現在回頭看,真是浪費時間啊,這些東西也就Servlet和Tomcat還活著,其他的幾乎沒人用了!


Java:話不能這么說,你處于那個時代,就得學習那個時代的東西,你不學,連工作都找不到。


Ruby : 是啊是啊,我火爆那幾年,你不是也抱著兩本書狂啃嗎?《Programming Ruby》,《Agile Web Development with Rails》, 你還用RoR開發過小項目呢,現在怎么不搭理我了?


我:這就冤枉我了,Ruby的語法我可是非常喜歡啊,我現在電腦里還安裝著Ruby呢!


Ruby:  騙誰呢?!你不光安裝著Ruby ,還安裝著Java, Python,Rust, 還有ErLang這種沒人用的語言,我看你昨天還用Python寫了個小程序,幫你老婆處理Excel , 你怎么不用我來寫呢?


我:這個......


Java : 還是我Java生態更加豐富,老劉你學了Struts,Hibernate以后,是不是看了一本叫做《J2EE Development without EJB》,開始轉向Spring? 還研究過Spring早期的源碼?


我:沒錯沒錯,我記得很清楚,大熱天的,沒有空調,我滿頭大汗,一行行地調試Spring源碼,在筆記本上畫圖記錄,真是行行皆辛苦啊 !Spring 發展了這么多年,一直挺立在時代潮頭,對Spring的投資沒有白費,很值!


模式:讓開讓開,什么COM, EJB, Ruby , JBoss, 你們太容易過時了 ! 信模式者得永生 !老劉你說說你花了多少時間在模式上?


我:嗯,還真不少,四人幫的《設計模式》讀了一遍,感覺迷迷糊糊,只記住了面向接口編程而不是面向實現編程, 發現變化并且封裝變化。還看了一本《Java與模式》,只記住了擊鼓傳花的責任鏈。真正對設計模式有深刻認識,還是閱讀了Jive的論壇源碼(里邊簡直是設計模式大寶庫)之后,開始理解模式的妙處,然后正好在一個類似的項目中使用,這才有所體會。


模式:《企業應用架構模式》,《Head First設計模式》,《重構與模式》你難道忘了嗎?


我:怎么可能忘記?還有《敏捷軟件開發:原則,模式與實踐》這都是我當年的最愛啊,不過時間長了我就發現,這些都是面向對象的設計,本質上對程序員的要求是“抽象的能力”, 這是軟件開發的內功啊,掌握了它才能無招勝有招啊。現在很多人都去追求高并發、大流量的系統設計和開發,但實際上,大部分時間還是在做面向業務的開發,OOD和抽象能力是非常重要的。


模式:沒錯,高并發、大流量的系統有時候還有章可循,但是把業務需求做出良好的抽象,就太考驗人了。


分布式系統:這么說就是太瞧不起我們分布式系統了,老劉雖然主要做企業應用開發,但是花在我們身上的時間一點也不少啊,什么負載均衡,數據復制,BASE,CAP,數據分片......  哪一項都很厲害啊!


我:同意,這些都是內功啊!


操作系統:不不不,老劉,你不能這么說,軟件開發的內功是我們這些計算機基礎知識啊,我,計算機網絡,數據庫,編譯原理,組成原理,上大學的時候你沒好好學,畢業了才去惡補,你想想你在我們身上投入了多少時間?


我:哈哈,我的老底都被你拆穿了,沒錯,萬丈高樓平地起,你們幾位是基石啊。畢業后看了不少書,像《深入理解計算機系統》,《現代操作系統》,《操作系統:設計與實現》,《計算機網絡》,《數據庫系統實現》,《編譯原理》,說實話,如果不和實踐結合,干巴巴的理論學起來挺無趣的,所以我要寫碼農翻身公眾號,用有趣的故事講解計算機基礎知識。 


操作系統:不過現在娛樂化嚴重,碎片化嚴重,真正想沉下心來看大部頭,學習基礎的人少了。


我:是啊,除非他切實感受到了基礎知識的重要性。我現在很后悔那些浪費的大學時光, 如果再讓我回到大學時代,我一定通過實踐去學習,自己去折騰個小的OS,簡單的數據庫,簡單的語言,Web服務器, 虛擬機。 我要在自己的操作系統上,運行自己的虛擬機,跑著自己的語言......


想到這里,我不由地笑醒了......


回想一下自己十多年花大精力學習過的技術,很多都已經隨著時代的發展煙消云散了,剩下的都是長久不變的東西,主要包括:


C語言


Linux


OOD和抽象


網絡和Web編程基礎


分布式的基礎知識


計算機基礎知識


————————————————


文章來源:CSDN「碼農翻身」

原文鏈接:https://blog.csdn.net/coderising/java/article/details/105062155

課程預約

极速1分彩_Welcome