開發 7 年,我學到了什么?

米米狗· 2019-05-20
本文來自 OSCHINA 社區 ,作者 米米狗

相信每位開發者在自己開發的過程中,都會反思一些問題,比如怎樣提高編程能力、如何保持心態不砍產品經理、996 之后怎樣恢復精力……最近開發者 Tomasz ?akomy 將他 7 年的開發生涯中學習到的一些經驗分享了出來,這里推薦給你,希望有所啟發。

Tomasz 講到了以下 6 個要點:

編程中最重要的語言

對于中國開發者來說,這個問題的答案多半是“英語”,然而 Tomasz 卻說:是英語,或者西班牙語、中文、波蘭語,或者其它任何你在工作中與他人交流所用的語言。

It's English.Or Spanish.Or Chinese.Or Polish.Or whatever you use to communicate with other people at work.

作者指出“與人交談比與機器交談更重要”。編程是一項團隊運動,雖然存在極少數案例,個人可以從零開發出很出色的產品,但是在絕大多數情況下,編程工作需要一個團隊。

溝通技巧可以決定項目的成敗,甚至 NASA 也因為這個問題而困擾。項目想要獲得成功,整體的專業技能比純技術技能更為重要,舉個例子,如果你聘用了世界上最好的五位數據庫專家,但是他們之間拒絕交流,沒有協同工作,那最后交付給你的可能是 MySQL、Aurora 與 MongoDB 的五個不同實例,那又有什么意義?

深入了解你正在開發什么?為什么開發它?

大多數人在有目標感時會更開心,這也適用于工作。作為軟件開發人員,你的目標不是用 JavaScript 實現 JIRA,或者用 C# 重寫 Trello,你的目標應該是解決代碼問題。

如果你對正在開發或者維護的系統有深入的了解,那么就可以在純技術之外做出決策。這個功能是必要的嗎?它解決了什么問題?我們能以其它方式解決這個問題嗎?這個問題的優先級這么高合理嗎?

這種思路有時被稱為“業務上下文”,但如果你想做好自己的工作,你不僅應該了解這些上下文,還要能夠塑造和影響它。這不是說你必須在組織中擁有某個高級職位才能這么去做,你至少要先去了解這些內容。

代碼審查

不要背地里審查別人的代碼,并且公開指出其中的問題,你在初級開發者的代碼 PR 下以不好聽的言論挑出了一些問題,這樣并不能證明你有多厲害,相反,這只是說明你不是一個友善的人。 

但是如果真的發現別人實現的功能完全無效,那么怎么辦呢?合適的做法是私下去聯系代碼的編寫者,與他們交流,找出他們為什么會以這樣的方式實現該功能。

大多數人都不會想著說要寫出不好的代碼,如果他們的代碼你覺得不行,那可能是他們在處理一些你沒注意到的限制問題;或者他們確實編程能力還不夠強,那這個時候就是你展現實力,幫助他們解決問題的時候了。

有些事情會出錯,做好準備

“任何可能出錯的事最終都會出錯”,墨菲定律很可怕,你要始終假設在設計系統時可能會出現問題。

如果你正在構建登錄表單,需要假設用戶會將整本書復制并粘貼到密碼字段中;如果你正在寫一個 WYSIWYG(所見即所得)窗口,要假設有人會試圖破壞它,并且他們很可能會成功;如果你有一個數據庫,假設它會在某個時候出現故障;如果你還沒有測試從 backup 中恢復數據庫,那么這就不是一個 backup;如果你正在觀眾面前進行現場演示,需要確保 demo 在線上或者離線等情況下都能正常展示。

不要害怕說“我不知道”

剛開始當程序員的時候,可能你會害怕別人發現你不懂某一個問題,所以別人問你而你真的不懂的時候,你不會直接回答說你不知道,并且會給出一些不能確定的答案,但是本身沒有底氣,所以會害怕別人知道真相后覺得你是個騙子。

但是作為開發者幾年之后,你可能會覺得如果一個東西你還不知道,那可能它是無關緊要的,或者這是你需要現在去學習的另一項新技術。終身學習不是軟件開發的流行語,它是現實。

保持這樣的心態,這個時候,當別人問了一個你不懂的問題時,你就可以大膽地說:我不知道,我還沒有試過,我先看看,然后回復你。

分享學習成果

當你從“我不知道”的狀態中學習到某項新技術的時候,這時候可以去與他人分享你的學習成果。比如寫自己的博客、錄制視頻教程、在公司的分享活動中演講,或者只是簡單地把知識點告訴另一個人。

二次教學是考驗你是否真正理解你所學的東西的極其有效的手段,而且一般來說,即使是最資深的專家也可以從初學者那里學習到新東西,這樣對于你和其他人來說是雙贏。

作為開發者,你工作了幾年?在工作過程中學習到了什么呢?

文章轉載自 OSCHINA 社區 [//www.oschina.net]
本文標題:開發 7 年,我學到了什么?
付款协议书范本大全 苹果版飞艇计划 足球即时比007 11选5前2直选技巧 捕鱼达人2老版本下载 时时彩大小单双稳赚法计划 抢庄牌九官网 pk10职业刷流水玩法 21点手机游戏 时时彩定位胆稳赚技巧和经验 欢乐生肖计划免费版 新时时彩一星稳赚方案 重庆时时彩个位经验 黑马收费计划怎么样 360江西时时杀号 3个骰子怎么玩大小