因爲工做職位關係,在公司一直作一些技術儲備工做。沒有實際的開發任務,只是多看一些新東西,萬一有需求能夠出解決方案。
回顧2016,從前端開發到移動,從算法到機器學習,天然語言處理等,看過的東西不少很雜。
前端
我一直有個疑問,什麼才叫技術好?其實技術好,多是個僞概念。
一門語言,一個方向,大部分人的水平都差很少,只是熟練度,知識廣度的問題。
C#,有人能夠用極其簡單的Linq寫出很複雜的功能,有人要使用大段大段的代碼來實現相同的功能。
之間的差距就是,前者熟悉Linq,後者不熟悉(熟練度不夠)或者根本不知道Linq(廣度不夠)。
不少狀況下,後者若是不是不好勁,後者其實能夠經過培訓作到和前者相同的事情。程序員
那麼,若是技術能夠經過培訓就能得到提高,那麼,老程序員的護城河在哪裏?
一個畢業生,經過不斷的學習一門語言,大量的練習,就能寫出代碼了,老程序員的價值在哪?算法
能夠很負責任的說,老程序員在某個領域的90%的知識,新人能夠很快速的掌握。可是新人沒法很快速的將全部知識整合起來,靈活使用。
例如,一個抓取網站數據的程序,其實這裏牽涉到HTTP協議,HTML和DOM知識,異步和併發,數據存儲等問題。
若是這個程序出了問題,老程序員能夠快速判斷錯誤的位置和解決方法,新人可能要耗費不少時間。(有些權限,異步的問題,新人可能根本沒有概念)
因此,知識儲備要有必定的廣度。數據庫
這個在數據庫領域特別重要。建數據庫,建表,查詢,這些都是隻要肯百度就能夠的。
可是,每每資深DBA,思考的是,索引的類型是否正確,索引的字段是否正確,SQL語句是否優化。集羣,主從備份的參數是否穩當等等。
(在作MongoCola的時候,我幾乎將全部的MongoDB的用戶手冊看了一遍。MongoDB要真正精通,其實很難的。)
若是你長期操做MySql,Oracle,可以將這些數據庫的精髓都學到,變成專家,也是可喜可賀的事情。
(數據優化,參數設定,故障恢復,都是以時薪計算的)併發
新人和老司機,在不少觀念上不一樣。機器學習
對於一個新人來講,總以爲程序能作到100%正確,可以看到畫面,是很牛逼的事情。
開發一個手機APP,正確排序一堆數據,很不錯啊。異步
其實,真正難的程序,每每是那些不可能作出最優解的問題。也就是所謂的PN問題。
沒有最優解,說明這個問題每每是隨着規模增大,算法的複製度高的硬件沒法承受了。(今年的天池算法比賽的題目就是這樣一道NP問題)
在機器學習和天然語言處理領域,更加如此,這些領域都只能求得正確可能性最高的答案。(滴滴出行的大數據比賽,我也參加了)
在加密解密上,包括Hash算法上,工業標準也並不是100%要求正確,有些Hash算法,在時間空間上要求很高的前提下,容許百萬分之一的錯誤率的。
例如,爬蟲在考慮哪些網址爬過的算法上,每每把網址經過MD5等算法,轉換爲數字指紋,這個指紋,其實作不到100%正確的。函數
其實,真正難的程序,每每是那些沒有任何界面的庫,好比gensim(NLP),scipy(ML),MeCab(日語分詞)這樣的東西。
這些庫沒有辦法在朋友面前演示,沒有好看的界面,可是,這些庫踏踏實實是不少項目的基石。(這裏沒有貶低不少GUI庫的意思,Bootstrape這樣的皮膚也很重要)學習
新手處理Excel,可能只會VBA。
老手處理Excel,能夠用C#操做,能夠用NPOI這樣的庫。能夠調用VBA的宏。
不少時候,解決方案有不少,正確的解決方案,最優的解決方案,須要大量的經驗。大數據
在信息爆炸的時代,沒有什麼技術壁壘。Python,Nodejs,React,NLP,只要你想研究,資料滿天飛。
若是有時間,各類技術最好都能看一下,知道這個技術的使用場景,優勢,缺點。這樣就能夠了。
大部分技術,看一下用戶手冊,API函數一調就能夠跑了。若是沒有需求,沒有必要去深刻學習。
知識豐富以後,你能夠快速的制定一個最優的解決方案,以及多個備選方案。
和別人交流的時候,不會被別人忽悠,不會沒法理解對方的想法。
可是,若是你立志於在某個領域變成不可或缺的人。就必須從基礎上認認真真學習。
例如,機器學習方向,
100%的人,都會調用Python的Package,
95%的人,知道迴歸,聚類背後的理論知識,
80%的人,知道拉格朗日和對偶算法。
50%的人知道怎麼一步步推導公式。
可是再深刻下去,如何調整參數,如何活用LDA模型,這樣的大牛不多了。
要知道這些,閱讀大量的論文,作大量的研究,跑大量的數據,必須這樣作,沒有捷徑。
只有這樣的人,才能得到 養兵千日用兵一時 的待遇。平時積累經驗,須要的時候,爲公司一槌定音。
固然,大牛,有些關鍵知識,請自行作好保密工做。有些東西說破就不靈了。世道艱險,自我保護不可少。
固然,以上這些有個前提:學習本身喜歡的東西,注意保養本身的身體。 年初在接觸React Native這樣的東西的時候,我以爲很前衛。等到我學習機器學習,天然語言處理後,我發現,這些纔是最前衛的。 惋惜園子裏面的機器學習氛圍很差,不少文章閱讀數不過百。再過幾年,將是機器學習的天下,你們應該開始轉型了。 機器學習,入門難,學好難,可是真的學好了,高薪高待遇容易。