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

成為高效程序員的7個(gè)重要習(xí)慣

開發(fā) 項(xiàng)目管理
作為軟件工程師, 你希望從工作中獲得的是:穩(wěn)定的薪水、參與好項(xiàng)目的機(jī)會(huì)、好工作的跳板或只是和其他程序員成為好基友。這里的“高效”,我指的是按時(shí)完符合要求的項(xiàng)目的能 力。經(jīng)歷過不少軟件編寫工作后,我相信以下實(shí)踐會(huì)幫助你學(xué)會(huì)“高效”,同時(shí)提高專業(yè)聲望、拉長職業(yè)壽命,和獲得個(gè)人滿足

作為軟件工程師, 你希望從工作中獲得的是:穩(wěn)定的薪水、參與好項(xiàng)目的機(jī)會(huì)、好工作的跳板或只是和其他程序員成為好基友。這里的“高效”,我指的是按時(shí)完符合要求的項(xiàng)目的能 力。經(jīng)歷過不少軟件編寫工作后,我相信以下實(shí)踐會(huì)幫助你學(xué)會(huì)“高效”,同時(shí)提高專業(yè)聲望、拉長職業(yè)壽命,和獲得個(gè)人滿足

1. 理解你的需求

成為高效程序員的第一步是,保證時(shí)間的合理分配。沒有什么比將時(shí)間花在完全沒有前途的工作上更浪費(fèi)的了。

盡快開工

盡快完成一個(gè)直觀的系統(tǒng)。這意味著先創(chuàng)建界面,無論是程序界面還是用戶界面,然后生成內(nèi)部功能的存根代碼(如果有必要的話)。這么做便于“客戶”查 看,通過執(zhí)行用戶界面或編寫程序界面的代碼,可以發(fā)現(xiàn)最初代碼存在的矛盾或遺漏。甚至在第一次交付以前,你有可能會(huì)注意到問題或可改進(jìn)的地方。

有一個(gè)經(jīng)典觀念認(rèn)為,如果你提前設(shè)計(jì)好所有東西,那么之后你要做的就只剩寫代碼了。如果你之前做過完全相同的項(xiàng)目,那么這個(gè)說法當(dāng)然正確。但如果不是,你很可能會(huì)陷入死角,也就是你只是在猜想或執(zhí)行一個(gè)可疑的假設(shè)。

很早以前在一家無線網(wǎng)絡(luò)的新公司工作時(shí),我們開了兩個(gè)月的會(huì)來設(shè)計(jì)一個(gè)將在6個(gè)月內(nèi)發(fā)布的無線門戶和網(wǎng)關(guān)。最終,我們厭煩了開會(huì),開始編寫代碼。頭兩周內(nèi),我負(fù)責(zé)的部分與原始設(shè)計(jì)不符,兩個(gè)月后的第一個(gè)無線連接測試表明,我完全誤解了無線協(xié)議。

這不是說設(shè)計(jì)是沒必要的。但在一定程度上,設(shè)計(jì)只是一種猜想。設(shè)計(jì)應(yīng)該通實(shí)執(zhí)行來確認(rèn),并且早執(zhí)行總是比晚執(zhí)行好。

即使原始設(shè)計(jì)是充分的,只要你發(fā)現(xiàn)可以調(diào)整的地方,你就要改進(jìn)它。硬件產(chǎn)品、建筑和大型軟件項(xiàng)目等會(huì)受到僵死的“預(yù)制”的損害,但對(duì)于軟件,你可以在項(xiàng)目早期提煉項(xiàng)目要求,然后制作適合的界面。但是,這必須盡早完成。

盡早開工有利于樹立你的職業(yè)形象。如果能向你的老板展示一些成果,他會(huì)很高興的。另一方面,提早開工有助于緩解焦慮。

經(jīng)常交付

一旦你完成一些可用的東西了,不要只是把它留作“概念實(shí)證”。要讓其他人試執(zhí)行它、看看他們的反應(yīng),然后讓它指導(dǎo)開發(fā)過程的優(yōu)先次序。觀察人們?nèi)绾?使用你的軟件,這是無可代替的方法。客戶問卷調(diào)查和焦點(diǎn)研究可能會(huì)提供一些有用的意見,但有可能會(huì)讓開發(fā)者的設(shè)計(jì)決定和特點(diǎn)被客戶牽著鼻子走,這是一種冒 險(xiǎn)。

特別是要盡快將軟件交付QA人員,經(jīng)常提交成果,最好是按預(yù)定的時(shí)間間隔。讓他們測試每天的成果,或至少是每周的成果也是好的。這會(huì)讓QA人員覺得 自己全程參與項(xiàng)目開發(fā),從而培養(yǎng)職業(yè)責(zé)任感,更樂意發(fā)現(xiàn)和報(bào)告問題。最需要優(yōu)先解決的是導(dǎo)致產(chǎn)品失效的問題,如崩潰或死循環(huán)——讓問題盡可能涵蓋多方面, 熟悉整個(gè)產(chǎn)品,這樣才有可能提早發(fā)現(xiàn)設(shè)計(jì)問題。

在一個(gè)小型3D軟件公司,我負(fù)責(zé)移植從SGI出品的龍頭產(chǎn)品到Windows NT。6個(gè)月后,移植沒完成,倒有了崩潰的傾向,我很不情愿地將第一輪成果交付測試團(tuán)隊(duì)。幸運(yùn)的是,因?yàn)槁┒刺啵琎A經(jīng)理堅(jiān)持要我立刻解決導(dǎo)致測試人員 無法有意義地使用程序的問題。如果是我自己測試,我應(yīng)該會(huì)忙于看起來更困難更重要的核心3D問題,可能會(huì)怠慢看來起比較普通的問題,如用戶界面、載入-保 存功能和與計(jì)劃支持的硬件之間的兼容性。

