av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

軟件開發(fā)人員的5個能力:如何識別好的程序員

在不同的時期,我都在努力地學(xué)習(xí)編程,但是我仍不認(rèn)為這是一個優(yōu)秀開發(fā)者的標(biāo)志。一個有天賦的開發(fā)人員,從9到5提供110%的清晰、精確、可維護(hù)的代碼,在休息時間享受午餐,回到家離開鍵盤釋放自我,這會有什么問題呢?

10年積累的成都網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有游仙免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

我認(rèn)為,開發(fā)人員應(yīng)具備的五個關(guān)鍵能力。

要了解他們?yōu)槭裁催@么重要,想想軟件是什么:它不是一個無限的系列式陳述,也不是一個任意調(diào)用的API,更不僅僅是復(fù)制粘貼的產(chǎn)物。相反,它是一個由代碼層次結(jié)構(gòu)組成的網(wǎng)格,很少復(fù)制代碼,主要是復(fù)制格式(不一定是GOF模式,也可以是“延遲初始化”“模式驅(qū)動代碼生成”或者“XML腳本”)。它只有在滿足業(yè)務(wù)需求和有足夠可操作性的情況下才能發(fā)揮作用。因此,我們需要評估能夠讓軟件開發(fā)人員達(dá)到這些目標(biāo)的能力。

話不多說,開始!

1、分析能力:結(jié)構(gòu)化、清晰、有批判思維的思考者和問題解決者

很多人誤把鎮(zhèn)定、自信、流利的演說能力歸結(jié)為智商。因此,我們需要對開發(fā)者的智力特征非常清晰。軟件的一切都是關(guān)于功能和結(jié)構(gòu)分解,因此,我認(rèn)為智力的關(guān)鍵是天生的、后天培養(yǎng)的或者靠意志力進(jìn)行的分析能力。一個具有分析能力的人會多角度考慮問題,選擇最好的方法,然后將大問題分解成小問題。

在面試中,你很容易就能檢查這個能力,因為候選人自然會澄清模糊的問題,或者列出解決方案的部分和關(guān)系,或者在討論細(xì)節(jié)之前確認(rèn)問題的大致情況。去考驗這個能力,你不用提出一個新問題,只需要讓他們描述任何一件事情:他們開發(fā)過的軟件產(chǎn)品,面向的對象,軟件開發(fā)過程中扮演的角色或處理的任務(wù),互聯(lián)網(wǎng)、網(wǎng)絡(luò)等等。

當(dāng)描述完成后,問問自己,你是否聽到了對碎片的列舉,或者候選人是否描述了事情的核心,這就是分析能力。

2、抽象能力:能夠識別和理解抽象概念和模式的能力

軟件是復(fù)雜的; 簡單地閱讀代碼是不能理解它的。你通過尋找結(jié)構(gòu)來理解它,建立一個關(guān)于如何用代碼建模的理論,然后在閱讀中驗證和改變這個模型。開發(fā)新的軟件很像理解一個現(xiàn)有的程序,只是這個模型還不存在,只是在你的腦海里有該軟件的寫代碼時追求的所有品質(zhì)),那么開發(fā)者就可以實現(xiàn)它。

3、準(zhǔn)確: 簡潔而準(zhǔn)確地表達(dá)事物的能力

一些開發(fā)者僅通過復(fù)制實例就能取得一定的成功;他們找到與其開發(fā)的項目近似的軟件代碼,然后對其進(jìn)行調(diào)整。這就像雕刻,只是當(dāng)它用代碼完成時,結(jié)果通常不是很清楚,也不是很簡潔,而且可能不完全準(zhǔn)確。同樣,有些開發(fā)者只能通過例子來解釋事情,而不是通過命名底層概念或模式。這是可以接受,但可能會成為軟件開發(fā)的絆腳石,因為他們不太可能認(rèn)識、理解和應(yīng)用代碼中微觀或宏觀層面的模式。

