高速通道和長(zhǎng)途旅行  就編程實(shí)踐,計(jì)算機(jī)科學(xué) " /> 波多野结衣精品一区二区三区 ,国产三级福利,一区二区三区在线 | 日本

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Scott Johnson:做一個(gè)快樂一生的程序員

  文/Scott Johnson, WebSphere Application Server JSP 團(tuán)隊(duì)負(fù)責(zé)人, EMC

  英文原文:Scott Johnson: Take a lifetime to be a good (and happy) programmer

  高速通道和長(zhǎng)途旅行

  就編程實(shí)踐,計(jì)算機(jī)科學(xué)博士、Google 的 Search Quality 總監(jiān)寫了一篇很不錯(cuò)的文章,名為“Teach Yourself Programming in Ten Years”。這篇文章中提出了一個(gè)大問題:為什么人們這樣急于學(xué)習(xí)編程呢?是因?yàn)樗麄兿M軌蛩俪赡兀€是因?yàn)榇蠹艺J(rèn)為計(jì)算機(jī)是最容易學(xué)習(xí)的?不管什么原因,做一個(gè)好的程序員并非快速學(xué)習(xí)的結(jié)果,而需要深入認(rèn)真學(xué)習(xí),并需要明智地選擇學(xué)習(xí)的內(nèi)容。關(guān)于這點(diǎn),本文給出了六條建議,供那些準(zhǔn)備開始(或已經(jīng)開始)用一生的時(shí)間實(shí)現(xiàn)做個(gè)好程序員的夢(mèng)想的人參考。

  通過好的例子學(xué)習(xí)

  有些程序員很幸運(yùn)。他們有良師指導(dǎo),能告知他們成功解決軟件設(shè)計(jì)和編碼的各種成功方法。他們學(xué)習(xí)了如何區(qū)分設(shè)計(jì)的好壞,如何辨別健壯的實(shí)現(xiàn)與不可靠的實(shí)現(xiàn)。他們的導(dǎo)師還對(duì)如何在編程領(lǐng)域謀得良好的職業(yè)生涯給出了建議,而且他們還了解了如何才能獲得成功和認(rèn)可,應(yīng)該接手哪些項(xiàng)目,應(yīng)該避免參與哪些項(xiàng)目。

  有良師的指導(dǎo)效果非常好,而且很有必要。如果有兩個(gè)程序員,并給其中一個(gè)指派了好的導(dǎo)師,有人指導(dǎo)的程序員將不斷進(jìn)步,而沒有人指導(dǎo)的程序員則可能會(huì)手足無措地原地踏步。

  通過反面例子學(xué)習(xí)

  不過,如果沒人指導(dǎo)的程序員了解如何“自救”,他便能夠發(fā)現(xiàn)學(xué)習(xí)編程實(shí)踐技巧的很多其他方法。通過閱讀他人編寫的代碼就是一種所有程序員在其職業(yè)生涯中都可以采用的方法,而幾乎所有的新程序員在進(jìn)行代碼維護(hù)時(shí)都不得不進(jìn)行這樣的工作。

  在我早期所做的一份編程工作中,在維護(hù)我的新上司編寫的代碼時(shí),我學(xué)到了不應(yīng)該做什么。這個(gè)上司是一家正在快速發(fā)展的小公司的老板之一,但并不是一個(gè)好老師。我們主要用 FORTRAN 進(jìn)行編碼,我進(jìn)這家公司的時(shí)候,他已經(jīng)編寫了很多代碼。他使用的變量名稱都是 a、b、c、aa、bb、cc,諸如此類。我那時(shí)剛開始學(xué)習(xí) FORTRAN,但即使這樣,我也明顯地覺得這種方式很不好。他還通過將這些變量放入 FORTRAN 公共代碼塊中,使其成為全局變量,這很明顯是太糟糕了。這樣做就不能在源代碼樹中搜索變量以進(jìn)行重命名,也不能對(duì)它們進(jìn)行任何處理。據(jù)我所知,當(dāng)時(shí)并沒有良好的 FORTRAN 集成開發(fā)環(huán)境可用于幫助處理這種情況,因此我對(duì)很多這樣的代碼進(jìn)行了手工清理,并保證編寫更好的新代碼——從良好的變量名稱開始。

  從這個(gè)反面例子中,我們知道了:要編寫可讀性好的代碼;包、類、方法和變量的名稱要反映出其功能;避免采用最流行的命名約定,等等。在上個(gè)世紀(jì) 90 年代,我嘗試過在 C++ 中使用匈牙利標(biāo)記法,而現(xiàn)在我非常贊同在 Java™ 標(biāo)識(shí)符前使用 m_。對(duì)這些構(gòu)件進(jìn)行適當(dāng)?shù)拿沁M(jìn)行良好編碼的基礎(chǔ)。恰當(dāng)?shù)拿坏兄跇?gòu)建良好穩(wěn)健的體系結(jié)構(gòu),還可以幫助其他人理解您的代碼。但要進(jìn)行恰當(dāng)?shù)孛⒉蝗菀祝琓im Ottinger 就此給出了一些不錯(cuò)的技巧

  認(rèn)識(shí)鐵三角的影響

  當(dāng)然,程序員可以進(jìn)行一定的工作,以提高項(xiàng)目的效率。但也同樣有一些東西經(jīng)常超出我們的控制范圍,從而使得項(xiàng)目的成功完成頗具挑戰(zhàn)性。請(qǐng)隨時(shí)謹(jǐn)記鐵三角,即使您的管理團(tuán)隊(duì)并沒有對(duì)此引起足夠的重視,也不可大意。鐵三角描述項(xiàng)目的三個(gè)方面,通常定義為時(shí)間、資源和功能,這三方面共同影響項(xiàng)目的質(zhì)量。程序員通常不能控制項(xiàng)目的這三方面,這些方面通常由市場(chǎng)營(yíng)銷部門、公司股東、重要客戶等其他人確定。盡管程序員不能參與設(shè)定項(xiàng)目的這些方面的過程,但需要在項(xiàng)目進(jìn)行過程中對(duì)項(xiàng)目的鐵三角加以注意,特別在經(jīng)常出現(xiàn)問題時(shí)更要如此。以下內(nèi)容有助于對(duì)這方面的了解:

  1. 通過發(fā)現(xiàn)軟件開發(fā)過程中效率低下的地方,使程序員和編程團(tuán)隊(duì)成功實(shí)現(xiàn)目標(biāo),擺脫由于要求嚴(yán)格和資源不足帶來的限制。
  2. 從專業(yè)的角度出發(fā),告知程序員可能是繼續(xù)進(jìn)行下一步工作的時(shí)候了。
  3. 至少能夠說明,為什么盡管大家都在努力工作、傾力而為,但要成功完成項(xiàng)目還是顯得如此難。

  我在那家小公司工作時(shí),該公司的管理層與全世界最受認(rèn)可的一家醫(yī)療保健單位談成了一項(xiàng)大的業(yè)務(wù)。我們要在一年內(nèi)為他們提供所需的軟件功能;需要雇傭一些新的程序員;這的確令人興奮。但隨后一些現(xiàn)實(shí)的問題開始顯現(xiàn)出來。通過需求分析,發(fā)現(xiàn)一年時(shí)間明顯不夠。然后我們又發(fā)現(xiàn)我們所知道的需求并不完整——他們將“逐步提出”。該公司沒有雇傭新程序員,但卻引入了新的項(xiàng)目需求,員工根本就沒有辦法處理全部的工作。

  在業(yè)務(wù)達(dá)成后,我決定將項(xiàng)目時(shí)間延長(zhǎng)至三年,隨后又增加了四年——總共用了七年時(shí)間——最后終于交付了最初計(jì)劃的功能代碼。宣布這項(xiàng)業(yè)務(wù)達(dá)成后的一年,這家小公司被一家大公司收購(gòu)了;由于鐵三角的影響,在業(yè)務(wù)達(dá)成之前,這個(gè)項(xiàng)目就是金塊,而在幾年之后,卻變成了臭雞蛋。

  保持簡(jiǎn)單

  在滿足需求的同時(shí),使您的軟件設(shè)計(jì)盡可能簡(jiǎn)單。這可能會(huì)要求放棄初期工作的成果,總結(jié)早期工作的經(jīng)驗(yàn)教訓(xùn),然后重新開始。這并不意味著在項(xiàng)目結(jié)束時(shí)才進(jìn)行設(shè)計(jì)。在項(xiàng)目處于設(shè)計(jì)階段時(shí)就應(yīng)該編寫代碼。即使不負(fù)責(zé)進(jìn)行實(shí)現(xiàn),也要考慮到實(shí)現(xiàn)時(shí)的情況。理解過于復(fù)雜的設(shè)計(jì)(以及據(jù)此進(jìn)行編碼)需要花額外的時(shí)間和精力。作為程序員,我們處于業(yè)務(wù)需求和創(chuàng)建良好的設(shè)計(jì)與編寫出色的代碼之間的中堅(jiān)地帶。雇傭您進(jìn)行編程工作的公司需要盡可能快地拿到軟件,以達(dá)成交易,獲得收益。有效簡(jiǎn)化軟件設(shè)計(jì)的能力需要多加實(shí)踐才能獲得。但這值得化精力去學(xué)習(xí),因?yàn)閺拈L(zhǎng)遠(yuǎn)來看,這將節(jié)約時(shí)間和工作的投入量。

  與他人進(jìn)行良好的合作

  程序員是團(tuán)隊(duì)的一員,成功的程序員要能夠與其他人進(jìn)行良好地合作;如果在這方面存在不足,可能會(huì)妨礙某些非常出色的人才的職業(yè)發(fā)展,因?yàn)樗麄兒苡锌赡鼙慌懦谳^高層次的決策過程之外,而總又不能與決策者進(jìn)行良好地合作,但他們帶來的價(jià)值需要掩蓋他們?cè)诮M織方面的不足、羞澀或令人生厭的性格。對(duì)于我們大部分人而言,我們的才能并不能抵消這方面的缺點(diǎn),因此我們必須培養(yǎng)良好的團(tuán)隊(duì)工作能力:

  1. 首先,在本地編譯代碼,以避免破壞生產(chǎn)版本。
  2. 其次,請(qǐng)求他人進(jìn)行代碼檢查時(shí),要虛心接受批評(píng),并從別人的評(píng)審中獲得思想上的最大提高。
  3. 在別人請(qǐng)您進(jìn)行評(píng)價(jià)時(shí)(而非自己想這樣做時(shí)),提出一些建議,以進(jìn)一步加強(qiáng)團(tuán)隊(duì)合作。
  4. 對(duì)他人的出色工作予以稱贊(因?yàn)閯e人也能出色地完成工作),從而使團(tuán)隊(duì)合作達(dá)到一個(gè)新的層次。
  5. 在適當(dāng)時(shí)間主動(dòng)承擔(dān)不甚舒適的工作(那些資深開發(fā)人員所進(jìn)行的工作),特別在需要早起(而您夜里工作很晚)或晚歸(如果您習(xí)慣早起)時(shí),從而最終發(fā)展成為優(yōu)秀的團(tuán)隊(duì)成員。組織有時(shí)喜歡自己的員工有危機(jī)感。

  知道什么令您真正快樂

  現(xiàn)在,軟件架構(gòu)師的角色是很多程序員夢(mèng)寐以求的。如果問從事入門級(jí)工作的年輕程序員他們希望做什么,您會(huì)發(fā)現(xiàn)他們希望成為架構(gòu)負(fù)責(zé)人,借助其很多年開發(fā)實(shí)踐積累的經(jīng)驗(yàn)確定整個(gè)軟件組織的方向。為什么初級(jí)程序員認(rèn)為自己會(huì)成為架構(gòu)師呢?因?yàn)樗麄儾⒉徽嬲私饧軜?gòu)師角色的意義。

  他們認(rèn)為軟件架構(gòu)師僅僅借助自己的技術(shù)權(quán)威領(lǐng)導(dǎo)一個(gè)團(tuán)隊(duì)或更大的組織,以正確的方式設(shè)計(jì)軟件,選擇恰當(dāng)?shù)募夹g(shù)工具,如此等等。但架構(gòu)師除了是技術(shù)角色之外,也是行政角色。很多技術(shù)專家在發(fā)現(xiàn)自己必須談判、和解、做生意、回復(fù)每天 200 封電子郵件,而完全放棄埋頭編程的快樂時(shí),他們就不會(huì)太高興了。

  對(duì)于那些希望進(jìn)行人員管理工作的程序員而言,他們的命運(yùn)也與此類似。當(dāng)出現(xiàn)這種情況時(shí),真正愛好編程的人應(yīng)停下來認(rèn)真地分析一下當(dāng)時(shí)的情形。是否由于他們不是一個(gè)好的程序員才轉(zhuǎn)向管理?是否因?yàn)樗麄兩瞄L(zhǎng)編程,并希望從編程團(tuán)隊(duì)的角度進(jìn)行管理,才這樣做?作為編程管理人員,他們?nèi)粘1仨氝M(jìn)行哪些工作?最重要的是,他們做這個(gè)工作時(shí)會(huì)快樂嗎?

  學(xué)習(xí)技能,了解各種角色,了解自己喜歡什么和適合自己的位置。然后,勾畫出一條美麗的人生軌跡。

  關(guān)于作者

  Scott Johnson 從事專業(yè)編程工作 22 年。他目前在 WebSphere Application Server 的開發(fā)團(tuán)隊(duì)工作,是 JavaServer Pages 容器團(tuán)隊(duì)的負(fù)責(zé)人、WebSphere 基礎(chǔ)體系結(jié)構(gòu)委員會(huì)的助理架構(gòu)師,同時(shí)還是任 JSR 245、JavaServer Pages 2.1 規(guī)范的 IBM 代表。