程序員常常不想過早將代碼交付測試人員——他們不想聽到自己已經(jīng)知道的漏洞;而測試人員極有可能不想測試基本上行不通的東西。但測試人員的工作就是找到這些問題。如果程序員想盡快看到成果的話,應(yīng)該把漏洞報(bào)告當(dāng)成好東西。

2. 把工作當(dāng)真

將軟件放在盡可能接近完工的狀態(tài)下運(yùn)行。你永遠(yuǎn)不知道你什么時(shí)候得演示系統(tǒng)、發(fā)送評(píng)估備份或甚至交付。

使用真實(shí)數(shù)據(jù)

如果你只用作為著冰山一角的樣本數(shù)據(jù)作測試,那么,你的程序可能一撞上真實(shí)數(shù)據(jù)的大冰山就沉了。

我曾參與開發(fā)一種用于評(píng)估先進(jìn)的半導(dǎo)體絕對(duì)值的供應(yīng)鏈管理產(chǎn)品。跨過交付這道大坎后,我們接到消息說他們輸入的第一批真實(shí)數(shù)據(jù)仍然在處理中——已經(jīng)兩天了。我同情主程序員,他不得不在管理人員和客戶的催促之下忙活了兩周。很高興遇上這事的人不是我。

使用正式版本

記住,用你自己的機(jī)器創(chuàng)建的東西不是正式的。

在最近的一個(gè)游戲開發(fā)項(xiàng)目中,我負(fù)責(zé)用戶界面,我陸續(xù)從QA那接到報(bào)告說有些顏色不對(duì)。最后,我發(fā)現(xiàn)問題只出現(xiàn)在交付版本中,另一位程序員使用專門 的主機(jī)調(diào)試工具找到了漏洞。結(jié)果竟是一個(gè)我在兩個(gè)月前犯下的愚蠢錯(cuò)誤,沒有指定初始顏色值。調(diào)試版本總是選擇特定的默認(rèn)值,但是交付版本會(huì)更改,最終結(jié)果 是不太確定的。如果我注意經(jīng)常地運(yùn)行交付版本,我會(huì)立刻發(fā)現(xiàn)問題的,而不是損失大量的時(shí)間。

經(jīng)常合并

及時(shí)將你的代碼并入主代碼庫中——你拖得越久,這項(xiàng)工作就越累。

我曾與一名程序員共事,他覺得每天數(shù)據(jù)庫中出現(xiàn)的所有新代碼和數(shù)據(jù)變化都“很麻煩”。確實(shí),這讓所有其他程序員每天都要花一定時(shí)間合并,他才能夠只 掃視一下代碼和數(shù)據(jù)就開始運(yùn)行一些不錯(cuò)的獨(dú)立樣本。但每一次階段性交付時(shí),我們都要花好幾天再次把單獨(dú)的代碼接到當(dāng)前的代碼庫中,有時(shí)候甚至得拖延交付或 冒著損失整個(gè)項(xiàng)目的風(fēng)險(xiǎn)。

將你的代碼與正式版本分開意味著程序員不能評(píng)估你的代碼,以及測試員不能盡早發(fā)現(xiàn)漏洞。可能你并不想其他人挑剔你的代碼,但早發(fā)現(xiàn)問題總是比晚發(fā)現(xiàn)好的——所以,忍了罷。

3. 理解你的代碼

生活中充滿了奇妙的神秘,但你的代碼可不適合出現(xiàn)這些神秘。你不必知道你的車怎么工作的——如果引擎發(fā)出奇怪的聲音,把它交給汽車技師就好了。但換成是你的代碼,如果連你都不知道它是怎么運(yùn)行的或出了什么錯(cuò),那就沒人知道了。

有自己的編寫風(fēng)格

我童年時(shí)的鋼琴教師是這么評(píng)價(jià)我和我姐姐哥哥的:“你姐姐的時(shí)間感強(qiáng),你哥哥的鍵盤打得不錯(cuò)。”然后他停頓了一下說:“你嘛,嗯,你很努力。”

編程是一種有些人能做有些人不能做的事,但還有一些人則是天才。雖然我有過多年的練習(xí),鋼琴還是彈不好;雖然我那么喜歡打球,水平仍然一般般。但我 確實(shí)認(rèn)為我有編程和寫作的天賦。不要吃驚,我認(rèn)為好程序就像好散文。散文和代碼都是文本,有語法、句法、拼寫和語義。對(duì)于大多數(shù)寫代碼的人和寫作的人,有 這些就夠了,但好作家和好程序員還要有一種美感,他們的作品在結(jié)構(gòu)和風(fēng)格上是有特點(diǎn)的,往往能借此識(shí)別出作者。

許多Windows程序員都感到好奇:為什么壞脾氣的老Unix/Mac/Amiga/Lisp程序員對(duì)Win32/MFC/.NET很不滿,但如果所有應(yīng)用界面都來自Microsoft,你可能就不知道還有什么東西是更好的。

復(fù)制粘貼

風(fēng)格化編程的反面是復(fù)制粘貼。從什么地方復(fù)制一些可能有用的代碼,稍作調(diào)整,合并,重復(fù),然后就大功告成了。你的軟件簡直就是大雜燴。

離開一家公司的幾個(gè)月后,一位前同事電郵問我,他復(fù)制粘貼了十頁的代碼組成一個(gè)算法,為什么運(yùn)行不了。我實(shí)在不知道怎么回答了。如果你不能解釋你自己的代碼應(yīng)該是怎么運(yùn)行的,你還指望誰來拯救你?

我甚至在診斷自己從樣本代碼復(fù)制粘貼過來的代碼時(shí)也犯過難。從復(fù)制粘貼開始新代碼是合情理的,但你不能因?yàn)榭雌饋砟苓\(yùn)行就放手不管了——你得返回去看看你是否讀懂了每一條,根據(jù)自己的目的理清代碼。

清理代碼

保持你的房子/公寓/房間整潔的最好辦法就是每天花一點(diǎn)時(shí)間清理它,或至少每周清理一次吧。如果等到住所亂到一定程度才打掃,那么這麻煩就非常大了。除非你雇個(gè)清潔工。

假設(shè)你沒辦法奢侈到雇一個(gè)人每天幫你清理代碼的程度,那么你就應(yīng)該定時(shí)地檢查你的代碼、清理累積的死代碼、淘汰過時(shí)的注釋和錯(cuò)誤的名稱,否則你必定會(huì)得到一份不敢拿出來見人的代碼。如果你不覺得丟不起人,好吧,你行。

我指導(dǎo)過的一名程序員總是向我報(bào)告,她的代碼“完成”了。這是管理者樂意聽到的話,卻讓我非常抓狂。她的代碼從來沒有做完——你得調(diào)試它、維護(hù)它、改進(jìn)它,直到它徹底沒問題。

問題?注釋?

有些人認(rèn)為編程是一門手藝活,也有些人認(rèn)為編程是一項(xiàng)工程。更經(jīng)常的是,它是一門考古學(xué)。你挖掘代碼的沉積物,想知道這些奇怪的人工產(chǎn)品是用來干什么的。為后來人著想一下,留點(diǎn)線索吧。

我問之前提到的那位程序員“完成”注釋了沒有。結(jié)果是,一個(gè)函數(shù)名稱為“GetData”的注釋居然是“Gets data”。這不只是廢話——簡直是侮辱。什么數(shù)據(jù)?什么格式?來自哪里?更不要提像服務(wù)器不可用或傳送中斷時(shí)會(huì)怎么樣這種小細(xì)節(jié)了。

將你的代碼做成文檔,以防有人隨時(shí)要拿來用。可能要用的人就是你本人——想想如果不這么做,你得重新訪問代碼多少次啊?

與之前的一個(gè)老板合作時(shí),他叫我瀏覽一段沒人有時(shí)間看的代碼。一開始,我認(rèn)為它很糟,不知道寫的都是什么東西。之后我慢慢摸索出來這段代碼是干什么的,所以我勉強(qiáng)同意它不算太糟。最后我終于認(rèn)出這貨竟是我兩年以前寫的。教訓(xùn):多留點(diǎn)注釋。

當(dāng)你寫代碼時(shí),記得注釋,而不是等著出現(xiàn)什么方便的清理短語——注釋你的代碼,讓它甚至可以清楚地反映你在編寫時(shí)的想法。你可以成為自己的編寫伙伴。

現(xiàn)在你可以用javadoc和doxygen等生成漂亮的HTML或來自源代碼注釋的其他格式化的文件。理想的情況是,你每天晚上做的就是doc生成的部分,可以通過你的內(nèi)聯(lián)網(wǎng)獲得。

注意警告

無視編輯器和運(yùn)行時(shí)間警告會(huì)害到你自己。有“警告”就有原因。

我曾做過一個(gè)基于Unix的應(yīng)用,它不能成功地連接某些函數(shù)。我們通過在運(yùn)行時(shí)再次連接這些函數(shù)解決問題。六個(gè)月后,當(dāng)我們執(zhí)行一個(gè)干凈的新版本 時(shí),我們才發(fā)現(xiàn)原來我們關(guān)掉了能提醒我們未知連接漏洞的警告。在供應(yīng)商的斥責(zé)下,我們將連接問題解決了。但結(jié)果是,原來我們只要通過重新排列庫就能連接上 了。

提高編輯器的警告水平,注釋代碼以及記錄創(chuàng)建和運(yùn)行時(shí)間的警告信息,最好包括解決警告的標(biāo)準(zhǔn),這樣你就會(huì)知道是否解決問題或忽略問題。

4. 優(yōu)化編程

帶著目的寫代碼

復(fù)制粘貼代碼的人的另一個(gè)極端是,只是為了讓代碼看起來更漂亮(至少對(duì)他們而言)而改變代碼。雖然有編程審美感是值得贊揚(yáng)的,但改變代碼以便讓你覺得漂亮只是浪費(fèi)時(shí)間(無用的冒險(xiǎn))。瀏覽并改變別人寫的代碼,讓它看起來更漂亮,真是讓人生氣。

我有一個(gè)挑剔的同事,瀏覽我們的代碼庫時(shí)將所有的附加語都刪除了。如果他只是清理了入門級(jí)員工寫的代碼,那可能沒人會(huì)說什么,但那些附加語是我們團(tuán)隊(duì)的技術(shù)領(lǐng)導(dǎo)寫的,他可是我們公司最出色的人物之一。

不要搞破壞

“代碼重構(gòu)”現(xiàn)在十分流行,但程序員往往以為它是指代碼清理或重新設(shè)計(jì)。這個(gè)技巧是指重新組織代碼,同時(shí)不破壞其他東西。如果你以改進(jìn)的名義破壞已經(jīng)存在的功能,那么你的意思就是:要么你的時(shí)間比其他人的時(shí)間金貴,要么你不破壞就不會(huì)整代碼。

我有一個(gè)特別討人嫌的同事,他決定重新執(zhí)行我們系統(tǒng)中的解析器,但結(jié)果讓代碼變成其他所有人都不知道怎么寫了。我讓他恢復(fù)原狀,之后發(fā)現(xiàn)代碼能編寫了,卻不能運(yùn)行了—–問他怎么回事,他說“應(yīng)你的要求”,他移除了整個(gè)解析器。真沒團(tuán)隊(duì)精神。

