非專業(yè)coding教程1:程序員不是修電腦的

多少程序員看到這個(gè)標(biāo)題會(huì)有一種:“哦干顽染!說(shuō)得對(duì)漾岳!”的感覺。

一個(gè)程序員不一定會(huì)修電腦粉寞、修路由尼荆、選電腦配置、破解密碼唧垦、修圖耀找、使用大智慧∫笛拢……嗯野芒,最后一個(gè)例子是真實(shí)故事:有個(gè)同學(xué)搭一個(gè)大叔的便車,車上大叔問:“你是學(xué)軟件的双炕?那能不能教我怎么用大智慧炒股狞悲?” 超級(jí)汗顏啦。

這一章的目的就是讓你知道什么是編程妇斤,以及為什么程摇锋!序!員站超!不荸恕!是!修死相!電融求!腦!的K愦椤生宛!

一、硬件與操作系統(tǒng)

操作系統(tǒng)負(fù)責(zé)指揮電腦硬件肮柜,并提供接口給編程人員使用陷舅。這句話可能有點(diǎn)艱澀難懂,但是先不要急审洞,先記著莱睁。

計(jì)算機(jī)在安裝操作系統(tǒng)之前只是一堆硬件,它們有些可以提供高速的計(jì)算能力,比如說(shuō)CUP仰剿, 有些可以提供高速的數(shù)據(jù)傳輸能力耙箍,比如說(shuō)內(nèi)存。我們可以稱它們?yōu)橛布百Y源”酥馍”缋ィ“資源”這個(gè)詞是第一個(gè)在這系列文章中出現(xiàn)的高頻詞,我用來(lái)泛指一切可以被另外一個(gè)東西使用的東西旨袒。不要在意這拗口的句子了汁针。嗯,一臺(tái)電腦就是一堆的硬件資源砚尽,它們并不知道怎么相互配合來(lái)創(chuàng)造這么一個(gè)五彩繽紛的計(jì)算機(jī)世界施无,它們需要一個(gè)統(tǒng)一的控制者,這個(gè)控制者就是操作系統(tǒng)必孤。

操作系統(tǒng)怎么控制這些冷冰冰的硬件呢猾骡?基本原理我也不清楚- -, 大學(xué)老師沒教哇…… 不過(guò)大概是這樣的:實(shí)際上不是操作系統(tǒng)控制硬件敷搪,是硬件告訴操作系統(tǒng)怎么控制它們兴想。每個(gè)硬件研發(fā)完成之后都必須由它們的研發(fā)者編寫一套驅(qū)動(dòng)程序,這套驅(qū)動(dòng)程序就是負(fù)責(zé)告訴操作系統(tǒng)怎么“驅(qū)動(dòng)”這個(gè)硬件的赡勘∩┍悖“操作系統(tǒng)大人,電一電我這里我就會(huì)亮哦闸与!”大概是這樣毙替,嗯。(才怪啦<!)

總之呢厂画,有了操作系統(tǒng),一堆硬件就相互配合地跑起來(lái)了拷邢,計(jì)算機(jī)有了生命的氣息袱院。

二、操作系統(tǒng)與軟件

我剛開始接觸編程的時(shí)候解孙,就想過(guò)為什么有人會(huì)說(shuō)不同的操作系統(tǒng)有所不同——因?yàn)樵谖耶?dāng)時(shí)看來(lái)坑填,它們可以做的事情完全一樣啊抛人,因?yàn)槲耶?dāng)時(shí)所能做的就是用c++打出一句:hello world....(確實(shí)是每個(gè)操作系統(tǒng)都可以做到俺诮!)

隨著接觸的東西多了起來(lái)之后妖枚,我終于搞明白了廷臼,編程就是使用操作系統(tǒng)提供的接口完成一系列的操作。這個(gè)說(shuō)法并不嚴(yán)謹(jǐn),僅在當(dāng)前階段這么記住就好荠商〖盘瘢“接口”也是一個(gè)高頻詞,我用來(lái)泛指一切將具體實(shí)現(xiàn)隱藏在背后而僅提供簡(jiǎn)單的方式供使用者使用的東西莱没。比如說(shuō)初肉,耳機(jī)插孔,只需要將插頭插進(jìn)去就可以聽到音樂了饰躲,使用者完全不需要知道這個(gè)插孔后面是怎樣復(fù)雜的一個(gè)所在牙咏。操作系統(tǒng)也是這樣,提供了很多簡(jiǎn)單的方法讓開發(fā)者完成不同的任務(wù)而開發(fā)者不用另外去了解這個(gè)任務(wù)具體是怎么實(shí)現(xiàn)的嘹裂,作為開發(fā)者妄壶,只需要使用程序語(yǔ)言告訴操作系統(tǒng):

“喂,去給我讀取這個(gè)文件寄狼《〖模”

操作系統(tǒng)就會(huì)聽話地將這個(gè)文件找出來(lái)并讀取呈現(xiàn)給你。具體操作系統(tǒng)是怎么找到這個(gè)文件怎么讀取的泊愧,由不同因素決定伊磺。比如說(shuō),如果這個(gè)文件放在硬盤上删咱,那么操作系統(tǒng)可能就會(huì)在硬盤上面地毯式搜索這個(gè)文件奢浑,具體怎么在硬盤上面找呢,硬盤驅(qū)動(dòng)程序早就告訴給操作系統(tǒng)了腋腮。

那么不同操作系統(tǒng)的不同之處在哪呢雀彼?這個(gè)答案在我第一次學(xué)帶界面的軟件編程的時(shí)候頓悟出來(lái)了。要調(diào)出一個(gè)窗口即寡,往往只需要幾句簡(jiǎn)單的代碼徊哑,其他工作都由操作系統(tǒng)包辦了。所以你才會(huì)看到windows的窗口都是一個(gè)樣聪富,蘋果電腦OS X的窗口是另外一個(gè)樣莺丑。如果你覺得windows的窗口太丑要改得跟OS X的窗口一樣的話,很抱歉墩蔓,你可能很難做到(我也沒試過(guò))梢莽。為什么?因?yàn)椴僮飨到y(tǒng)只提供接口奸披,具體實(shí)現(xiàn)是封閉起來(lái)的昏名,窗口就是長(zhǎng)那個(gè)樣,你沒辦法修改阵面。

所以編程就是這樣的一個(gè)流程:使用提供的接口(不一定來(lái)自操作系統(tǒng))轻局,完成一系列的操作洪鸭。真所謂在有限的舞臺(tái)上創(chuàng)造無(wú)限的可能啊……

三、分層

我們來(lái)重溫一下用程序讀取文件的例子仑扑,大概是下面這樣子(從左往右從上往下看):

稍微抽象一下览爵,可以將這個(gè)操作分為三層:應(yīng)用程序最上面,中間是操作系統(tǒng)镇饮,最底層是硬件蜓竹。分層結(jié)構(gòu)是一個(gè)非常常用的概念。通過(guò)分層储藐,可以將不相關(guān)的細(xì)節(jié)隱藏起來(lái)梅肤,使用者完全不需要知道這些細(xì)節(jié),只需要知道要做什么邑茄,能做什么就行了姨蝴。

所以到這里你們能夠了解為什么程序員不會(huì)修電腦了吧了吧了吧了吧!操作系統(tǒng)把硬件相關(guān)的事情都包攬了肺缕,大部分硬件相關(guān)的知識(shí)點(diǎn)程序員不需要理解啊左医。

使用分層結(jié)構(gòu)可以將事情簡(jiǎn)化。想象你是一個(gè)公司的老總同木,你肯定不會(huì)所有事情都親歷親為浮梢,很多時(shí)候你只需要好好思考然后吩咐下屬去幫你完成任務(wù)就行了。就別管下屬怎么忙得焦頭爛額了彤路。不僅是軟件跟操作系統(tǒng)之間存在分層結(jié)構(gòu)秕硝,軟件內(nèi)部也經(jīng)常存在分層,一層疊一層洲尊,從簡(jiǎn)單原始的操作進(jìn)化到高級(jí)的操作远豺。分層結(jié)構(gòu)可以使軟件變得更加容易管理,同時(shí)也防止了重復(fù)勞動(dòng):怎么讓硬盤轉(zhuǎn)起來(lái)這種事在一個(gè)地方寫好就行了坞嘀,以后就能重復(fù)拿來(lái)用了躯护。軟件開發(fā)中會(huì)有很多的類似或者重復(fù)操作,如何最大化地減少重復(fù)勞動(dòng)丽涩,是在編寫程序的時(shí)候每時(shí)每刻都要注意的一個(gè)點(diǎn)棺滞。程序員都是在很勤勞地想著偷懶的事情的人。

本章完矢渊,下一章講什么是編程語(yǔ)言继准,也就是如何跟操作系統(tǒng)溝通交流談人生。

重點(diǎn)詞匯:

資源

接口

分層結(jié)構(gòu)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末矮男,一起剝皮案震驚了整個(gè)濱河市移必,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昂灵,老刑警劉巖避凝,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舞萄,死亡現(xiàn)場(chǎng)離奇詭異眨补,居然都是意外死亡管削,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門撑螺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)含思,“玉大人,你說(shuō)我怎么就攤上這事甘晤『耍” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵线婚,是天一觀的道長(zhǎng)遏弱。 經(jīng)常有香客問我,道長(zhǎng)塞弊,這世上最難降的妖魔是什么漱逸? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮游沿,結(jié)果婚禮上饰抒,老公的妹妹穿的比我還像新娘。我一直安慰自己诀黍,他們只是感情好袋坑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著眯勾,像睡著了一般枣宫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吃环,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天镶柱,我揣著相機(jī)與錄音,去河邊找鬼模叙。 笑死歇拆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的范咨。 我是一名探鬼主播故觅,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼渠啊!你這毒婦竟也來(lái)了输吏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤替蛉,失蹤者是張志新(化名)和其女友劉穎贯溅,沒想到半個(gè)月后拄氯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡它浅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年译柏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姐霍。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鄙麦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出镊折,到底是詐尸還是另有隱情胯府,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布恨胚,位于F島的核電站骂因,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赃泡。R本人自食惡果不足惜寒波,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望急迂。 院中可真熱鬧影所,春花似錦、人聲如沸僚碎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)勺阐。三九已至卷中,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渊抽,已是汗流浹背蟆豫。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留懒闷,地道東北人十减。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像愤估,于是被迫代替她去往敵國(guó)和親帮辟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容