it知識(shí)庫(kù)Scott Johnson:做一個(gè)快樂一生的程序員,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 骚碰97| 色婷五月综激情亚洲综合 | 五月天开心激情 | 国产精品乱码免费一区二区 | 一级一级特黄女人精品毛片 | 成人精品免费网站 | a级精品九九九大片免费看 a加勒比一本东京 | 女人l8毛片a一级毛片 | 国产精品成人免费视频99 | www.性视频| 亚洲香蕉影院 | 超pen个人视频国产免费观看 | a黄色网| 午夜国产大片免费观看 | 一区二区三区网站在线免费线观看 | 午夜激情视频在线观看 | 色黄视频 | 好吊妞精品 | 国产成人综合亚洲欧洲色就色 | 精品视频国产 | 日本加勒比在线视频 | 中文字幕在线视频第一页 | 色老板亚洲 | 欧美日韩看看2015永久免费 | 亚洲图片小说网 | 免费在线小视频 | 久久伊人久久亚洲综合 | 久久久综合中文字幕久久 | a亚洲视频 | 欧洲色综合 | 大胆gogo999亚洲肉体艺术 | 色狠狠综合网 | 婷婷久久综合九色综合98 | 91视频国产91久久久 | 成人五月网 | 人人干人人看 | 四虎永久在线日韩精品观看 | 五月天色婷婷综合 | 综合色网站 | 一区二区在线观看视频 | 精品国产美女福利在线 |