曾經廢寢忘食學到的技術,現在都沒用瞭……

曾經廢寢忘食學到的技術,現在都沒用瞭......

作者 | 劉欣

來源 | 碼農翻身(ID:coderising)

頭圖 | CSDN下載自視覺中國

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

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++》

曾經廢寢忘食學到的技術,現在都沒用瞭......

數據結構:哈哈哈,太形象瞭,老劉,我還記得你當時為瞭考高程,用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編程基礎

  • 分佈式的基礎知識

  • 計算機基礎知識

曾經廢寢忘食學到的技術,現在都沒用瞭......

☞三大運營商將解決新老用戶套餐不同權問題;羅永浩與抖音合作;Git 2.26發佈 | 極客頭條

☞程序員為什麼千萬不要瞎努力?

☞5 億微博數據疑泄露,Python 爬蟲如何避免踩天坑?

☞Kubernetes這麼火你還不知道是啥?趕緊來看看吧~

☞醫療保健、零售、金融、制造業……一文帶你看懂大數據對工業領域的影響!

☞如何開發日均吸引100萬活躍用戶的DApp?先收藏再看!

Published in News by Awesome.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *