只會JavaScript的前端程序員,學哪門語言能擴展自己的技術視野

差不多十年前,當我從培訓機構出來(只能說是“出來”,沒畢業,就學了半年)的時候,我也有類似的困惑和焦慮。

後來我報名參加了“軟考”,中級,軟件設計師,花了四個月的時間,過了。(很多人不相信,但這就是事實,參加:自由飛:如何通過自學找到一份開發的工作?)

這麼多年過去了,回頭想想,這些知識,有用麼?我想了很久,做個總結吧:

其實用不到,但也很難說沒用。

用不到,真用不到。什麼算法,什麼數據結構,我幹這一行都快十年了,一次沒碰到過。當然,你可以說我是搬磚的,是碼農,但以此為標準,有幾個不是搬磚的,有幾個不是碼農?

其實啊,很多同學迷茫,不知道怎麼提高。如果你安心做技術,安心打工,很簡單,去看一下網上的招聘啟事。比如關鍵字:JavaScript + 10年工作經驗 + 年薪50萬……,把篩選出來的招聘要求看一看,就知道你的奮鬥目標了。弱弱的問一句,裡面有沒有要求:精通數據結構和算法的?

真要實實在在的用這些知識,大概得是寫數據庫(不是增刪改查用數據庫,是用C/C++寫數據庫軟件本身),寫操作系統,寫遊戲引擎,寫編程語言本身,等等。我把這些,歸類於“計算機科學”。

但實際上,我們絕大多數人,都不是幹這個的,而是利用現有技術框架,將具體的業務需求予以實現,比如做個APP,開發一個網站,或者桌面軟件之類的——我把這些,歸類於“軟件工程”。

但“計算機科學”和“軟件工程”,有沒有高低之分呢?或者,更實際一點,待遇上有沒有明顯區別呢?是不是“真正的程序員”就比“碼農”更有錢更牛逼更高人一等呢?

呵呵,兩個辦法:一是你自己去招聘網站查一查;另外,還有很多搞計算機科學的,招聘啟事上都在查不到,他們都待在大專院校研究所之類的地方,他們的待遇,呵呵,應該能猜到吧?

一句特別俗的話:工作沒有高低貴賤之分,都是為人民服務。

接下來我就說說,搞軟件工程的,做各種應用項目的,題主說的這些理論知識,究竟有沒有用。

用處還是有的。

首先就是裝逼了,或者,別人說這些的時候,不會聽不懂不會心虛了。

其次,這些知識能幫助你對一些具體問題的理解。比如瞭解了編譯,你就可以瞬間明白“JavaScript是腳本語言,解釋執行”是什麼意思;比如知道“樹”這種數據結構,你就可以很快明白為什麼使用數據庫的索引就可以迅速提高數據的查詢速度;比如知道“指針”的概念,就可以迅速的理解C#裡面引用類型/值類型,引用傳遞/值傳遞的意思……

所以,正兒八經的說,也不能說這些知識沒用。

但是,這些知識也不是很多同學想像的那麼有用!

至少,沒學過這些理論知識,你還是一樣可以明白編譯/解釋,一樣可以明白索引的機制,一樣可以理解引用和值……甚至,都花不了多少時間,我一個小時就可以給你講明白。

那麼,這裡就有一個問題,我們誰也不能說知識沒有用;然而,“吾生也有涯,而知也無涯。以有涯隨無涯,殆己”,這裡有一個產出/效益比的問題。

這個問題,其實也可以用一個計算機/軟件工程上的術語來解釋:封裝。知道“面向對象”的同學,一定知道“封裝”,但為什麼要封裝呢?為什麼“封裝”是面向對象的第一大特徵呢?封裝,隱藏實現細節,暴露調用接口,它的魔力究竟在哪裡?

其實啊,就是節省你的精力。擺脫細節實現的糾纏,在更高層次上進行思考,從而更高效的解決具體的業務問題。

比如,你可以直接調用:

alert("封裝就是好!");

而不用從二進制開始實現在屏幕上彈出一個小框框。

更何況,你去深究alert()背後究竟做了多少事,也沒有任何意義。就算你一根筋要深究下去,那從瀏覽器內核,到操作系統,到內存調用,到二進制……你究竟要深究到哪一個程度為止呢?

我也是從一個什麼都不知道的菜鳥,這麼多年一步步這樣走過來的。

我非常明白,作為一個初學者,對於未知領域的敬畏和好奇,對“更上一層樓”的期望和迷茫,但什麼“碼農”“底層”,以及“編程=數據結構+算法”的說法,確實誤導了很多很多人。

篇幅所限,我儘量簡單點吧,題主的問題,可以有以下幾種辦法:

1、最傻的一種,像我一樣,參加一次軟考。把所有軟件開發相關的理論知識一網打盡,不需要怎麼精益求精,有些地方,走馬觀花囫圇吞棗也沒多大問題。具體到考試,“60分萬歲,61分浪費”。這條路呢,確實踏實,但總覺得有點笨,效率不高。

2、功利型的方法:不要管別人怎麼拽名詞怎麼裝逼,像我前面說的,網上找到你期望的職位,看這些職位的要求,然後按照這些要求往前拼就行。聽哥一句話,搞JavaScript,動不動就扯什麼數據結構的,十有八九裝逼犯的居多。

3、以興趣為導向,一個點一個點的突破。比如你確實對數據結構和算法有興趣,純粹的就是感興趣,太簡單了,買一本《數據結構和算法》看一看嘛,多簡單的事?真有興趣,不存在看得懂不懂的問題,看不懂也要想辦法看得懂——就像打遊戲一樣啊!有這個興趣,我特麼的廢寢忘食夜以繼日想方設法排除萬難,也要搞定它。做不到,嘿嘿,你所謂的興趣很值得商榷啊。

大概也就說到這裡啦。其他類似的、相關的,歡迎關注知乎

只會JavaScript的前端程序員,學哪門語言能擴展自己的技術視野

++++++++++++++++++++

最後很煞風景的加個推廣,兩個QQ群:

飛哥辦了一個IT培訓班,http://ASP.NET全棧開發,線上全程直播,可以免費收看;線下拎包入住,按周收費。如果你有興趣瞭解一下,可以加QQ群:729600626(一起幫·源棧·有意向)另外一個QQ群:716207562(一起幫·老碼農-4),也不說啥交流啦,就吹牛灌水,老碼農小菜鳥打發時間聊聊天O(∩_∩)O~



分享到:


相關文章: