高速通道和長途旅行  就編程實踐,計算機(jī)科學(xué) " /> 中国一级毛片免费看视频,国产又色又爽又黄的视频在线观看,人成午夜视频

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

Scott Johnson:做一個快樂一生的程序員

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

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

  高速通道和長途旅行

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

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

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

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

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

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

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

  從這個反面例子中,我們知道了:要編寫可讀性好的代碼;包、類、方法和變量的名稱要反映出其功能;避免采用最流行的命名約定,等等。在上個世紀(jì) 90 年代,我嘗試過在 C++ 中使用匈牙利標(biāo)記法,而現(xiàn)在我非常贊同在 Java™ 標(biāo)識符前使用 m_。對這些構(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 就此給出了一些不錯的技巧

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

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

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

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

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

  保持簡單

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

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

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

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

  知道什么令您真正快樂

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

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

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

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

  關(guān)于作者

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

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

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

主站蜘蛛池模板: 日韩精品福利视频一区二区三区 | 国产女人成人精品视频 | 97夜夜澡人人爽人人喊一欧美 | 337p人体大胆扒开下部 | 国产精品久久久久久久牛牛 | 久久情 | 国产精品视_精品国产免费 国产精品视频1区 | 国产小视频免费在线观看 | 在线亚洲激情 | 久久亚洲网 | 国产高清视频免费 | 国产成人精品免费视频 | 欧美成人网在线综合视频 | 91网页版| 午夜视频在线观看www中文 | 久久久夜色精品国产噜噜 | 国产精品jlzz视频 | 国产亚洲青色国产 | 国产精品七七在线播放 | 久久精品国产主播一区二区 | 激情小说图片 | 色播视频在线播放 | 四虎影视在线观看永久地址 | 美女又胸大又黄的网站 | 九九综合九九综合 | 日本一区二区高清不卡 | 婷婷视频网站 | 亚洲成人福利在线观看 | 婷婷亚洲综合五月天小说在线 | 国产亚洲第一 | 日韩中文字幕一在线 | 天天五月天丁香婷婷深爱综合 | 成人午夜视频在线观看 | 在线精品小视频 | 亚洲一区在线免费 | 色综合色狠狠天天久久婷婷基地 | 91不卡| 色鬼综合网| 黄色大片网站在线观看 | 中文字幕a有搜索网站 | 欧美日韩一道本 |