新手程式設計師進技術團隊一定要做的7件事,趕快學起來!
關注「實驗樓」,每天分享一個專案教程
每一個web開發人員在職業生涯初期都會進入開發團隊。如何讓自己工作更高效,併成為團隊其他成員希望合作的人?這裡有你需要掌握的7個技能,相信以下內容對正在求職的你也有很大幫助。
正文共:2340字
預計閱讀時間:6分鐘
技能1:學習發起GitHub pull請求&程式碼審查
和獨立完成工作不同,當作為技術團隊的其中一員時,整個團隊的責任是確保專案中都是高質量、經過測試和沒有bug的程式碼。
一個好的技術團隊都會在程式碼修改前進行程式碼評審,以確保程式碼質量達到要求。這項評審工作一般是由沒有參與編寫程式碼的人來完成的,他們需要檢查提議新增的程式碼並進行逐行修改,還要尋找可能存在的問題。
在新程式碼進入主分支之前請求程式碼審查被稱為“pull請求”,好的技術團隊不會允許沒有經過pull請求的程式碼進入專案。
由於經常需要程式碼審查,GitHub提供的高階功能可以讓團隊輕鬆執行審查工作。
以下是Firehose專案的一名學生的GitHub pull請求的示例:
(點選圖片放大)
你可以看到指導老師是如何在特定程式碼行上使用內聯程式碼註釋功能來幫助學生更好地組織程式碼。
無論你是想為開源專案做貢獻還是在技術團隊中工作,你都應該具備以下技能:
建立新的pull請求,並向團隊提交程式碼更改
觀察別人的程式碼,記下你認為可能被忽略的東西
通過GitHub平臺或程式碼更改的方式迴應其他人對自己程式碼的關注
對程式碼的反饋作出迴應對你成為一個高效的開發人員至關重要。通過迴應GitHub上的反饋,你能收穫許多,成長為一個更強大的開發人員。
技能2:學會拆分問題
每個團隊成員都能使程式碼數量成倍增長,為了讓所有參與專案的人都能獲得回報,大任務可以分成許多並行處理的小任務。
舉個例子,如果你自己在做一個BlackJack遊戲,你的任務就是實現以下內容:
建立一個BlackJack遊戲
如果你有一個團隊來構建這個BlackJack遊戲,同樣的專案可以被分成許多小塊,每個成員可以同步執行。
為web應用程式建立一個登入頁面
為擁有MailChimp賬號的使用者儲存電子郵件
在程式碼中構建一副牌的代表
支援使用者登入和退出
優化移動端頁面
通過分解任務,團隊可以分步驟達成最終目標。
即使是在專業領域,大多數專案也很難全部完成,因為對現有的應用程式經常需要新增的附加功能。尚未構建的功能列表估計要花一年或更多的時間才能完成。
因為技術團隊經常處理這些工作,而且這是個長期的過程,所以需要一步一個腳印地去做。
技能3:實施測試驅動(Test-Driven)的開發
在團隊中工作,你需要擁有一個強大的測試套件,不要自己一個人完成全部的編碼工作。這是因為專案可能會積累大量的程式碼,比如10000行或者更多,並且可能會非常複雜。面對這些程式碼,對於之前沒有直接參與應用程式編碼工作的人,很難了解到每個細節。
在構建功能時編寫測試能夠避免其他團隊成員(或將來的自己)以無法預測的方式破壞應用程式 。
整個測試套件花費超過10-20分鐘的時間執行一個複雜的專案是很正常的現象。專業的web開發人員經常使用“持續整合”工具來幫助執行測試套件,這些整合工具會自動為每個pull請求進行測試。
技能4:積極溝通避免合併衝突(merge conflicts)
當兩個團隊成員試圖進行相互矛盾或衝突的變更時,就會發生合併衝突。作為一個團隊,良好的溝通可以幫助避免衝突。
這裡有一個可能導致合併衝突的場景:
Marco和你正在做同樣的專案(Firehose專案的著陸頁),此時頁面標題是:“你的軟體生涯從這裡開始”。
如果你把標題改成 “你的軟體生涯從今天開始”,而Marco改成“在這裡開始你的軟體生涯”,你們最終會出現一個合併衝突。簡而言之,你們中的其中一個將不能把程式碼更改傳送到GitHub,直到你們把這個問題解決了。
在這個例子中,如果Marco和你能更好地溝通標題的更改問題,你們完全可以避免這種合併衝突。 在很多情況下,特別是在處理複雜的專案時,出現衝突在所難免。學習如何保持冷靜並與其他團隊成員積極溝通,充分了解他們的思考過程,並解決衝突最終實現自己和團隊的目標,這些只有通過團隊共同編碼才能得到鍛鍊。
技能5:利用會議分享資訊
由於技術團隊成員之間的溝通非常重要,大多數團隊都會經常舉行會議,俗稱“stand-ups”,即“站立”會議。
在會議期間,技術團隊的成員一般會分享以下方面的資訊:
上次會議後做了什麼?
在下次會議前要完成什麼?
會議的時間為10-15分鐘,團隊中的每個人都需要在會議中分享資訊。為了加快會議的進度,成員們會把重點放在最重要的議題上。通過讓每個成員花1-2分鐘的時間談論他正在做的事情,可以讓其他團隊成員幫助發現一些潛在問題,讓該成員少走彎路。
技能6:通過結對程式設計(Pair Programming)提供建設性的反饋
有時候你在做專案時,會發現自己要處理非常複雜的問題。這個時候與另一個團隊成員一起合作是非常必要的。
與另一個隊友一起協作解決困難的編碼問題,這個過程稱為結對程式設計。在結對程式設計期間,團隊的一名成員將坐在鍵盤後面,編寫程式碼並“驅動”互動。另一個人會在他旁邊觀察編碼過程並提供實時反饋。
結對程式設計可以幫助自己提升能力。剛開始的時候新手可能會怯於在別人面前寫程式碼,因為他們會根據為根據程式碼提供反饋意見。以協作的方式指出其他人程式碼中存在的潛在問題也是一項需要學習的技能。
技能7:學會在不斷變化的環境中工作
在技術團隊中工作的最大挑戰是,你需要跳出舒適的環境,進入一個大家都在拼命寫複雜程式碼的環境,還不能讓自己在這個過程中被壓垮。
在團隊中工作,並且每天都有許多程式碼行快速變化,始終專注於你所分配的任務是很重要的。不管程式碼如何發展,你都要相信你的團隊。你需要經常更新程式碼以確保你使用的是最新程式碼。
那麼,這些技術團隊的技能將如何幫助你拿offer呢?
在技術面試過程中經常會出現關於團隊合作的問題。招聘經理對你在團隊中面臨的挑戰以及如何克服這些挑戰尤其感興趣。作為開發人員和技術團隊成員,你的答案和經歷能夠給他們一個真實、有價值的參考。
如果你被要求描述你在團隊合作中遇到過的挑戰,至少證明招聘經理對你是感興趣的。但如果你說你從未出現過任何合作上的問題,那麼評估你你的人可能會覺得你要麼沒有經驗,要麼沒說實話。
相反,你介紹了具體的合作經驗,清楚地瞭解與其他團隊成員溝通的重要性以及如何在出現問題時克服困難,這將非常打動招聘經理。
你應該將團隊專案的目標牢記於心,集中精力在小組專案中儘可能多地學習。
作者:Ken Mazaika
翻譯:sugarain
原文連結:http://blog.thefirehoseproject.com/posts/7-key-skills-youll-develop-working-in-a-technical-team/
相關文章
- 萌新必看|程式設計師在技術團隊一定要學會的7件事,趕緊學起來!程式設計師
- 技術領導力 程式設計師如何才能帶團隊 文摘 (一)程式設計師
- 新手工程師需要知道的 7 件事工程師
- 一、管理認知:程式設計師要不要做技術管理?程式設計師
- 程式設計師最大的底氣來自於自身的技術,不想被淘汰就一起來進階 Android吧!程式設計師Android
- 讓程式設計快樂起來的過程程式設計
- 中小團隊的技術負責人如何做好技術團隊建設
- [仁潤雲技術團隊]併發程式設計-(2)併發程式設計的目標程式設計
- 好程式設計師Java培訓Java程式設計師必學技術程式設計師Java
- 真的要做一輩子的程式設計師嗎?來自10年程式設計師的心聲程式設計師
- 程式設計師程式設計入門一定知道!程式設計師需要學什麼?程式設計師
- 架構師如何賦能程式設計師團隊? - esilva架構程式設計師
- 程式設計師團隊如何防止內卷化?程式設計師
- 程式設計師的技術遺產程式設計師
- 技術團隊
- [仁潤雲技術團隊]併發程式設計-(1)基本概念程式設計
- 團隊技術專家回老家了,留下的技術設計模版賊好用!
- 程式設計師如何讓自己的技術能力突飛猛進?程式設計師
- 做個清醒的程式設計師之要不要做程式設計師程式設計師
- 架構師日記-從程式碼到設計的效能最佳化指南 | 京東雲技術團隊架構
- 程式設計師是否加入創業團隊的一點思考程式設計師創業團隊
- 程式設計師技術入股的那些坑程式設計師
- Java外包程式設計師的技術出路Java程式設計師
- 警惕!這7件事情千萬不要發生你身上-來自15年程式設計師的忠告程式設計師
- 技術管理進階——如何提升團隊的合作和技術氛圍
- 技術管理進階——如何規劃團隊的技術發展方向
- 教師節快樂,全網最全程式設計學習網站彙總來了,還不趕快收藏程式設計學習網站
- 團隊技術資訊流建設
- 作為一名Java程式設計師一定要不斷關注學習最前沿的技術Java程式設計師
- 為什麼程式設計師一定要學Linux程式設計師Linux
- 來自Java程式設計師的Python新手入門小結Java程式設計師Python
- 技術總監7年總結——程式設計師進階高管的三次躍升程式設計師
- [仁潤雲技術團隊]許可權系統的設計
- 我終於統一了團隊的技術方案設計模板
- 前端程式設計師的趣事,一起來看看吧前端程式設計師
- 小團隊的技術管理
- 程式設計師、技術主管和架構師程式設計師架構
- 技術變化那麼快,程式設計師如何做到不被淘汰?程式設計師