大學雜念集 –關於學習和技術程序員
大學常思,極少爲文,雜念閉胸,不舒不順暢。諸君不喜勿擾。算法
學習,固然咱們先說說學習學校的課程,大一一年下來,課程很多,學得卻是很差不壞。不喜這部分的直接到第四段。大學咱們經常會感受學校開的一些課程用處不大,諸如微積分,線性代數,離散數學,數學實驗之類的,只爲去謀求個不掛科,學霸們則爲了績點而拼搏。我也同樣,並不把這些課程放在心上,只是平時水水學,臨考前突擊。而事實上,這些課程是很是有用的,只是學校老師基本上不會告訴你這有什麼用,因而咱們便陷入了枯燥課程的×××大海。編程
關於這些課程,我根本談不上什麼造詣,不過是一個忐忐忑忑完成了課程的學生,可是我知道在計算機中,數學是計算的根本,在計算機中有不少研究領域須要數學的支持,毫無疑問的是,計算機科學是在數學的土地上生長起來的,這一方面你們能夠參看《數學之美》,你大概就會了解數學和計算機的關係。服務器
另外一方面,matlab有什麼用?我在上學期開學以後也有過一樣的疑問,又由於對老師不甚感冒,因而每次上課就一水而過。在接觸到Machine Learning之後,我才知道它的做用。由於其龐大的數學計算庫,應用級別的算法固然不會只需algorithm.h或者math.h裏面的函數那麼簡單,固然matlab或者octave也極少單獨用來製做可發佈的軟件,更多地是用來展現一個模型,計算該模型是否有效,若是你要再C或者其餘語言中實現這些模型,你會感受到十分地痛苦。同時matlab和octave提供了到C或者其餘語言的接口,在驗證了模型以後,咱們就能夠實際化程序了。固然這只是對於咱們,對於其餘專業的同窗,matlab有更多的做用,在此不贅述。數據結構
其實學校裏的課程並非我想說的重點,學校能教多少?若是隻是按照學校的標準完成學業,那這個大學算是讀廢了。我是軟件工程,對於所謂的「卓越工程師計劃」我並不徹底感冒,只是國家缺乏這樣的人才,因而學校試圖用模子把你培養成工程師,若是你只是老老實實地完成規定的學業,bingo,工程師一號。因此,咱們得談談自學,固然這和咱們的技術也是息息相關的,大學十分看重自學,由於不少人把應該上課學的放在了自學時段:)看過一篇文章,有一句話說是「人類社會實在太複雜了——一我的的價值並非那麼容易就能體現出來的。並且咱們很難去判別一我的的價值」,遺憾的是,咱們也沒有一個特定的標準去斷定一我的的技術,雖然說是計算機技術,可是也分許多門類,可能一些人擅長這個,一些人擅長其餘。我只是談談個人看法。咱們應該自學什麼?個人答案是應該學在職業學校學不到的!架構
我並非反對你們去追求流行的技術,畢竟咱們得緊跟時代,可是要知道你隨便報個學校班就能夠學到這些東西,並且基本沒有任何基礎要求,一些學校一開始就是C++,JAVA,而後各類Android,IOS開發。說實話,我感受沒用,練手還能夠,若是你只接觸這些,很快就可能被拋棄。信息時代變化之快超出想象,你能100%預測之後的技術潮流嗎,你能保證如今火熱的移動APP開發能火到你工做嗎?因此咱們必須接觸隨着時間變遷而愈加經典的東西:數據結構與算法、計算機系統及原理等等看似沒法展現的東西。真正有用的東西是學過以後很難展現,但你知道它已經成爲你的一部分,會伴你走過你的技術生涯。數據結構和算法
數據結構和算法,很遺憾並非你手上薄薄的課本能講得完的,也極少有人能把這條路學得通,課本上的知識,根據個人理解,不過只是給你們描繪了一下大海的樣子,你若是肯定想要探索這片大海,你得作好讀研,讀博的準備。數學可能更多地在這方面有所展現。由於這方面實在是牛人輩出,作ACM的也大有人在,實在不敢在此班門弄斧。可是咱們必須知道的是,數據結構與算法是最好的語言,而C/C++/JAVA/C#……不過只是工具罷了,把編程技術比做槍,那編程語言不過只是槍托,重要的火力系統是數據結構與算法。編程語言
接下來是計算機基礎,你說咱們爲何還去了解計算機系統?這大概是不少人的想法,咱們連槍都有了,還缺什麼?要以德服人的話,咱們是否是還缺乏足夠的修養?對,看似底層的東西我認爲就是一個程序員的自我修養,你可能知道有一本書叫作《程序員的自我修養》,遺憾的是他只講了關於程序的連接,編譯等知識,我的認爲能夠出成一個系列,好好講講系統,講講彙編。看起來漂亮的建築,沒有基礎,也無非只是空中閣樓,咱們的知識體系也同樣,你說你能夠作個網站,寫個應用,可是問你服務器的架構,應用底層如何交流信息?你殊不知道,毫無疑問,你創建了空中閣樓,你不過是一個知道怎麼貼好瓷磚的建築工,殊不知道建築怎麼設計,水泥和泥沙如何調配。你使用的不過是其餘人爲你調好的水泥(底層架構),作好的瓷磚(SDK),貼好了一個建築,而後說:看,那是我建的建築。固然,你若是決心作一個UI設計師,也無可厚非,UI設計跟多地與人的心理,與美打交道,並不適用於咱們談論的技術。ide
最後咱們來談談心態,這是我思考了好久的東西。首先,先哲告訴咱們應該謙遜,對人對物對技術都同樣,固然我知道這是很難的事,堅持本身,不承認他人幾乎是計算機技術領域的流行趨勢,你大概能夠從各大語言之爭中以窺端倪,吵得是不可開交。現實中我也不止一次地聽到有人說諸如「360太垃圾了」,「微軟比蘋果2多了」的話,固然,若是你是一個消費者,我並不必定承認你,但我必定雙手支持你的判斷。由於消費者是上帝,你能夠俯視這些公司,但做爲一個從事這方面的將來的技術人員,請保持謙遜,360比你牛的人大有人在,微軟更是沒必要說,在你捫心自問能在技術上俯視這些公司以前,請不要說這種傻了吧唧的話來體現你特立獨行的風格。函數
另外一方面,技術在於堅持,選擇一條路,在有正確的判斷後堅持下去,這大概並非成功的捷徑,但總會比繞路來得快,技術上,求深不求廣。固然在這以前,你可能會試圖去了解不少東西來找出最適合本身的路。祝你走上康莊大道。