保持代碼運(yùn)行需要一些耐心和額外的工作——你勤奮地回歸測試你的工作,在將函數(shù)添加到新代碼中時(shí),你可能需要暫時(shí)留住老代碼和界面。但對(duì)于所有與這個(gè)代碼庫有關(guān)的人來說,這是必須做的。

找到瓶頸

人們總是談?wù)?ldquo;最佳”,但這不是一個(gè)正確的詞。我們極少將最佳作為目標(biāo)——相反的,我們的目標(biāo)是改進(jìn)和權(quán)衡以達(dá)到足夠好的表現(xiàn)。

在谷歌的電話面試時(shí), 我被問到如何在一組有序的數(shù)字中搜索某個(gè)數(shù)字。顯然,提問的人是在問二進(jìn)制搜索法。但在現(xiàn)實(shí)生活中,我可能會(huì)做出“錯(cuò)誤”的選擇——從頭找到尾。如果程序 表現(xiàn)足夠好了,還花兩倍的時(shí)間寫兩倍的、必須維護(hù)和調(diào)試的代碼,那是毫無意義的,特別是如果那段代碼并非程序的瓶頸(我嚴(yán)重懷疑如果那個(gè)數(shù)據(jù)是瓶頸部分, 你居然還會(huì)將它線性排列)。

如果你確實(shí)需要在程序的速度或空間方面達(dá)到最佳,折騰除了瓶頸以外的其他任何部分都只是浪費(fèi)時(shí)間。

5. 自我管理

你可能對(duì)你那位討厭的老板有各種抱怨,你的抱怨可能沒錯(cuò)。所以你得成為你自己的管理者。即使你的老板人不錯(cuò),他也不會(huì)站在你背后告訴你該寫什么、怎么寫才會(huì)快(盡管我肯定許多老板恨不得這么做)。

估計(jì)時(shí)間

程序員不能提供有用的時(shí)間估計(jì),這是出了名的。但我認(rèn)為這是無理指責(zé),因?yàn)楣芾韺油鞒龈畹念A(yù)測,并且程序員的警告往往被無視(這可能是所有工程的共同災(zāi)難)。但是,合理的時(shí)間估計(jì)對(duì)于按時(shí)完成項(xiàng)目仍然是關(guān)鍵的。

在一個(gè)商業(yè)軟件項(xiàng)目中,我的有些同事居然樂得忘了產(chǎn)品交付日期——有人問是否已經(jīng)交付了,另一個(gè)人才很驚訝地發(fā)現(xiàn),日子已經(jīng)過去好幾天了。

更糟的也更普遍的是,程序員能給出的時(shí)間估計(jì)是“只需要幾天。”每次我聽到這話,或者我自己說出這話,我都感到害臊。

一家圖像軟件公司的總裁想讓產(chǎn)品支持VRML(那時(shí)它是下一件大任務(wù)),包括我們將在兩個(gè)月內(nèi)發(fā)行的產(chǎn)品也支持VRML。他可能想到(他是正確的) 我會(huì)拒絕開始新項(xiàng)目,所以他問了另一個(gè)工程師,得到了他想到的回答:“只需要幾天。”兩天后,我告訴總裁,我們剛剛浪費(fèi)了他和我的兩天時(shí)間,因?yàn)橛袃砂俣?個(gè)更重要的漏洞要修復(fù),他認(rèn)為我的理由算是充分。(后話:VRML沒有太成功。)

另一位程序員完全沒有時(shí)間估計(jì)的概念。但沒有必要完全拒絕時(shí)間的模糊屬性——畢竟只是估計(jì),事實(shí)上你應(yīng)該避免太確切。如果你是一名有經(jīng)驗(yàn)的工程師,你就知道你以前做類似的工作需要多長時(shí)間,如果你不是,那你就問問有經(jīng)驗(yàn)的人。

我有一個(gè)聰明的朋友,經(jīng)常被指派去開發(fā)實(shí)驗(yàn)原型,他問我:“你怎么估計(jì)時(shí)間?”我認(rèn)為這是一個(gè)反問句,但甚至純研究人員也要估計(jì)時(shí)間。有人支付他們,希望得到結(jié)果,即使它是許多演示樣本或某段時(shí)間發(fā)表的文章。

如果你確實(shí)估計(jì)不準(zhǔn)需要多少時(shí)間,那么你就不是做這項(xiàng)任務(wù)的合適人選。

有時(shí)候程序員不情愿承諾時(shí)間是因?yàn)樗麄兒ε卤WC。確實(shí),這個(gè)世界沒那么美好,經(jīng)理會(huì)在時(shí)間上跟你討價(jià)還價(jià),競爭對(duì)手可能用嚴(yán)苛或不切實(shí)際的安排來擠兌你,希望你失敗。在你承諾時(shí)間后,你就悲劇了,你別想得到任何你希望的結(jié)果。

我曾有個(gè)老板問完成時(shí)間后會(huì)追問一句:“你保證?”但問他硬件條件和其他相關(guān)事宜時(shí),他會(huì)說:“我盡量。”

我能說的只有,抓緊時(shí)間以及給出現(xiàn)實(shí)估計(jì)。任何讓步都應(yīng)該根據(jù)實(shí)際的介于產(chǎn)品和資源之間的交易。要根據(jù)假設(shè)、相關(guān)事宜和資源做時(shí)間安排,找個(gè)地方寫下來,這樣以后你就不用麻煩你不太給力的記性了。

計(jì)劃進(jìn)度

在決定上哪去以前,你不會(huì)跳上車的,對(duì)吧?你在開車時(shí)心里可能就有路線了。相同地,在你開始用電腦寫以前,你應(yīng)該知道你今天想完成什么,有一些想法了。

每天都會(huì)遇到分心的事,所以你不可能總是完成你想完成的事。與那些將軟件工程團(tuán)隊(duì)當(dāng)作自動(dòng)販賣機(jī)的人的想法相反的是,有些任務(wù)不是一天就能完成的。所以想想你到周五要完成什么,如果你完成了,那么周末你就可以好好過了。

6. 不斷學(xué)習(xí)

一名社團(tuán)足球隊(duì)成員曾經(jīng)問我,我們每天束緊防滑釘練習(xí),你們“C語言編程的秘密是什么?”如果存在這樣的秘密的話,我肯定會(huì)在晚間電視節(jié)目上宣傳如 何靠房地產(chǎn)發(fā)財(cái)。對(duì)不起,沒有捷徑——你必須學(xué)習(xí)、練習(xí)和犯錯(cuò)。你不一定得依靠團(tuán)體訓(xùn)練或?qū)W校教育——有許多國立的和當(dāng)?shù)氐膶I(yè)團(tuán)體、書籍,當(dāng)然還有網(wǎng) 絡(luò)。

編程是科學(xué)

編程被稱作“計(jì)算機(jī)科學(xué)”是有原因的。無需正規(guī)的計(jì)算機(jī)科學(xué)教育,任何人都可以輕易地開始編程(可能太容易了)。特別是,那些學(xué)過其他工程和理科的 人,可以非常快地上手編程,然后以此謀生。但對(duì)于高效地處理重大任務(wù),你必須知道軟件的固有功能和限制、識(shí)別前提,這樣你才不會(huì)白費(fèi)力氣地做重復(fù)的工作。 你不必知道所有事,但你應(yīng)該至少粗略地了解許多領(lǐng)域,必要時(shí)能做一些額外的研究。

例如,創(chuàng)建了新文件格式的人應(yīng)該知道一些關(guān)于編輯器的事。我不是指所有代碼生成的優(yōu)化如循環(huán)展開,而是基本的問題和各種編輯的短語和大部分指定標(biāo)記和語法的重要性。今天,大多數(shù)人會(huì)默認(rèn)地使用XML,那是件好事,

但在那之前,一般是粗略地寫一些文本格式,指向一些生成的樣本文檔作為文件,之后其他寫了另一個(gè)解析器的人會(huì)補(bǔ)上一些在文檔中閱讀的東西,但不是全部。在出了差錯(cuò)的情況下,你有兩種方式推卸責(zé)任——要么讀者不行,要么作者太差。無論怎么樣,更受歡迎的產(chǎn)品會(huì)贏。

我對(duì)3D圖象行業(yè)最不能容忍的事情之一是,過多的文件格式不明。當(dāng)我執(zhí)行一個(gè)3D作品的OBJ文件解析器時(shí),我測試的每份導(dǎo)出作品都生成明顯不同的 文件,比如空白和換行不同。與之形成對(duì)比的是,我的一個(gè)初出茅廬的同事用語法和詞法分析器設(shè)計(jì)了一個(gè)新游戲交換格式(現(xiàn)在,這不再是什么大不了的事了—- 大多數(shù)新圖象文件格式好像都是基于XML的)。

只會(huì)將簡單的腳本和用戶界面放在一起的程序員和可以處理實(shí)際問題的程序員,如果說這二者有什么區(qū)別的話,那就是對(duì)復(fù)雜計(jì)算的理解能力,如算法怎么影響問題的大小。每一位程序員都應(yīng)該知道基本的復(fù)雜性術(shù)語和對(duì)常見問題的復(fù)雜程度有常識(shí)性認(rèn)識(shí)。

我的第一份工作是計(jì)算機(jī)輔助半導(dǎo)體設(shè)計(jì),涉及許多可擴(kuò)展性的問題,包括一些NP-complete問題(非常難處理)。但是,每次看到在線性時(shí)間中 不能解決的問題,和我們自夸可能意味著大部分是線性時(shí)間的“線性”算法,有些工程師會(huì)興奮地說:“這是旅行商問題!”(旅行商問題,即TSP是一個(gè)有著重 要工程背景、在圖論中的典型組合優(yōu)化問題,已被證實(shí)是一個(gè)NP完全問題。也就是,如果一個(gè)旅行商不得不到幾個(gè)城市做生意,怎樣走最短的路線使他一次到達(dá)這 幾個(gè)城市。)

免費(fèi)啤酒、自由討論、免費(fèi)軟件

好吧,其實(shí)沒有免費(fèi)啤酒;但現(xiàn)在程序員過得還不錯(cuò)(盡管經(jīng)濟(jì)衰退和外包業(yè)惹爭議)——畢竟你需要的東西網(wǎng)上教程、討論組上都有,還有免費(fèi)軟件可以用。你要解決的只有硬件和寬帶問題。

7. 尊重

高效軟件工程師的要求之一是,被認(rèn)真對(duì)待。你必須得到你的同事和老板的尊重,至少出于你的技術(shù)能力、對(duì)自己的工作有主導(dǎo)權(quán)、對(duì)他人有一定影響力。

愚蠢問題

真的,這個(gè)世界上存在許多愚蠢的問題。提出一個(gè)聰明的問題會(huì)增加別人對(duì)你的尊重,但這是一項(xiàng)技術(shù)活。一個(gè)揭露未解決的事的好問題會(huì)讓別人看到你深刻的內(nèi)涵,你敏銳的思維。要求說明關(guān)于技術(shù)參數(shù)的問題,顯示了你閱讀和發(fā)現(xiàn)問題的能力。

如果你的問題沒有得到答案,可能是問題本身有誤,所以不要再重復(fù)發(fā)問了。換一種方式提問,帶上更多細(xì)節(jié)或背景。如果被提問的是你,或花時(shí)間回復(fù)新手問題的是你,你會(huì)感謝上述考慮的。

能與技術(shù)支持人員保持良好關(guān)系,這是讓我對(duì)自己都感到驕傲的事。但我確實(shí)記得一件往事,那時(shí)我拋出一個(gè)問題:“幾周前提出來的那個(gè)問題是怎么回事?”你可以想象別人是多么惱火地回答——“你說的怎么回事是指什么,并且,你說的是什么問題?”

粗魯無禮是沒有回報(bào)的,特別是如果你是要求免費(fèi)指導(dǎo)或咨詢討論組。即使你是在支持協(xié)議的保護(hù)之下發(fā)問,激怒了你的技術(shù)顧問對(duì)長期合作也會(huì)很不利。

我曾經(jīng)向臭脾氣的新人們解釋為什么他們的問題有問題或者什么是他們從一開始就做錯(cuò)了的,真是太累人了。現(xiàn)在,我給你快速生效的傻瓜過濾器——“我想知道的只是……”或果斷無視。

讓所有人知道你讀了文件和谷歌搜索了該問題。除了避免回復(fù)必然的“RTFM”(RTFM意為:去讀該死的指導(dǎo)手冊(cè)。當(dāng)你需要信息或者解決問題時(shí),在 請(qǐng)求對(duì)方幫助之前,應(yīng)該花一些時(shí)間嘗試自己去尋找需要的東西。)和“Google is your friend”,都顯示了你做足了功課,那些幫助的人不必搜索相同的資源。如果你確實(shí)指望他們?yōu)槟闼阉髂切┵Y源,那你的意思就是,你的時(shí)間比他們的金貴, 你在謀殺他們的時(shí)間。

白癡答案

如果你要表現(xiàn)得你知道自己在說什么,那么你確實(shí)應(yīng)該知道你到底在說什么。工程師的交流有時(shí)候更多地是炫耀自己的知識(shí)而不是提供信息(如果你也能這么 做,那我向你致敬)。這往往無益于求職面試,面試官其實(shí)是假借“發(fā)現(xiàn)你是怎么想的”的幌子,向求職者拋出空洞的問題。當(dāng)然,如果求職者有一點(diǎn)自知之明的 話,也可能產(chǎn)生出乎意料的結(jié)果。

有一位技術(shù)總監(jiān)打電話面試我,要我概述C++編輯的結(jié)果堆棧框架,并且口頭答復(fù)他。我一步一步地打草稿,每次我給他正確的答案,他都反過來要我說一個(gè)錯(cuò)誤的答案,以便我們可以仔細(xì)檢查為什么那個(gè)選擇不管用。我不知道我這么寫是不是在彰顯我有多聰明或他有多聰明。

作為一名工程師,你不能太倚重錢財(cái)和長相——信譽(yù)才是你的資本。所以如果你犯錯(cuò)了,就坦率承認(rèn)吧。

我有幸與一名資深工程師共事,他從來不犯錯(cuò)。當(dāng)他的Java代碼在多重處理器系統(tǒng)中崩潰時(shí),原來是出現(xiàn)了大漏洞。當(dāng)我拿代碼指出UI代碼不支持多線 程運(yùn)行時(shí),他堅(jiān)持說只有一個(gè)線程。當(dāng)我列出代碼中的7條線程(我能找出的)時(shí),他同意不應(yīng)該保留這么多線程,并且最好修改一下。但他還是按老樣子編寫代碼 ——他沒有修復(fù)任何漏洞,他只是用更多代碼掩蓋了漏洞。

最后,一個(gè)節(jié)省時(shí)間的建議:不要糾結(jié)于愚蠢的爭論。愚蠢是會(huì)傳染的。

原文鏈接:http://www.gamasutra.com/blogs/PhilChu/20121212/183405/Seven_Habits_of_Highly_Effective_Programmers.php

譯文鏈接:http://gamerboom.com/archives/65164#

責(zé)任編輯:陳四芳 來源: gamerboom.com
相關(guān)推薦

2012-05-22 00:16:47

2013-05-07 09:11:26

程序員程序員特征

2015-08-13 08:56:40

高效程序員共同特征

2014-10-24 10:13:19

程序員

2019-08-14 17:20:40

程序員人生第一份工作Google

2019-04-16 14:03:47

編程程序員代碼

2014-03-31 11:01:39

2015-04-30 10:51:37

程序員高效快樂

2015-04-30 08:41:04

程序員高效健康

2015-11-06 14:54:10

程序員習(xí)慣

2021-11-01 22:39:14

程序員專業(yè)技術(shù)

2012-12-04 10:08:25

程序員

2009-02-23 13:00:17

程序員職業(yè)習(xí)慣

2016-02-01 15:43:37

成功程序員習(xí)慣

2011-07-15 15:10:37

PHP

2015-11-23 09:27:39

程序員不良編程習(xí)慣

2016-12-29 11:24:13

編程干貨

2015-10-30 09:49:30

2011-05-30 14:50:56

程序員

2015-01-14 10:17:28

高級(jí)程序員
點(diǎn)贊
收藏

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