一個能夠準(zhǔn)確(但不一定迅速或令人印象深刻)表達(dá)的開發(fā)者會開發(fā)出更精確的代碼,并更容易向另一個開發(fā)者解釋一項技術(shù)或需求。

4、分清輕重緩急和實用性: 識別必須做的事和可以做的事

靈活的方法自然傾向于今天寫今天的代碼。即使在做瀑布式開發(fā)的公司里,能夠區(qū)分必要和可能,仍然是一項重要的技能。產(chǎn)品往往只有在按時交付的情況下才能完全成功。一個務(wù)實的開發(fā)者會做真正需要去做的事情,比如創(chuàng)建一些鉤子,寫一些評論,為明天打好基礎(chǔ)。實用主義還表現(xiàn)在渴望實現(xiàn)、完成目標(biāo);這促使并鼓勵我們定義什么是成功,幫助我們確定達(dá)到目的的優(yōu)先次序,并關(guān)注任務(wù)的完成度而不僅是給履歷鍍金。

5、理想主義:渴望把事情做好

一個只注重實用主義的開發(fā)者有時會偷懶;他們不僅只開發(fā)今天的功能,而且只為今天而編碼,而不是為明天要維護(hù)這些代碼的開發(fā)者而編碼。實際上,一個理想主義的開發(fā)者會關(guān)心他們所交付的產(chǎn)品的所有品質(zhì):

①他們會確保他們理解了開發(fā)需求。

②他們?nèi)级笮校趯懸恍写a之前會慎重考慮,甚至可能會記錄測試案例。

③他們寫的代碼是清晰的,并且有充分的注釋;他們不斷地重構(gòu),以便使普通代碼進(jìn)入共享方式,然后進(jìn)入基礎(chǔ)類或輔助類。

④他們會編寫單元測試案例,以保護(hù)其他開發(fā)人員和測試人員免受錯誤代碼的影響。

⑤在自動測試不可行的情況下,他們會堅持進(jìn)行手動測試。

理想主義和實用主義是相輔相成的關(guān)系,并且二者缺一不可,平衡這兩個品質(zhì),并告知開發(fā)者整天所做的決定。

其他能力

當(dāng)然,還有一些其他的能力也很重要:

①專注:編寫軟件是一項將頭腦中的模型轉(zhuǎn)錄成代碼的復(fù)雜任務(wù)。

②理解和使用技術(shù)的能力。

③渴望學(xué)習(xí)和提高他們所需的所有技能,以便在個人和軟件交付組織中發(fā)揮效力。

④能夠認(rèn)識到如果不能和團(tuán)隊成員或其他團(tuán)隊有效合作,他們的技能再高超也發(fā)揮不出效力。

總結(jié)

最后一項能力是我們所有人都需要的;那就是認(rèn)識到?jīng)]有一套固定的技能。在任何組織中,有多種方法可以取得成功,有許多角色需要填補(bǔ),而個人的工作只是一個更大過程中的一部分,所有這些都需要發(fā)揮作用才能取得成功。

聰明人有時會忽視其他方面的智慧;如果我們能夠一直互相尊重,并將觀點作為意見提出。即使我們認(rèn)為是在糾正一個錯誤,也會發(fā)現(xiàn)我們竟然經(jīng)常將意見和觀點混淆為事實。

因此,開發(fā)人員最好具備上述能力;然后,他們就可以在技術(shù)軌道上推進(jìn)自己的職業(yè)生涯,成為高級開發(fā)人員、開發(fā)負(fù)責(zé)人,最后成為架構(gòu)師;或者在管理軌道上,信守承諾、尊重他人,甚至在更加關(guān)鍵的位置上激勵和幫助他人實現(xiàn)愿望。

原文標(biāo)題:5 Software Developer Competencies: How To Recognize a Good Programmer

原文作者:Mohamed Aboelez · Mar


網(wǎng)頁標(biāo)題:軟件開發(fā)人員的5個能力:如何識別好的程序員
當(dāng)前鏈接:http://uogjgqi.cn/article/dpdeghp.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流