精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Erlang之父Joe Armstrong訪談:程序調(diào)試與啤酒

開(kāi)發(fā) 前端
Joe Armstong 是Erlang編程語(yǔ)言發(fā)明者,創(chuàng)造了開(kāi)發(fā)電信平臺(tái)OTP.本文主要是來(lái)自他的一篇采訪,本中將講述他的成長(zhǎng)之路以及對(duì)編程的認(rèn)識(shí)。

以啤酒收取程序調(diào)試報(bào)酬

Seibel:你是如何開(kāi)始學(xué)習(xí)編程的?是從什么時(shí)候開(kāi)始的?

程序員

 

Armstrong:是從中學(xué)時(shí)開(kāi)始的。我出生于1950年,上中學(xué)那會(huì)兒還沒(méi)有幾臺(tái)計(jì)算機(jī)。到了中學(xué)最后一年,那年我應(yīng)該是17歲,我們當(dāng)?shù)氐淖h會(huì)得到一臺(tái)大型計(jì)算機(jī),好像是IBM的。我們可以在上面寫Fortran程序。通常,我們?cè)诰幋a紙上寫好程序,然后發(fā)出去。一個(gè)星期后,等編碼紙和穿孔卡拿回來(lái)的時(shí)候還必須確認(rèn)一下。但是制作穿孔卡的人總會(huì)出點(diǎn)錯(cuò),所以可能要反復(fù)1~2次才能弄好。最后這些穿孔卡就可以送到計(jì)算機(jī)中心了。

卡片進(jìn)入計(jì)算機(jī)中心后會(huì)再拿回來(lái),因?yàn)镕ortran編譯器會(huì)在程序中出現(xiàn)第一個(gè)句法錯(cuò)誤的地方停下來(lái),后面的程序就都不處理了。你的第一個(gè)程序似乎需要3個(gè)月才能跑通。我認(rèn)識(shí)到,不能每次只送一個(gè)程序,應(yīng)當(dāng)并行地開(kāi)發(fā)多個(gè)單一子例程并且一次都送去。我記得寫過(guò)一個(gè)顯示國(guó)際象棋棋盤的小程序,用打印機(jī)繪制出來(lái)。但是因?yàn)橹虚g等待的時(shí)間太煩人了,我不得不把所有的子例程都當(dāng)做并行的任務(wù)一次寫完。

Seibel:你學(xué)的是物理學(xué),是從什么時(shí)候開(kāi)始轉(zhuǎn)向編程的?

Armstrong:嗯,有一些本科生的課程需要編寫程序,而我又特別喜歡編程。我還非常善于調(diào)試程序。如果別人程序出了問(wèn)題,我就會(huì)去調(diào)試別人的程序。標(biāo)準(zhǔn)調(diào)試的開(kāi)價(jià)是一杯啤酒。也可能提價(jià),還有兩杯啤酒、三杯啤酒的問(wèn)題。

Seibel:在給他們調(diào)試程序時(shí),是以他們必須給你買多少杯啤酒而論的,對(duì)嗎?

Armstrong:對(duì),等我修復(fù)了程序時(shí)他們要給我買啤酒。我在讀程序的時(shí)候總是在想:“他們?yōu)槭裁匆@樣寫程序呢,太復(fù)雜了。”我會(huì)重新編寫并簡(jiǎn)化程序。看到人們編寫復(fù)雜的代碼我感到很吃驚。有些問(wèn)題用幾行代碼就能解決,但是他們要寫上幾十行。我有點(diǎn)好奇,他們?yōu)槭裁纯床坏胶?jiǎn)單的方法呢。而我就頗為擅長(zhǎng)采取簡(jiǎn)單的方法。

我真正開(kāi)始編程是拿到第一個(gè)學(xué)位并打算讀博士學(xué)位的時(shí)候。我開(kāi)始讀高能物理博士學(xué)位并加入了那里的氣泡室小組,他們有一臺(tái)計(jì)算機(jī)。那是一臺(tái)DDP-516,是Honeywell公司的。我可以獨(dú)自一人使用它。它是穿孔卡式的,但是可以在上面直接運(yùn)行程序,只要把穿孔卡放進(jìn)去,按一下按鈕,答案刷地一下就出來(lái)了。我特別喜歡那臺(tái)計(jì)算機(jī)。我在上面編寫了一個(gè)小象棋程序。

那時(shí)的實(shí)際磁心存儲(chǔ)器是由婦女編織而成的,能夠看到磁心和一塊塊的小磁鐵和穿進(jìn)穿出的線路。它的價(jià)格高得驚人,有一個(gè)大約10MB的磁盤驅(qū)動(dòng)器,上面有20個(gè)小底板,大約15公斤重。它還配了一個(gè)電傳文本的界面,可以在上面輸入程序。

后來(lái)又出現(xiàn)了“玻璃電傳打字終端”,那是最早的視頻顯示器設(shè)備,可以在上面輸入并編輯程序。我覺(jué)得這太神奇了,再也不需要穿孔卡了。我記得當(dāng)時(shí)和計(jì)算機(jī)管理員說(shuō):“要我說(shuō),將來(lái)有一天人人都會(huì)有這樣一套機(jī)器。”他說(shuō)道:“我看你瘋了,Joe,你真是瘋了!”“為什么不可能呢?”“這些東西貴得離譜。”

正是從那時(shí)我真正開(kāi)始學(xué)習(xí)編程了。當(dāng)時(shí)我的導(dǎo)師對(duì)我說(shuō):“你不應(yīng)該再讀物理學(xué)博士了,改行吧。你熱愛(ài)計(jì)算機(jī),應(yīng)當(dāng)搞計(jì)算機(jī)。”我說(shuō)道:“不,不,不。我不能半途而廢。”但實(shí)際上他的話是對(duì)的。

不同尋常的工作經(jīng)歷

Seibel:那你拿到博士學(xué)位了嗎?

Armstrong:沒(méi)有。我沒(méi)錢了,所以沒(méi)有讀完。我后來(lái)去了愛(ài)丁堡大學(xué)。此前在讀物理的時(shí)候我們常常到物理系圖書館去學(xué)習(xí)。在圖書館的角落里有一些計(jì)算機(jī)科學(xué)書籍。有一些棕色封底的雜志叫做《機(jī)器智能》,一共有4期,是愛(ài)丁堡大學(xué)的機(jī)器智能系編輯出版的。我學(xué)的是物理學(xué),但我卻渴望閱讀這些雜志,并且在想:“真是太有趣了。”DonaldMichie那時(shí)擔(dān)任愛(ài)丁堡大學(xué)機(jī)器智能系的主任,我給他寫了封信,說(shuō)我對(duì)這種東西非常感興趣,問(wèn)他那里有沒(méi)有工作可做。他給我回了信,說(shuō)目前還沒(méi)有,不過(guò)無(wú)論如何,他很想和我見(jiàn)一面,看看我是什么樣的人。

幾個(gè)月后我接到一個(gè)電話,也可能是一封信,是Michie的。他說(shuō):“我周二去倫敦,我們見(jiàn)一面如何?我要乘火車回愛(ài)丁堡,你能來(lái)車站嗎?”我去了車站,見(jiàn)到Michie,他說(shuō):“嗯,不能在這兒面試—我們?nèi)フ覀€(gè)酒吧。”于是我們到一家酒吧聊了聊。過(guò)了沒(méi)多久又收到他的一封信,說(shuō):“在愛(ài)丁堡大學(xué)有一份研究工作,你申請(qǐng)一下吧。”于是我成了DonaldMichie的研究助理并去了愛(ài)丁堡大學(xué)。我就這樣從物理學(xué)轉(zhuǎn)到了計(jì)算機(jī)。

Michie在二戰(zhàn)期間曾經(jīng)和圖靈在布萊切利公園(BletchleyPark)(編者注:二戰(zhàn)爆發(fā)前,英國(guó)在距離倫敦不遠(yuǎn)的布萊切利公園設(shè)置了國(guó)家密碼破譯機(jī)構(gòu),許多破譯員在那里工作,破解德國(guó)電報(bào)密碼)一起工作過(guò),拿到了圖靈所有的論文。我在圖靈圖書館有一張書桌,周圍也全都是圖靈的論文。我在愛(ài)丁堡大學(xué)待了一年。此后由于數(shù)學(xué)家JamesLighthill的原因,愛(ài)丁堡大學(xué)都有點(diǎn)維持不下去了。Lighthill受雇于政府,前往愛(ài)丁堡大學(xué)調(diào)查人工智能。他回去后說(shuō)道:“那個(gè)地方什么有商業(yè)價(jià)值的東西也弄不出來(lái)。”

說(shuō)得就像一個(gè)巨大的兒童游戲區(qū)。我是英國(guó)機(jī)器人學(xué)會(huì)的創(chuàng)始成員,我們都認(rèn)為這個(gè)工作意義重大。但是撥款機(jī)構(gòu)卻說(shuō):“機(jī)器人!這是什么東西!我們不打算在這上面投入資金了。”我記得那是1972年前后,所有的資金來(lái)源都枯竭了,大家都說(shuō):“嗯,在這里度過(guò)的時(shí)光非常美好,但現(xiàn)在最好還是找點(diǎn)別的事情做吧。”

于是我又回去從事物理學(xué)工作了。我到了瑞典,在EISCAT科學(xué)協(xié)會(huì)得到一份物理學(xué)程序員的工作。我的上司來(lái)自IBM,年紀(jì)比我大,他想要上頭給出一份規(guī)格說(shuō)明書,這樣他就可以拿去實(shí)行。我們?cè)?jīng)討論過(guò)這個(gè)問(wèn)題。他說(shuō):“如果沒(méi)有任務(wù)說(shuō)明,也沒(méi)有規(guī)格說(shuō)明,這樣的工作太糟糕了。”我說(shuō):“嗯,如果沒(méi)有任務(wù)說(shuō)明,那才是一個(gè)好任務(wù)。因?yàn)槟憧梢园凑兆约合矚g的方式來(lái)完成。”一年后我的上司離職了,我接替了他的工作,擔(dān)任首席設(shè)計(jì)師。

