如何正確有效學習大學計算機
如何正確有效學習大學計算機
很多同學想要學習計算機,但是怎么都學不會,為了幫助同學們更好的學習計算機,以下是學習啦小編分享給大家的學習大學計算機的方法,希望可以幫到你!
學習大學計算機的方法
專注并著重于基礎
經(jīng)常有同學向小蒜抱怨編程難學,但是他們的狀態(tài)總是今天看 C 語言課程,明天又看 Java,后天又看 Python,東搞西搞!看到別人做網(wǎng)頁,自己興趣了來了,學學學……這是幾乎所有初學者的通病。多學一些知識并不是壞事,但是如果你今天想學這個,明天又想學那個。這樣你就只能永遠徘徊在技術的門外。
學習計算機科學,最重要的是要打下扎實的基礎,先專注于一門語言,然后再拓展到其他語言,養(yǎng)成快速學習新語言的能力。然后是算法和數(shù)據(jù)結構,這些都是超出語言的,就是說不管是學 C 學 Java 學 Python 還是別的什么,這一部分都是一致的。因此學習這部分的知識可以說是事半功倍的事情。
學會使用搜索
學會正確使用搜索將會幫助你在學習道路上更快地解決問題,有很多同學一遇到問題自己也不思考就急于找人問。在 github、google 和在線網(wǎng)站上面有大多數(shù)現(xiàn)成的解決方案。買本老教授的書學編程的日子已經(jīng)過去了?,F(xiàn)在的代碼來得快去得也快,而至關重要的事情是培養(yǎng)自己快速學習新知識的能力。掌握一些使用搜索引擎的技巧,如學會使用搜索語法、布爾檢索等方法,能讓你在學習的道路上事半功倍。
堅持寫代碼
就像運動員每天鍛煉一樣,經(jīng)常練習寫代碼其實也是學習計算機科學必須要做的。這不僅適用于寫代碼,事實上,這句話可應用于任何行業(yè)。騎自行車,打籃球,讀書,烹飪等等等等。你做的越多,你就會越擅長,熟能生巧就是這個道理。
這也是計算機領域的真理。如果你想擅長編程,那么你就必須每天寫代碼。代碼寫得越多,你才會覺得它越容易,并且越擅長于編程。每天寫代碼,每天學一點新的東西。隨著時間的積累,你不但能學到很多,你也會變得更為優(yōu)秀。
讓代碼錯落有致
錯落有致,使用空格,代碼質量與其整潔度成正比。干凈的代碼,既在質量上較為可靠,也為后期維護、升級奠定了良好的基礎。在課程中小蒜再三提到了養(yǎng)成良好的代碼便攜風格的重要性,但是仍有同學寫的一塌糊涂,既不利于自己檢查找錯,也不利于別人幫助查看。在這里小蒜推薦大家閱讀 Robert C. Martin 寫的《Clean Code》,作者給出了一系列行之有效的整潔代碼操作實踐。
學會檢查與提問
難以有效地自我檢查一直是初學者最大的弊端。小蒜經(jīng)常會遇到有同學因為一個非常小的失誤導致在一個問題上卡殼好久,而發(fā)生這一切只是因為他不愿意回頭去檢查。所以,在你責怪別人之前,先檢查自己的代碼,想一想福爾摩斯的這條建議,“一旦你排除了種種不可能,剩下的不管有多么難以置信,一定就是真相”。
在遇到問題上同理,有很多問題并不是問題本身很難,小蒜遇到的多數(shù)提問者的根本原因是:“沒有明白這個問題究竟是怎樣的問題。”可想而知,當提問者都不清楚自己所面對的問題,回答問題的人也就只能愛莫能助了。
減少熬夜
隨著學得越深,很多同學也染上程序員的惡習——熬夜。雖說有時晚上夜深人靜的時候工作效率奇高,但是放棄睡眠就像是高利貸借款,第二天所要付出的代價非常高昂。當真的累了的時候,往往更容易走上偏執(zhí)的道路,而不是反思路線是否正確。當我們累了的時候,創(chuàng)造力極容易急劇下降以致于想不出創(chuàng)造性的解決方案。而且當你疲倦的時候,你的耐心和忍受力就會受到嚴重的影響,就像炮仗一樣一點就著。
軟件開發(fā)很少是短途沖刺,大多是馬拉松。而且是多場馬拉松。所以,試圖今天壓榨出 110% 的性能而明天只有 70% 的性能可用,絕對是一個壞主意。
學習大學計算機的好處
1.英語為技術插上翅膀
搞計算機的同學應該都知道英語的重要性,至少如果你英語好一些,寫程序不至于捉襟見肘用拼音給變量命名。同時,因為很多先進的技術理念都會以英文形式出現(xiàn),如果你要等到翻譯的版本,一方面要晚一大步,另外一方面,也要忍受翻譯腔的傷害。
至于為什么翻譯的文獻不能盡如人意,一方面是技術人才在翻譯領域的訓練不夠,翻譯也是一門語言轉換的技術;另外一方面是純粹的翻譯往往是外語背景出身,在技術領域的積累也不足,同時翻譯尤其是筆譯行業(yè)的低價,也會造成譯文質量的低下。
但是如果你的英語好一些,可以為你省去大量的精力和時間。只要你搭好梯子就能接入一個無限游弋的世界。當你的思想不會被語言所束縛的時候,你的視野也隨之開闊起來。
我在微軟亞洲研究院實習的時候,有幸和微軟總部研究院的研究員共同完成一項研究課題。在前期和我的導師大量地做文獻調研,制作研究計劃方案,中期遠程會議商討方案,后期完成論文寫作,全部用英語完成。該聊的天,該扯的淡,該爭的觀點,該摳的細節(jié),都不能說中文……雖然我是在國內長大并完成學業(yè),我也沒有出國留學交流,但是我相信我的英文,還是能讓我和領域最好的科學家對話,我覺得這是對我學習成果的肯定。
整個過程最大的感受是,英語的積累的確為我后期工作節(jié)省了大量的看不見的時間,這些看不見的時間是在對比之下才意識到的。在早期讀論文的時候,由于基本上沒有生詞語法障礙,能把關注點放在學術層面,而我是直到見到其他同學拿著字典查論文上的單詞才意識到,我的英語幫助我避開了許多語言的坑。當你在用英語學技術的時候,千萬不要把技術材料學成英語教材,因為這完全是關注點不同的兩件事情。
所以對技術從業(yè)者們,盡管技術的熟稔也許早已讓我們獲得一個不錯的安身立命的技能,以至于我們可以驕傲地說,老子英語不好能看懂文檔說不出又咋樣,不是照樣年薪XX萬?但是我想說,讓英語為你的技術插上翅膀,技術能飛得更遠。至少你搞定了發(fā)音的問題,就不會讀錯一些技術里的單詞,而光是這一點,就已經(jīng)足夠勝出許多技術儕輩了,起碼你可以在一些國際會議的報告上,談笑風生。
2. 技術讓英語如虎添翼
我在業(yè)余時間學習英語和口譯,接觸了許多英語專業(yè)的同學以及英語專業(yè)背景出身的朋友。以英語等外語為基礎并且衍生出的翻譯、口譯等行業(yè)有一個顯著的特點,從業(yè)者多為文科相關背景。人文社科領域雖然也有邏輯相關的訓練,但是整體上在邏輯嚴密性以及定量分析上,較工科或者理科會有一些差距。
這表現(xiàn)在,許多英語學習者包括口譯學習者對于學習和訓練的節(jié)奏,只停留在多練多聽多看的定性層次,但是以我目前接觸到的思考方式,采用系統(tǒng)化、邏輯化、步驟化、數(shù)量化的方法來思考,并且用于指導行動的,少之又少。
而這些恰恰又是計算機專業(yè)訓練的強項,不管是系統(tǒng)流程還是白盒黑盒,不管是算法步驟還是輸入輸出,借鑒計算機構造的體系和世界,映射到英語或者口譯的世界中,定量分析,定性調整,不論是對于英語學習還是口譯訓練,都會有極大的推動作用。
借助這個思想,我發(fā)起了口譯100小時訓練訓練,十萬字筆譯/視譯訓練計劃,以及1000天持續(xù)行動框架計劃……引入量化機制,設定步驟,強化落地執(zhí)行。同時,也采用一些簡單的程序,做一些關于詞的分析和處理,編寫一些小工具,以更好地輔助英語和口譯的訓練。我還成立了一個社群叫ScalersTalk成長會,用行動和成長的視角,以“從英語初階到同聲傳譯”的成長框架,規(guī)劃并執(zhí)行整體的英語技能提升。
大數(shù)據(jù)時代,計算機技術可以讓計算機做一些粗略的翻譯,有的人甚至揚言要代替同聲傳譯,但是如果你介入到口譯的訓練中,你會發(fā)現(xiàn),以計算機的智能,在一段時間內,還真是無法替代人的作用;而倘若你把技術代入英語,卻能起到奇效,讓英語更加如虎添翼。
3.兩個領域的相通性提供對世界更本質的理解
計算機要編程,編程有程序語言,這是用于和計算機溝通的工具。英語是自然語言,人類交流溝通的媒介,也是人類文明傳承的重要方式。從語言的角度,兩者具有很強的相通性。
當我們學習計算機技術,從計算機組成原理高性能計算,到計算機程序語言編譯原理,再到數(shù)據(jù)結構與算法分析設計,到數(shù)據(jù)庫系統(tǒng)以及所謂的大數(shù)據(jù),再到密碼學網(wǎng)絡信息安全……這是一套幾十年工程師以及計算機科學家工作積累演進的成果。每一代計算機行業(yè)從業(yè)者在前人的基礎上開拓創(chuàng)新,才推動了整個社會信息技術的發(fā)展,才有了今天的移動互聯(lián)網(wǎng)時代的大潮流。
當我們學習英語以及在此之后的口譯,我們從盎格魯撒克遜到莎士比亞,從日不落的大不列顛再到美利堅合眾國,英語的演化伴隨著日耳曼民族的發(fā)展,伴隨著英國統(tǒng)領全球的輝煌,伴隨著美國成為全球最強國的崛起……從紐倫堡國際軍事法庭第一次同聲傳譯,到聯(lián)合國大會多語言同傳接力工作,再到每年兩會總理記者會的亮眼高翻……不管是英語,還是依托英語之上的口譯,都是和世界連接的重要渠道,一種讓聲音變得具有全球兼容性的解決方案。
兩個領域的有自己的特點,又有自己的相通性。你可以理解,英語和計算機技術都是工具,一個承載文明的演進,一個以比特形式承載信息的流動,而后者也將以一種更基礎的方式承載我們的一切生活。我們關于未來的想象,可以由這兩項重大工具,通往全球各地,通往各往各業(yè)。
把握好這種相通性,你可以獲得一種自信。這種自信可以給你一種淡然,讓你面對困難時自如,面對挑戰(zhàn)時淡定。因為二者都可以讓你和整個世界相連,當你能連上這個最大資源,視野更開闊,內心也更富足。
當然駕馭好二者的差異性,你又能獲得一種游走的自如。寫程序很燒腦,但是你可以刷刷口譯;如果算法讓你思維堵住,你不妨來一段奧巴馬在聯(lián)大演講的口譯訓練。左腦右腦交替使用,神清氣爽,相當于提高了一倍的使用效率,帶寬翻倍。
有的人說,你的語言的邊界就是你的世界的邊界,在我做ScalersTalk微信公眾號的日子里,有幸結識了學習英語、俄羅斯語、法語、德語、西班牙語、葡萄牙語、日語、韓語等的朋友,我發(fā)現(xiàn)真的就是這樣,一個語言就是一片天地,就是一個世界。
但是我還是要補充一下,當你在這個基礎上,把計算機技術納入考慮,這豈止是打開了一個新世界,這就是增加了一個新維度。
學習大學計算機必看書籍
《深入理解計算機系統(tǒng)》
(原書第3版)
書籍簡介
ISBN:978-7-111-54493-7
作者:蘭德爾 E.布萊恩特、大衛(wèi) R. 奧哈拉倫
譯者:龔奕利 賀蓮 譯
定價:139.00
出版時間:2016/11
計算機系統(tǒng)入門的經(jīng)典書籍,從程序員視角全面剖析的實現(xiàn)細節(jié),使讀者深刻理解程序的行為,將所有計算機系統(tǒng)的相關知識融會貫通。第3版相較上一版內容上最大的變化是,從以IA32和x86-64為基礎轉變?yōu)橥耆詘86-64為基礎。主要更新如下:
基于x86-64,大量地重寫代碼,首次介紹對處理浮點數(shù)據(jù)的程序的機器級支持。
處理器體系結構修改為支持64位字和操作的設計。
引入更多的功能單元和更復雜的控制邏輯,使基于程序數(shù)據(jù)流表示的程序性能模型預測更加可靠。
擴充關于用GOT和PLT創(chuàng)建與位置無關代碼的討論,描述了更加強大的鏈接技術(比如庫打樁)。
增加了對信號處理程序更細致的描述,包括異步信號安全的函數(shù)等。
采用新函數(shù),更新了與協(xié)議無關和線程安全的網(wǎng)絡編程。
《計算機系統(tǒng)概論》
(原書第2版)
書籍簡介
ISBN:978-7-111-21556-1
作者:[美]派特、派特爾
譯者:梁阿磊,蔣興昌,林凌譯
定價:49.00
出版時間:2007/07
計算機系統(tǒng)的另一本經(jīng)典著作,作者是與Donald E. Knuth齊名的美國計算機界泰斗級專家Yale N. Patt。本書站在計算機整體系統(tǒng)的高度將軟硬件連貫起來進行闡述,強調對軟硬件結合的理解,從硬件的基本構件一直講到軟件的高級程序設計與構造,使讀者在學習過程中能夠將軟硬件融會貫通、相互印證。
本書最大的特點是其提倡的層次轉換概念,即從問題開始到計算機運算出結果可以分為七個層次。通過七個層次的轉換,即可完成從問題到結果的轉變。
《計算機系統(tǒng)》
系統(tǒng)架構與操作系統(tǒng)的高度集成
書籍簡介
ISBN:978-7-111-50636-2
作者:阿麥肯尚爾·拉姆阿堪德蘭、小威廉 D. 萊希
譯者:陳文光 等譯
定價:99.00
出版時間:2015/07
美國佐治亞理工學院的教材。與《深入理解計算機系統(tǒng)》從程序員視角來講解計算機系統(tǒng),內容偏向系統(tǒng)軟件(特別是操作系統(tǒng))不同,本書在計算機系統(tǒng)結構和操作系統(tǒng)的內容基本平衡,旨在讓讀者了解計算機體系結構和系統(tǒng)軟件之間的關系,為進一步深入學習計算機體系結構、操作系統(tǒng)和網(wǎng)絡的高級課程打下基礎。
《計算機系統(tǒng)》
核心概念及軟硬件實現(xiàn)(原書第4版)
書籍簡介
ISBN:978-7-111-50783-3
作者:J. 斯坦利·沃法德
譯者:龔奕利 譯
定價:79.00
出版時間:2015/07
本書用一個虛擬的計算機系統(tǒng)Pep/8系統(tǒng)展示了計算機系統(tǒng)的7個抽象層次:應用層、高級語言層、匯編層、操作系統(tǒng)層、指令集架構層、微代碼層和邏輯門層,最大的特色就是著眼于計算機軟件和硬件系統(tǒng)背后的設計原理,而這些原理數(shù)年來都未曾改變過。而且,去除那些眼花繚亂的新技術的表象,能夠更好地看清和理解系統(tǒng)的本質。
計算機系統(tǒng)基礎
袁春風 編著
書籍簡介
ISBN:978-7-111-46477-8
作者:袁春風 編著
定價:49.00
出版時間:2014/07
作者對美國麻省理工學院、加州大學伯克利分校、斯坦福大學、卡內基梅隆大學等著名大學與計算機系統(tǒng)有關的課程進行了深入的對比分析后,結合我國學生的基礎和需求編寫的本土化教程。
猜你喜歡: