昨天晚上,個人一個老朋友在郵件裏問我:程序員
打擾了。犬子考入肯尼索州立大學,有志於攻讀計算機科學學位,可是有兩年課程,他不太喜歡上,爲此而糾結。亞特蘭大有三所學院只專一於技術,提供 8 到 16 周的沉浸式課程。在計算機科學領域,對於這種辦學形式怎麼看?四年制的學位更有價值嗎?編程
今天早上,我即興回覆了他:小程序
呃,個人意見是……我是以兩個學位,也就是讀了 6 年的計算機科學,還有從業 30 年的經驗來講的。換言之,我是過期了的,老頑固。編程語言
在計算機領域,老一輩與現代這輩人大相徑庭。計算機科學過去是(實際上如今也是)深邃且亟需的學科。可是,有兩三件事發生了。首先,計算機已經至關廣泛。年紀低於 80 歲的人誰還沒一臺計算機?其次,在 1995 年先後萬維網(誕生於 1989 年,若以因特網爲人體,則萬維網爲其顏面)興起,咱們在平常生活中也愈發地依賴它了。再者,過去用於建立應用程序的那些工具變得更復雜了一些,可是用起來更容易,就像駕馭如今的汽車要比駕馭 1905 年的汽車更容易同樣。編輯器
這一切意味着,如今的「計算機人」的種類要比過去更多了。如今,從未上過編程課的「程序員」繁如過江之鯽。這是好事,也是壞事。工具
這意味着一我的只須要懂得不多的知識即可以解決一些小問題。可是,這也意味着這我的難成大器。操作系統
說實在的,和活在巨人部落裏的這些低層次的人共事,我私下裏常有挫敗感(不多和別人這麼說過)。在我看來,他們像是票友或跑堂的,只求掌握所在領域的 5% 的知識,爲了搞定幾個問題,得到一些樂趣抑或謀生。設計
這些人使用工具建立平常使用的一些小程序。可是要記住:這些工具自己也是軟件。不過,它們的層次遠遠超越這些人在夢想中所能創造出來的任何東西。他們用着編程語言、編輯器、編譯器以及操做系統,可是他們並不清楚如何去建立這些東西,他們甚至都不清楚這些東西如何工做。遊戲
在這 20 年裏,孩子在大腿上玩弄賽車遊戲的手柄,他會說,「看,我也會開車了。每一個人均可以開車,你只須要摁這個綠色的按鈕,而後說,『載我去沃爾瑪』」。我時而隱約感覺到這種手柄的存在。圖片
回到計算機上來……個人一個朋友有個 7 歲的孩子,他自學了一個花哨的工具,用它建立了一個 iPhone 手機遊戲。沒錯,是個簡單的遊戲。可是他所作的事情在 30 年前即使是博士也鮮有能作到的(並且是在非手持設備上)。
在某種程度上,個人抱怨並沒有不妥。可是在某種程度上,我是個老人,脾氣也壞。
有時,我和一些人有所接觸,他們的抱怨以及他們所遇到的問題無不暴露出他們已經抵達了他們的知識邊界。有時,這會讓我震驚。我以爲這些知識應該在他的第一學期的第一門計算機課上就學過了的。不過,我又想起來,這樣的人連一門真正的計算機科學課都沒上過。
固然了,個人前輩也會用一樣的眼光來看待我。在上個世紀 40 年代,要接觸計算機,須要拿到電氣工程學位纔有資格。在 70 年代和 80 年代早期,須要修過科學或工程專業纔有資格。在 90 年代,只須要有張銀行卡(或者有銀行卡的父母)。
順便說一下,我對硬件知之甚少。我只會用鍵盤討生活。曾經我每一次打開計算機要去作點什麼之時,會糾結兩件事。我只是個搞軟件的。我知道有人會爲此取笑我,甚至有些老人會有些嘲笑我,由於我不會用電烙鐵。
實際上一切依賴於一我的想要作什麼。若是你作一個網店、購物車、訂單、精美的圖片以及社交 App,你不須要去拿一個計算機科學學位,甚至連與計算機相關的學位都不須要。
若是你想製做從未有過的真正有趣且激動人心的東西,若是你想在工業領域中有所不一樣或對世界做出一點改變,那麼你就須要這個學位。若是你想製做底層的人所使用的工具或程序庫,你也須要這個學位。
打個比方:若想建造狗窩,只須要會用錘子和釘子就能幹。若想成爲建築師,去設計和建造摩天大樓,那麼首先須要在建築學方面拿個學位。可是請(原諒個人壞脾氣)不要由於本身會造狗窩就自稱是建築師。
但願這些亂七八糟的吐槽對你有所幫助 :)
若你須要,能夠再問我一些具體問題。
祝好,Hal
注:這篇文,在 Hacker News 上引發了激烈討論,詳見 https://news.ycombinator.com/...