我為他們?cè)O(shè)計(jì)了一個(gè)系統(tǒng),可以稱為應(yīng)用操作系統(tǒng),那是一個(gè)在普通操作系統(tǒng)上運(yùn)行的系統(tǒng)。那個(gè)時(shí)候計(jì)算機(jī)的價(jià)格已經(jīng)比較合理了。我們有一些NORD-10計(jì)算機(jī),是挪威制造的—我覺(jué)得他們這種型號(hào)的計(jì)算機(jī)想要進(jìn)入PDP-11的市場(chǎng)。

我在那里工作了將近4年。接著在瑞典空間研究中心得到一份工作,構(gòu)建了另外一個(gè)應(yīng)用操作系統(tǒng),用于控制瑞典發(fā)射的名為“海盜”的第一顆衛(wèi)星。那是一個(gè)有趣的項(xiàng)目,不過(guò)我忘了那臺(tái)計(jì)算機(jī)的名字了,只記得它克隆的是Amdahl公司的計(jì)算機(jī)。那上面還只有行編輯器,沒(méi)有全屏幕編輯器。所有的程序都只能放到一個(gè)目錄下面。文件名是10個(gè)字母,擴(kuò)展名是3個(gè)字母。還有一個(gè)Fortran編譯器或匯編語(yǔ)言編譯器,全部東西就是這些了。

有趣的是,現(xiàn)在回頭想想,我不認(rèn)為當(dāng)今這些小玩意會(huì)讓你的生產(chǎn)率更高。比如說(shuō)分層文件系統(tǒng),它怎么可能讓生產(chǎn)率更高呢?很多程序開(kāi)發(fā)方式是在腦海中形成的。我認(rèn)為在那些簡(jiǎn)單的系統(tǒng)上工作可以強(qiáng)制你規(guī)范地進(jìn)行思考。如果沒(méi)有目錄系統(tǒng),就只能把所有的文件都放到一個(gè)目錄下面,你只能變得相當(dāng)規(guī)范。如果沒(méi)有修訂控制系統(tǒng),你也只能變得相當(dāng)規(guī)范。如果自己做的事情能夠規(guī)范起來(lái),那我覺(jué)得分層文件系統(tǒng)和修訂控制系統(tǒng)也就沒(méi)什么可取之處了。它們解決的問(wèn)題并不能從本質(zhì)上解決你的問(wèn)題。如果多人一起工作,它們可能會(huì)讓事情容易一些。但對(duì)個(gè)人來(lái)說(shuō),我看不出來(lái)有什么差別。

另外,我覺(jué)得我們現(xiàn)在因?yàn)檫x擇過(guò)多而不堪重負(fù)。我的意思是,那時(shí)候我只能使用Fortran。甚至連Shell腳本也沒(méi)有。只有可以運(yùn)行程序的批處理文件,編譯器,還有就是Fortran。如果確實(shí)需要的話,還可能有匯編語(yǔ)言編譯器。不需要痛苦地做出選擇。今天年輕的程序員肯定會(huì)感到很不舒服,面對(duì)20種編程語(yǔ)言和幾十種框架,該如何選擇,真是無(wú)所適從。我們那時(shí)沒(méi)有這些難以選擇的地方。只要開(kāi)始做就行了,因?yàn)槭褂檬裁凑Z(yǔ)言、什么工具都已經(jīng)是定下來(lái)的。不需要考慮該做些什么,只管做就行了。

打開(kāi)黑盒的重要性

Seibel:另外一個(gè)差別是現(xiàn)在也無(wú)法徹底了解整個(gè)系統(tǒng)了。也就是說(shuō)不僅僅是要做出很多選擇,而且在選擇要使用哪些黑盒的時(shí)候,還不一定完全理解黑盒的工作方式。

Armstrong:是啊,如果這些大黑盒不能正常工作,必須做出修改,我覺(jué)得自己把所有的內(nèi)容都從頭開(kāi)始編寫一次會(huì)更容易些。做不到軟件復(fù)用,真是太糟糕了。

Seibel:但是如果把所有這些黑盒都打開(kāi),看看里面有什么,看看它們的工作方式,再確定如何對(duì)它們做一點(diǎn)改造來(lái)滿足自己的需要。你覺(jué)得這樣做確實(shí)是可行的嗎?

Armstrong:這些年我犯了一些人們常犯的錯(cuò)誤,那就是沒(méi)有打開(kāi)黑盒。有時(shí)候想一想,覺(jué)得這個(gè)黑盒無(wú)法理解,難度太大,所以不想打開(kāi)它。我曾經(jīng)打開(kāi)過(guò)1~2個(gè)黑盒。有一次我需要做一個(gè)窗口系統(tǒng),為Erlang做一個(gè)圖形系統(tǒng),我在想:“嗯,就在XWindows上運(yùn)行吧。”XWindows是什么呢?它是一個(gè)套接字,上面跑著協(xié)議。只要打開(kāi)套接字,往里面注入這些消息就可以了。為什么要用庫(kù)呢?Erlang是基于消息的。整體指導(dǎo)思想是向其他東西發(fā)出消息,讓它們執(zhí)行操作。嗯,XWindows中的指導(dǎo)思想則是,有一個(gè)窗口,向窗口發(fā)送消息,再由窗口執(zhí)行操作。如果在窗口中執(zhí)行操作,它會(huì)把消息回送給你。這非常像Erlang。但是XWindows的編程方式是運(yùn)用回調(diào)庫(kù)—如果出現(xiàn)了這個(gè)情況就調(diào)用這個(gè)函數(shù)。這不是Erlang的思考方式。Erlang的思考方式是,給某個(gè)東西發(fā)送消息,讓它做一些事情。所以,等一下,把其中的庫(kù)去掉吧,直接和套接字對(duì)話。

猜猜結(jié)果會(huì)怎么樣?非常簡(jiǎn)單。X協(xié)議收到了一些消息,我不知道具體是多少條,也許是100條、80條,大致就是這么多。但實(shí)際上只需要其中的20條就能完成有用的工作了。把這20條消息映射到Erlang術(shù)語(yǔ)上,變個(gè)小魔術(shù),然后可以向窗口直接發(fā)送消息,它們就開(kāi)始執(zhí)行動(dòng)作了。這樣做的效率也很高。但界面不是很好,因?yàn)槲覜](méi)有把太多的精力用到圖形和藝術(shù)標(biāo)準(zhǔn)上。如果為了讓界面再美觀一些,要做的工作還很多。但是不管怎么說(shuō),實(shí)際上并不難。

另外一個(gè)例子是我做的排版系統(tǒng),我打開(kāi)的抽象邊界是PostScript。到了邊界的地方你會(huì)想:“我不想越過(guò)這個(gè)邊界。”因?yàn)槟銜?huì)認(rèn)為邊界里面的東西極其復(fù)雜。但是我再次發(fā)現(xiàn),它實(shí)際上是很簡(jiǎn)單的。那是一種編程語(yǔ)言,一種不錯(cuò)的編程語(yǔ)言。抽象邊界很容易穿越,而一旦穿越,會(huì)有很多收益。

在出版我那本Erlang編程書時(shí),出版社說(shuō):“我們有畫圖工具。”但是畫圖工具真的很難精確地對(duì)準(zhǔn)箭頭,所以我不喜歡那些工具。而且畫圖的時(shí)候手也很難受。我想:“編寫一個(gè)生成PostScript的程序,然后在‘這里畫個(gè)圓圈、那里畫個(gè)箭頭’,讓程序正常運(yùn)轉(zhuǎn)起來(lái),這樣一比,編程花的時(shí)間并不長(zhǎng)。”編寫程序需要幾個(gè)小時(shí)。以所見(jiàn)即所得的方式畫圖也需要這么長(zhǎng)時(shí)間。只是自己編寫程序還有兩個(gè)好處。你的手不會(huì)難受,而且即使把圖形放大一萬(wàn)倍,看到的箭頭也是對(duì)得整整齊齊的。

我并不是說(shuō)剛?cè)胄械某绦騿T應(yīng)當(dāng)把所有這些抽象的東西都打開(kāi)。我的意思是,一定要考慮是否可以打開(kāi)它們。不要完全放棄這個(gè)想法。看看直接到達(dá)的途徑是不是比包裝后的途徑要快一些,這是值得一看的。一般來(lái)說(shuō),如果購(gòu)買軟件或是使用其他人的軟件,一定要充分考慮還需要花很長(zhǎng)時(shí)間來(lái)加工這套軟件,因?yàn)樗湍阆胍牟煌耆粯印\浖膱?zhí)行方式有微妙的差別,而這個(gè)差別可能需要很長(zhǎng)時(shí)間來(lái)解決。

編程這些年的變化

Seibel:同剛開(kāi)始編程時(shí)相比,你在看待該如何編程的問(wèn)題上最大的變化是什么?

Armstrong:我認(rèn)為編程方式中的最大變化與硬件無(wú)關(guān)。顯然,現(xiàn)在的計(jì)算機(jī)速度要快得多,功能要強(qiáng)大得多,但是人的大腦比最好的軟件工具還要強(qiáng)大一百萬(wàn)倍。我在編寫程序的時(shí)候,幾天之后會(huì)突然說(shuō):“程序中有一個(gè)錯(cuò)誤—如果這樣、那樣、那樣、這樣的話,程序就要崩潰了。”然后我去看了代碼,確實(shí)如此。此前一點(diǎn)征兆也沒(méi)有。你能告訴我哪一個(gè)開(kāi)發(fā)系統(tǒng)能夠做到這一點(diǎn)嗎?作為一個(gè)程序員,我所發(fā)生的變化是內(nèi)心思想的變化。

我認(rèn)為在經(jīng)過(guò)多年的編程之后會(huì)有兩個(gè)變化。一個(gè)變化是,在年輕的時(shí)候,我會(huì)不停地寫程序,直到完成。當(dāng)程序完成后,我就不再管它了。程序?qū)懞昧耍旯ち恕H缓笪視?huì)突然領(lǐng)悟:“啊!搞錯(cuò)了!真是笨蛋!”我會(huì)重新編寫程序,后來(lái)再次發(fā)現(xiàn):“噢,程序是錯(cuò)的。”于是又重新編寫。

我記得當(dāng)時(shí)有這樣一個(gè)想法:“先不要?jiǎng)邮謱懘a,把這些東西都想好,這樣做不是很好嗎?”如果我不寫代碼就能獲得那番領(lǐng)悟,不是很好嗎?我認(rèn)為現(xiàn)在可以做到這一點(diǎn)了。那20年可以算作是學(xué)習(xí)如何編程的時(shí)期。現(xiàn)在知道該如何編程了。我以前通過(guò)實(shí)驗(yàn)來(lái)學(xué)習(xí)編程。現(xiàn)在我知道該如何編程了,不需要再做實(shí)驗(yàn)了。

偶爾,我也得做一些很小的實(shí)驗(yàn),比如編寫一些非常小的程序來(lái)回答某個(gè)問(wèn)題。我會(huì)把事情想清楚,等到開(kāi)始編程的時(shí)候,這些程序就可以或多或少地像我預(yù)計(jì)的那樣運(yùn)行起來(lái)了,因?yàn)橹拔乙呀?jīng)想清楚了。這也意味著要花很長(zhǎng)時(shí)間。編寫程序、有所醒悟、重新編寫。這樣可能需要花上一年的時(shí)間來(lái)寫程序。所以我現(xiàn)在可能不這樣做,而是先思考上一年。我不會(huì)再做那種簡(jiǎn)單的輸入工作。

這是第一個(gè)變化。出現(xiàn)的第二個(gè)變化是直覺(jué)。在年輕的時(shí)候,我會(huì)通宵地寫程序,干到凌晨4點(diǎn)鐘,精疲力盡,那是男子漢氣概的編程,一個(gè)小時(shí)接著一個(gè)小時(shí),不停地編寫代碼。即使情況不好我也堅(jiān)持不懈,總要讓代碼能夠跑起來(lái)。即使沒(méi)有直覺(jué),我也要繼續(xù)編程。

我得到的教訓(xùn)是,在疲憊的時(shí)候編寫的程序都是垃圾,第二天就要把它們都扔掉了。20年前,就算強(qiáng)烈地感到事情不對(duì)勁、代碼中有錯(cuò)誤時(shí),我也會(huì)繼續(xù)編程。這些年來(lái)我注意到,真正好的代碼是我完全進(jìn)入狀態(tài)的時(shí)候編寫的,時(shí)間不知不覺(jué)地過(guò)了,而我甚至沒(méi)有在考慮程序,只是很放松地坐在那里,輸入這些東西,看著自己輸入的東西出現(xiàn)在屏幕上。這樣的代碼會(huì)很不錯(cuò)。如果你不能集中注意力,弄出來(lái)的東西會(huì)說(shuō):“不行,不行,這兒錯(cuò)了,那兒也錯(cuò)了。”可我在多年前并沒(méi)有注意到這一點(diǎn)。寫出來(lái)的代碼都被扔掉了。現(xiàn)在,如果覺(jué)得不行,我就不再編程了。“不能再寫了。”這是我根據(jù)經(jīng)驗(yàn)得到的,停下來(lái),不要再寫代碼了。不要再處理這個(gè)問(wèn)題了。干點(diǎn)別的。

我在上學(xué)的時(shí)候很擅長(zhǎng)數(shù)學(xué)之類的課程,所以在想:“噢,我是一個(gè)按照邏輯思考的人。”但是我參加心理測(cè)試時(shí),在直覺(jué)上得了高分,而邏輯思考方面的分?jǐn)?shù)卻有點(diǎn)低。不是很低,我還是可以做數(shù)學(xué)這類的題目,我相當(dāng)擅長(zhǎng)。但正是因?yàn)槲疑瞄L(zhǎng)數(shù)學(xué),所以我過(guò)去認(rèn)為科學(xué)是關(guān)于邏輯和數(shù)學(xué)的。我現(xiàn)在就不會(huì)這樣說(shuō)了。我要說(shuō)科學(xué)也有很多直覺(jué),根據(jù)直覺(jué)能夠知道什么是正確的。

Seibel:你現(xiàn)在在編碼之前會(huì)花更長(zhǎng)的時(shí)間思考,那么在思考階段會(huì)做些什么呢?

Armstrong:噢,我會(huì)記些筆記,我不僅僅是在思考。在紙上隨便寫點(diǎn)什么。我可能不會(huì)寫很多代碼。如果你密切注意我的活動(dòng),會(huì)發(fā)現(xiàn)我大部分時(shí)間都在思考,偶爾寫點(diǎn)什么。另外一件對(duì)解決問(wèn)題非常重要的事情是問(wèn)問(wèn)我的同事:“你將如何解決這個(gè)問(wèn)題?”你找到他們,說(shuō):“我不知道應(yīng)當(dāng)采取這種方式還是那種方式。必須在A和B之間做出選擇。”然后你向他們描述A和B,等講到一半的時(shí)候,你會(huì)說(shuō):“啊,是B。謝謝你們。非常感謝。”這樣的事情發(fā)生過(guò)很多次。

你需要這樣一塊智能白板,如果你只是獨(dú)自一人在一塊白板上寫寫畫畫,是得不到反饋的。但是如果面對(duì)的是人,你會(huì)在白板上向他們解釋替代方案,他們也會(huì)加入討論,提出一點(diǎn)建議。然后突然間你就知道答案是什么了。對(duì)我來(lái)說(shuō)沒(méi)有涉及到代碼編寫。但是和處理同樣問(wèn)題的同事進(jìn)行交談是非常有價(jià)值的。

原文鏈接:http://www.programmer.com.cn/4935/

【編輯推薦】

  1. 程序員的另類境界:Rails創(chuàng)始人駕保時(shí)捷參加職業(yè)賽
  2. Web開(kāi)發(fā)者欣喜若狂的20款Chrome拓展
  3. IT自由職業(yè)者的成功秘訣:做會(huì)做的事
  4. 針對(duì)軟件編程初學(xué)者階段總結(jié)的簡(jiǎn)易點(diǎn)評(píng)
  5. 揭秘:Quora用了哪些技術(shù) ?
責(zé)任編輯:陳貽新 來(lái)源: csdn
相關(guān)推薦

2018-01-15 11:06:10

程序員編程Erlang

2015-08-11 09:22:20

2011-08-16 09:09:04

jQuery

2012-06-14 09:41:36

LinuxWP發(fā)展安卓

2021-08-26 13:52:22

JavaJIT編程語(yǔ)言

2011-05-31 13:41:00

C語(yǔ)言

2020-11-24 09:55:37

編程語(yǔ)言C ++Vasa

2020-01-18 08:19:09

啤酒廠物聯(lián)網(wǎng)IOT

2009-04-22 09:20:26

Erlang并發(fā)函數(shù)式

2009-12-02 14:05:17

VS2010程序

2012-11-02 10:49:23

紅帽OpenShift

2010-05-19 11:01:39

虛擬化與云計(jì)算趙陽(yáng)

2014-11-03 14:15:54

2009-11-27 09:53:15

VS2003安裝程序

2010-05-19 11:16:08

虛擬化與云計(jì)算陳瀅

2010-05-19 10:48:39

虛擬化與云計(jì)算訪談何樂(lè)

2013-07-31 08:42:08

BaaS移動(dòng)云服務(wù)移動(dòng)中間件

2025-09-05 09:06:10

2013-05-06 09:01:15

Erlang程序員

2011-08-16 17:14:41

Oracle數(shù)據(jù)庫(kù)OCM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