女人十八毛片嫩草av| 欧美成人黑人猛交| 网站黄在线观看| 久久一二三区| 久久成人精品视频| 你懂得在线视频| 成人在线视频区| 欧美日韩亚洲系列| 亚洲精品日韩在线观看| 后入内射欧美99二区视频| 三级不卡在线观看| 欧美日韩国产二区| 免费网站在线高清观看| 大陆精大陆国产国语精品| 欧美专区在线观看一区| 欧美大黑帍在线播放| 成人18在线| 北条麻妃一区二区三区| 国产精品免费视频xxxx| 日韩欧美国产亚洲| 久久久久久久久久久妇女| 精品呦交小u女在线| 久久精品一卡二卡| 国产精品亚洲d| 欧美日韩另类在线| 青青草视频国产| 淫片在线观看| 久久久国产精品午夜一区ai换脸| 成人午夜影院在线观看| 伊人久久成人网| 久久久久国产精品午夜一区| 久久久噜久噜久久综合| 国产三级国产精品国产国在线观看| 少妇精品久久久一区二区| 精品国产精品一区二区夜夜嗨| 中日韩av在线播放| 国产精品字幕| 欧洲中文字幕精品| 国产一区亚洲二区三区| 欧美激情20| 亚洲成a天堂v人片| 久草视频这里只有精品| 国产婷婷视频在线| 最近中文字幕一区二区三区| 亚洲精品一区二区毛豆| lutube成人福利在线观看| 久久免费的精品国产v∧| 国内一区二区三区在线视频| 人妻视频一区二区三区| 国产麻豆成人精品| 91亚洲国产成人精品性色| 怡春院在线视频| 免费xxxx性欧美18vr| 国产精品久久久久久久久久久不卡| 日韩综合在线观看| 日韩精品国产精品| 国产精品电影一区| 中文字幕黄色av| 免费看欧美美女黄的网站| 国产精品男女猛烈高潮激情| 中文字幕永久在线观看| 久久国产生活片100| 成人欧美一区二区三区黑人| 国产精品人人妻人人爽| 国产精品一区二区无线| aa成人免费视频| 欧洲av在线播放| 91在线视频播放地址| 欧美极品一区| 午夜在线免费观看视频| 亚洲欧美自拍偷拍| 成人免费在线视频播放| 51精品视频| 91国产免费看| 日本一二三四区视频| 99a精品视频在线观看| 日韩高清中文字幕| 欧美激情 一区| 亚洲国产老妈| 国内精品免费午夜毛片| 四虎影院在线免费播放| 另类人妖一区二区av| 99精品99久久久久久宅男| 天堂√在线中文官网在线| 视频在线观看成人| 国产中文在线观看| 国产精品白丝在线| 真人做人试看60分钟免费| av在线资源| 欧美午夜影院一区| 久久久久久久久久久久国产精品| 香蕉久久精品| 久久视频免费观看| wwwxxx亚洲| 久久国产视频网| 国产专区一区二区| 色三级在线观看| 五月婷婷久久综合| 国产精品v日韩精品v在线观看| 亚洲成人黄色| 亚洲日韩欧美视频| 久久精品欧美一区二区| 日韩av电影免费观看高清完整版| 亚洲自拍偷拍在线| 精华区一区二区三区| 亚洲另类一区二区| 欧美视频第三页| 9国产精品午夜| 色av中文字幕一区| 亚洲黄色激情视频| 岛国一区二区三区| 综合网五月天| 午夜精品久久久久久久久久蜜桃| 精品国产免费人成在线观看| 自拍偷拍你懂的| 国产欧美日韩综合一区在线播放| 91精品国产综合久久香蕉最新版 | 91短视频版在线观看www免费| 亚洲一区在线观看免费观看电影高清| 日本成人黄色网| 精品精品国产毛片在线看| 精品国内亚洲在观看18黄| 美女又爽又黄免费视频| 成人免费av网站| 91制片厂免费观看| 成人国产精选| 一区二区欧美激情| 中文字幕第四页| 成人午夜免费av| 国产人妻互换一区二区| 久久久久黄色| 亚洲最新av网址| 日本黄色中文字幕| 久久夜色精品国产噜噜av| www.亚洲视频.com| 亚洲国产视频二区| 久热精品视频在线观看| 国产精品毛片一区视频播| 中文字幕av一区 二区| 粉嫩虎白女毛片人体| 婷婷综合成人| 欧美性视频精品| 五月天激情婷婷| 亚洲韩国一区二区三区| 韩国三级视频在线观看| 欧美日韩三级| 国产成人精品日本亚洲11| 国产淫片在线观看| 日韩一区二区电影网| 日韩一区二区三区四区在线| 国产精品综合在线视频| 国产性生活免费视频| 亚洲国产中文在线| 午夜精品久久久久久久99热| 四季av日韩精品一区| 亚洲国产视频在线| 粉嫩av懂色av蜜臀av分享| 9色精品在线| 欧美1o一11sex性hdhd| 欧美大片免费| 色偷偷88888欧美精品久久久| 亚洲一区二区三区高清视频| 日韩美女啊v在线免费观看| 一级黄色片在线免费观看| 亚洲精品成人无限看| yy111111少妇影院日韩夜片 | 婷婷综合在线| 91日本在线观看| 影音先锋中文在线视频| 亚洲国产欧美一区| 亚洲天堂五月天| 国产精品区一区二区三区| 特种兵之深入敌后| 一本一本久久| 亚洲精品在线视频观看| 日本精品视频| 午夜精品久久久久久久久久久久 | 一个人看的www日本高清视频| 国产精品国产自产拍在线| 樱花草www在线| 亚洲免费黄色| 一区二区在线中文字幕电影视频| 亚洲日本视频在线| 国产精品aaaa| 日本一本在线免费福利| 亚洲人免费视频| 99久久亚洲精品日本无码| 亚洲丰满少妇videoshd| 免费看91的网站| 国产成人aaaa| 人妻无码视频一区二区三区 | 中文字幕在线播放不卡一区| 欧美日韩一区二区区别是什么 | 999国产精品999久久久久久| 福利精品视频| 色综合天天色| 欧美激情在线观看| 91网页在线观看| 日韩av有码在线| 国产精品久久婷婷| 日本韩国欧美三级| 免费在线观看av网址| 国产免费观看久久| 超碰caoprom| 狠狠色综合播放一区二区| 精品人妻一区二区三区四区在线| 国产精品7m凸凹视频分类| 久久久福利视频| 免费观看亚洲天堂| 国产精品91久久久久久| 波多野结衣久久| 精品国模在线视频| 国产高清视频在线| 亚洲国产成人精品久久久国产成人一区 | 欧美日韩 国产精品| 视频一区亚洲| 免费观看不卡av| 国产一级特黄a大片99| 成人av在线播放| 国产精品日韩电影| 345成人影院| 午夜精品久久久久久久久久久久久| 成人在线影视| 久久精品国产欧美亚洲人人爽 | 欧美成人精品一区| 在线观看免费黄视频| 亚洲片在线资源| 亚洲日本在线播放| 亚洲国产精品99久久| 亚洲精品久久久久久久久久久久久久 | 成年人午夜免费视频| 中文在线日韩| 国产日本欧美在线| 欧美电影三区| 亚洲一区二区高清视频| 韩日一区二区三区| 欧美精品人人做人人爱视频| 欧美人妖视频| 久久久久久九九九九| 麻豆一区一区三区四区| 成人免费91在线看| 91午夜精品| 国产精品免费在线播放| www.豆豆成人网.com| 91成人伦理在线电影| www.成人| 97视频中文字幕| 日韩视频一区二区三区四区| 亚洲精品免费在线视频| 国产精品1区| 亚洲a成v人在线观看| 日本免费一区二区三区视频| 亚洲一区二区自拍| 亚洲综合影院| 国内成+人亚洲| 一本久久青青| 亚洲国产欧洲综合997久久| 成人动漫免费在线观看| 亚洲永久一区二区三区在线| 欧美wwwww| 国产91视频一区| 亚洲国产日韩欧美一区二区三区| 欧美视频在线观看视频| 国产日韩综合| 国产av人人夜夜澡人人爽| 精品一区二区三区免费观看| 青青草精品在线| 99视频精品免费视频| 免费看黄色的视频| 国产精品传媒在线| 美女福利视频在线观看| 黄网动漫久久久| 波多野结衣一区二区在线| 欧美日韩国产大片| www.天堂在线| 日韩精品中文字幕久久臀| 91在线高清| 久久久久五月天| 天天综合网站| 91福利入口| 国产不卡av一区二区| 亚洲日本japanese丝袜| 欧美激情性爽国产精品17p| 亚洲国产精品久久久久婷蜜芽| 日韩精品免费专区| 亚洲欧洲国产视频| 久久久久一区二区三区四区| 182在线观看视频| 五月天国产精品| 中文字幕观看视频| 精品国产人成亚洲区| 国产黄色片在线观看| 欧美成在线观看| 亚洲精品mv| 91丝袜美腿美女视频网站| 另类在线视频| 艳母动漫在线免费观看| 亚洲欧美日韩综合国产aⅴ| 亚洲视频一二三四| 久久网站热最新地址| 欧美亚洲日本在线| 在线观看国产一区二区| 人妻一区二区三区免费| 日韩视频一区在线| 老司机2019福利精品视频导航| 91传媒免费看| 欧美xxxx中国| 国产精品亚洲αv天堂无码| 国产一区二区中文字幕| av黄色在线免费观看| 亚洲成人一区二区在线观看| 一本色道久久综合熟妇| 亚洲免费精彩视频| xxxx成人| 亚洲在线免费观看| 成人羞羞视频在线看网址| 久草资源站在线观看| 国产精品一区二区你懂的| 亚洲精品国产精品国自| 午夜精品福利视频网站| 国产成人免费看一级大黄| 最近2019中文字幕第三页视频| 热色播在线视频| 国产精品一区二区av| 亚洲免费二区| 最新免费av网址| 国产日韩精品一区二区三区在线| 亚洲男人的天堂在线视频| 欧美成va人片在线观看| 在线免费观看的av| 成人黄色大片在线免费观看| 欧美日中文字幕| 国产成人久久婷婷精品流白浆| av影院午夜一区| 国产网站在线看| 精品国精品自拍自在线| 日本高清在线观看| www日韩av| 在线国产精品一区| 日本69式三人交| 亚洲va欧美va天堂v国产综合| 亚洲成人中文字幕在线| 欧美激情2020午夜免费观看| 九九99久久精品在免费线bt| www.-级毛片线天内射视视| 国产自产高清不卡| 男人操女人的视频网站| 日韩欧美一区中文| 青春草免费在线视频| 国产伦精品一区二区三区照片 | 中文字幕一区在线观看视频| 亚洲一区二区色| 久久久久北条麻妃免费看| aa亚洲一区一区三区| 蜜臀在线免费观看| 国产精品1024| 日本特黄特色aaa大片免费| 亚洲黄一区二区| 特黄毛片在线观看| 色综合电影网| 国产真实精品久久二三区| 欧美国产日韩在线观看成人| 欧美videossexotv100| 毛片在线导航| 鲁鲁狠狠狠7777一区二区| 日韩国产精品久久久久久亚洲| 日本猛少妇色xxxxx免费网站| 欧美日韩黄色一区二区| 99视频免费在线观看| 国产欧美亚洲日本| 日韩精品一级中文字幕精品视频免费观看 | 伊人网av在线| 不卡av在线播放| 国产调教精品| 国产又大又黄又粗的视频| 国产精品不卡视频| 色香蕉在线视频| 国产精品久久久亚洲| 91精品二区| www.日本高清| 欧美色精品天天在线观看视频| 污污的网站在线看| 精品蜜桃传媒| 美女国产一区二区三区| 久久激情免费视频| 国产午夜精品美女视频明星a级| 亚洲网站免费| 欧美二区在线视频| 中文字幕日韩av资源站| 五月天婷婷在线观看| 国产精品永久免费观看| 黄色另类av| 日韩一区二区三区四区视频| 精品久久免费看| 成人久久网站| 亚洲中文字幕无码av永久| 中文字幕精品综合| 色香蕉在线视频| 91亚洲精品丁香在线观看| 日本系列欧美系列|