你覺(jué)得你自己算是一名優(yōu)秀的開(kāi)發(fā)者嗎?如果是的話,你有沒(méi)有考慮過(guò),作為一名優(yōu)秀的開(kāi)發(fā)者,你具備哪些優(yōu)秀的品質(zhì)?好的開(kāi)發(fā)者和差的開(kāi)發(fā)者區(qū)別在哪里?經(jīng)驗(yàn)?技能?還是天賦?如何才能成為一名優(yōu)秀的開(kāi)發(fā)者?
1. 具有很強(qiáng)的分析思維
作為一名優(yōu)秀的開(kāi)發(fā)者,你需要思考,觀察數(shù)據(jù),記憶并且分析這些現(xiàn)象和內(nèi)容,并解決問(wèn)題。雖然這一點(diǎn)有些抽象,但很不幸的是這是非常重要的一點(diǎn)。為什么很不幸呢?因?yàn)檫@一點(diǎn)意味著不是每一個(gè)人都能成為優(yōu)秀的開(kāi)發(fā)者,即使他們很努力。這種分析思維有點(diǎn)像是天生的。如果你沒(méi)有這個(gè)能力的話,還是盡早改行。
分析性思維是可以鍛煉的,例如解決算法和邏輯問(wèn)題會(huì)讓你在這方面有所提高。但是每個(gè)人都有一個(gè)上限,難以超越。
2. 對(duì)軟件有一個(gè)宏觀的理解
開(kāi)發(fā)一個(gè)軟件有點(diǎn)像是下棋 - 你要贏得比賽就要預(yù)測(cè)后面幾步。在編程的時(shí)候,你不光要看到眼前的代碼,你還要想到將來(lái)要寫的代碼。作為一名優(yōu)秀的開(kāi)發(fā)者,你不應(yīng)該只盯著軟件的一小部分,你應(yīng)該看到軟件的整體結(jié)構(gòu)。你需要知道如何實(shí)現(xiàn)一項(xiàng)功能,也需要知道為什么實(shí)現(xiàn)一項(xiàng)功能。
3. 從業(yè)務(wù)的角度理解軟件開(kāi)發(fā)
在我的概念中,一名優(yōu)秀的開(kāi)發(fā)者不僅是面向技術(shù)的。你同時(shí)需要面向業(yè)務(wù),理解客戶的需求。如果你做不到這一點(diǎn)的話,有很多潛在的問(wèn)題:誤解業(yè)務(wù)需求,軟件可用性差等等。
那么如何做一個(gè)面向業(yè)務(wù)的開(kāi)發(fā)者呢?
- 從業(yè)務(wù)的角度理解軟件
- 尊重客戶的需求
- 能將業(yè)務(wù)問(wèn)題轉(zhuǎn)化成技術(shù)問(wèn)題
- 能和非技術(shù)領(lǐng)域的人溝通
4. 善于協(xié)作
一名優(yōu)秀的開(kāi)發(fā)者不是只會(huì)單打獨(dú)斗的。一個(gè)項(xiàng)目要成功的話,團(tuán)隊(duì)內(nèi)部的溝通和協(xié)作是至關(guān)重要的。不善于協(xié)作的開(kāi)發(fā)者是無(wú)法融入團(tuán)隊(duì)的。我知道有很多牛逼的開(kāi)發(fā)者都很內(nèi)向,但是在現(xiàn)代開(kāi)發(fā)過(guò)程中,光寫代碼是不夠的。
敏捷的世界需要好的開(kāi)發(fā)者
我上面說(shuō)的幾點(diǎn)也許在多年前是不成立的。如果我們沒(méi)有進(jìn)入敏捷的時(shí)代,任何合格的“碼農(nóng)”都可以被稱作合格的“開(kāi)發(fā)者”。但事實(shí)是我們已經(jīng)進(jìn)入敏捷的時(shí)代,我們需要敏捷的開(kāi)發(fā)者,能夠分析問(wèn)題,從業(yè)務(wù)的角度考慮問(wèn)題,對(duì)軟件有全局觀,并且善于協(xié)作。
原文鏈接,OSChina.NET 原創(chuàng)編譯
------- 譯者總結(jié) -------
隨著時(shí)代的發(fā)展,純粹的coding,碼農(nóng)(programmer)已經(jīng)不能滿足需求。時(shí)代需要的是開(kāi)發(fā)者(developer)。作為開(kāi)發(fā)者你需要“善于分析問(wèn)題,對(duì)軟件開(kāi)發(fā)有大局觀,懂得業(yè)務(wù)需求,善于溝通協(xié)作”。
我個(gè)人越來(lái)越感覺(jué)到,隨著移動(dòng)互聯(lián)網(wǎng)的興起,“開(kāi)發(fā)者”這個(gè)概念被提的越來(lái)越多。IT界的大勢(shì)正在推動(dòng)著對(duì)開(kāi)發(fā)者這個(gè)角色的需求。開(kāi)發(fā)者是程序員,但程序員不一定是開(kāi)發(fā)者。
該文章在 2012/3/20 15:46:57 編輯過(guò)