精品日韩在线一区| 悠悠色在线精品| 国产精品亚洲欧美导航| 国产日韩欧美在线观看视频| 婷婷综合国产| 日本精品一区二区三区高清 | 神马久久av| 欧美综合久久久| 在线观看18视频网站| 天堂在线资源8| 蜜桃久久精品一区二区| 欧美人与性动交a欧美精品| 精品人妻一区二区三区香蕉| 四虎影视精品永久在线观看| 精品国产成人av| 2025韩国大尺度电影| 亚洲欧洲视频在线观看| 国产又粗又猛又爽又黄91精品| 欧美一级在线播放| 国产精品精品软件男同| 蜜乳av综合| 亚洲第一黄色网| 国产精品久久久久久久99| 松下纱荣子在线观看| 亚洲人吸女人奶水| 蜜桃久久精品乱码一区二区| 99热这里只有精品5| 日本欧美加勒比视频| 韩国三级电影久久久久久| 久久av红桃一区二区禁漫| 妖精一区二区三区精品视频 | 国产z一区二区三区| 欧美激情国产精品免费| 97在线精品| 亚洲视频在线免费观看| 精品无码在线视频| 99re6热只有精品免费观看| 91精品国产色综合久久不卡电影| 午夜dv内射一区二区| 天堂√中文最新版在线| 亚洲地区一二三色| 国产在线视频在线| 2024短剧网剧在线观看| 国产精品对白交换视频| 亚洲 国产 日韩 综合一区| 日本在线视频1区| 国产精品123| 亚洲自拍欧美色图| 国产精品自偷自拍| 久久爱www久久做| 国产免费一区视频观看免费| 无码人妻精品一区二区三区蜜桃91| 国产一区二区三区的电影 | 色七七影院综合| 91精品国自产在线| 精品久久久久久久久久久下田| 精品视频在线观看日韩| 亚洲蜜桃精久久久久久久久久久久| 国产精品网址| 亚洲国产日韩欧美综合久久| 中国xxxx性xxxx产国| 国产精品任我爽爆在线播放| 亚洲国产精品va在线观看黑人| 一级黄色电影片| 久久99精品国产自在现线| 国产视频亚洲视频| 2019男人天堂| 99久久久久国产精品| 久久久国产一区二区| 婷婷在线精品视频| 亚洲无线视频| 日韩av观看网址| 少妇又紧又色又爽又刺激视频| 秋霞电影一区二区| 成人女保姆的销魂服务| 亚洲欧美黄色片| 91免费版在线看| 性刺激综合网| 色呦呦在线播放| 午夜av区久久| 日韩av片网站| 日韩中文字幕一区二区高清99| 精品久久久久久综合日本欧美| a天堂视频在线观看| 久久99视频| 国产一区二区三区视频| 日本成人精品视频| 亚洲精品极品| 国产精品入口免费视频一| 国产免费黄色大片| 99国产欧美另类久久久精品| 先锋影音亚洲资源| 欧美性受ⅹ╳╳╳黑人a性爽| 欧美视频中文在线看| 亚洲色图久久久| 粉嫩久久久久久久极品| 亚洲天堂精品在线| 免费麻豆国产一区二区三区四区| 亚洲欧美日本日韩| 成人网页在线免费观看| 性xxxxbbbb| 亚洲婷婷国产精品电影人久久| 97超碰在线人人| 欧美视频免费看| 亚洲级视频在线观看免费1级| 久久午夜精品视频| 国产欧美日本| 92裸体在线视频网站| 色综合一区二区| 国产精品久久波多野结衣| 日本韩国一区| 亚洲日本成人在线观看| 欧美日韩一区二区在线免费观看| va天堂va亚洲va影视| 日韩久久免费电影| 欧美人妻一区二区| 免费一区二区视频| 鲁丝片一区二区三区| 国产高清一区二区三区视频| 欧美午夜性色大片在线观看| 奇米777在线| 国产91一区| 97在线观看免费高清| 国产精品一区二区免费视频| 久久久精品2019中文字幕之3| 成人在线免费观看视频网站| 免费视频成人| 亚洲美女中文字幕| 久久老司机精品视频| 久久 天天综合| 水蜜桃亚洲精品| 成人av三级| 日韩av在线资源| 国产一级在线观看视频| 国产一区二区三区在线观看免费视频| 日韩欧美亚洲v片| 中文在线аv在线| 亚洲国产99精品国自产| 亚洲色婷婷一区二区三区| 蜜桃视频在线观看一区| 日韩欧美亚洲精品| 日本精品裸体写真集在线观看| 亚洲国产美女精品久久久久∴| 麻豆精品一区二区三区视频| 寂寞少妇一区二区三区| 亚洲精品视频一区二区三区| 黄瓜视频成人app免费| 亚洲男人第一网站| 日本久久综合网| 国产亚洲制服色| 亚洲国产精品毛片av不卡在线| 婷婷精品在线观看| 欧洲永久精品大片ww免费漫画| 四虎影视2018在线播放alocalhost| 亚洲福利一区二区三区| 漂亮人妻被黑人久久精品| 一区在线免费| 精品欧美国产一区二区三区不卡| 国产精品13p| 精品一区二区三区四区在线| 欧美一区免费看| 亚洲国产精品成人综合| jizzzz日本| 88国产精品视频一区二区三区| 亚洲综合自拍一区| 国产三线在线| 亚洲美女av在线播放| av片免费观看| 综合久久久久久| 美女又黄又免费的视频| 亚洲三级观看| 日韩av不卡播放| www.91精品| 午夜精品久久久99热福利| 熟妇高潮一区二区高潮| 色视频成人在线观看免| 国产精品麻豆免费版现看视频| 狠狠网亚洲精品| 久久精品国产sm调教网站演员| 日韩a级大片| 国产精品亚洲激情| 欧美1234区| 亚洲视频在线视频| 99热在线只有精品| 欧美性猛交xxxx富婆| 91免费在线看片| 成人在线视频一区| av网站在线不卡| 欧美精品色网| 久久av一区二区三区漫画| 99蜜月精品久久91| 欧美激情中文网| 成人亚洲性情网站www在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 欧美激情在线一区二区| 亚洲精品乱码久久久久久9色| 一二三区精品| 国产又粗又长又爽视频| 欧美老女人另类| 成人av片网址| 午夜精品久久久久久毛片| 97精品在线观看| 黄视频网站在线看| 亚洲区在线播放| 亚洲欧美另类视频| 7777精品伊人久久久大香线蕉完整版| 国产成人愉拍精品久久| 亚洲日本一区二区三区| 乐播av一区二区三区| 成人一二三区视频| 亚洲精品永久视频| 老**午夜毛片一区二区三区| 日韩精品免费一区| 国产精品久久久久无码av| 蜜桃91精品入口| 91精品尤物| 91亚洲精品久久久| 日韩精品麻豆| 欧美一级免费看| 123区在线| 欧美日韩国产成人| 日本中文字幕在线看| 亚洲欧美在线免费观看| 东京干手机福利视频| 欧美一区二区性放荡片| 自拍偷拍福利视频| 色又黄又爽网站www久久| 国产精品美女毛片真酒店| 亚洲免费视频中文字幕| 国产又粗又猛又爽又黄的视频四季| 91免费精品国自产拍在线不卡| 欧洲熟妇的性久久久久久| 国产一区二区成人久久免费影院| 天天影视综合色| 久久婷婷麻豆| 久久久久人妻精品一区三寸| 亚洲国产免费| 日韩人妻无码精品久久久不卡| 欧美一区网站| 久久精品在线免费视频| 亚洲a一区二区三区| 中文字幕一区二区三区有限公司 | 亚洲香蕉成视频在线观看| 欧美一级一区二区三区| 亚洲成人动漫在线播放| 蜜桃av噜噜一区二区三区麻豆| 日韩一区二区三区三四区视频在线观看| 亚洲视频一区在线播放| 欧美老女人在线| 国产又粗又猛又爽| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲中国色老太| 视频一区日韩精品| 国产精品国产亚洲精品看不卡15| 日韩三级不卡| 精品国产乱码久久久久久久软件| 久久国产精品免费精品3p| 精品国产乱码久久久久软件| 四虎884aa成人精品最新| 日本一区二区高清视频| 国产最新精品| 中文字幕一区二区三区乱码| 综合天堂av久久久久久久| 国产精品国三级国产av| 亚洲国产一区二区三区a毛片 | 捆绑紧缚一区二区三区视频| 激情黄色小视频| 国产69精品久久99不卡| 99re久久精品国产| 久久精品视频一区二区三区| 99久久99久久精品免费| 亚洲天堂av老司机| 日韩欧美性视频| 在线观看不卡视频| 国产情侣在线播放| 亚洲精品短视频| 日韩大片在线永久免费观看网站| 欧美日韩第一页| 伊人久久国产| 国产日韩av在线播放| 一区二区三区四区精品视频| 精品欧美一区二区久久久伦| 久久国产影院| 日本阿v视频在线观看| 久久一本综合频道| 亚洲网中文字幕| 91免费看片在线观看| 波多野结衣家庭教师| 欧美视频在线观看 亚洲欧| 国产精品天天操| 日韩av在线影院| а√中文在线8| 欧美中文在线观看国产| 亚洲欧美在线人成swag| 久久久亚洲综合网站| 99久久夜色精品国产亚洲96| 久久成人福利视频| 久久国产精品99久久人人澡| 日韩片在线观看| 最新中文字幕一区二区三区| 欧美性猛交bbbbb精品| 日韩欧美另类在线| 第九色区av在线| 97精品欧美一区二区三区| 四虎国产精品免费久久| 免费看国产精品一二区视频| 中文字幕午夜精品一区二区三区 | 欧美日韩一区二区三区电影| 久久av最新网址| 亚洲少妇一区二区| 国产精品伦理一区二区| 国产成人一级片| 日韩精品一区二区三区三区免费 | 欧美极品美女视频网站在线观看免费| 春暖花开亚洲一区二区三区| 国产精品一区二区三区四区五区| 国产高清一区| 韩国日本美国免费毛片| 91一区二区在线| 久久视频免费看| 日韩一区二区视频在线观看| 1024国产在线| 国产999精品久久久| 色婷婷狠狠五月综合天色拍| 日本a在线天堂| 国产麻豆精品在线| 成年人午夜剧场| 欧美精品电影在线播放| av大全在线免费看| 国产精品成人v| 亚洲日产av中文字幕| 97成人在线观看视频| www.爱久久.com| 国产精品第九页| 精品欧美黑人一区二区三区| 91精品久久| 1卡2卡3卡精品视频| 一本精品一区二区三区| 黄色片免费网址| 亚洲天堂2016| 国产黄a三级三级看三级| 久久久国产在线视频| www欧美在线观看| av不卡在线免费观看| 韩国av一区二区三区在线观看| 国产大屁股喷水视频在线观看| 在线观看三级视频欧美| yes4444视频在线观看| 国产精品网站视频| 日韩伦理一区| 亚洲欧美手机在线| 亚洲男人天堂一区| 亚洲精品第五页| 久久久久久亚洲精品中文字幕| japanese色系久久精品| 男人用嘴添女人下身免费视频| 2024国产精品视频| 波多野结衣视频免费观看| 色婷婷久久一区二区| 国产麻豆精品| 亚洲色成人www永久在线观看| 成人国产精品免费观看视频| 国产成人无码精品| 亚洲欧美制服丝袜| 祥仔av免费一区二区三区四区| 波多野结衣激情| 国产风韵犹存在线视精品| 日韩av黄色片| 亚洲色在线视频| 亚洲精品伊人| 欧美精品久久久久久久自慰| 91麻豆精品秘密| 伊人免费在线观看高清版| 欧美成人午夜激情视频| 久久影视三级福利片| 欧美性猛交久久久乱大交小说| 中文字幕中文字幕中文字幕亚洲无线| 国产亲伦免费视频播放| 91国语精品自产拍在线观看性色| 久久av超碰| 午夜影院免费观看视频| 欧美日韩激情网| 在线免费黄色| 国产伦精品一区二区三区高清版| 视频一区在线播放| 日韩精品一区二区亚洲av性色| 欧美精品一区二区三区蜜桃视频| 成年美女黄网站色大片不卡| 黄色网址在线免费看| 91在线国产福利| 国产精品玖玖玖| 欧美在线视频网站| 在线精品小视频| 在线观看日本中文字幕| 91精品久久久久久久91蜜桃| 国产乱码午夜在线视频| 综合色婷婷一区二区亚洲欧美国产| 不卡在线视频中文字幕| 国产又粗又猛视频| 热久久视久久精品18亚洲精品|