閱讀的總結

2021-07-27 23:33:18 字數 4301 閱讀 6044

閱讀文章總結

主題 -計算機畢業生應該具備的能力

-大牛給計算機畢業生的7個建議

-作業系統是如何改變我的

-心機婊

-暗藏殺機的選擇題

一.計算機畢業生應該具備的能力

acm委員會對比畢業生該具有的能力可以總結為三個部分:

1.對整個計算機體系的理解:你該知道整個計算機體系由上至下的各個層次是什麼,每個層次之間的聯絡,關係,差別,建立起來乙個完整的計算機體系。

2.計算機的應用:你需要熟悉技術層面的知識,你需要有動手解決問題的能力,你需要有一定的專案經驗,能夠將所學的知識靈活運用到實際的專案中。

3.計算機行業的職業素養:具備終身學習能力,承擔該承擔的責任,培養自己專業的溝通組織能力,對特定領域具備鑑賞能力。

從總體的文章上看下來,每乙個點都說的很有道理,我會思考,那麼我該如何用最後一年去盡量接近這個要求呢?

首先,從現在的專業課做起,你要知道自己為什麼要學習這門專業課,你要知道這門專業課對於你學習整個計算機體系的作用,甚至對於一些硬體課,你要思考,當我在打下這一行**的時候,整個計算機是怎麼執行的,你要對知識深入,你要讓自己」軸「一點,我認為大多數成功的人都有一種固執感,固執於去鑽研自己的專業,學問,知其然知其所以然,這是很重要的。

其次,在今年的專案經驗裡,要去對整個專案進行分析把握,你要知道怎麼去統籌規劃乙個專案,你要懂得和人溝通,承擔起相關的責任,並且在每個專案中,都和自己的專業知識聯絡起來:為什麼我的float會溢位,到底是底層硬體發生了什麼,如何讓整個程式跑的更快等。

二.大牛給計算機畢業生的7個建議

作者強調的「軟實力「分為:

1.對於計算機專業技能的練習:你需要有大量的程式設計實現,學會書寫自己的專案文件。

2.對課外知識的擴充套件:連線經濟學基礎,選秀有趣的非計算機專業的課程,找到暑假實習

總體來說,作者的建議對於計算機學生的專業素養的培養,是十分中肯的,我們在日程的開發和學習中,應該學習作者的一項技能:為什麼我要做這件事情。

從作者的大學生活看上去,他並不是乙個很功利性學習的人,他不僅僅學習到程式設計,他還了解到了專業之外的東西,當然,他對計算機的行業也是有自己專業的看法的,但是他還涉及到了微觀經濟學,以及程式設計意外的東西,是的,我的觀點和作者是相似的,我認為技術要能轉化為創造財富,你要知道該項技術能對你的生活起到什麼樣的作用,你要知道該技術能怎麼投入到市場中,如果人們只是發現技術的便利性,而不將其用於商業的競爭的話,技術會停滯不前,就像amd和nvidia,兩個公司我認為正是因為相互競爭,而不斷摩擦碰撞出新的火花,這是十分偉大的,技術的魅力也正是在這裡。

其次作者提到了實踐的重要性,是的,實踐的重要性對於計算機專業的學生來說必不可少,這是乙個需要動手解決問題的行業,我也希望暑假能有機會去體驗一下大公司的實習,看看真正的開發是什麼樣子的。

最後我想說的是練習,練習,練習。就像作者所說,我們是電腦科學專業的學生,學校只會花大量的時間教會你實現迴圈語句的寫法,這需要我們自己在課下花加倍的時間去學習,深入我們感興趣的方向,要學會主動的學習,主動的探索知識,從熱愛這一門專業,到熟練他,最後再投入熱愛中去。

三.作業系統是如何改變我的總結

作者在對作業系統學習過程中,將學會了除錯放在乙個最重要的部分重點介紹,可見其對整個程式的重要性,在我日常寫**時,也是和作者之前一樣,用肉眼去一行一行掃瞄我的**本身,而不是完全的按照除錯方法,我將這個列入學習名單,並將在之後的minic編譯器中使用和熟練。

其次作者提到了作業系統課程帶給他大量的**量和對於底層效率提高的思考,在之前寫**只在意是否完成,而不是去思考如何讓這個程式跑的更快,將硬體軟體結合在一起思考如何高效程式設計。

其次,在專案團隊的組建過程中要盡量選擇積極向上的同伴,相互鼓勵,相互促進,對於整個專案的完整性十分重要,在寫程式之前要對整個程式進行分析把控,安排合理,才能有序高效完成任務!

但是回顧現實中的情景,不得不扼腕嘆息:不是每乙個同學都和你一樣具有足夠的開發熱情。這其實也就是說,我們需要開闢自己的社交圈,技術圈子,盡量的和積極向上的人一起工作,開發,相互促進,相互提高,這是十分重要的,也是我今後要學習的。

其次,本篇文章提到的對整個計算機系統層次的理解這一點也是十分重要的,硬體如何和軟體結合,硬體通過呼叫怎麼樣的過程實現,作業系統在其間的作用,這都是需要我們進一步去思考的,組合語言到底是什麼,學習了有什麼用?

我打算帶著作者的觀點去進一步在我的專案中去探索深入,希望有機會可以繼續分享觀點。

四.心機婊!一道單選題需要考查這麼多知識嗎?

從題目的形式上看,這是一道資料結構中考察時間複雜度的「基礎題」,但是,看完整篇文章:它並不基礎。

首先,你要理解原理:

1.計算機的位數表示受硬體限制,會導致程式無法正常執行而停止。

2. 計算機硬體四如何實現while迴圈的

3.f(x)函式的實際呼叫情況如何

4.計算機硬體對於遞迴的實現

