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