天天看點

入職學習(1)--一個程式員的成長史(21)

看到鄒總發的郵件之後,唐師傅馬上在公司的内部即時通訊工具zQQ上給代是雄發了一個消息,問他對于計算機的基礎知識掌握得怎樣。zQQ是Z公司開發的一個類似于QQ這樣的專門用于内部溝通的工具,最開始的時候,代是雄覺得有點奇怪:為什麼公司不直接讓員工用QQ進行溝通呢?後來,代是雄才了解到,公司這樣做的目的是為了“資訊安全”。在我大天朝的很多軟體公司裡有着種種奇葩的規定,不準員工在工作電腦上安裝QQ、微信、微網誌等即時通訊工具便是其中一項。之是以有此規定,是因為公司怕員工在上班的時候将程式代碼、設計文檔、專利等發送出去了,進而對公司的業務造成影響。了解到這些之後,代是雄在心中默念到:不準員工用QQ的公司不是好公司。

對于唐師傅的這個問題,代是雄真不知道怎麼回答才好。也許是發現了自己剛才那個問題比較的抽象,唐師傅換了一種詢問方式,叫代是雄回答下面三個問題:

問題一:簡述一下計算機的硬體組成及其關鍵部件。 問題二:簡述一下作業系統及其功能。 問題三:簡述一下線程及其作用。

對于上面三個問題,唐師傅讓代是雄根據自己所了解的進行回答,不要到書上或網上去查資料。

看到這幾個問題之後,代是雄便開始琢磨了,自己雖然讀了一個計算機專業的研究所學生,但實際上并不是科班出身的,并沒有專門上過有關計算機組成和作業系統相關的課程,也就是大四保研之後到圖書館裡面借了幾本書來大緻看了一下。對于書中的内容,到現在也基本上都忘光了。但是,唐師傅已經問到了,代是雄也不可能不回答。于是,他隻能憑借自己有限的記憶來回答這幾個問題了。

代是雄并沒有急着将自己所知道的零零散散的東西直接在zQQ上發給唐師傅,而是在自己的電腦上建立了一個word文檔,等将自己的思路理清楚之後,再把最終的文檔發給唐師傅。

經過多番思考及多輪的心理掙紮之後,對于上面幾個問題,代是雄給出了自己的回答:

問題一的回答:

一個完整的計算機是由硬體部分和軟體部分組成的。計算機的硬體有五大組成部件:運算器、控制器、存儲器、輸入裝置和輸出裝置;其中運算器和控制器合起來組成了中央處理器(CPU),輸入裝置和輸出裝置通常合在一起被稱作輸入輸出(I/O)裝置。

計算機硬體中的關鍵部件有三個:中央處理器(CPU)、存儲器和輸入輸出(I/O)裝置。

問題二的回答:

作業系統(Operating System,簡稱OS)也是一種計算機程式,它用于管理和控制計算機硬體與軟體資源,任何其它軟體都必須在作業系統的支援下才能夠運作。

作業系統的功能非常的複雜,包括管理計算機系統的硬體、軟體及資料資源,控制程式運作,改善人機界面,為其它應用軟體提供支援等。簡單地說,作業系統有兩個主要的功能,一個是提供抽象的接口,另外一個是管理硬體資源。

問題三的回答:

線程,有時被稱為輕量級程序(LWP),是程式執行流的最小機關;一個标準的線程由線程ID、目前指令指針(PC)、寄存器集合和堆棧組成。

一個程序由一個到多個線程組成,各個線程之間共享程式的記憶體空間(包括代碼段、資料段、堆等)及一些程序級的資源(如打開檔案和信号)。

在很多程式中,都要使用多線程,其原因有以下幾點:

1)某個操作可能會陷入長時間等待,等待的線程會進入睡眠狀态,無法繼續執行,多線程執行可以有效利用等待的時間。

2)某個操作會消耗大量的時間,如果隻有一個線程,程式和使用者之間的互動會中斷。

3)程式邏輯本身就要求并發操作。

4)多CPU或多核計算機,本身具備同時執行多個線程的能力。

5)相對于多程序應用,多線程在資料共享方面效率要高很多。

線程的主要作用是提高程式的執行效率,合理使用本來就很稀缺的計算機資源。

簡單回答了唐師傅提出的幾個問題之後,代是雄将答案都放在了word文檔中,并按照畢業論文的格式排好了版,然後發給了唐師傅。在工作中,每個人不光是要準備好答案,還要注意讓别人閱讀起來比較的友善,這也算是一個人的一種素質吧。很多職場中人可能見過身邊有很多牛人雖然腦子裡懂的東西很多,但就是不能簡單明了地表達他們的想法,這也影響了他們的職業發展。

讀了代是雄的答複之後,唐師傅回答了一個“還不錯”。代是雄也不知道他的這個不錯是什麼意思,師傅之心如海底針啊!

那麼,接下來,唐師傅會為代是雄制定什麼樣的學習計劃呢?

繼續閱讀