轉(zhuǎn)眼間,三年過去了,再過2個月就要迎來大學(xué)最后的一年。回想一下這3年的學(xué)習(xí),總結(jié)一點,就是走了很多彎路,好在現(xiàn)在已經(jīng)認識到了。
為什么會走彎路呢?因為自己對某些知識存在很多錯誤的認識,比如說當年認為C語言不怎么重要,結(jié)果就沒怎么好好學(xué)。以致于現(xiàn)在瘋狂的往回補。
彎路走的多了,自然就有經(jīng)驗了。在我看來,
優(yōu)秀的程序員=扎實的計算機基礎(chǔ)知識+良好的數(shù)據(jù)結(jié)構(gòu)和算法思想+自己最擅長的技術(shù)。很多同學(xué),一直熱衷于瘋狂的寫代碼,這本來是很正確的,但這個要建立在一個基礎(chǔ)上,那就是理論基礎(chǔ),沒有理論基礎(chǔ)的程序員是不行的。
曾經(jīng)有個公司的老板和我說過,擅長寫代碼的程序員是優(yōu)秀的程序員,只有在這基礎(chǔ)上加上扎實的理論,才能叫的上是卓越的程序員。(可惜當年沒有好好聽他的話,現(xiàn)在想想,真的很有道理!)
我想,很多同學(xué)在學(xué)習(xí)的時候都很迷茫,面對一大堆的語言和各種各樣的技術(shù),不知道到底該學(xué)習(xí)哪個。網(wǎng)上一查,說哪個好的都有,我曾經(jīng)就徘徊于Java和.Net之間,甚至在一段時間內(nèi),兩個都學(xué)??墒牵屛覀冏屑毾胍幌?,語言只是軟件架構(gòu)最上面的一層,可以說,一個項目用什么語言都可以實現(xiàn),最重要的是,處于語言下面的這些基礎(chǔ)架構(gòu)以及用語言來實現(xiàn)的算法,這些才是項目的精髓!所以,語言并不是最重要的,說最實在的,不論哪種語言,像C,C++,Java,C#等等,只要掌握其中的一種就足夠了。關(guān)鍵的是,我們要把理論的知識學(xué)透了,這就像武俠電視里人們練的內(nèi)功,內(nèi)功好的人,學(xué)什么新的功夫都快,而且往往能學(xué)到高一點的境界!
舉個實際的例子,像Java,我開始學(xué)習(xí)的時候,遇到新的就學(xué)習(xí)。剛學(xué)完Java基礎(chǔ),就學(xué)習(xí)Web方面的,從Jsp到SSH框架,Ibatis,后來又接觸了EJB,JPA。什么WebService、RMI、JNDI,一個個新名詞接踵而至..還有什么XML,JSON,DOM,總之,太多了,這些只是暫時能想到的,沒想到甚至不知道還不知有多少呢!上述每一個都是一大塊知識,太多了,很難全部準確的掌握透。用什么辦法解決這個問題呢?那就是,認真的學(xué)習(xí)好Java基礎(chǔ)。很多都是Java框架,框架的內(nèi)部,都是一條條基本語句,只是將基本的東西,寫在一起,經(jīng)過一定的優(yōu)化,就成了框架了,只要我們基礎(chǔ)打扎實了,我們也可以寫出屬于自己的框架!所以,不要一味的去學(xué)習(xí)新技術(shù),老老實實把基礎(chǔ)打好,等基礎(chǔ)弄扎實了,其它的學(xué)起來很快的。
后來在我求職的過程中,深深的感受到了,很大的公司,都要問一些原理性的問題,在此,我想提醒廣大同胞們,不論學(xué)習(xí)什么知識,一定要深剖它的內(nèi)部細節(jié),弄清楚它的工作原理,這樣才有助于更深層次的掌握它,才能更好的運用!
最后,總結(jié)一下自己的感受:
1、學(xué)校的理論課千萬不能落下,不但不能落下,而且還要在學(xué)習(xí)的時候多多練習(xí)。
2、知其然就要知其所以然。學(xué)東西,一定要懂原理,切莫走馬觀花。
3、神馬語言都是浮云,數(shù)據(jù)結(jié)構(gòu)和算法永遠都是王道!
4、在扎實的理論基礎(chǔ)上,多多練習(xí),加強實踐能力。
5、理論扎實了,找到自己喜歡的一個點,扎進去,永遠不要出來。
以上是自己3年來學(xué)習(xí)的一個小的總結(jié),文筆不太好,寫得不夠順暢,但句句發(fā)自肺腑,如果我在大一的時候能看到這么一篇文章,現(xiàn)在絕對是高手一個了!希望大家在學(xué)習(xí)的過程中能少走彎路!
最后,祝愿所以找工作的同學(xué),能踏入自己心儀的企業(yè)!