5.題幹中提出的應用場合的思考:什麼叫做主流配置的pc

這道題目看上去簡單,但是仔細去思考卻發現完全沒有頭緒,這道題目可能在考試的時候,真的沒有時間去思考的那麼細緻,畢竟時間真的只有那麼幾小時,還是決定了你是非能夠進入名企的重大考試,所以,我會覺得,這道題適合在課下進行思考,那麼,考試的時候該怎麼去思考呢?

首先,一般來說,這是乙個一直在迴圈遞迴的過程,那麼我們知道遞迴棧在不停迴圈的過程中,很有可能會溢位,程式會自動結束,從猜題的角度上看的話,其實只需要考慮這麼幾個角度,答案設定分為三檔,第一:很快結束,第二:一會兒結束,第三:很久以後才結束,答案很明顯只會出現在第一和三種情況中,再加上在目前的主流的pc配置上,我的生命裡暫時沒有出現過,可以死迴圈幾小時不結束的小遞迴,所以綜上,我會猜a。

但是畢竟不是每一次我都能那麼幸運的猜對,那麼這篇文章分析了什麼呢?

你要理解資料結構的相關知識,其次,你需要知道計算機內部,cpu內對於你的遞迴和迴圈到底做了什麼,最後你要知道,什麼叫做主流的pc。

這一道題更加適合作為大題來讓人分析,更能考察乙個人對於計算機體系的全體理解,但是我覺得,面試官把這樣的一道題作為乙個選擇題的目的肯定不是在於讓你去細緻的分析,我認為面對問題,大膽的去猜測,可能也是乙個技術人員很重要的能力之一,如果在面對乙個小問題的時候,你花費了大量的時間去研究整個系統的各個細節,那這個公司可能,早就被日新月異的計算機行業給淘汰了,有時候不拘小節,可以提高效率,但是,在解決問題了之後,我們一定要回過頭去問自己,為什麼?

這也是我之前文章提到的觀點,當前的問題解決了,那麼下次怎麼辦呢?所以我認為,在面對問題的時候,在重要緊急的關頭,不如放膽的去一猜,在解決問題之後,我們不妨,細細琢磨琢磨,到底是為什麼,就像這道選擇題,要真在阿里巴巴面試中思考上一小時,真的很有可能掛掉。。。

五.暗藏殺機的選擇題

對於人眼無法觀察出來的結果,我們經常使用的一種方法,即是將其轉化為**去實現,筆者也是這樣的,從**執行的角度去思考結果是如何的。

但是,真的很難看懂,特別是組合語言的實現那個部分,最厲害的點在於,對於**分析的過程中,筆者居然考慮到:「static變數的訪問速度要遠遠慢於普通的變數」,這種角度,真的很令人敬佩,其次在於對多執行緒程式的理解,我猜測這一部分的知識是屬於作業系統的知識,所以看不太懂,多執行緒程式刷回記憶體之類的,其次看不懂的點在於,函式優化呼叫方式時間的那一塊,為什麼優化方式不同,占用的棧大小不同。

在選擇題(一)文章中,作者基於棧大小為2m為分界進行的分類討論,得到分析結果和實際執行結構相差乙個數量級的結論,這一點對於組合語言的掌握,整個計算機系統組成的理解,都是十分深刻的,將軟體硬體各個階層融會貫通進行討論,在編寫**的同時,大腦裡也對映出來了整個計算機要如何呼叫記憶體,這一點沒有對整個計算機體系的理解是難以做到的,令人敬佩。

選擇題(二)文章中,主要**的問題是:為什麼記憶體明明夠用,但是程序還是會被殺死,原因為以下兩點,第一,當空閒記憶體存在大量碎片或者沒有空閒記憶體時,呼叫kswapd(kernel swap out daemon 核心頁面置換守護程序),在kswapd中執行迴圈,在進行完out_of_memory()函式判斷之後,則選擇乙個程序殺死,並且釋放其所占用的記憶體空間,該部分的難點在於,對linux核心的源**的理解,這其實也提示我們在日常學習中要注意積累對於源**的理解,並且具備閱讀源**的能力。

選擇題(三)文章,進一步的對oom_kill(),select_bad_process()兩個函式的原始碼的解釋,最終得到的程序被殺死的原因在於:被測試程序在執行到占用虛擬記憶體14g,rss 12g的時候,檢測到:空閒頁面數量<=規定的空閒頁最小數量。且空閒頁面數+不活躍的未修改過的頁面數量<=規定的空閒頁數量的低界限值,沒有足夠的交換空間三個條件同時滿足,呼叫oom_kill()函式,該函式總的策略是選擇占用記憶體空間大、執行時間長的程序作為被殺死程序,結果是被測程序中獎,成功被選為被殺死程序。核心**的printk(kern_err "out of memory: killed process %d(%s).\n", p->pid, p->comm);與顯示的輸出資訊一致。

linux核心閱讀總結

接著上篇cfs學習總結,下面對很久前看的一些linux核心的主要模組寫了個簡單的總結,本總結個人針對某個模組的回憶,並不針對原始碼,主要目的是一方面加強自己的記憶,另一方面提煉出一些東西與大家分享 有時候 看多了,對某個模組反而沒有了乙個整體的概念 一 linux啟動過程分析 linux的啟動過程可...

String原始碼閱讀總結

1 charat index 獲取字元 codepointat 提取索引字元 點 2 string 和 charsequence 關係 string 繼承於charsequence,也就是說string也是charsequence型別。charsequence是乙個介面,它只包括length cha...

關於寫了閱讀器後的總結

1.設計模式 單例模式,例項化。單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。2.響應式布局 通過 media來實現 乙個小例子 media screen and max width 300px 4.html5的api要...