高速通道和長(zhǎng)途旅行  就編程實(shí)踐,計(jì)算機(jī)科學(xué) " /> 黄色片免费播放,久久精品一区,日本不卡一区二区三区

四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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

  文/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)寫(xiě)了一篇很不錯(cuò)的文章,名為“Teach Yourself Programming in Ten Years”。這篇文章中提出了一個(gè)大問(wèn)題:為什么人們這樣急于學(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)備開(kāi)始(或已經(jīng)開(kāi)始)用一生的時(shí)間實(shí)現(xiàn)做個(gè)好程序員的夢(mèng)想的人參考。

  通過(guò)好的例子學(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)步,而沒(méi)有人指導(dǎo)的程序員則可能會(huì)手足無(wú)措地原地踏步。

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

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

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

  從這個(gè)反面例子中,我們知道了:要編寫(xiě)可讀性好的代碼;包、類、方法和變量的名稱要反映出其功能;避免采用最流行的命名約定,等等。在上個(gè)世紀(jì) 90 年代,我嘗試過(guò)在 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ì)并沒(méi)有對(duì)此引起足夠的重視,也不可大意。鐵三角描述項(xiàng)目的三個(gè)方面,通常定義為時(shí)間、資源和功能,這三方面共同影響項(xiàng)目的質(zhì)量。程序員通常不能控制項(xiàng)目的這三方面,這些方面通常由市場(chǎng)營(yíng)銷部門(mén)、公司股東、重要客戶等其他人確定。盡管程序員不能參與設(shè)定項(xiàng)目的這些方面的過(guò)程,但需要在項(xiàng)目進(jìn)行過(guò)程中對(duì)項(xiàng)目的鐵三角加以注意,特別在經(jīng)常出現(xiàn)問(wèn)題時(shí)更要如此。以下內(nèi)容有助于對(duì)這方面的了解:

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

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

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

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

  程序員是團(tuán)隊(duì)的一員,成功的程序員要能夠與其他人進(jìn)行良好地合作;如果在這方面存在不足,可能會(huì)妨礙某些非常出色的人才的職業(yè)發(fā)展,因?yàn)樗麄兒苡锌赡鼙慌懦谳^高層次的決策過(guò)程之外,而總又不能與決策者進(jìn)行良好地合作,但他們帶來(lái)的價(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)不甚舒適的工作(那些資深開(kāi)發(fā)人員所進(jìn)行的工作),特別在需要早起(而您夜里工作很晚)或晚歸(如果您習(xí)慣早起)時(shí),從而最終發(fā)展成為優(yōu)秀的團(tuán)隊(duì)成員。組織有時(shí)喜歡自己的員工有危機(jī)感。

  知道什么令您真正快樂(lè)

  現(xiàn)在,軟件架構(gòu)師的角色是很多程序員夢(mèng)寐以求的。如果問(wèn)從事入門(mén)級(jí)工作的年輕程序員他們希望做什么,您會(huì)發(fā)現(xiàn)他們希望成為架構(gòu)負(fù)責(zé)人,借助其很多年開(kāi)發(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 封電子郵件,而完全放棄埋頭編程的快樂(lè)時(shí),他們就不會(huì)太高興了。

  對(duì)于那些希望進(jìn)行人員管理工作的程序員而言,他們的命運(yùn)也與此類似。當(dāng)出現(xiàn)這種情況時(shí),真正愛(ài)好編程的人應(yīng)停下來(lái)認(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ì)快樂(lè)嗎?

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

  關(guān)于作者

  Scott Johnson 從事專業(yè)編程工作 22 年。他目前在 WebSphere Application Server 的開(kāi)發(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è)快樂(lè)一生的程序員,轉(zhuǎn)載需保留來(lái)源!

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

主站蜘蛛池模板: 夜生活女王之霞姐| 王尧演员| 秀人网门户官网| 禁忌爱游戏| 超级小熊布迷全集免费观看| 10000个常用人名| 菠萝菠萝蜜视频在线免费观看| 刀郎歌曲简谱| 狂野殴美激情性bbbbbb| 少年派2 2022 张嘉益| 电影继母劳拉| 忍者2| 我记得你| 狗狗交配视频全过程| 电影院线| 拔萝卜电视剧免费观看全集在线播放下载| 山本裕典| 女友的男朋友| 惊天十二小时| 阿尔法变频器说明书| 电影五十度黑| 妈妈的朋友未删减版| 土耳其电影水与火| 成龙电影大全免费功夫片| 电影《武状元苏乞儿》| 国产调教视频丨vk| 中央新影中学生频道| 《窃她》短剧全集| 不得不爱吉他谱| 赵冬苓代表作品有哪些| yoshizawa akiho| 老司机免费看视频| 白洁教师| 新娘大作战angelababy| 欲情电影在线看| 日韩免费观看视频| 开国前夜 电视剧| 贝子鸟的叫声大全| 熊出没大冒险2| 国产艳遇久久久久久久精品电影| 红电视剧演员表|