1. 程式人生 > >計算機基礎知識對編程的重要性

計算機基礎知識對編程的重要性

圖形圖像 深度 紮實 如果 建議 時間 來看 name 日常

碼農和架構師的差別在哪裏

從題目看文章,大家的第一想法是本篇文章是一篇講述計算機基礎知識和編程之間的關系,但是為什麽開篇是這樣的呢?當然這樣的開篇並沒有多大的意義,唯一的目的就是吸引讀者而已。

縱觀計算機專業的學生在畢業之後大多數會走向編寫程序的道路,當然也會有部分同學有自己更感興趣的事情,從而在畢業之後選擇其他的職業。在這裏根據我個人在畢業之後的編寫程序的道路,寫下一點總結,希望能和大家交流,有什麽不對的地方,希望大家能給我指正,因為我個人覺得“三人行必有我師”是一句很有道理的話,每個人對同一件事情都有自己的看法,也就會發現別人沒有發現的但是又有一定道理的觀點。

上面的話說的有點模棱兩可了,主要也是受到自己最近所閱讀的書籍的影響,廢話不多說,接下來進入正題。

這一節的題目有點大,碼農和架構師的區別在哪裏呢?如果問你自己你會怎麽回答呢?對於我來說,主要的區別在於以下幾個方面,相比與碼農來說架構師具有更加紮實的基礎知識、更好的抽象能力、更豐富項目經驗。

紮實的基礎是必備的而且是最為基本的條件,但是就我個人看來,目前的大部分學校的計算機相關專業的學生基礎都是非常的薄弱,不是為了應付考試就是為了應付面試,才去把相應的計算機的基礎課本翻出來看看背背,應付完了之後一段時間之後就忘記了,因為覺得這些東西沒有什麽用,而且枯燥乏味,不如動手寫兩行程序更讓人有一種滿足感。於是我們放棄了計算機基礎知識的學習理解,慢慢的轉向機械式的調用API,虛假的成就感擋住了我們前進的道路,限制了我們思考的深度。越是在這種情況下,我們反而會自我感覺良好,覺得好像自己如果畢業之後馬上就能大展手腳,成就一番事業。然而一切的一切都是一葉障目,擋住了我們本來應該前進的步伐,而停滯不前,大學的時光就這樣被白白的浪費了。只有當我們真正的參加到工作、接觸到了更多的真實的項目、更多有經驗的人的時候我們才發現原來自己在學校引以為豪的東西只不過是井底之蛙眼中的那一小塊天空,在這個時候我們的眼光慢慢的打開,看到了我們以前一直沒有註意但是又熟悉的東西。但是我們基本上只是熟悉而已,在這種情況下才明白計算機的基礎知識是多麽的重要,它是你理解更高層次的概念的引路石,沒有它們做鋪墊完全就沒有辦法理解程序語言中的很多概念,不能很好的掌握其中的設計思路、設計理念,就沒有辦法寫出高質量的程序,一旦出現問題就像無頭蒼蠅找不了前進的方向、然後就病急亂投醫,花了大把的時間卻沒有得到多大的成果。慢慢的慢慢的感覺如果自己不把那些基礎知識惡補起來,那麽在自己職業前進的道路上會非常的艱難。

剛才上面的那些都是我個人的真實的寫照,那段經歷也是我為什麽一直強調計算機基礎知識重要性的原因了,當然後來我自己也惡補了基礎知識,並且將其應用到了我的日常工作中,對我自己的提升是非常顯著的,包括在源碼的閱讀上,以及重要框架的設計上,都有著舉足輕重的作用。

在惡補計算機基礎知識的過程中,我發覺有一些概念是很抽象的,文字沒有多長,但是就是很難將該段文字總結的場景或者是過程在大腦裏面清晰的還原(對於抽象的概念,我會通過翻閱其他的資料將它和某個場景或者過程聯系起來,這樣對抽象的概念的理解會更加的深刻,而且不容易忘記),在這種情況,需要的是翻閱相關的資料,以及思考,在現代這個互聯網的時代,我們漸漸的喜歡快節奏的東西、喜歡上不用太多思考的東西,所以我們離思考也越來越遠,但是很多深刻的東西仍然需要我們不斷的思考才能理解其本質,才能真正的唯我們所用,只有唯我們所用了,我們才能在其基礎上創造更多更好的東西。

項目經驗當然也是必不可少的,項目經驗帶給我們的思考是技術和需求的一個契合的問題,什麽樣的需求用哪些技術能更好的完成,以及技術之間如何搭配使用可以達到更好的效果,這就有點感覺想廚師通過不斷的試菜完成自己的菜譜一樣,通過項目的錘煉,總結出自己的菜譜。

計算機基礎知識包含哪些?

在這裏說計算機的基礎知識有點妄自菲薄了,畢竟自己接觸計算機的時間也不是特別久,而且也沒有什麽建樹,不過抱著分享的態度在這裏陳述一下我個人的理解。

首先不得不說的是《計算機操作系統》,計算機操作系統是非常重要的基礎知識,建議在學習操作系統的時候,仔細去了解一下操作系統的啟動流程,操作系統的啟動流程對於真正理解什麽是操作系統有著特別重要的作用。裏面進程、線程概念一定要深入的理解,建議配合《Linux內核源碼的分析》來看,這樣可以有一個比較直觀的感受,當然還有內存的管理機制也是非常重要的,如果對於以後想要從事操作系統底層開發的人來說,還需要了解可執行文件的格式相關的信息,如果想要自己動手寫一寫,可以先從修改和編譯Linux內核開始,當然還有一本書籍也不錯《30天自制操作系統》,這本書呢必須得有一定的硬件基礎才能看懂,建議看一些系統結構相關的數據,還有就是不得不參考的《intel80386》的手冊。

還有就是《計算機網絡》,在現在這個互聯網的時代,計算機網絡是根本,所有必須的好好的學習,這些基礎知識不論是對以後寫程序,還是以後生活中的使用都是至關重要的。

最後就是《編譯原理》、《數據結構》,這兩本書籍建議好好的品讀,比如說《編譯原理》能幫助我們理解為什麽程序從源代碼到可執行程序的過程,還有就是不同語言之間如何相互調用的(同時也必須了解可執行文件的格式)。比如《數據結構》可以幫我們理解數據庫的實現原理,文件系統的實現原理等等,建議可以看看《Linux內核的設計與實現》中的ext2文件系統的實現源碼!

最後還有就是好好的把數學學好,什麽《高數》《線數》等,特別在圖形圖像裏面用的很多

多的就不多說了,如果把計算機的基礎知識學好了,其他更加高級的技術只是在基礎知識上的重新組合!

計算機基礎知識對編程的重要性