天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

別把自己當(dāng)個(gè)超人——給初級(jí)程序員的一點(diǎn)小小建議

  英文原文:Unlearn, young programmer

  有一天我和我的朋友Simone一起喝咖啡,期間我們聊起一些工作上的事情。我們倆都管理著一些員工,為了說(shuō)明給初級(jí)職員分派任務(wù)時(shí)出現(xiàn)的問(wèn)題,她打了一個(gè)絕妙的比方。

  這就像你讓他們掛一幅畫(huà),但他們從來(lái)沒(méi)有干過(guò)這樣的活。你明白你要做什么——只要讓他們這么做就行了。事實(shí)上,你認(rèn)為有些東西不用解釋?zhuān)驗(yàn)槟阌X(jué)得它們太簡(jiǎn)單了。所以,你讓一些新手來(lái)為你工作時(shí),你說(shuō),“把這幅畫(huà)掛在那里,做完了告訴我”,很好理解,對(duì)不對(duì)?但他知道應(yīng)該怎樣釘釘子嗎?實(shí)際上,有很多細(xì)節(jié)他不清楚,他需要學(xué)習(xí)才能把畫(huà)掛好。另外,還有很多東西你容易忽略。

  首先,是怎么做。他需要什么工具?你知道工具箱里有錘子和釘子。但他不知道,他認(rèn)為他有合適的工具完成任務(wù)。于是他在辦公桌上找到了一個(gè)訂書(shū)機(jī)和磁帶機(jī)。

  現(xiàn)在他有兩種方法完成任務(wù)。他可以做很多小的磁帶圈,這樣它們可以固定在墻上,然后把它們釘在畫(huà)的背面。這種方法看上去可能沒(méi)事,但是只有畫(huà)掉下來(lái)的時(shí)候你才知道他做錯(cuò)了。另一種方法是,他把一大條磁帶纏在畫(huà)上,并且把它用訂書(shū)機(jī)牢牢釘在墻上。用這種方法的結(jié)果可能更糟,雖然和你的要求差不多——畫(huà)掛好了,但是畫(huà)面被遮住了。只要有足夠的訂書(shū)釘,畫(huà)就能掛住。但是這樣太難看了,而且也不是你想要的掛法。如果你不及時(shí)制止他,他可能會(huì)繼續(xù)用這種方法掛畫(huà)。

  還有一種可能的情況,特別是對(duì)那種急性子的初級(jí)程序員來(lái)說(shuō)。當(dāng)你的老板來(lái)問(wèn)你射釘槍的采購(gòu)訂單時(shí),你才發(fā)現(xiàn)他這樣做了。于是你叫來(lái)你的下屬了解情況,發(fā)現(xiàn)他上周一直在google上搜索,閱讀參考書(shū),并向討論組求助。他知道你想把畫(huà)掛在墻上的釘子上,并且認(rèn)為釘釘子的工具是高級(jí)氣動(dòng)射釘槍。如果他能接受你的意見(jiàn),你得指出掛圖和裝修用的釘子是不一樣的,并且告訴他工具箱里的錘子才是真正適合做這件事的工具。要是他還固執(zhí)己見(jiàn),就可能會(huì)有像下面這樣的爭(zhēng)吵了:

  “為什么不能買(mǎi)射釘槍?zhuān)?rdquo;
  “因?yàn)闆](méi)有足夠預(yù)算。”
  “難道就沒(méi)法做好一件事情嗎?”
  “你可以用錘子釘釘子。”
  “可是我們不是應(yīng)該更快更好地完成工作嗎?難道我們用錘子的原因只是因?yàn)橛昧?xí)慣了它?眼光應(yīng)該放遠(yuǎn)點(diǎn)。”
  “我們沒(méi)有足夠的時(shí)間證明買(mǎi)射釘槍是對(duì)的。明白嗎?”

  最后雙方不歡而散。

  現(xiàn)在,你覺(jué)得你把工具的問(wèn)題說(shuō)得夠清楚了。他也拿到了錘子和釘子,開(kāi)始了他的工作。問(wèn)題是,他還應(yīng)該知道如何有效地使用它們。對(duì)你來(lái)說(shuō)熟練使用錘子是輕而易舉的事情。但是對(duì)以前從未見(jiàn)過(guò)錘子的人來(lái)說(shuō),它看上去似乎只有一種用法。事實(shí)上,你可以用錘柄末端。你還可以用爪形部分夾住釘子,然后把它釘進(jìn)墻里,而不必在大力釘釘子時(shí)用手拿著釘子。

  站在木工的角度來(lái)看,這似乎有點(diǎn)低級(jí),但它反映了使用軟件工具時(shí)的實(shí)際問(wèn)題。一個(gè)軟件往往提供很多參考文檔,但范例和習(xí)慣用法卻不多。你可以買(mǎi)一本一千多頁(yè)的參考書(shū),它告訴你用一個(gè)軟件可以做些什么,卻沒(méi)有哪怕僅僅5頁(yè)內(nèi)容來(lái)說(shuō)明在你的實(shí)際情況下你該怎么用它。就算你有一個(gè)實(shí)例,它們也不告訴你為什么要用這種方式運(yùn)行。讀完本文之后,你就不會(huì)再糾結(jié)釘釘子是用錘子還是射釘槍了。

  我剛開(kāi)始使用XML時(shí)就遇到了這種情況。我讀過(guò)的幫助文檔里這樣說(shuō)過(guò),“用SAX解析器讀取XML文件,不要用DOM解析器。DOM解析器運(yùn)行速度很慢,并且占用內(nèi)存過(guò)多”。后來(lái)我問(wèn)過(guò)其他人,“為什么不行呢?難道DOM解析器執(zhí)行效果很差嗎?”

  他說(shuō):“并非如此,但如果你只想獲得作者和標(biāo)題信息你何必加載一個(gè)10M的文件呢?”
  “啊,是這樣,我想把一個(gè)20K的文件內(nèi)容發(fā)布為一個(gè)網(wǎng)頁(yè)。”
  “那你還是用DOM解析器吧。”

  此外,還可能會(huì)出現(xiàn)數(shù)據(jù)交互問(wèn)題。現(xiàn)在你的下屬知道怎么釘釘子了,他做的第一件事情是在畫(huà)框上釘一個(gè)釘子。

  天哪!!!

  “不不不,你沒(méi)看到畫(huà)框背后的繩子嗎?你應(yīng)該把釘子釘在墻上,然后把繩子掛上去。”
  “哦,我不知道它有什么作用。不過(guò)你只釘一個(gè)釘子?多釘幾個(gè)不是更安全嗎?比方說(shuō)釘6個(gè)。”
  “用一個(gè)就足夠了,釘子多了反而不好調(diào)整。”
  “為什么要調(diào)整呢?”
  “你得把畫(huà)掛正吧。”
  “哦?要掛正嗎?”

  唉,又沒(méi)說(shuō)清楚。

  現(xiàn)在我們開(kāi)始討論更高層次的設(shè)計(jì)問(wèn)題。畫(huà)應(yīng)該掛在哪里?應(yīng)該掛多高?他沒(méi)法決定。如上文所說(shuō),它沒(méi)有你想得那么簡(jiǎn)單。

  你明白畫(huà)不能掛在門(mén)邊,因?yàn)殚_(kāi)門(mén)時(shí)會(huì)擋住它。它也不能掛在那邊,因?yàn)槟阋研聲?shū)柜放在那。或許你的天花板有14英尺高,畫(huà)只是用來(lái)讓這個(gè)大房間顯得不那么空蕩。也有可能這是你和“貓王”的合影,有人坐在你辦公桌前的時(shí)候你可以顯擺顯擺。如果它是一張老照片,你必須確保它不會(huì)受陽(yáng)光直射。這些都是“業(yè)務(wù)規(guī)則”。雖然你掛畫(huà)的方式大同小異,但你必須考慮它們。

  也有些業(yè)務(wù)規(guī)則會(huì)影響你的決策。如果畫(huà)比較貴重,你得想辦法把它保護(hù)好,比方說(shuō)把它掛在比較難夠著的地方。如果它價(jià)值連城,你得用兩英寸厚的玻璃來(lái)保證它的安全,周?chē)€得裝上警報(bào)系統(tǒng)。要是你打算用來(lái)掛畫(huà)的那堵墻非常結(jié)實(shí),你得用鉆頭才行。如果墻本身比較值錢(qián),你還是暫時(shí)打消掛畫(huà)的想法吧。

  這些規(guī)則可能有些道理,但它們并非那么顯而易見(jiàn)。一些在某種情況下正確的方案在其它情況下不一定是對(duì)的。你只能通過(guò)你在房間里掛畫(huà)的經(jīng)驗(yàn)來(lái)了解它們。另外,你還得考慮哪些規(guī)則可能改變。你確定要把畫(huà)掛在這嗎?這幅畫(huà)會(huì)被移到別處嗎?它會(huì)不會(huì)被換成另外一幅畫(huà)?新的畫(huà)和原來(lái)那幅還是一樣大嗎?

  別指望新手會(huì)考慮這些。你可以適當(dāng)指點(diǎn)他一下。你的任務(wù)是盡可能多地告訴他工作的細(xì)節(jié)。如果他聰明,好奇,他會(huì)提問(wèn),并了解這樣做的來(lái)龍去脈。不過(guò)這需要時(shí)間。

  如果你沒(méi)有給他足夠的信息,他會(huì)試著猜測(cè)。前面提到的急性子的程序員這時(shí)可能就不顧規(guī)則了。你告訴他把你的寵物狗照片掛起來(lái),一周后他回來(lái)了,問(wèn)你要不要再考慮考慮他關(guān)于石膏鋸的建議。

  “你為什么會(huì)想到石膏鋸呢?”
  “辦公室的工具箱里只有木鋸,不太適合鋸石膏板。”
  “什么?你認(rèn)為只有你想鋸石膏板嗎?你可以在Home Depot上買(mǎi)一個(gè)鋸子。”
  “那么,好吧,我去買(mǎi)一把。”
  “等等,你怎么會(huì)想到鋸石膏板?”
  “是這樣,我不知道掛畫(huà)最好的方式是什么,所以我上網(wǎng)找了討論組里的畫(huà)廊設(shè)計(jì)師。他們說(shuō),最好的方法是鋸穿墻壁,做出一個(gè)框架。把畫(huà)從后面放進(jìn)去,這樣能夠保證玻璃的安全,因?yàn)槟悴槐貏?dòng)它。而且這種方法比釘釘子更加美觀。”
  “...”

  這個(gè)比喻可能有些不太切題,不過(guò)請(qǐng)相信我——它非常有參考價(jià)值。如果你的職業(yè)生涯中還沒(méi)有遇到此類(lèi)事情,你可以先看看它。

  關(guān)鍵是,從細(xì)節(jié)技術(shù)層面到整體效果層面,有很多東西你必須知道。不能讓一個(gè)新手隨意猜測(cè),不管他有多聰明。而且這和聰不聰明沒(méi)關(guān)系,一切都要根據(jù)實(shí)際情況決定。可能你和他們一起工作太久了,你忘了你也有一段時(shí)間不知道這些。但是你必須詳細(xì)地描述你的要求,方便他們提問(wèn)。

  僅僅是這樣嗎?

  這讓我想起了《帝國(guó)反擊戰(zhàn)》中我最喜歡的場(chǎng)景之一:Luke Skywalker遭受了失去親人的打擊,他一直在尋找自己隱秘的身世。后來(lái)他跟隨絕地大師Yoda學(xué)習(xí)如何成為絕地武士。但是Luke想學(xué)的東西Yoda卻沒(méi)有教他。實(shí)際上,觀眾們認(rèn)為,Luke似乎并不了解絕地武士應(yīng)該是怎樣的,畢竟除了和Ben Knobi一起學(xué)習(xí)的時(shí)間,他幾乎沒(méi)有任何這方面的經(jīng)驗(yàn)。而他之前并不知道Kenobi是絕地武士,直到他親眼目睹Kenobi在戰(zhàn)斗中犧牲。

  這是這個(gè)場(chǎng)景中令我印象最深的畫(huà)面:
  LUKE:師父,移動(dòng)石頭很難,它和我以前學(xué)的完全不一樣。
  YODA:不,沒(méi)有什么不同。只是你認(rèn)為它們不同罷了。你必須忘掉你所學(xué)的。
  LUKE:(靜靜地集中精神)好吧,我試試看。
  YODA:不,別老想著只“試試”。要么做,要么就別做。

  而《帝國(guó)反擊戰(zhàn)》和上文掛畫(huà)的例子有什么聯(lián)系呢?

  初級(jí)程序員們應(yīng)該“忘掉”他們覺(jué)得自己已經(jīng)知道的東西,然后重新學(xué)習(xí)他們需要的東西。

  剛走出校園的程序員有兩種類(lèi)型:他們要么干勁十足,隨時(shí)準(zhǔn)備改變世界;要么他們膽小如鼠,不敢抓住機(jī)會(huì)或者嘗試有風(fēng)險(xiǎn)的東西,生怕被炒魷魚(yú)。

  第一種程序員,也是我非常擔(dān)心的一種。他們自認(rèn)為他們知道要做什么,并且在google和互聯(lián)網(wǎng)上搜索他們需要的資料——他們會(huì)為了掛畫(huà)把墻鋸開(kāi)。或者他們會(huì)因?yàn)樯溽敇尯湍銧?zhēng)吵,因?yàn)樗麄冇X(jué)得那是對(duì)的:射釘槍釘釘子的效率更高。實(shí)際上他們錯(cuò)了,因?yàn)樯溽敇寷](méi)法控制釘釘子的力量(它會(huì)把釘子整個(gè)釘進(jìn)墻里),并不適合掛畫(huà)。

  另外一種就比較不幸了,他們沒(méi)法被用人單位接納。因?yàn)樗麄內(nèi)狈ぷ鞯闹鲃?dòng)性,所以他們沒(méi)法真正學(xué)到什么東西。他們只能做簡(jiǎn)單的拼寫(xiě)檢查或是類(lèi)似于行政助理的工作,甚至有可能一輩子都耗在HTML網(wǎng)頁(yè)上。他們會(huì)抱怨,厭倦這份工作,最后跳槽到郵政行業(yè),市場(chǎng)銷(xiāo)售行業(yè)(也許更糟,做個(gè)推銷(xiāo)員)。不管怎樣,這對(duì)他們沒(méi)有好處。

  這不得不讓我深思:初級(jí)程序員應(yīng)該做些什么呢?如何讓一個(gè)程序員從入門(mén)到精通?初級(jí)開(kāi)發(fā)人員應(yīng)該怎樣避免向這兩個(gè)極端發(fā)展呢?

  結(jié)論就是:初級(jí)程序員們必須學(xué)會(huì)“問(wèn)”。問(wèn)了,就必定會(huì)有收獲。

  看看急性子的初級(jí)程序員的例子:如果他敢于發(fā)問(wèn),“老板,我從來(lái)沒(méi)掛過(guò)畫(huà),我該怎么做?”,就不會(huì)有射釘槍、磁帶、石膏鋸這樣的問(wèn)題了。作為一個(gè)過(guò)來(lái)人,你應(yīng)該知道他沒(méi)有你那么經(jīng)驗(yàn)豐富。

  老手們沒(méi)法了解新手們不會(huì)什么。但是幫助他們意識(shí)到“哪些不會(huì)”是非常重要的。這種關(guān)系就好比之前提到的絕地大師和絕地學(xué)徒之間的關(guān)系,也可以說(shuō)是西斯領(lǐng)主和西斯學(xué)徒的關(guān)系,或者是千百年來(lái)人類(lèi)歷史上的各種師徒關(guān)系。

  最關(guān)鍵的一點(diǎn)呢?

  從某個(gè)角度來(lái)說(shuō),我們都是初級(jí)程序員。就算你有四十年各平臺(tái)和嵌入式系統(tǒng)的C++開(kāi)發(fā)經(jīng)驗(yàn),但涉及到關(guān)系數(shù)據(jù)庫(kù)(或是Nosql,或是Java和JVM,或是C#和CLR)的時(shí)候,你就是一個(gè)初級(jí)程序員。再換句話說(shuō),關(guān)于原力和拯救宇宙(包括一個(gè)后來(lái)你才知道是你妹妹的漂亮女孩)的絕地武士,你依然是個(gè)新手。

  現(xiàn)在你知道該怎么做了。

  為你自己找一位老師(也許現(xiàn)在更準(zhǔn)確的說(shuō)法應(yīng)該是“導(dǎo)師”),向他們學(xué)習(xí)或是提問(wèn)是非常有用的。然后,反過(guò)來(lái),讓你的同事或是朋友中的初級(jí)程序員也這么做;他們不一定會(huì)接受你的幫助,但仔細(xì)想想,你在這個(gè)年紀(jì)的時(shí)候,不也希望有一位大師來(lái)教你嗎?

  你是想成為愛(ài)抱怨的Luke Skywalker還是想成為絕地武士Luke Skywalker呢?Luke失去了一只手之后才明白Yoda遠(yuǎn)遠(yuǎn)比他聰明,應(yīng)該多請(qǐng)教他,而不是告訴他“你做錯(cuò)了”。

  如果你不想讓項(xiàng)目出錯(cuò),還是老老實(shí)實(shí)承認(rèn)自己不是無(wú)所不能吧。如果你想讓你的項(xiàng)目更加出彩,不妨考慮一下我的建議。

it知識(shí)庫(kù)別把自己當(dāng)個(gè)超人——給初級(jí)程序員的一點(diǎn)小小建議,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 鲁大师影院在线视频在线观看 | 97se se| 亚洲精品国产一区二区贰佰信息网 | 国产精品-区区久久久狼 | 特黄特色大片免费播放器试看 | 2020最新无码国产在线视频 | 男人插曲女人的视频 | 3acg同人漫画禁图h | 国产成a人片在线观看视频99 | 国产午夜精品久久理论片小说 | 黄小飞二人转 | 亚洲AV噜噜88 | 小莹的性荡生活 | 国产精品嫩草影视在线观看 | 国产精品人妻无码久久久2022 | 大学生宿舍飞机china free | 色呦呦人人视频 | 国产视频这里只有精品 | 一区两区三不卡 | 花蝴蝶高清影视视频在线播放 | 亚洲精品免费观看 | 亚洲AV人无码综合在线观看蜜桃 | 色综合色综合久久综合频道 | 97人妻久久久精品系列A片 | 老师小扫货水能么多叫出来 | 欧洲老妇人bb | 亚洲日本一区二区三区在线不卡 | 全是肉的高h短篇列车 | 国产互换后人妻的疯狂VIDEO | 亚洲日韩一区精品射精 | 成年黄网站免费大全毛片 | 国产女人视频免费观看 | 5g天天奭视频 | 久久国产精品高清一区二区三区 | 久久精品国产亚洲精品2020 | 在线黑人抽搐潮喷 | yellow日本动漫观看免费 | 一品道门在线视频高清完整版 | 伊人不卡久久大香线蕉综合影院 | 国产精品高清视亚洲一区二区 | 丰满少妇67194视频 |