第一篇:一個優(yōu)秀的軟件開發(fā)人員...
西安尚學(xué)堂
一個優(yōu)秀的軟件開發(fā)人員必須具備的10種特質(zhì)
現(xiàn)今軟件開發(fā)成為非常熱門的職業(yè),可是怎樣才能變成優(yōu)秀的軟件開發(fā)人員,代碼質(zhì)量不僅成為了一個必需品,更成為了一個競爭優(yōu)勢。因為眾多公司圍繞軟件而競爭,開發(fā)軟件的人——軟件工程師正顯得越發(fā)重要。
但是,怎樣才能成為百里挑一的程序員呢?在本文中,我們簡明扼要地列出了優(yōu)秀開發(fā)人員的10種特質(zhì)。
1.熱愛編程
編程是一種為了滿足興趣而心甘情愿去做的勞動(Programming is a labor of love)。和其他任何職業(yè)一樣,唯有真正的熱情,才能完成真正的偉大事情。這里有個誤解,認(rèn)為編寫代碼是機(jī)械化并純科學(xué)性的。事實上,最優(yōu)秀的軟件工程師是工匠,他們能把能量、獨創(chuàng)性和創(chuàng)造力融入到每一行代碼中。偉大的工程師知道何時該把代碼雕琢至完美,知道何時把大型系統(tǒng)像拼圖一樣組裝到一塊。熱愛編程的工程師從構(gòu)建軟件中獲得滿足,就好比一位作曲家在完成一部交響樂后而欣喜若狂。正是興奮感和成就感,才造就了喜愛編程的明星工程師。
2.完成事情
有很多技術(shù)人員只談?wù)撥浖痪帉懘a(只說不做型)。而偉大軟件工程師會真正去編碼,這也是他們最為重要的品質(zhì)之一。他們是實際做事的人。聰明人都知道,解決問題的最佳途徑是直面問題,而不是花上數(shù)周來設(shè)計復(fù)雜又不必要的架構(gòu)和函數(shù)庫。優(yōu)秀工程師應(yīng)當(dāng)會問:解決手頭問題的最簡單方法是什么?最近的軟件開發(fā)方法——敏捷實踐,正是專注那個。它的思想是,把復(fù)雜的項目拆分為短小的迭代,每個迭代只關(guān)注一小部分的增量功能。因為每個迭代對應(yīng)的編碼只需要數(shù)周,所以功能易于管理并簡單。
3.持續(xù)重構(gòu)代碼
編碼很像雕刻。要像藝術(shù)家一樣不斷完善自己的作品,軟件工程師也要通過可能的最佳方式來持續(xù)完善自己的代碼,以達(dá)到目標(biāo)。重新塑造代碼的原則稱為“重構(gòu)”,Martin Fowler在他的創(chuàng)意書中有相應(yīng)描述。重構(gòu)背后的原始思想是:改善代碼而不改變其功能,移動調(diào)整部分代碼以確保系統(tǒng)不腐,還有確保系統(tǒng)完成基于當(dāng)前需求該完成的事。持續(xù)重構(gòu)可以讓開發(fā)人員解決另一個著名的問題——“黑盒遺留代碼”(這個問題基本無人想觸及)。
幾十年的軟件開發(fā)文化要求我們,不應(yīng)該去改變正常工作的東西。然而,隨著時間推移,問題是我們成為了老舊代碼的奴隸,老舊代碼變得不穩(wěn)定和不兼容。而重構(gòu)正好可以改變這一狀況,因為我們是代碼的主人,不是它的奴隸。重構(gòu)在工程師和代碼之間建立起持續(xù)的“對話”,并帶來所有權(quán)、確定性、自信心和系統(tǒng)的穩(wěn)定性。
千萬不要成為老舊代碼的奴隸。如果代碼是他人所寫,或許你可以輕易推脫責(zé)任。但大多數(shù)時候,那些代碼是自己所寫,要拿得起放得下,舊代碼該埋時,就把它埋了!
4.使用設(shè)計模式
自從所謂的“四人幫”(Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides)發(fā)表他們的著作——《設(shè)計模式》后,全世界的軟件工程師一直都在討論模式。在我們所處世界,不管是自然界還是人類行為,模式無處不在。軟件工程自然也不例外。模式就是不斷重現(xiàn)的跨語言跨系統(tǒng)的場景和機(jī)制。一位優(yōu)秀的工程師通常能識別并利用模式,而不是受制于模式。工程師不應(yīng)(強(qiáng)制)讓系統(tǒng)去適應(yīng)某種模式,而需發(fā)現(xiàn)在系統(tǒng)中使用模式的時機(jī)(恰當(dāng)使用模式)。在使用模式來確保正確性時,應(yīng)借鑒利用前人的智慧結(jié)晶,使用以前能正當(dāng)解決特定工程問題的方法。但請切記:模式不是萬靈藥;不要為了使用設(shè)計模式而使用設(shè)計模式。
5.編寫測試
曾有段時間,軟件工程師們認(rèn)為測試不值得他們?nèi)プ觥H欢绻悴蛔鰷y試,你怎么能確保代碼就能正常工作呢?敏捷實踐中的“單元測試”已獲得普遍認(rèn)可,因為它注重編寫測試來反映代碼是否有效。隨著系統(tǒng)增大,測試也隨之增大。有經(jīng)驗的工程師知道并了解測試的價值所在,因為測試的目的就是創(chuàng)建一個能正常運作的系統(tǒng)。優(yōu)秀的工程師通常會確保出現(xiàn)過一次的Bug不會再出現(xiàn)第二次。但優(yōu)秀的工程師也知道,不應(yīng)該浪費時間寫那些瑣碎或多余的測試,而需要專注測試各個組件中的核心部分。
6.善用現(xiàn)有代碼
“重新發(fā)明輪子”一直是軟件行業(yè)中的巨大問題之一。從發(fā)明新語言到從寫函數(shù)庫,忽視并重寫那些已經(jīng)存在并已能工作的奇怪驅(qū)動力,已經(jīng)造成大量軟件開發(fā)的失敗案例。一位明星工程師會專注三種基本類型的重用:第一,內(nèi)部基礎(chǔ)架構(gòu)的重用,相應(yīng)代碼是他自己或同事編寫的;第二,使用第三方的函數(shù)庫,比如 JDK。最后,研究使用某些大型網(wǎng)絡(luò)服務(wù)商提供的相應(yīng)服務(wù),比如Amazon。總之,正確善用現(xiàn)有的代碼,使得軟件工程師能真正專注于最為重要的事情上 ——應(yīng)用程序本身。
7.專注可用性
優(yōu)秀的工程師通常都專注于用戶。無論用戶是企業(yè)還是個人,無論是為消費
型的軟件公司還是投資銀行,需要關(guān)注的都是可用性。用戶如何和系統(tǒng)交互?系統(tǒng)是否提供一種簡單、直接和平穩(wěn)的操作體驗?有種說法,因為軟件工程師是技術(shù)人員,他/她和“用戶如何與系統(tǒng)交互”沒有關(guān)聯(lián),這種說法嚴(yán)重錯誤。優(yōu)秀工程師努力工作是為了什么?不正是讓系統(tǒng)簡單并易于使用。他們無時無刻都會想到用戶,不會嘗試去發(fā)明那些令人費解,只有極客才能理解并欣賞的東西。
有些時候,一些軟件工程師過于投入,反而忘記所編寫的程序/軟件,是供他人使用,不是做給自己看的“藝術(shù)品”。所以,在軟件開發(fā)過程中,一直要把“用戶”放在心中。
8.編寫可維護(hù)的代碼
軟件開發(fā)界的另外一個小秘密是:編寫優(yōu)秀代碼和糟糕代碼所花費的時間是一樣多。一位訓(xùn)練有素的工程師,他/她會從第一行代碼開始就考慮可維護(hù)性和代碼的演化。沒有任何理由編寫“丑陋”的代碼、長達(dá)數(shù)頁的函數(shù),或是稀奇古怪的變量名。優(yōu)秀的工程師編寫代碼會遵循命名慣例,代碼編寫緊湊、簡單和不過度炫耀聰明。代碼的每一行,都應(yīng)恰如其分地展現(xiàn)出其原有目的。在給不便理解的代碼(塊)合理注釋時,別忘了命名規(guī)則。清晰明了的函數(shù)名和變量名可以讓代碼不言而明。
在編碼時,有些程序員會有這種心態(tài):過一會兒再來修改或完善某部分代碼或某條語句。但誰知這一“過一會”竟然是“一天”、“一周”、“一個月”或“一年”,甚至以后根本就沒機(jī)會再回頭修改。所以,盡量別妥協(xié)寫出暫時堪用的代碼。否則,不僅不會節(jié)省開發(fā)時間,也可以阻礙整個進(jìn)程。當(dāng)然也不利于后續(xù)維護(hù)人員的工作。
9.能用任何語言編程
優(yōu)秀的軟件工程師活血有自己一門特別鐘愛的編程語言,但從不會執(zhí)迷于當(dāng)中。如今已有很多優(yōu)秀的編程語言,也就是說,如果你只會使用其中一門語言,說明你缺乏多樣性。你可以用Java、C#或C++編寫任何現(xiàn)代軟件,可以用PHP、Perl或Ruby編寫任何網(wǎng)站的后臺。簡而言之,編程所用語言,遠(yuǎn)遠(yuǎn)沒有語言相應(yīng)的函數(shù)庫重要。優(yōu)秀的工程師能夠認(rèn)知到這一點,并愿意去學(xué)習(xí)新語言、新函數(shù)庫和構(gòu)建系統(tǒng)的新方法。
10.知曉基本的計算機(jī)科學(xué)知識
最后,但肯定不是優(yōu)秀工程師最不重要的特質(zhì)就是:扎實的基礎(chǔ)。優(yōu)秀的工程師或許并沒有計算機(jī)科學(xué)的學(xué)位,但他/她必須知道基礎(chǔ)——數(shù)據(jù)結(jié)構(gòu)和算法。如果不知道哈希表,或者不知道鏈表和數(shù)組之間的差別,你如何構(gòu)建一款大型軟件?這些都是每位從事軟件開發(fā)的開發(fā)人員應(yīng)當(dāng)知道的。算法也同樣重要,從二
分查找到各種排序,到圖形遍歷,一位明星工程師必須知道并內(nèi)在消化這些基礎(chǔ)東西。因為這些基礎(chǔ)就是你在構(gòu)建任何現(xiàn)代軟件中做抉擇時的必備品。
結(jié)束語
以上就是區(qū)分優(yōu)秀軟件工程師的諸多特質(zhì)。其中討論的“熱情”,是非常重要的。代碼重用、設(shè)計模式、基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)和算法都是必須知道的,而敏捷實踐中的重構(gòu)和單元測試則有助于工程師應(yīng)對復(fù)雜的軟件。尤為重要的是,明星工程師相信簡潔和常識。也正是這些信念,幫助他們成功構(gòu)建當(dāng)今世界所需的看似不可能又錯綜復(fù)雜的系統(tǒng)。
第二篇:軟件開發(fā)人員優(yōu)秀的辭職報告
尊敬的領(lǐng)導(dǎo):
我很遺憾自己在這個時候向公司正式提出辭職報告。
來到xx公司兩年多了,正是在這里我開始踏上了社會,完成了自己從一個學(xué)生到社會人的轉(zhuǎn)變。有過歡笑,有過收獲,也有過淚水和痛苦。公司平等的人際關(guān)系和開明的工作作風(fēng),一度讓我有著找到了依靠的感覺,在這里我能開心的工作,開心的學(xué)習(xí)。然而工作上的毫無成熟感總讓自己彷徨。
記得您曾說過,工作上如果兩年沒起色就該往自己身上找原因了。或許這真是對的,由此我開始了思索,認(rèn)真的思考。盡管我一思考,上帝便會發(fā)笑,但這笑帶著一絲苦澀,思考的結(jié)果連自己都感到驚訝――或許自己并不適合軟件開發(fā)這項工作。否定自己讓自己很痛苦,然而人總是要面對現(xiàn)實的,自己的興趣是什么,自己喜歡什么,自己適合做什么,這一連串的問號一直讓我沮喪,也讓我萌發(fā)了辭職的念頭,并且讓我確定了這個念頭。
或許只有重新再跑到社會上去遭遇挫折,在不斷打拼中去尋找屬于自己的定位,才是我人生的下一步選擇。從小到大一直過得很順,這曾讓我驕傲,如今卻讓自己深深得痛苦,不能自拔,也許人真的要學(xué)會慢慢長大。
此致
敬禮!
第三篇:優(yōu)秀軟件開發(fā)人員具有的五種心態(tài)
做一名優(yōu)秀的軟件開發(fā)工程師
需要具有的五種心態(tài)
軟件開發(fā)很多人都想做,坐在空調(diào)房里,不受風(fēng)吹不受日曬,每個月有固定工資,額外補(bǔ)助,想起來挺好,但是做起來確也不容易,做一名優(yōu)秀的軟件開發(fā)工程師,下面我們就一名優(yōu)秀軟件開發(fā)人員應(yīng)具有的基本心態(tài)給大家做個分享,希望對大家有所幫助。
第一種:舍得心態(tài)。前期做了大量細(xì)致的工作,在發(fā)現(xiàn)所做工作達(dá)不到客戶需求或與團(tuán)隊目標(biāo)有出入的情況下,雖然自己認(rèn)為也可以,但也能夠果斷舍得并丟棄,從頭再來。
第二種:團(tuán)隊合作心態(tài)。遵守團(tuán)隊規(guī)劃,保證個人的文檔或代碼編寫不自成一家,結(jié)構(gòu)或風(fēng)格與團(tuán)隊總體高度一致。避免犯“自以為是,不把領(lǐng)導(dǎo)或公司元老放到眼里,我行我素,結(jié)果就導(dǎo)致同事關(guān)系處理不好”等低級錯誤。
第三種:目標(biāo)專一心態(tài)。在工作中,緊抓目標(biāo)不放,不會因為太注重局部細(xì)節(jié),而忘了整體目標(biāo);
在工作中,為了解決某一問題而進(jìn)行資料查找時偶然發(fā)現(xiàn)了一個自己很感興趣的話題或自己認(rèn)為很重要(也可能將來很有用)的話題,并立刻追隨這一話題進(jìn)行大量的工作,而忘了最初的原始目標(biāo)。優(yōu)秀的軟件開發(fā)人員可以抵得住這種誘惑,緊緊抓目住標(biāo)不放,從而使自己一直保持在高效工作狀態(tài)。
第四:大是大非毫不含糊的心態(tài)。在工作中,知錯就改,樂于接受不同意見。不在明知自己有不妥,或團(tuán)隊成員有更好的解決方案的情況下,因自尊心太脆弱,不愿直面,仍固執(zhí)己見不愿妥協(xié)。
第五:客戶第一的心態(tài)。只要是用戶(市場)的合理需求,想方設(shè)法去達(dá)成它,追求完善,不怕重復(fù)勞動。
第四篇:軟件開發(fā)人員辭職報告
尊敬的領(lǐng)導(dǎo):
我很遺憾自己在這個時候向公司正式提出辭職申請。
來到Xx公司兩年多了,正是在這里我開始踏上了社會,完成了自己從一個學(xué)生到社會人的轉(zhuǎn)變。有過歡笑,有過收獲,也有過淚水和痛苦。公司平等的人際關(guān)系和開明的工作作風(fēng),一度讓我有著找到了依靠的感覺,在這里我能開心的工作,開心的學(xué)習(xí)。然而工作上的毫無成熟感總讓自己彷徨。
記得您曾說過,工作上如果兩年沒起色就該往自己身上找原因了。或許這真是對的,由此我開始了思索,認(rèn)真的思考。盡管我一思考,上帝便會發(fā)笑,但這笑帶著一絲苦澀,思考的結(jié)果連自己都感到驚訝――或許自己并不適合軟件開發(fā)這項工作。否定自己讓自己很痛苦,然而人總是要面對現(xiàn)實的,自己的興趣是什么,自己喜歡什么,自己適合做什么,這一連串的問號一直讓我沮喪,也讓我萌發(fā)了辭職的念頭,并且
讓我確定了這個念頭。
或許只有重新再跑到社會上去遭遇挫折,在不斷打拼中去尋找屬于自己的定位,才是我人生的下一步選擇。從小到大一直過得很順,這曾讓我驕傲,如今卻讓自己深深得痛苦,不能自拔,也許人真的要學(xué)會慢慢長大。
能為公司效力的日子不多了,我一定會把好自己最后一斑崗位,做好項目開始前的屬于自己的所有工作,盡力讓項目做到平衡過渡。
離開,目前的公司,離開許多曾經(jīng)同甘共苦的同事,很舍不得的,忘不了領(lǐng)導(dǎo)們的尊尊教誨,舍不得同事之間的那片真誠和友善。
最后也愿公司在今后的工作中發(fā)揮優(yōu)勢,揚長避短,祝愿公司興旺發(fā)達(dá)。
申請人:XX
20XX年05月20日
第五篇:軟件開發(fā)人員工作總結(jié)
軟件開發(fā)人員工作總結(jié)
金秋十月是個收獲季節(jié),希望我們每一天的生活都如這個季節(jié)一樣,又一個月過去了,現(xiàn)對工作中收獲與不足總結(jié)
一、工作內(nèi)容
九月份的工作比較繁忙,工作重點有四方面:s6測試,醫(yī)院軟件開發(fā)、測試,售后服務(wù),文檔書寫及培訓(xùn)。
1、關(guān)于s6測試
s6的新增修改功能大約30多項內(nèi)容,測試的重點如:其一,每日結(jié)賬時更正庫存的操作,此項功能涉及的方面比較多,影響數(shù)據(jù)的準(zhǔn)確性,測試起來比較煩瑣、測試量也比較大;其二,由于業(yè)務(wù)開票時程序內(nèi)部處理發(fā)生了改變,由原來的控制臺轉(zhuǎn)移到存儲過程中處理,所以對此部分也進(jìn)行了重點測試;其三,飲片劃價自動批號的測試;其它方面的測試包括,gsp報表、客戶對應(yīng)商品銷售、批次會員錄入以及遠(yuǎn)程配送價格等的測試,再有就是售后人員隨時提出的問題隨時測試,如打印模塊加完打印項還是不能打印、某些模板在99pbl修改以后還是不好用、哪個報表數(shù)據(jù)是否有問題等。
2、醫(yī)院軟件開發(fā)、測試
對于新版醫(yī)院軟件的功能模塊開發(fā)工作也做出了一點貢獻(xiàn),作了15個打印模塊(如入庫重打、劃價重打、盈損重打等),12個查詢模塊(入庫報表查詢、住院報表查詢、入出院費用查詢等),所做模塊包含的內(nèi)容為:菜單掛接、將窗口中不需要的按鈕隱藏、書寫查詢報表中所需要的sql語句(大約60句,但語句結(jié)構(gòu)并不復(fù)雜)、打印模塊及查詢模塊所需的數(shù)據(jù)窗口大約80個;測試方面,現(xiàn)在只是進(jìn)行了表面性的測試,測試的內(nèi)容包括每個窗口中的字體是否一致、按鈕是否對齊、點擊按鈕后彈出的提示是否正確、開票窗口的金額、價格、數(shù)量、庫存等的變
化情況是否正確,焦點移動問題等,現(xiàn)已測出的問題100多個;其它方面,修改了庫結(jié)構(gòu),將每個的表中將不允許為空的字段修改正確以及將a25、a35等字段在每個表的長度統(tǒng)一等。
3、售后服務(wù)
s6的售后工作,由于每日結(jié)賬時更正庫存,造成幾個客戶的庫存數(shù)據(jù)不準(zhǔn)確,通過查詢客戶實際的數(shù)據(jù)庫找到了問題的原因,再有就是在電話中為售后人員解答一些問題;其它方面,上門服務(wù)三次,分別是,解決了先知醫(yī)療器械公司的應(yīng)收應(yīng)付財務(wù)問題,通勝醫(yī)藥財務(wù)軟件中輔助核算的客戶查不到,從后臺修改數(shù)據(jù)已解決問題,漢華林銷售出錯庫存未減,原因未查到;遠(yuǎn)程及電話解決客戶提出的財務(wù)軟件、財務(wù)接口、金稅接口等問題。由于十一休息,售后人員少,在月末休息前做了兩天售后工作。
4、其它方面
s6的培訓(xùn)文檔寫了兩次,其次就是書寫了加強(qiáng)版與s6的區(qū)別,再有就是編譯序程、備份程序、程序注冊等工作,其中程序注冊是隨時性,所以也占用一定的時間。
二、工作分析
通過的工作,自己在pb方面又懂得了一些知識,并且可以修改簡單的錯誤,也可看明白一些簡單的腳本結(jié)構(gòu),這對于我的測試工作是很有幫助的。從反饋的情況看,s6的結(jié)賬庫存更正功能還存問題,還需要加強(qiáng)測試。再有從售后服務(wù)的情況看,售后人員在財務(wù)方面的技術(shù)還需要加強(qiáng)。
三、工作計劃
1、醫(yī)院軟件測試
2、書寫醫(yī)院軟件的說明書
3、s6新增、修改功能的測試
總結(jié)人:姜波
日期:2007-09-28
2007年10月份工作總結(jié)
十月份是一個忙碌的月份,日子象流水一樣,轉(zhuǎn)眼既逝。看來學(xué)習(xí)的時間和勁頭還要在加強(qiáng)一些。
一、工作內(nèi)容
十月份的工作比較繁忙,工作中心有六點:程序的每天備份,庫結(jié)構(gòu)的比較,打印類的調(diào)試,在2種分辨率的情況下窗口的布局,程序小bug的修改,測試參數(shù)權(quán)限及遠(yuǎn)程。