成功的職業生涯通常是指規定時間內,發布高質量且被認可的工作。這對于IT開發人員也沒什么不同。成功的開發人員能在預估范圍內編寫出高質量的代碼,并通過發布偉大的產品讓利益相關者滿意。
那么開發人員如何才能做到這一點呢?有些人認為開發人員是魔術師,按幾個按鈕就能讓計算機變魔法。現實情況則要復雜得多:我們得遵循一定的原則來編寫可靠的代碼,測試我們的工作,并不斷更新到最新的技術。
1、編寫可讀性強的代碼
將從與人直覺相反的這一方面開始。我已經數不清我碰到過多少人認為編寫一些不可思議的、復雜的代碼可以為他們提供工作的保障。“如果除了我其他人都不知道薪資報告模塊是如何工作的話,上面就肯定不敢炒我魷魚!”
當然,這在理論上可能是對的(盡管有太多的人在說這句話的時候往往高估了自己)。雖然企業老板可能不會炒掉你,但他們也不會支付你很多薪水。如果公司不能在薪資報告模塊上失去你,那么自然而然也不會晉升你。它不會把你放到另一個更受人矚目的項目上。這樣做只會讓你牢固地待在當前位置,就像死水一樣波瀾不驚。
2、推理不快樂路徑
在編程世界中,所謂的“快樂路徑”提出了一種高度樂觀的情景。沿著快樂路徑行進,沒有出錯的地方,也沒有錯誤發生。
在編寫和測試代碼時,學會廣泛地去推理不快樂路徑的場景。如果作為開發者的你能夠因為在推理不快樂路徑方面一次成功而出名,那么你對細節的注重將為你賺到更多的酬勞。
3、證明你的抉擇
為什么你要在這里使用工廠模式?為什么你選擇那個特定的Javascript框架?如果你在回答這類問題時使用“因為這是正確方法”諸如此類的答案,那么就不會給你帶來任何好處。
這個世界在很大程度上依賴于軟件和軟件開發者的傳遞性。我們擁有經常使我們處于權威地位的專業知識,特別是在與非技術人員或不太有經驗的利益相關者打交道的時候。因此,你會發現,你經常采取的是那種大家嘗試的做法,“我說怎么做就怎么做”。
4、選擇一款強大的編輯器
即使是經驗最為豐富的程序員也需要良好編輯器的配合。他們喜歡用文本編輯器勝過IDE編輯器,因為這樣可以學到更多東西。無論什么情況,盡量使用鍵盤快捷鍵。在選擇編輯器時,認真考慮并挑選最好的(Emacs或Vim),因為它們是通用的。其次,挑選你的首選平臺最支持的。
5、了解數據結構和算法
如果你不知道什么時候應該使用快速排序、不懂辨認O(n2)程序、不會寫遞歸函數,你的工作效率將會降低,盡可能去了解底層命令(plumbing),以便能夠作出明智的決定(Web框架是怎么存儲session狀態的?Cookie到底是什么?)。
6、對項目要從一而終
盡管項目收尾階段的工作確實強度極大且較為枯燥,但仍然建議大家堅持到最后并始終抱以理想的工作熱情,而且能夠從一而終的程序員才是一位負責任、有擔當的開發者。
7、整潔的代碼勝過巧妙的代碼
要想讓其他人能夠讀懂你的代碼,盡量使用最少的代碼來完成任務。遵循DRY(Don’t repeat yourself)的原則,使用明確定義的對象和庫,將任務分解成小而簡單的代碼段。
8、潛意識是強大的工具
離開10分鐘往往就可以解決一個問題。控制編程時間,給自己一個多姿多彩的生活,勞逸結合能讓你在工作時更高效、更愉悅。當然,即便是上了年紀的程序員也知道,以最少的時間完成最高效的工作是成為10倍效率開發者的必要條件。
作為一個程序員在職業生涯中最好的一件事兒就是從電腦前站起來,去拜訪那些在某一領域有所建樹的人們。
9、推動自身和團隊進步
重視批評,以包容的態度接受批評并提升自己是非常重要的事情。沒有這個基礎,你不可能成為一個高效的開發者。一位智者曾經說過:“聰明的人善于從自己的錯誤中學習,而智慧的人善于從別人的錯誤中學習。”
10、使用在線社區和論壇
俗話說,共享的問題就是減半的問題。當你絞盡腦汁解決問題的時候,請注意不要浪費太多時間在孤軍奮戰上。很有可能你的問題,其他某個人已經經歷過了,他的經驗教訓會對你產生極大的幫助。訪問在線社區,例如Stackoverflow或TechNet尋求提示和技巧。
11、充分利用工具和實用程序
有大量的軟件可用于幫助提升開發人員的構建速度,有很多其他的工具和第三方插件可幫助開發人員做的更好。
12、通過注釋來寫邏輯
說到編碼,我有堅持很多原則和想法。其中一個就是,代碼中95%都是邏輯。另一個就是從人類語言到編程語言,邏輯并沒有改變。這也就是意味著,如果你能在代碼中寫出來,也就可以用英語或者其他語言寫下來。
13、良好的時間管理
遲到對于任何一家公司都是個頭痛的問題。作為一個程序員,有時候為了完成任務常常不得不熬夜,從而導致第二天上班就遲到了。但是我們忽略了這一點,我們的工作時間至關重要,因為在這段時間里我們要和客戶同步,也要與團隊其他成員一齊協作。
14、深入理解客戶需求
僅僅了解單一用戶的表面意思是遠遠不夠的。一個偉大的程序員應該具備能把繁瑣的要求理解并分解成項目的技術任務或子任務的能力,并且最后拿到的成果應精確滿足客戶的需求。
另外,天津光標科技認為還有一點就是通過自身的學習來獲取一大進步。
我們擁有國內頂級的設計、技術團隊和多年互聯網軟件開發經驗。