大學(xué)四年應(yīng)該如何做?
說幾點建議吧:
1.擺正心態(tài):
a.不要老暗示自己,我不是科班出身,所以我這也不會,那也不會,好像這些是理所應(yīng)當(dāng)?shù)?。潛意識里生出了許多自我絆腳石/借口/畏懼心理。別給自己打退堂鼓,別給自己這種毫無益處的心理負(fù)擔(dān)。 你又知道計算機(jī)本科畢業(yè)的就什么都懂了?很多混出來的知識點照樣不能融會貫通,再正常不過。。記住,大概沒什么比編程更適合自學(xué)的東西了,何況現(xiàn)在上網(wǎng)那么方便!!
b.永遠(yuǎn)不要等著別人來告訴你你該干什么
雖然很多大牛不吝分享,更有熱心者給初學(xué)/入門定了詳細(xì)的升級攻略。。但你精力有限,看完一篇指南又看另一篇,mooc也滿天飛,眼花繚亂反而無從下手。。你只需要有針對性地,根據(jù)自己的情況(興趣,基礎(chǔ),目標(biāo)),去選你該做哪一步。重點是“你要主動”。
2.具體方法:
你接觸到byte感到陌生/不懂文件如何運行,別人不難給你推薦相關(guān)的書,但是你能保證自己看下去嗎?
你很可能看著看著,發(fā)現(xiàn)更多的問題,覺得“我不是計算機(jī),所以我不懂”,然后“認(rèn)命”地放棄。
這里的建議是,在看書之前,明確自己想知道什么,帶著問題去讀。比如我就是想知道
1)計算機(jī)怎么工作的,程序怎么轉(zhuǎn)換成機(jī)器語言怎么控制電子器件控制輸出電平表示01?
人類制造的最不可思議的機(jī)器有哪些? - 李晨旸的回答 恩,心懷敬畏。盡管還沒答完。。
2)代碼怎么編譯鏈接,怎么分配內(nèi)存,然后實現(xiàn)我想要的效果啊,編譯器做了什么???各種關(guān)系怎么理順?
程序員的自我修養(yǎng) (豆瓣) 的第一個書評(書的副標(biāo)題是 鏈接、裝載與庫)
如果你聽到這堆東西的時候,反應(yīng)是,“啊,又暈了”然后開始懷疑自己適不適合學(xué)編程,陷入無謂的焦慮中,那么兩條路:
1)按1.a調(diào)整心態(tài),“我不懂,我好奇,我想把他弄懂”,
2)或者如果你沒興趣,那你直接去寫代碼嘛。。你不知道汽車的原理,你照樣可以開車啊。(盡管這個經(jīng)典的比喻是說知其所以然or拿來主義兩種態(tài)度。知其所以然當(dāng)然更容易變通,然而我覺得剛學(xué)開車時不懂汽車原理也不是什么可恥的事,何況每個人關(guān)注點不同而已。)我在構(gòu)建自己的知識大廈時,對事物的本質(zhì)和聯(lián)系性有近乎偏執(zhí)的追求,然而在入門階段,你可以放下對原理的執(zhí)念,保持興趣也很重要啊。誰說了一定要弄明白“文件怎么運行一下就有結(jié)果”這種神奇的事,才能編程啦?。ǔ悄愕呐d趣就在原理)現(xiàn)在中小學(xué)生都能編寫各種小玩意,但是她們很多數(shù)學(xué)都沒學(xué)過呢。
3.硬要推薦書的話:
1)無非《編碼 (豆瓣)》;
2)隨便哪本數(shù)電的書講進(jìn)制轉(zhuǎn)換、碼制轉(zhuǎn)換、浮點數(shù)的部分;
3)隨便哪本微機(jī)原理講處理器內(nèi)部結(jié)構(gòu),尋址,時序,指令系統(tǒng),存儲,中斷的部分。。。
4)甚至可以看一些高質(zhì)量的專欄文章。。雖然很快餐,但對于“掃除陌生感”很有幫助。
不建議直接去看那些好多所謂經(jīng)典的書,雖然評價很高,但推薦的人未必他自己仔細(xì)讀過,更多時候他不太會直接讀那本入門。入門啃磚頭容易困啊,細(xì)節(jié)推導(dǎo)多的飛起,讓人懷疑人生啊。。(雖然每個人情況不同,反正尼瑪《算法導(dǎo)論》當(dāng)入門我承認(rèn)你夠叼)。。
經(jīng)典的書不是不好,有些書非常系統(tǒng)也對這些問題比較有針對性。未必適合初學(xué)者。有很多別的書/博客/各種資源都會引用相關(guān)概念,計算機(jī)的學(xué)生教材也不盡相同(選什么并沒多大差別),所以搞清楚自己的目的。
重申下,在入門階段保持興趣很重要。自己大一大二時也不是把原理吃的透透的,為何要要求別人這樣呢。學(xué)習(xí)是螺旋式上升的過程。
你看的時候,如果遇到任何所謂專業(yè)詞,遇到任何不懂的概念,你就當(dāng)做是和他們培養(yǎng)感情,就是即視感,反正耳濡目染得多了,也就漸漸熟悉了。誰都是從不懂到懂的呀。
當(dāng)然所謂門外漢也別老給自己貼標(biāo)簽,好像自己智商就應(yīng)該比別人低一樣。