1、慎重選擇第1門語(yǔ)言
編程語(yǔ)言各有不同,不過(guò)區(qū)別不大。但用語(yǔ)言的人區(qū)別就大了。選擇了一門語(yǔ)言你就選擇了一個(gè)群落。
– Sam Kaufman,自由職業(yè)者,iOS 開(kāi)發(fā)者,10x management
如果你想快速建立原型(尤其對(duì)于希望對(duì)產(chǎn)品進(jìn)行迭代升級(jí)的創(chuàng)始人來(lái)說(shuō)),那就用 Ruby 或者 Javascript
– Erin Parker,Spitfire Athlete 創(chuàng)始人兼首席開(kāi)發(fā)者
2、你不是程序猿!
偉大的開(kāi)發(fā)者能夠建構(gòu)并開(kāi)發(fā)應(yīng)用。驚艷的開(kāi)發(fā)者能夠在關(guān)注業(yè)務(wù)的同時(shí)做這件事。業(yè)務(wù)端的人大都不懂編碼,但是肯定能夠理解特定功能背后的動(dòng)機(jī)。
別人說(shuō)什么開(kāi)發(fā)者就做什么,沒(méi)有去理解為什么要這么做,導(dǎo)致雙方均錯(cuò)失了機(jī)會(huì),這樣的事情太常見(jiàn)了。
– John Coggeshall,自由職業(yè)者,web 開(kāi)發(fā)者,10x Management,PHP 核心貢獻(xiàn)者
精通編程是一個(gè)崇高的職業(yè)目標(biāo)。一旦實(shí)現(xiàn)了這個(gè)目標(biāo),別忘了考慮一下你自己。不要成為任何公司的奴隸或者在毫無(wú)價(jià)值的東西上浪費(fèi)你的時(shí)間。
— Greg Sadetsky, Python 及 Javascript 專家,10x Managemen;協(xié)同辦公空間 Abri.co 創(chuàng)始人
要想按期完成,得在開(kāi)始技術(shù)工作之前事先進(jìn)行項(xiàng)目溝通(哪怕這并非先決條件),因?yàn)槠渌说捻憫?yīng)速度千變?nèi)f化。
– Andrew Wilcox ,web 應(yīng)用開(kāi)發(fā)者,Meteor 核心貢獻(xiàn)者,10x Management
3、保持敏捷,不斷交付
早發(fā)布,不斷發(fā)布,邊說(shuō)唱邊發(fā)布。
– Max Nanis ,自由職業(yè)者,web 開(kāi)發(fā)者,生物信息學(xué)專家,10x Management
不斷測(cè)試。好的測(cè)試包如保單和煤礦里的金絲雀之結(jié)合。它能幫助你在生產(chǎn)周期中更早地找出錯(cuò)誤,而錯(cuò)誤越早發(fā)現(xiàn)越容易解決。
– Jeremy Green,自由職業(yè)者,web 開(kāi)發(fā)者,專長(zhǎng) Ruby on Rails,10x Management
快速失敗。編碼(及生活)時(shí)我希望盡早知道什么地方不能工作,而不是放任不管讓它增殖擴(kuò)散。全面放開(kāi),快速失敗,修補(bǔ)缺陷,不斷繼續(xù)。
– Stephanie Volftsun,Knotch 聯(lián)合創(chuàng)始人兼 CTO
為所有代碼編寫自動(dòng)測(cè)試!盡可能踐行測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)。
– Zoran Kacic-Alesic,Industrial Light & Magic 研發(fā)主管
4、保持對(duì)測(cè)試流程的控制
許多項(xiàng)目深受多測(cè)試周期之苦。這會(huì)拖累項(xiàng)目,導(dǎo)致組織整體出現(xiàn)高級(jí)別的問(wèn)題。
程序員應(yīng)該專注于對(duì)自己的代碼進(jìn)行單元測(cè)試及半回歸測(cè)試。他們比其他任何人更了解代碼庫(kù),也知道自己會(huì)影響到哪些變更。有時(shí)此類變更會(huì)由于 QA 測(cè)試范圍有限而缺失,因此導(dǎo)致生產(chǎn)環(huán)節(jié)出現(xiàn)重大問(wèn)題。
– Sanjib Sahoo,tradeMONSTER CTO
要想在力所能及的情況下盡快開(kāi)發(fā)出無(wú)缺陷代碼,永遠(yuǎn)永遠(yuǎn)也不要把寫測(cè)試放到后面。我們更清楚這一點(diǎn)。要檢查一下測(cè)試的覆蓋率,確保 100% 無(wú)死角。
– Seth Purcell,Signpost 工程副總裁
5、如果你是自由職業(yè)者,要學(xué)會(huì)說(shuō)不,哪怕面對(duì)的是金錢
要對(duì)時(shí)間和成本有一個(gè)合理的評(píng)估,然后把它加倍。如果大家都說(shuō)“這應(yīng)該很簡(jiǎn)單,”那就做
– Ryan Waggoner ,自由職業(yè)者,web 及移動(dòng)應(yīng)用開(kāi)發(fā)者,10x Management
6、榮譽(yù)屬于過(guò)去—理論是一回事,但實(shí)踐更重要
改進(jìn)軟件開(kāi)發(fā)質(zhì)量的最好方式就是去開(kāi)發(fā)軟件。許多雄心勃勃的剛?cè)腴T的工程師花了很多的業(yè)務(wù)時(shí)間去讀書,關(guān)于最新工具的、關(guān)于開(kāi)放流程的,諸如此類的東西。
很多人都是這么消磨自己的閑暇時(shí)間的,但這樣很容易就把你給耽擱了。別這樣,通過(guò)盡可能用腦來(lái)強(qiáng)化大腦負(fù)責(zé)開(kāi)發(fā)軟件的那部分。
–James Cropcho,General Assembly 的 Ruby on Rails 專家及講師
不斷探索。我見(jiàn)過(guò)的許多編碼者手上都有幾個(gè)在進(jìn)行的業(yè)務(wù)項(xiàng)目。做業(yè)務(wù)項(xiàng)目迫使你要探索新技術(shù)然后學(xué)習(xí)創(chuàng)建應(yīng)用的方方面面。你可能需要做前端的 HTML/CSS,后端的 API 集成,數(shù)據(jù)庫(kù)優(yōu)化,做移動(dòng) app,還得設(shè)置自己的服務(wù)器。
– Andrew Waage,Retention Science CTO 及聯(lián)合創(chuàng)始人
7、結(jié)對(duì)評(píng)審是你的秘密武器
結(jié)對(duì)編程非常必要。兩個(gè)程序員聯(lián)合開(kāi)發(fā)同一個(gè)模塊可以相互審查對(duì)方的代碼。開(kāi)發(fā)團(tuán)隊(duì)每周也要召開(kāi)代碼審查會(huì)議,讓每一個(gè)開(kāi)發(fā)者給其他人的代碼提供反饋意見(jiàn),解釋如何更好地改進(jìn)代碼。這能夠形成一種協(xié)作文化,把開(kāi)發(fā)者的自負(fù)拋開(kāi)!
– Sanjib Sahoo
8、像躲瘟疫一樣避免過(guò)早優(yōu)化
只有在問(wèn)題和解決方案都出現(xiàn)在你面前時(shí)才進(jìn)行重構(gòu)—過(guò)早重構(gòu)是時(shí)間上的巨大浪費(fèi)。不要投入半年后可能被扔掉的任何東西的完善上。過(guò)早優(yōu)化是罪惡之源。
–Seth Purcell
不要過(guò)早優(yōu)化!我不斷看到工程師在用戶還沒(méi)有到 1000 的時(shí)候一再對(duì)擴(kuò)充到 100 萬(wàn)的用戶規(guī)模擔(dān)心。
– Mariya Yao,Xanadu Mobile 創(chuàng)始人兼創(chuàng)意總監(jiān),移動(dòng)開(kāi)發(fā)者及設(shè)計(jì)師
9、你的代碼只寫一次,可別人會(huì)讀它千萬(wàn)遍
你寫的代碼機(jī)器會(huì)解析執(zhí)行,可其他人卻需要讀你的代碼,理解它,擺弄它。你必須明白,你的代碼會(huì)有未來(lái)的觀眾。代碼也是一種書寫形式的溝通。
– Tracy Chou,Pinterest 軟件工程師
聽(tīng)起來(lái)很奇怪,但是你永遠(yuǎn)都得替自己的未來(lái)著想。問(wèn)問(wèn)自己:如果你有健忘癥的話,你還能不能理解自己寫過(guò)的代碼?
– Wai Ching Jessica Lam,Sugarbox 聯(lián)合創(chuàng)始人兼 CTO
通讀你的文檔。設(shè)計(jì)改動(dòng)很多,有時(shí)候代碼更新的時(shí)候注釋不一定會(huì)跟進(jìn)。保持文檔的更新,未來(lái)的人(包括你自己)理解起來(lái)就更容易。我說(shuō)不清有多少次我看回自己代碼時(shí)總在想:“我到底在干什么?”只要我寫出了好的注釋,未來(lái)頭疼就少很多。
– Kitt Vanderwater,Google 軟件工程師
10、這是一個(gè)崇高的職業(yè)。把你的技能用到好的地方。
幫助他人是深層次的人類需求。想辦法用你的工作來(lái)改善人類,你就會(huì)有成功的把握。
– Greg Sadetsky