學編程打游戲會厲害嗎嗎,深入學習算法是否成為程序員的剛需就和學英語一樣?
寫在前面:
其實學習是一件很私人的事情,每個人都應(yīng)該有一套自己的學習方式,而不是照搬照抄別人的。適合別人的不一定適合自己。所以,讀這篇分享的時候,請以一種這點是不是對我有幫助的心態(tài)來閱讀,而不是原來我要這樣才能學的好的心態(tài)。如果你覺得某一點對你有用,那就記在心里,如果你覺得不太適合你,那么一笑而過就好。
我不是什么大牛,只是一個普通的本科生,有說的不好的地方,還望海涵。也因為我只是一個本科生,沒有很多的工作經(jīng)驗,所以對于工作后的一些學習經(jīng)驗比較匱乏,所以文章里大部分說的都是大學時期的一些經(jīng)驗,很抱歉。
這篇文章大體上會從以下幾個部分展開:
認清自己
學習目的
時間管理
學習方法
學習的步驟
獲取知識的途徑
影響學習的幾個因素
自己的心態(tài)
外物的影響
其他想說的
大學生的學習
一些感悟
一、認清自己
1.1
認清自己最關(guān)鍵的一點是要知道自己到底想要什么。這是第一步,也是最重要的一步。因為這關(guān)系到你能夠選對學習方向,能否沉下心來去學習。
我們都知道,做自己感興趣的事情的時候,是可以事半功倍的,因為你愿意去做它,而不是出于某種原因不得不去做。
經(jīng)常會有人問我,現(xiàn)在前端找工作好找么?java 找工作好找么?我要不要學 android 呢?這些問題的答案其實大家心里都明白:只要你足夠優(yōu)秀,學什么都能夠找到一份好的工作。
所以說,不要因為某一個方向火,而盲目的去追;也不要因為某一個方向可能不容易找工作而不去學。
對一個搞技術(shù)的人來說,年齡的增長其實不是那么可怕,可怕的是你沒有匹配自己年齡的技術(shù)深度。當你的工作換一個剛畢業(yè)的學生都能做的時候,你很快就會被淘汰了。所以,選方向一定要選自己感興趣的方向,因為只有這樣,你才有興趣去往深入了學,你才不會在未來被年輕人擠下去。
1.2
認清自己的第二點是認識到人外有人。自滿,自大,自欺欺人是影響自己進步的絆腳石。如果你覺得,你現(xiàn)在已經(jīng)很了不起了,你能做到這個程度已經(jīng)很不錯了,你就會停滯不前,然后浪費大把的時間。
這是我自己的親身經(jīng)歷。我的學校是一個雙非大學,計算機也不是學校很好的專業(yè),消息也比較閉塞。在我的圈子里,我覺得自己已經(jīng)很不錯了,我之前也一直這樣認為。但是,當我今年開始準備春招準備校招的時候,我發(fā)現(xiàn)我錯了,和真正優(yōu)秀的人比起來,我什么都不是。以前覺得自己會的東西,出去一看,大家其實都會;以前覺得很多知識等工作了再去學也不遲,出去一看,發(fā)現(xiàn)早就有人學會了。但是,現(xiàn)在認識到這些已經(jīng)有點晚了,因為已經(jīng)開始找工作了,沒有時間再去讓你從頭開始學了。
所以說,永遠不要自滿,要知道人外有人。如果有一天,你覺得周圍沒有人比你更厲害了,一定要記得,不是你走到巔峰了,而是你的圈子,應(yīng)該擴大了。只有你的周圍,有很多更厲害的人,你才能意識到自己的不足。這也是我常掛在嘴邊的:你想變成什么樣的人,你就要去認識什么樣的人,你的周圍是什么樣的人,你就會變成什么樣的人。要知道,人以群分。
二、學習的目的
為什么要學習呢?學習的目的,根本上是為了獲取競爭優(yōu)勢,增加選擇機會。你比別人懂得多,比別人學的深,你就更有競爭力。對于程序員來說,不懂得學習是沒有辦法在這個行業(yè)混下去的。技術(shù)的更新?lián)Q代,技術(shù)的深入掌握都需要去不斷的學習,如果你不學,很快就會被淘汰了。
找工作的時候,有其他專業(yè)的朋友會羨慕的和我說:你這個專業(yè)真好,一畢業(yè)月薪就上萬,我才 3,4 千。其實我想說的是,如果不好好學習技術(shù),搞技術(shù)的也會失業(yè)。大部分的人都只看到一部分計算機的應(yīng)屆生工資很高很羨慕,卻忽略了他們這四年是怎么度過的。天上是不會掉餡餅的,計算機專業(yè)的每天看劇打游戲,畢業(yè)一樣找不到工作。希望以后你不會是那群天天打游戲看劇最后抱怨自己工資低的那群人中的一個。
三、時間管理
知道了自己的方向,知道了為什么要學,那么我們接下來談一談,怎么安排自己的時間,或者說,怎么制定一個計劃。
很多人應(yīng)該都有過這樣的經(jīng)歷:我現(xiàn)在很無聊,不知道做什么好,學習吧,不知道學什么,打開電腦也不知道做什么,打開手機也不知道做什么,然后只能選擇看個直播,看個電視或者打個游戲來打發(fā)時間。當一天過去以后,突然后悔,覺得自己當時要是學習就好了。
為什么會這樣呢?是因為你自己沒有一個計劃,如果你每天都有一個按時間段安排的計劃的話,你就不會迷茫了,你就會知道這個時間點自己應(yīng)該做什么,而不是用看劇打游戲來打發(fā)時間。
關(guān)于時間的管理,首先:
要有一個大一點的計劃,比如年計劃,月計劃,周計劃。
這一年大體上要打到什么目標,這個月要學習哪些知識。
然后是精確到小時的日計劃。
每一天,哪個時間段做什么都詳細的列出來。
其次,不要太盲目自信。很多人其實從來沒有完成過自己的計劃。如果你真的能夠完成你制定的每一個計劃,那現(xiàn)在的你一定已經(jīng)很了不起了。如果你幾乎沒有完成過自己的計劃,那么你一開始制定日計劃的時候,不要給自己太多的任務(wù)。因為如果你一旦完不成,就會影響自己的信心。最好的方式是,一開始制定一些簡單的計劃,然后每天很容易就能做到,然后慢慢的去增加自己每天的任務(wù)量。最后找到一個最適合自己的節(jié)奏。這個過程可能需要很長的時間,因為你要不斷的去嘗試,去改進。找到最適合自己的作息時間去休息,找到自己工作狀態(tài)最好的時間去工作等等。
最后,不要把你的計劃當擺設(shè)。雖然我上面說過,很多人其實從來沒有完成過自己的計劃。但是我還是希望你能夠認真的去對待它,因為受益的有且只有你自己。
四、學習方法
盲目的學習效果并不好。以前看書的時候,看完一遍再從頭看,感覺就像是在看一本新書,完全沒有印象。看似自己學了不少,其實真正掌握到的并不多。學習不是你看得書越多,讀過的文章越多你就學的越好,而是看你究竟掌握了多了。那么,怎么才能有效的去學習一門新的技術(shù)呢?我總結(jié)了以下幾個步驟。
4.1 學習的步驟
確認學習目標
首先,你需要確認你要學什么,切記不要三心二意。學習最好一個時間段專一的去研究一個知識點,不要今天學 python 明天又想學 java 了。做什么事都有有一個目標,不然容易成為無頭蒼蠅。目標往大了說,可以是成為某一個領(lǐng)域的大牛,往小了說可以是今天的一個學習計劃。
hr 面的時候,一個常見的問題是:你的職業(yè)規(guī)劃是什么。一個優(yōu)秀的人,必然會有一個屬于自己的職業(yè)規(guī)劃,知道自己在什么時期要做什么,知道自己每個時期要完成什么樣的目標。學習也一樣,當你有了一個清晰的目標的時候,你才不會迷茫,才不會不知道做什么好。
制定學習計劃
上面也提到了這點,計劃可能趕不上變化,也許今天正好有別的事情導致今天的計劃沒有完成,但是至少大方向是有的,你不會不知所措,不知道最近應(yīng)該做什么,這才是計劃的根本價值。所以,不要擔心計劃完不成,這是給你自己學,一天的計劃完不成又能怎樣呢?
自己找資料開始學習
請記住,不要當一個徹頭徹尾的伸手黨。因為輕易得到的東西你是不會珍惜的。并且,你不要祈禱你這一輩子所有學習需要的資料都有人會提供給你,自己找資料本身就是自學能力的一部分。當然,我并不是說不讓大家去群里問,畢竟能問到也是一種本事,但是你一定要有自己的資料來源,無論是博客還是書或者是官方資料。
腦圖與流程圖
學習從來都不是只看看書就能學會的,自己構(gòu)建相關(guān)知識腦圖和相關(guān)步驟的流程圖是非常有必要并且非常有效果的。比如你要學習 java,你可以先從網(wǎng)上找一找別人畫的腦圖,對 java 有一個大致的了解,每學一個小的知識點,就自己繪制一個該知識點的腦圖,學完之后,自己再畫一個整個 java 體系的腦圖,這樣你會對 java 非常的熟悉。比如你學 GC,光看書或者博客是很難記住那些流程的,這個時候,你自己畫一個流程圖,我保證你對這個過程會很清晰。記住:就算是有現(xiàn)成的圖,你也應(yīng)該自己畫一個,自己畫和看別人的是完全不同的兩個層次。
編碼
上面的那些,都是掌握理論知識的步驟,是騾子是馬還得拉出來溜溜。編碼才是重中之重,就算你能把一個知識點吹得天花亂墜,但是一句代碼不會寫依然沒有什么用。
筆記
好記性不如爛筆頭,學完的知識,然后記錄下來,自己總結(jié)一遍,收獲有多大你們試試就知道了。
回顧
如果你學的東西,很久都沒用,突然有一天你又要撿起它,你會發(fā)現(xiàn),你之前做的努力,太特么值了,你有資料!有腦圖!有流程圖!還有筆記!分分鐘就記起來了。
自己寫一個有實際應(yīng)用的 demo
如果有必要,可以寫一個有趣的應(yīng)用,不是簡單的范例。
這個過程,其實是很耗時的,學生建議按照這個流程來,因為學生的時間大把大把的,時間很少的就根據(jù)自身情況取舍吧。腦圖和流程圖我覺得收益很高。
上面說到,有的時候看完一本書再從頭看,感覺像是在看一本新書。所以我后面看書的時候,也會做相應(yīng)的筆記,看的時候會在書上勾勾畫畫,給一些重要的地方打上標記,看完之后,合上書,用記事本把自己剛剛學的的東西寫一下(大綱就行),然后再和書上比對一下做一些修改。當我看完一本書以后,對應(yīng)的,我還會有一個筆記,以后我甚至完全可以看自己的筆記而不需要再看書了。看 + 回憶 + 記錄,可以讓你充分的掌握一本書的核心。
步驟大體上是這樣,但是也千萬別死板的都按照這個過程來,畢竟還是很耗時的。下面分享一些獲取資料的途徑。
4.2 獲取資料的途徑和一些工具
找資料的途徑
百度/google:先看看他都能干嘛
官網(wǎng):官網(wǎng)的文檔一般足夠了
相關(guān)書籍:京東和當當經(jīng)常有活動的
社區(qū):社區(qū)也會有人做教程的,還會有一些個人項目可以參考
github:可以在 github 看看某個知識點的 awesome
各大博客以及知名博主的個人博客:看看一些高質(zhì)量博客也不錯
微信公眾號:試著找一下相關(guān)的微信,當然,微信上的文章很多都來自于博客,但是微信的好處就是,你不用自己找,別人已經(jīng)幫你找好了,缺點就是,量太少
知乎專欄:和博客差不多
一些視頻或者 wiki 教程:現(xiàn)在有很多教學視頻的網(wǎng)站,有收費的也有免費的。常見的比如慕課網(wǎng),菜鳥教程,網(wǎng)易云課堂,易百教程等。一些培訓機構(gòu)的視頻,比如CSDN的也很不錯~
一些工具
teambition | 一個團隊管理軟件,當然,個人用也是蠻好的,有各個平臺的客戶端。我用它來安排自己的計劃。
百度腦圖 | 在線腦圖,免費無限容量。
xmind
processon | 也是在線的,可以畫流程圖和腦圖。免費的容量有限。
Visio | 繪制各種圖。
番茄土豆 | 番茄工作法的管理工具。
coding | 代碼管理網(wǎng)站,類似于 github,是國內(nèi)產(chǎn)品,速度會相對快一點。
我覺得 github 可以當做一個個人品牌來經(jīng)營,所以最好只放一些很好的項目,一些無關(guān)緊要的代碼放在 coding 就好了,開源中國的碼云也行。
記筆記的一些工具
gitbook | 可以直接生成電子書的一個開源工具,不知道的可以了解一下,我現(xiàn)在在用。
簡書 | 因為簡書可以創(chuàng)建文集,就和文件夾似的,用來做筆記也不錯。
有道云筆記 | 也挺好的(我喜歡用 markdown。有道云支持)
印象筆記
各大博客
自己搭博客
OneNote
比較推薦用 markdown 來做筆記,markdown 常用的語法也就五六個,很好記,也很好用。
五、影響學習的幾個因素
5.1 自己的心態(tài)
心態(tài)其實是很關(guān)鍵的。我們的周圍總會發(fā)生一些事情,有的時候這些事情會影響到自己的情緒和心情。這個時候如果你自己調(diào)節(jié)能力比較差的話,就可能會什么都不想做,不想工作,不想學習。然后頹廢好幾天。
我想說的是,一個優(yōu)秀的人一定得是一個樂觀的人,不執(zhí)著于得失,不輕易被影響,積極的去面對生活中所發(fā)生的一切。
5.2 外物的影響
我主要說的是手機。現(xiàn)在手機已經(jīng)成為人生活中不可或缺的東西了,它帶給我們方便,但是同時,它也占據(jù)了我們大量的時間。我不知道大家平時會不會時不時的打開手機,大部分情況下它和之前毫無變化,但是你還是忍不住的打開它瞅幾眼;或者有幾個群在不停的閑聊,然后你也忍不住的參與進去,不知不覺時間就溜走了。
不要成為被手機支配的人,所以,當你工作或者學習的時候,把手機靜音,放在一邊,不去看它,這樣你會節(jié)省出很多的時間。
除了手機,另一個外物的影響周圍的環(huán)境。如果你能在一個嘈雜的環(huán)境中學習,那就很棒了,如果不能,記得給自己找一個舒適的學習環(huán)境。
六、其他想說的
6.1 關(guān)于大學生的學習
我知道,預定了這次分享的大部分其實都是學生,還有一些剛剛?cè)雽W的新生。我想說的是,玩可以,但是一定要記得,你來上學是為了學習知識的,千萬不要本末倒置了。我現(xiàn)在最后悔的一件事就是大一的時候沒有好好得去學習,不要變成下一個我,
大學學計算機其實大部分時間還是得看你自己,老師上課講的東西很重要,但是那些都是基礎(chǔ)中的基礎(chǔ),憑借這些并不能夠讓你找到一份滿意的工作,所以你還需要自己去學很多很多的東西。我簡單的歸納了一下大學幾年要做的事,你們可以參考一下(假設(shè)你以后的方向是 java)。
大一
這個時候,剛剛接觸計算機,你可能什么都不懂,聽課也是一臉懵逼,什么 for 循環(huán),if 語句,惡心的不得了。這個時候你要做的不是抱怨,而是去努力的尋找樂趣。因為你已經(jīng)入了這個坑了,除非你轉(zhuǎn)專業(yè),否則你是擺脫不了它的。
怎么尋找樂趣呢?我覺得,編程最大的魅力,就是當你成功的時候的那種發(fā)自內(nèi)心的成就感。不知道大家還記不記得第一次寫 helloworld 的時候,各種出錯——分號寫成中文的了,大括號少了一個——但是最后終于成功的輸出了結(jié)果的那種喜悅。
對于一個剛剛接觸編程的人,我覺得,寫游戲是最容易獲得成就感的。這里給大家推薦一個之乎專欄—做游戲,學編程(C 語言)。專欄的作者,通過讓一些學生做游戲來學習 c 語言。我覺得這個一個很好的學習方式,即有挑戰(zhàn)性,又可以培養(yǎng)出成就感。
大學的入門語言差不多都是 c 或者 c++吧。。如果不是,你也可以參考一下專欄里的小游戲,然后用你自己的語言試著寫一下。
但是,我要重點說的是。寫游戲其實是一件很有挑戰(zhàn)性的事。有的人也許會在一開始就陷入困境,不知道如何繼續(xù)下去。這個時候,如果你能堅持下去,多問問老師,學長,百度,google,把問題解決,那你以后肯定會很優(yōu)秀。如果你放棄了,不要灰心,因為并不是所有的人都適合通過游戲來培養(yǎng)興趣,你也可以通過做一些 acm 的題來提高自己。每個學校應(yīng)該都有相關(guān)的網(wǎng)站吧。如果沒有的話,可以去浙大的看看。或者 leetcode 或者牛客網(wǎng)也可以。做一些自己能力范圍之內(nèi)的題,也可以提高自己的興趣。
當然,這些只是針對一部分同學,畢竟很多人其實對代碼無感。。根本耐不下性子去寫代碼。對于這部分同學,我建議去學習 html 和 css。因為它們?nèi)腴T超級簡單,是用來寫網(wǎng)頁的。沒有 c 語音那么復雜的邏輯,幾個標簽,幾個 css 就可以設(shè)計出一個精美的網(wǎng)頁,我想這也會很有成就感吧。
大一的這一年,是打基礎(chǔ),培養(yǎng)興趣的一年。不需要你有多么大的成就,寫出多么厲害的程序。只要你能夠培養(yǎng)出興趣,并且愿意在編程這條路上走下去,那么你的任務(wù)就算完成了。
所以,這一年,你要做的,就是培養(yǎng)興趣,讓自己愛上編程(最基本的要求)。
大二
假設(shè)你現(xiàn)在已經(jīng)喜歡上編程了。但是一般大一只會學一門語言(默認 c/c++,不要問我為什么,因為我就是這么學的。。)。所以你可能只是寫了幾個小游戲,寫了個小管理系統(tǒng)或者刷了一些題。你不滿足于現(xiàn)狀,你想做一些更有意思,更好的東西。同時,這個時候,學校應(yīng)該也開了 java 課了。(假設(shè)你要學 java)。
敲黑板:大二要做的,是拓寬你的廣度!!!廣度!!
首先,你要好好學 java。可能學校的進度是一個學期。但是我建議大家用一個月的時間學完。因為有了 c 和 c++ 的基礎(chǔ),java 其實很容易就學會了(入門級學會)。更好的情況是,你在大一結(jié)束的那個暑假,就抽時間先搞定 java 基礎(chǔ)。這樣當開學的時候,別人還沒接觸 java,而你可以驕傲的和別人說,你都學完了。成就感滿滿的。
那么,怎么學 java 基礎(chǔ)呢?我的建議是視頻為主,入門書為輔,自己跟著寫代碼。
看書其實是一件很枯燥的事情,如果你初學 java,只是看書的話可能配置一個環(huán)境變量就要搞好久,這會打擊你的自信心。不要小看配置環(huán)境變量這個過程。我記得當時兩天配不好環(huán)境變量最后讓我?guī)兔Φ娜丝刹簧佟5且曨l就好多了,因為老師會親自演示給你看,你會少走很多彎路,并且也比書有趣多了。
書為輔,是因為老師不可能記得所有的知識,總會有疏漏的地方或者講得不太好的地方,這個時候 書就可以派上用場了。看完一節(jié)課的視頻,然后關(guān)掉視頻,自己寫一遍相應(yīng)的代碼,出錯了自己先試試能不能解決,是在不能的話,再看一遍視頻,直到跑通。然后去看看書里對這部分知識的講解,加深印象,查漏補缺。
這里的重點是,一定要自己寫一遍代碼。你看的時候覺得自己會了,可是大部分時間,你一寫全是錯誤。所以一定要自己寫。并且,在你初學的時候,不要使用集成開發(fā)環(huán)境(eclipse idea NetBeans 等),就使用 notepad++ 這種類型的編輯器就可以。
這套流程最大的缺點就是耗時比較久,但是效果是很好的。java 里有很多都和 c/c++ 一樣的,比如一些語句什么的,如果你已經(jīng)掌握的很好了,直接忽略掉這些也是可以的,這就看你自己的情況了。
推薦一些學習資料。
視頻: 畢向東,馬士兵,韓順平的視頻都挺好的。口碑也都不錯,不信可以自己去百度一下。我看的畢向東的,講的挺有趣的。但是每個人口味不一樣,你可以多下載幾套,都聽一下,然后選一套自己喜歡的。
書籍:入門推薦《head first java》。head first 是一個系列,這系列書最大的特點是圖文并茂和案例驅(qū)動,讓讀書的過程不那么的枯燥。《瘋狂 java 講義》據(jù)說也挺不錯的,但是我沒有看過,不做評價。
編輯器推薦:notepad++ 免費,小巧。初學者夠用了,直接百度下載就好。sublime , vs code, atom 也可以,挑一個自己喜歡的就好。
一個月,干掉 java 基礎(chǔ)!這是你大二首先要做的事。
前面說過,這一年,你要做的是拓寬自己的廣度。什么意思呢?就是說,你要盡可能的去多接觸一些技術(shù),多學一些知識,因為你以后很難再找到這么多你可以自由支配的時間了。
java 基礎(chǔ)搞定。接下來,學習 java web。
你要知道,優(yōu)秀的人永遠都走在大部隊的前面。不要學校安排什么你就學什么,學校不安排你就不學。事實上有的老師講的不是很好,大學里真正有用的知識,都是自己學的。所以,接下來要做的是自學 java web。
依舊是視頻+書+寫代碼。
java web 更重要的是實踐。我當時學的時候的書就是學校的教材。。我是基本沒看書的。就跟著視頻一步一步來,有問題就 google。在大二上學期結(jié)束的時候,完成 javaweb 的學習。
因為需要和前臺做一些交互,所以免不了要學一點前端的知識(html + css + js)。
這個過程中,遇到的問題千奇百怪,我記得我當時一個小問題 google 了一天都沒能解決,最后才知道是 jar 包版本的問題。所以,遇到問題是很正常的,遇到很難解決的問題也是很正常的,只要你肯問,肯查總能解決。
好了,你現(xiàn)在已經(jīng)有了自己寫一個小網(wǎng)站的能力了(丑點無所謂)。接下來去參加比賽!進實驗室!做項目!沒有什么比做一個項目更能提高水平了。
所以,你大二下的任務(wù)就是盡可能的去做項目,依次來鞏固你學的技術(shù)。可以參加一些比賽,或者加入實驗室,或者尋求老師的幫助。總之,你要做項目!
除此之外,你需要繼續(xù)擴展你的視野。前端(不是你之前學的簡單的 html),python,android,ios,cocos。。。只要是你感興趣的,就去接觸一下,不需要你學的多厲害,也不需要你完全掌握。只是為了讓你的視野更加開闊,知道原來還有這么多技術(shù),原來還可以這樣。
大二的一年,你需要學會 java 和 javaweb,并且至少做一個拿得出手的項目。同時,盡可能的提高你的視野。當你覺得你一無所知,你還是個菜鳥,這一年的任務(wù)就完成了。
大三
這是很關(guān)鍵的一年,因為這一年你將決定是否考研。考研的我就不管了。。接下來是針對準備一畢業(yè)就工作的同學的。
敲黑板:這一年,你要做的,是深度!
通過大二一年的努力,你的廣度已經(jīng)足夠了。并且在這個過程中,你應(yīng)該也找到了自己最感興趣的方向,如果沒有,那就繼續(xù)研究 java 吧,總比你不知道學什么好。無論怎樣,這一年,你的重心都應(yīng)該放在一條路上。以 java 為例。
首先,鞏固基礎(chǔ)!
這是最重要的。怎么做呢?進階書籍+看博客+寫總結(jié)+寫開源項目。
這個階段的視頻不是很多,也沒有必要了。直接看書+看博客+開源項目,最后再總結(jié)就夠了。我舉個例子,比如,我現(xiàn)在要學設(shè)計模式,我買一本《head first 設(shè)計模式》然后一個模式一個模式的學,每學一個模式,看一遍書,然后 google 一下這個模式,看幾篇高質(zhì)量博客,結(jié)合書和博客自己寫一個總結(jié),甚至可以自己寫一個博客專欄,讓后來者也能享受到你的學習成果。同時,可以好好整理一下自己學習過程中的代碼,放到 github 上,最好可以試著封裝一下這個模式,讓其他人更方便的使用這個模式。當你收獲一個又一個的 star 時,你會非常有成就感的。
上面是學習的大致方式。學完了,怎么檢查自己有沒有學好呢?給大家提供一個網(wǎng)站牛客網(wǎng),你打開就知道怎么用了。
基礎(chǔ)都包括什么呢:
面向?qū)ο蟮乃枷?/p>
java 常用類
集合框架
io
nio
多線程并發(fā)
設(shè)計模式
算法
jvm
計算機網(wǎng)絡(luò)
spring
orm 框架
一些書籍的推薦
初級:
《java 從入門到精通》沒看過,但是買的人很多,有視頻。
《瘋狂 java 講義》沒看過,買的人也不少。
《head first java》head first 系列都蠻好的,看起來不乏味。
中級:
《java 編程思想》java 程序員必讀書籍,厚厚的,讓你有種看不完的感覺,但是認真學了收獲會很大
《java 核心技術(shù)卷 1 2》推薦買第十版,最新的。也是講基礎(chǔ)的,雖然很啰嗦,但是正是因為厚,寫得多,所以你才能理解的更透徹。
《head first 設(shè)計模式》設(shè)計模式經(jīng)典之一,有趣的案例驅(qū)動,看起來很有意思。
《設(shè)計模式之禪》國內(nèi)大牛力作,通俗易懂,某些設(shè)計模式的實現(xiàn)和《headfirst 設(shè)計模式》有區(qū)別,可以兩本一起看。
《大話設(shè)計模式》沒看過,也挺有名的,不做評價。
《java 并發(fā)編程實戰(zhàn)》多線程好書,不光教你怎么用,還告訴你為什么要這么用。
高級:
《effevtive java》必看書籍。講了 70+如何寫好 java 代碼的例子。看了這些你會覺得以前寫的代碼都是問題。
《重構(gòu) 改善代碼既有的設(shè)計》必看書籍。重構(gòu)你之前的代碼能讓你有一個很高的進步。
《深入理解 java 虛擬機》必看,不解釋。
《java8 實戰(zhàn)》java9 都要出來了,你 java8 還不會說不過去的。。
《java 性能權(quán)威指南》學完虛擬機再看它,深奧的一比。
你要知道,bat 等大廠每年會有兩次招聘,一次春招,在每年 3-5 月,一次秋招 8-10 月。春招是招實習生的,秋招是招正式員工。所以,如果你想進這些公司,就要提前做好準備。至少,上面的那些基礎(chǔ)你是必須得都掌握的。
大三這一年,要讓你的深度足夠,有能力的可以繼續(xù)延伸自己的廣度。這個階段,最忌諱的是朝三暮四。早上看 python,下午發(fā)現(xiàn) go 很有趣,看了一下午 go,晚上聽說 R 很厲害,又去研究 R 了。千萬不要這樣!不要成為各個領(lǐng)域的雜牌軍,你現(xiàn)在要做的,是在一個方向有一些建樹。
大四
去實習
實習的話我能給的建議不多,雖然我的實習經(jīng)歷還蠻多的。但是畢竟不是混跡職場多年的人,就不亂說了。
找工作,待遇,環(huán)境挺重要的。但是我覺得,這個公司的技術(shù)棧,行業(yè)背景也是很重要的。我實習的三家公司是三個不同的行業(yè),所以我知道,不同的行業(yè)差距還是很大的。有的公司招聘的時候會要求你在這個行業(yè)有過經(jīng)驗啥的。所以,行業(yè)背景還是有必要注意一下的。同時,為了自己為了的前途,一定要問清楚公司的技術(shù)棧!
當然:作為一個有抱負的人,畢業(yè)設(shè)計一定要向著優(yōu)秀發(fā)展!并且依舊要不斷提高自己的水平。這個時候,學什么可能得根據(jù)公司的需求來了,但是,永遠不要停止學習!
簡而言之,這四年你應(yīng)該這樣過: 大一:培養(yǎng)興趣 大二:橫向發(fā)展,廣度優(yōu)先 大三:縱向發(fā)展,深度優(yōu)先 大四:選好方向,不斷提高自己
6.2 一點感悟
很多時候,一個好的老師或者是指導你的人會讓你受益終身,盡可能多的去認識這樣的人。
謙虛和樂觀是受用一生的財富。多去認識更優(yōu)秀的人,而不是在自己的小圈子里沾沾自喜。
真正優(yōu)秀的人不是埋頭苦讀不問世事,他們也會打游戲,也會看劇,也會追番。但是,他們會合理的安排時間。
七、結(jié)語
文章寫得很匆忙,很多東西其實是我以前寫過的。我的學習經(jīng)驗也不是很豐富,工作經(jīng)驗也不是很多。所以難免有寫得不對或者不到位的地方,一些細節(jié)也沒有展開談,希望大家多多包涵。
如果看完這篇長篇大論對你有一點幫助,那么我的目的就達到了。如果沒有什么幫助,我表示很遺憾,爭取以后能夠?qū)懗鰧δ阌袔椭奈恼隆?/p>
我舉得很多例子都是針對大學生和 java 的。一方面是因為我自己還是個學生,方向是 java,對這個比較熟。一方面是我知道參與這次分享的很多人都是我的朋友,他們也是學生,也在學習 java。對與一部分人,可能要說一聲抱歉了。
俄羅斯人編程為什么那么厲害?
這個問題應(yīng)該這樣問,為什么俄羅斯人編程那么厲害,在全球不是主流。
原因淺見:
首先,從蘇聯(lián)起家繼承下來占大多數(shù)的高科技知識和技術(shù)以及制造業(yè)人才技術(shù),均留在了現(xiàn)在的俄羅斯,俄羅斯就有了很強大的知識技術(shù)儲備,更厲害的是完善的工科系統(tǒng)的高等教育,而且俄羅斯的數(shù)學是世界排名靠前的(據(jù)傳華為的5G算法天才是俄羅斯的少年),從最早的登月,載人航空,最早的計算機,航天飛機,俄羅斯都是領(lǐng)先于中美兩國的,可見其牛B的高層次人才儲備的多牛,就算解體后,也繼承了絕大多數(shù),還有廣大俄語體系地區(qū)國家,他們很早就過上富裕的生活,有著很完善的教育制度,俄語地區(qū)國家,人員的教育程度高,所產(chǎn)生的公共性的知識技術(shù)成果就豐富而且檔次高,不是中國的外觀專利全球第一那么水。
俄羅斯的殺毒軟件卡巴斯基曾經(jīng)安裝到中國的每一臺大學生的個人電腦里,還有俄羅斯有超強的破解能力,俄羅斯的黑客更是牛B到美國肝顫,疑似可以操縱美國網(wǎng)民選票。差的地方就是集成電路硬件不如中國,沒法造,微小的東西俄羅斯望塵莫及,但也架不住人家粗糙的制作能力,也能用。
最后,我國的程序也很豪橫,360很6,以及軍隊的天才少年兒童也很牛,還有國慶閱兵的時候那個博士方正平均年齡25左右太厲害了我的國。
數(shù)學不好可以去學編程嗎?
作為一個愛好數(shù)學恰好又是職業(yè)編程的人,看到這個題目不禁想談?wù)剛€人看法。從業(yè)這么多年,說實話編程根數(shù)學關(guān)系不大但又密不可分。我的觀點是:數(shù)學不好可以去學編程,但數(shù)學程度影響技術(shù)精進。從我身邊及工作中遇到的一些問題總結(jié)說明下,大家也許就更明了了。
不是所有編程的都需要數(shù)學好計算機編程真不是什么輕松職業(yè),可能工資相對于其他行業(yè)略為高一些,隨著互聯(lián)網(wǎng)的發(fā)展,最近幾年計算機培訓機構(gòu)也比較火熱,大多數(shù)人都是沖著工資去的。培訓方向也是比較明確的。除了人工智能這方面需要較高的數(shù)學邏輯,一般的編程都不需要多好的數(shù)學。我了解的幾個從培訓機構(gòu)出來從事編程的人數(shù)學都不是多好,這不影響他們找工作。
數(shù)學好利于技術(shù)精進記得上學時不少人都說,學數(shù)學沒有用,感覺生活中運用不到。當時我也有這種想法,但是隨著時間的流逝,我不贊成這種看法。很多時候不是學的數(shù)學沒用:一是你運用了數(shù)學但是沒有發(fā)覺,因為數(shù)學已經(jīng)融入到生活中了。舉個簡單的例子,你手上有10塊錢,買了2元錢的東西,人家找你8元,這幾乎是條件反射。你沒有覺得數(shù)學對你生活有影響,但它確實是在生活中以多種形式存在。二是你自己沒有發(fā)揮它的作用。就舉個工作中的實事吧。一個新的需求產(chǎn)生,同樣的編程,你編出的代碼跑一遍得花10秒,我運用數(shù)學邏輯編出的跑一遍花了4秒,雖是幾秒之差,但是確實提高了產(chǎn)品性能和體驗度,這就是差別。
回到題主這個問題,我認為數(shù)學不好可以學編程,個人建議題主根據(jù)自己的數(shù)學水平選擇合適的方向發(fā)展,報培訓班時先咨詢下。入行后可結(jié)合數(shù)學再精進技術(shù),任何一個方向,你能做好做精就能有好工資。
我是風中的大石頭,一個從小癡迷數(shù)學的工程師,如果你也喜歡數(shù)學,歡迎關(guān)注一起交流。
以上就是關(guān)于學編程打游戲會厲害嗎嗎和深入學習算法是否成為程序員的剛需就和學英語一樣的相關(guān)問題解答,希望對你有所幫助。