|
成為一名程序員或真正開(kāi)發(fā)者的標(biāo)準(zhǔn)是什么?筆者認(rèn)為只要是愛(ài)編程并向著自己的目標(biāo)不斷地努力奮斗,終有一天你也會(huì)成為一個(gè)牛人。還是學(xué)生的汪海洋,在大學(xué)的前三年就成立了自己的工作室和組建了開(kāi)發(fā)團(tuán)隊(duì),目前已有多款應(yīng)用在AppStore上架,還創(chuàng)立了濟(jì)南開(kāi)源社區(qū)…… 我們無(wú)法去預(yù)知未來(lái),但是從汪海洋的身上看到了他對(duì)編程的熱愛(ài),對(duì)夢(mèng)想的不懈追求,用血的教訓(xùn)來(lái)成就自己一次又一次的華麗變身、證明著自己。今天,他將向大家分享他這一路走來(lái),講述他與程序員之間的不解之緣。以下為采訪全文: 都是因?yàn)閷?duì)編程的愛(ài)才會(huì)堅(jiān)持 CSDN:請(qǐng)和大家介紹下你及目前所從事的工作。 汪海洋:目前和同學(xué)一起創(chuàng)建ING工作室,專注技術(shù)、市場(chǎng)、用戶,開(kāi)發(fā)屬于自己的原創(chuàng)產(chǎn)品。同時(shí)做一些開(kāi)源方面的工作,希望能夠在濟(jì)南的各大高校推廣開(kāi)放、分享、自由、創(chuàng)造的開(kāi)源精神。 CSDN:你是如何一步步走上編程之路的? 汪海洋:一開(kāi)始是跟著馬士兵的視頻教程學(xué)習(xí)J2SE和J2EE的開(kāi)發(fā),后來(lái)加入WeeGo工作室,主要涉及的領(lǐng)域是移動(dòng)互聯(lián)網(wǎng)應(yīng)用,兩年多的時(shí)間承接一些外包項(xiàng)目學(xué)習(xí)到了很多東西,但是更重要的遇到了一群志同道合的小伙伴們。 最難忘的就是暑假的時(shí)候和三位學(xué)長(zhǎng)一起在工作室通宵趕項(xiàng)目,當(dāng)時(shí)有這么一句話,如果你早上過(guò)來(lái)看見(jiàn)海洋睡著了,那說(shuō)明問(wèn)題已經(jīng)解決了,如果看見(jiàn)海洋還在碼代碼,那就遇到大問(wèn)題了。 當(dāng)時(shí)最開(kāi)心的事情,莫過(guò)于通宵之后一起結(jié)伴去肯德基,點(diǎn)上兩三個(gè)法風(fēng)燒餅,美美的吃上一頓了。雖然后來(lái)這個(gè)項(xiàng)目因?yàn)槲覀兡芰τ邢蓿罱K未能上線,但是這是我第一次體會(huì)到團(tuán)隊(duì)開(kāi)發(fā)的樂(lè)趣和團(tuán)隊(duì)的重要性。也讓我逐漸意識(shí)到,企業(yè)項(xiàng)目和個(gè)人應(yīng)用之間的巨大差距。在團(tuán)隊(duì)中,能力只是一個(gè)方面,責(zé)任意識(shí)往往比個(gè)人能力更重要。 細(xì)細(xì)想來(lái),興趣始終是最好的老師,對(duì)編程的熱愛(ài)讓我在編程這條路上走的越來(lái)越遠(yuǎn)。 CSDN:有人說(shuō)大學(xué)的課程大多是無(wú)用的,根本不用去上課,對(duì)此你怎么看? 汪海洋:一開(kāi)始我也是持有這樣的觀點(diǎn),因?yàn)楦杏X(jué)很多課程講不到重點(diǎn),對(duì)于很多知識(shí)點(diǎn)淺嘗輒止,不但沒(méi)有起到啟發(fā)學(xué)生的作用,反而還因?yàn)榭荚嚭涂?jī)點(diǎn)等原因扼殺了許多人對(duì)編程的喜愛(ài)。 其實(shí)現(xiàn)在覺(jué)得大學(xué)中的很多基礎(chǔ)課程還是十分必要的,比如數(shù)據(jù)結(jié)構(gòu)、編譯原理這些,雖然不涉及編程的語(yǔ)法,但是在實(shí)際開(kāi)發(fā)的過(guò)程中對(duì)于理解底層代碼、優(yōu)化性能等方面都有應(yīng)用。一些非專業(yè)的課程對(duì)于專業(yè)技能可能沒(méi)有幫助,但是對(duì)于人格的培養(yǎng)等方面起到了非常重要的作用。 CSDN:你身上有很多的標(biāo)簽,需要做的事情有很多,你是如何進(jìn)行時(shí)間管理的呢? 汪海洋:我有使用Excel制作個(gè)人日程安排的習(xí)慣: 首先是一個(gè)長(zhǎng)期的規(guī)劃,也就是在這接下來(lái)的一個(gè)月要做什么,比如完成Hadoop的學(xué)習(xí)等等; 然后是一個(gè)中期的規(guī)劃,也就是在接下來(lái)的一個(gè)星期要做的事情,比如星期二上課,星期四團(tuán)隊(duì)討論這種; 最后就是每日的計(jì)劃,番茄工作室愛(ài)好者,從早上起床吃什么到晚上睡前看什么都有一個(gè)詳細(xì)的規(guī)劃。 當(dāng)然計(jì)劃只是理論的最優(yōu)解,實(shí)際執(zhí)行的情況還是三個(gè)字:看心情。很多人也有制定計(jì)劃的習(xí)慣,但是往往堅(jiān)持不了多久就放棄了。我也經(jīng)常有這樣的問(wèn)題,畢竟懶惰是人的天性。所以每天晚上我會(huì)總結(jié)一下當(dāng)天的收獲,比如任務(wù)完成進(jìn)度,未完成的原因。每個(gè)星期也有個(gè)自我總結(jié),畢竟計(jì)劃不如變化快,有時(shí)候需要對(duì)計(jì)劃做一些調(diào)整以提高效率。高效是完成規(guī)劃的前提,就編程而言我比較喜歡站著寫(xiě)程序,因?yàn)檎局臅r(shí)候似乎頭腦更清醒一些,讓捉急的智商跑的更快一些。感覺(jué)效率低下的時(shí)候就去倒杯水吃個(gè)零食,調(diào)整一下?tīng)顟B(tài),有張有弛,把握節(jié)奏。 CSDN:你是濟(jì)南高校開(kāi)源社區(qū)創(chuàng)始人之一,這是一個(gè)怎樣的社區(qū)?以及你對(duì)開(kāi)源有著怎樣的一種情感? 汪海洋:OSCU是我和另外三位志同道合的同學(xué)一起創(chuàng)建的濟(jì)南高校開(kāi)源社區(qū),主要進(jìn)行開(kāi)源相關(guān)的知識(shí)普及、文化宣傳以及一些交流活動(dòng)?,F(xiàn)在很多大學(xué)生被學(xué)分和績(jī)點(diǎn)所限制,而學(xué)校本身又是一個(gè)十分封閉的群體,所以很多大學(xué)生接觸到編程只是被動(dòng)的接受,而卻沒(méi)有主動(dòng)的去學(xué)習(xí)和探索,很少有人真正的熱愛(ài)編程,真正的理解編程。我們希望能讓大家接觸到更純粹的程序員的世界,而不是沉浸在自己的圈子里。目前社區(qū)剛剛起步,規(guī)模只有山東大學(xué)軟件學(xué)院的幾個(gè)同學(xué),在GitCafe創(chuàng)建了一個(gè)開(kāi)源項(xiàng)目,想多人在線合作一起編寫(xiě)一本Python爬蟲(chóng)教程。我們希望越來(lái)越多熱愛(ài)編程的大學(xué)生們能加入我們,分享編程和開(kāi)源帶給我們的快樂(lè)。 上個(gè)月我們四個(gè)人有幸拿到了2014開(kāi)源技術(shù)大會(huì)的門(mén)票,并在會(huì)場(chǎng)見(jiàn)到了蔣老大,Thomas Yao,Larry Wall等仰慕已久的大牛們。那次交流會(huì)的印象深刻,讓我們感受到國(guó)內(nèi)有許多熱愛(ài)這項(xiàng)事業(yè)的編程愛(ài)好者,而大媽的演講《但行好事,莫問(wèn)前程》也堅(jiān)定了我們一行四人做開(kāi)源的決心。 現(xiàn)在社區(qū)還處于剛起步階段,主要是在各個(gè)實(shí)驗(yàn)室宣講Git和開(kāi)源的相關(guān)知識(shí)。下一步計(jì)劃每個(gè)月組織一次開(kāi)源技術(shù)交流會(huì),讓熱愛(ài)編程的人一起分享編程的樂(lè)趣。我覺(jué)得開(kāi)源讓編程又變成了一件純粹的事情,讓更多的人能夠?qū)W⒂诰幊瘫旧淼臉?lè)趣。 我移動(dòng)應(yīng)用開(kāi)發(fā)之道 CSDN:能否簡(jiǎn)單介紹下你的移動(dòng)應(yīng)用開(kāi)發(fā)經(jīng)歷? 汪海洋:WeeGo工作室負(fù)責(zé)人,做了兩年多的移動(dòng)應(yīng)用開(kāi)發(fā),目前有4款iOS應(yīng)用在AppStore上架,和團(tuán)隊(duì)一起完成了多項(xiàng)外包項(xiàng)目的開(kāi)發(fā),比如手機(jī)游戲《傘公主》,新聞?dòng)嗛喛蛻舳恕墩浦猩酱蟆?,手機(jī)上的傳真軟件《PhoneFax》、基于蛐蛐兒音頻二維碼的《747微信打印機(jī)》等等?!?47微信打印機(jī)》在百盛購(gòu)物中心、北國(guó)先天下購(gòu)物廣場(chǎng)、中華網(wǎng)年會(huì)等場(chǎng)合進(jìn)行了展覽。 當(dāng)然,在兩年多的開(kāi)發(fā)經(jīng)歷中,也經(jīng)常遇到項(xiàng)目失敗的情況。比如我第一個(gè)參與的比較大型的企業(yè)項(xiàng)目,一個(gè)蛋糕預(yù)定的系統(tǒng)《BonBonPie》,整個(gè)團(tuán)隊(duì)十余人開(kāi)發(fā)了將近半年,我加進(jìn)去的時(shí)候負(fù)責(zé)的是一些迭代和測(cè)試的收尾工作。但是最后因?yàn)閷W(xué)??荚囍芘R近,大家忙于考試,未能及時(shí)完成項(xiàng)目開(kāi)發(fā),導(dǎo)致前期的開(kāi)發(fā)都付諸東流,沒(méi)能成功上線。也是從這時(shí)起,我越來(lái)越意識(shí)到開(kāi)發(fā)前期的規(guī)劃和安排,對(duì)于整個(gè)開(kāi)發(fā)流程來(lái)說(shuō)有著多么重要的意義。 目前正在和ING團(tuán)隊(duì)一起做屬于自己的原創(chuàng)產(chǎn)品《愛(ài)吃什么》,團(tuán)隊(duì)規(guī)模30人左右,分為前端、后臺(tái)、iOS、Android、視覺(jué)、產(chǎn)品等多個(gè)部門(mén),更多關(guān)注市場(chǎng)和用戶。 在團(tuán)隊(duì)工作之余我也喜歡搗騰一些自己感興趣的東西,比如Python爬蟲(chóng),當(dāng)時(shí)學(xué)習(xí)Python是無(wú)意中看到開(kāi)源中國(guó)的一篇帖子,講解如何爬取百度貼吧的樓主發(fā)言,當(dāng)時(shí)感覺(jué)十分神奇,就去系統(tǒng)的學(xué)習(xí)了Python并做了一系列的爬蟲(chóng),其中最有意思的是山東大學(xué)的績(jī)點(diǎn)查詢系統(tǒng),糗事百科的離線下載器,看似簡(jiǎn)單的小工具,在摸索的過(guò)程中也學(xué)習(xí)了很多東西,比如當(dāng)時(shí)覺(jué)得很困難的Ajax請(qǐng)求,發(fā)現(xiàn)Scrapy這個(gè)爬蟲(chóng)框架可以輕輕松松的解決這個(gè)問(wèn)題。還有比如Cocos2D和Unity3D等游戲開(kāi)發(fā)引擎,上手容易,開(kāi)發(fā)便捷,可以分分鐘做出一個(gè)屬于自己的手機(jī)游戲。個(gè)人開(kāi)發(fā)和團(tuán)隊(duì)合作相比,更加的自由,可以學(xué)習(xí)自己感興趣的東西并且鉆研下去,收獲不一樣的快樂(lè)。 CSDN:你移動(dòng)應(yīng)用開(kāi)發(fā)中涉通常用到哪些技術(shù)和工具? 汪海洋:因?yàn)閭€(gè)人對(duì)編程十分感興趣,所以涉獵的內(nèi)容也比較廣泛。 1. 前端,一開(kāi)始是手寫(xiě)JS和CSS代碼,后來(lái)接觸到j(luò)Query、BootStrap等框架,開(kāi)發(fā)的效率和質(zhì)量都有比較大的改善。作為一個(gè)半業(yè)余的前端開(kāi)發(fā)者,框架的使用既能提高效率又能提高代碼質(zhì)量,是一個(gè)不錯(cuò)的選擇。 2. 后臺(tái),PHP和JSP均有所涉及,有Spring、CodeIgniter等框架的開(kāi)發(fā)經(jīng)驗(yàn)。CodeIgniter是我接觸到的第一款PHP輕量級(jí)框架,采用MVC模式,足夠的自由也足夠的方便。 3. 移動(dòng)端,移動(dòng)端主要是iOS開(kāi)發(fā),在Xcode中使用Objective-C開(kāi)發(fā)一些移動(dòng)應(yīng)用。經(jīng)常去Code4App去學(xué)習(xí)一些別人寫(xiě)好的代碼,對(duì)于個(gè)人能力的提高很有幫助。iOS是我最喜歡的一個(gè)領(lǐng)域,從最初的xib到StoryBoard,從手動(dòng)管理內(nèi)存到ARC機(jī)制的出現(xiàn),一點(diǎn)一點(diǎn)的見(jiàn)證著它進(jìn)步和優(yōu)化的過(guò)程。 4. PC端,主要是C#應(yīng)用開(kāi)發(fā),做一些有意思的客戶端軟件,比如基于蛐蛐兒音頻二維碼的《747微信打印機(jī)》,CMCC自動(dòng)登陸軟件《WLAN精靈》等等。 5. 其他,用Unity3D做過(guò)游戲,用Python寫(xiě)過(guò)爬蟲(chóng),用OpenCV做過(guò)濾鏡,用Axure設(shè)計(jì)過(guò)原型,各種內(nèi)容都有涉及。 在開(kāi)發(fā)中感觸比較深的一點(diǎn)就是,開(kāi)源類庫(kù)和軟件框架的選擇與使用,可以節(jié)省大量的開(kāi)發(fā)時(shí)間,并且提高代碼質(zhì)量。比如iOS中ASIHTTPRequest類庫(kù)的使用就可以簡(jiǎn)化很多網(wǎng)絡(luò)方面的問(wèn)題,比如下載和上傳文件,同步和異步請(qǐng)求,客戶端證書(shū),帶寬限制等等。 一般在接觸到一個(gè)新的功能的時(shí)候我會(huì)先去Code4App查看有沒(méi)有相關(guān)的項(xiàng)目,然后下載下來(lái),先在Demo中運(yùn)行,學(xué)習(xí)一下實(shí)現(xiàn)的方法和思路,然后再遷移到自己的應(yīng)用中。 CSDN:一款應(yīng)用的的產(chǎn)生要經(jīng)歷哪些流程,其中你認(rèn)為最難和最重要的是哪一環(huán)? 汪海洋:我認(rèn)為工作室開(kāi)發(fā)移動(dòng)應(yīng)用主要分為以下三個(gè)步驟: 1. 設(shè)計(jì)原型:這是看起來(lái)最簡(jiǎn)單,實(shí)際上是最重要的一個(gè)步驟,因?yàn)樗苯記Q定了團(tuán)隊(duì)的努力方向。需要根據(jù)市場(chǎng)提出需求,并且綜合用戶體驗(yàn)等多個(gè)角度考慮設(shè)計(jì)出原型。一般我們選擇使用Axure來(lái)設(shè)計(jì)原型。這是一個(gè)不斷調(diào)整和修改的步驟,因?yàn)槿绻O(shè)計(jì)的時(shí)候定錯(cuò)了方向,整個(gè)團(tuán)隊(duì)的開(kāi)發(fā)基本就都白費(fèi)了,在不斷的討論和修改中最后可以得到一個(gè)比較完善的產(chǎn)品設(shè)計(jì)。 2. 開(kāi)發(fā)階段:開(kāi)發(fā)主要就是程序員們的事情了,在這個(gè)階段最重要的就是團(tuán)隊(duì)的溝通與合作,及時(shí)的溝通可以發(fā)現(xiàn)問(wèn)題并且盡快的解決問(wèn)題。在此期間一般美工會(huì)一起進(jìn)行頁(yè)面的設(shè)計(jì),前期的原型只是一個(gè)跳轉(zhuǎn)邏輯和布局的大體規(guī)劃,而美工的設(shè)計(jì)則細(xì)化到了所有的細(xì)節(jié),最終將頁(yè)面切圖交給開(kāi)發(fā)的部門(mén)。一般我們使用WorkTile進(jìn)行團(tuán)隊(duì)協(xié)作和任務(wù)管理。 3. 測(cè)試階段:這也是很關(guān)鍵的一個(gè)步驟,比如進(jìn)行各種非正常人類操作的壓力測(cè)試,以及針對(duì)軟件界面和功能的黑盒測(cè)試等等。一個(gè)成熟的產(chǎn)品應(yīng)該盡量避免閃退、卡頓這種極不友好的情況出現(xiàn)。 CSDN:在移動(dòng)應(yīng)用開(kāi)發(fā)中,我們常見(jiàn)的有移動(dòng)Web App和原生App,你認(rèn)為兩者在未來(lái)將如何發(fā)展?且兩者間的關(guān)系將如何?開(kāi)發(fā)者應(yīng)如何抉擇呢? 汪海洋:先來(lái)比較一下兩者。 原生App,也就是使用對(duì)應(yīng)的開(kāi)發(fā)語(yǔ)言(比如OC,Java)開(kāi)發(fā)的應(yīng)用,最大的優(yōu)點(diǎn)就是執(zhí)行效率高,運(yùn)行快,并且可以使用一些移動(dòng)設(shè)備的底層功能,例如攝像頭,通訊錄之類,與之對(duì)應(yīng)的就是開(kāi)發(fā)成本較高,需要有相關(guān)技術(shù)的開(kāi)發(fā)人員并且開(kāi)發(fā)多種移動(dòng)客戶端應(yīng)用。 而移動(dòng)Web App,也就是使用Web技術(shù)(HTML5、JS、CSS3等)開(kāi)發(fā),最大的優(yōu)點(diǎn)就是開(kāi)發(fā)速度快,只需要開(kāi)發(fā)一個(gè)項(xiàng)目就可以在各種移動(dòng)設(shè)備上使用。而對(duì)應(yīng)的缺點(diǎn)也十分明顯了,因?yàn)槭褂玫氖荳eb技術(shù),所以只能使用一些有限的移動(dòng)設(shè)備的功能,一些細(xì)節(jié)比如異步加載、延時(shí)加載、離線緩存等功能很難實(shí)現(xiàn),而且各種瀏覽器的兼容也是一個(gè)比較大的問(wèn)題。 原生App和Web App,各有各的優(yōu)勢(shì)。未來(lái)的局面很可能依舊像現(xiàn)在這樣,二者共同生存。而對(duì)于開(kāi)發(fā)者而言,在合適的環(huán)境下做出正確的選擇,做出真正有價(jià)值的產(chǎn)品,這往往才是需要關(guān)注的問(wèn)題。 在條件允許的情況下我會(huì)優(yōu)先選擇開(kāi)發(fā)原生App,在人員不夠或者著急上線的時(shí)候則會(huì)先快速提供Web App的,再分別提供原生的版本。 至于二者的選擇,應(yīng)考慮這些問(wèn)題: 1. 人員和時(shí)間是否充裕:在條件允許的情況下,個(gè)人感覺(jué)還是原生App更優(yōu)先選擇,雖然移動(dòng)應(yīng)用Web化的趨勢(shì)非常明顯,但是HTML在移動(dòng)端還面臨著很多問(wèn)題。 2. 軟件的要求是否允許:這個(gè)涉及到許多方面,比如性能的需求、預(yù)算、對(duì)設(shè)備的底層功能的使用等等,是否可以選擇移動(dòng)Web App主要取決于軟件的需求,移動(dòng)Web App可以用來(lái)開(kāi)發(fā)那種新聞?dòng)嗛嗩悜?yīng)用,但是開(kāi)發(fā)其它應(yīng)用的話在性能始終無(wú)法和原生App相比。 CSDN:在應(yīng)用開(kāi)發(fā)中會(huì)接觸到多種語(yǔ)言,曾在博客寫(xiě)了一首詩(shī),表達(dá)了你對(duì)Java的難舍難分之情,你對(duì)于編程語(yǔ)言有著怎樣的特殊情感? 汪海洋:我覺(jué)得每一種編程語(yǔ)言都有自己的性格,而編程就像是和它們心與心交流的過(guò)程。 比如C++就像是充滿智慧的沉穩(wěn)老者,思維縝密,每個(gè)內(nèi)存的細(xì)節(jié)都不能放過(guò),在他面前再資深的開(kāi)發(fā)者都要放低姿態(tài),虛心請(qǐng)教。 Java則像是身形龐大的魔術(shù)師,前一秒還在給你寫(xiě)著安卓的應(yīng)用,下一秒又跑去做網(wǎng)站了,再加上Eclipse這個(gè)好朋友,還會(huì)幫你指出一些語(yǔ)法上的錯(cuò)誤。 Python和Ruby則像是一對(duì)好朋友,性格相似,活潑自由,充滿了靈性。 對(duì)我而言,編程不僅僅是一個(gè)興趣而已,它逐漸成為了生活中不可或缺的一部分。 相信每一段代碼都有生命,每一段注釋都有故事。 【附】 《Java你好,Java再見(jiàn)》 大學(xué)伊始 初次見(jiàn)面 回首往昔 已有兩年 當(dāng)年的我 還是一個(gè)懵懂的大學(xué)學(xué)生 當(dāng)年的你 只是一門(mén)必修的編程語(yǔ)言 多少個(gè)不眠的黑夜 多少個(gè)安靜的白天 我靜靜的坐在電腦前 照著課本慢慢敲著鍵 看代碼一行兩行三行四行連成片 看星星一顆兩顆三顆四顆連成線 你是我的眼 讓我明白封裝之義 多態(tài)之炫 你是我的眼 帶我領(lǐng)略編程之美 算法之艱 由于篇幅限制,以上只是小詩(shī)的前部分。 我的團(tuán)隊(duì)管理之道 CSDN:你是濟(jì)南高校開(kāi)源社區(qū)創(chuàng)始人的,也是學(xué)生在線iOS移動(dòng)開(kāi)發(fā)部負(fù)責(zé)人,獨(dú)立完成《掌中山大》、《山大手冊(cè)》等應(yīng)用的開(kāi)發(fā)并在AppStore上架。同時(shí),你也是WeeGo工作室的負(fù)責(zé)人,能否簡(jiǎn)單介紹你的團(tuán)隊(duì),以及作為一名leader的感受? 汪海洋:其實(shí)遠(yuǎn)遠(yuǎn)談不上是Leader,充其量就是個(gè)小組長(zhǎng)。團(tuán)隊(duì)基本都是由大學(xué)生組成,年輕充滿激情,同時(shí)也缺乏經(jīng)驗(yàn),所以在開(kāi)發(fā)的過(guò)程當(dāng)中走了不少?gòu)澛?。剛開(kāi)始的時(shí)候,有一個(gè)C#的項(xiàng)目,看起來(lái)功能比較簡(jiǎn)單,就是C#操作WORD和EXCEL生成文檔。開(kāi)發(fā)周期四個(gè)月基本綽綽有余了,當(dāng)時(shí)負(fù)責(zé)人也沒(méi)在意,簡(jiǎn)單的分工之后讓大家各干各的,每個(gè)星期例會(huì)交流。等到了三個(gè)月的時(shí)候,因?yàn)楦鞣N問(wèn)題耽擱,項(xiàng)目才完成了一半左右,而因?yàn)槿狈軜?gòu)經(jīng)驗(yàn),項(xiàng)目的設(shè)計(jì)非常糟糕,除了當(dāng)時(shí)負(fù)責(zé)頁(yè)面的同學(xué)基本沒(méi)人知道自己完成的功能如何添加到項(xiàng)目中去。最終的結(jié)果就是提前一個(gè)星期宣告項(xiàng)目失敗。當(dāng)時(shí)我還不是團(tuán)隊(duì)負(fù)責(zé)人,但是從這件事可以看出合理的規(guī)劃開(kāi)發(fā)計(jì)劃,把握開(kāi)發(fā)的節(jié)奏,預(yù)留彈性時(shí)間,及時(shí)溝通交流,這些細(xì)節(jié)對(duì)于我們這種小型的開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō)非常的重要。 我們通過(guò)WorkTile平臺(tái)來(lái)進(jìn)行團(tuán)隊(duì)協(xié)作和任務(wù)管理 團(tuán)隊(duì)開(kāi)發(fā)中最常見(jiàn)的問(wèn)題就是溝通協(xié)作的問(wèn)題,很多時(shí)候因?yàn)橐恍┘?xì)節(jié)疏忽導(dǎo)致的溝通上的不足會(huì)嚴(yán)重影響項(xiàng)目開(kāi)發(fā)的進(jìn)度。在第二年的時(shí)候我們不再采用QQ群這種原始的方式,而選擇了WorkTile這樣專業(yè)的團(tuán)隊(duì)協(xié)作和任務(wù)管理平臺(tái),合作效率有了明顯的改善。 我們團(tuán)隊(duì)經(jīng)常遇到的另一個(gè)問(wèn)題就是時(shí)間安排。對(duì)于大學(xué)生團(tuán)隊(duì)的成員,上課和開(kāi)發(fā)這兩個(gè)部分是個(gè)很難權(quán)衡的問(wèn)題。有些人將大部分精力放在學(xué)業(yè)上,導(dǎo)致項(xiàng)目進(jìn)展緩慢;而有些人則全身心投入開(kāi)發(fā),雖然做出了一些產(chǎn)品,但是因?yàn)槿狈υ鷮?shí)的基本功,導(dǎo)致學(xué)習(xí)和開(kāi)發(fā)過(guò)程中經(jīng)常出現(xiàn)障礙。我的建議是在項(xiàng)目開(kāi)展順利的時(shí)候優(yōu)先保證必要的課程學(xué)習(xí),課余時(shí)間集中精力一起做點(diǎn)東西是完全足夠的。如果項(xiàng)目接近尾聲任務(wù)繁重那只能犧牲一些上課學(xué)習(xí)的時(shí)間,項(xiàng)目結(jié)束之后及時(shí)補(bǔ)上落下的課程。 CSDN:你在從一名開(kāi)發(fā)人員到一個(gè)團(tuán)隊(duì)管理的過(guò)程中,在做團(tuán)隊(duì)管理的時(shí)候有沒(méi)有遇到一些困難、一些比較難忘的事情? 汪海洋:一開(kāi)始很難接受這樣一個(gè)角色的轉(zhuǎn)變,因?yàn)樽鳛殚_(kāi)發(fā)者更多的關(guān)注技術(shù)方面,而作為管理者的時(shí)候需要考慮的東西要多得多,小到成員的溝通,大到團(tuán)隊(duì)的規(guī)劃,都要有一個(gè)統(tǒng)籌安排。 最難忘的應(yīng)該是我第一次分配團(tuán)隊(duì)任務(wù)的時(shí)候因?yàn)檫^(guò)于樂(lè)觀,給每個(gè)人都分了一大堆事情,導(dǎo)致團(tuán)隊(duì)會(huì)議的時(shí)候基本都未能完成任務(wù),后來(lái)我把任務(wù)按照功能逐漸模塊分散,然后按照個(gè)人能力分配,并且還會(huì)預(yù)留一部分的彈性時(shí)間,防止一些特殊情況影響進(jìn)度。 CSDN:對(duì)團(tuán)隊(duì)而言,每個(gè)成員的素質(zhì)影響著整個(gè)團(tuán)隊(duì)的質(zhì)量,對(duì)此你有什么心得和體會(huì)可分享? 汪海洋:面試的時(shí)候,我比較關(guān)注成員的成長(zhǎng)曲線,而不是現(xiàn)在能力。舉個(gè)例子,以跑步為例,我關(guān)心的是能跑多快,而不是現(xiàn)在跑了多遠(yuǎn)。我理想的隊(duì)友是熱愛(ài)編程的人,他可能現(xiàn)在基本功并不扎實(shí),但是我相信加入我們之后他會(huì)有很好的發(fā)展。對(duì)于已經(jīng)加進(jìn)來(lái)發(fā)現(xiàn)并不能很好的融入集體的人,我一般會(huì)避免給他分配一些關(guān)鍵的任務(wù),因?yàn)楫吘故且黄饖^斗的隊(duì)友,就算技術(shù)上不能給予幫助但是精神的支持也是很重要的。 CSDN:要打造一支高效團(tuán)隊(duì)具體該怎么做,談?wù)勀愕囊?jiàn)解? 汪海洋:我認(rèn)為主要有三個(gè)方面: 首先,要找對(duì)人。志同道合,熱愛(ài)編程,沒(méi)有什么復(fù)雜的利益驅(qū)動(dòng),越純粹越好。因?yàn)槲冶旧硪彩且粋€(gè)比較簡(jiǎn)單的人。 然后,有良好的規(guī)劃。現(xiàn)在應(yīng)該做什么,接下來(lái)我們要做什么,然后哪些人做哪些工作,這些規(guī)劃對(duì)于一個(gè)小型的團(tuán)隊(duì)來(lái)說(shuō)十分重要。把握一個(gè)好的節(jié)奏,是高效的關(guān)鍵所在。 最后就是執(zhí)行力。說(shuō)的再好做不到也沒(méi)用,團(tuán)隊(duì)雖小,沒(méi)有什么例會(huì)和制度的約束,但是一些基本的要求還是要有的,不以規(guī)矩,不成方圓。 我的未來(lái)不是夢(mèng) CSDN:你對(duì)自己接下來(lái)的人生有著怎樣的規(guī)劃? 汪海洋:目前我主要有兩個(gè)方向,一個(gè)是開(kāi)源,一個(gè)是產(chǎn)品。 開(kāi)源是為程序員服務(wù),想找到更多志同道合的朋友一起交流和分享,追求開(kāi)放,分享,自由,創(chuàng)造的開(kāi)源精神。 而產(chǎn)品是為更多的客戶服務(wù),專注技術(shù)、用戶和市場(chǎng),和團(tuán)隊(duì)一起開(kāi)發(fā)真正有價(jià)值有意義的產(chǎn)品。 CSDN:你是什么時(shí)候接觸CSDN的?它對(duì)你學(xué)習(xí)和工作都帶來(lái)哪些影響?同時(shí),對(duì)CSDN有什么建議? 汪海洋:我是從大一的時(shí)候接觸CSDN,那時(shí)候經(jīng)常上CSDN下載一些Java和C++的代碼,后來(lái)養(yǎng)成了在CSDN寫(xiě)博客的習(xí)慣,開(kāi)發(fā)過(guò)程中遇到問(wèn)題還經(jīng)常翻一翻自己以前的博客。CSDN給我?guī)?lái)了很多,最重要的是營(yíng)造了良好的程序員氛圍,讓我接觸了很多有經(jīng)驗(yàn)的開(kāi)發(fā)者,并且在博客和論壇中學(xué)習(xí)和交流。 建議的話,話說(shuō)CSDN改版之后頁(yè)面變化挺大的,不過(guò)博客左上角的導(dǎo)航條加了target=”_blank”之后, 點(diǎn)擊導(dǎo)航條打開(kāi)了新的標(biāo)簽頁(yè),挺不習(xí)慣的,建議改回去吧。 最后: 第一次接受采訪,說(shuō)實(shí)話,深知自己還差得很遠(yuǎn),只是和大家一起分享編程過(guò)程中的收獲,聊一聊編程的故事和自己的理解。我一直覺(jué)得我是一個(gè)十分幸運(yùn)的人,很慶幸這兩年多的時(shí)間加入了一些優(yōu)秀的團(tuán)隊(duì),遇到了很多志同道合的好朋友,對(duì)于現(xiàn)在的一切,抱有一顆感恩的心。熱愛(ài)編程,尊重代碼,相信每一段代碼都有生命,每一段注釋都有故事,盡心盡力做最好的程序員。 |
|
|