助力程式設計師成功的幾個好習慣

2017-03-31    分類:程式設計師人生、首頁精華0人評論發表於2017-03-31

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

老實說,如果你google搜尋“程式設計師的好習慣”這方面的內容,那麼就會有很多大同小異的文章映入你的眼簾。

但是今天我想從一個略有不同的角度來探討這個主題。不是關於如何更擅長程式設計,而是如何使程式設計師更有市場競爭力。

不要曲解我上面的意思。更擅長程式設計肯定能讓程式設計師賺更多的錢。但這方面的提高可能最終會受到邊際報酬遞減的影響。我今天要談論的一些實踐方法,在程式設計師要求加薪或尋求新工作的時候,搞不好會讓收益產生巨大的爆炸。

編寫可讀性強的程式碼

我將從與人直覺相反的這一方面開始。我已經數不清我碰到過多少人認為編寫一些不可思議的、複雜的程式碼可以為他們提供工作的保障。“如果除了我其他人都不知道薪資報告模組是如何工作的話,上面就肯定不敢炒我魷魚!”

當然,這在理論上可能是對的(儘管有太多的人在說這句話的時候往往高估了自己)。雖然企業老闆可能不會炒掉你,但他們也不會支付你很多薪水。如果公司不能在薪資報告模組上失去你,那麼自然而然也不會晉升你。它不會把你放到另一個更受人矚目的專案上。這樣做只會讓你牢固地待在當前位置,就像死水一樣波瀾不驚。

而且,不要自欺欺人地以為這也可以測試市場反應。企業總是希望程式設計師能夠編寫乾淨、可維護的程式碼。他們需要刷掉不合格的人以滿足業務需求。如果你的簡歷主要特點是“精通尋租行為”,那麼你就不會有很多選擇,因為在一次又一次的晉升考驗中,你的老闆總是會略過你。

不要走那條錯誤的路。與之相反,你需要編寫能夠使其他人受益的程式碼,並讓業務靈活起來,無論是在專案人員配置上還是在對程式碼進行更改的時候。

推理不快樂路徑

在程式設計世界中,所謂的“快樂路徑”提出了一種高度樂觀的情景。沿著快樂路徑行進,沒有出錯的地方,也沒有錯誤發生。

很多時候,程式設計師在程式設計中犯錯誤卻反而發現了快樂路徑。比如說,他們實現一個使用者登入頁面,當使用者鍵入正確的使用者名稱和密碼時,登入成功。但是,如果她輸入錯誤的話,app就會崩潰。但如果她有一個沒填的話,那麼app就會將其作為管理員登入。哇哦。

不能說明不快樂路徑的場景是程式設計師面臨的一個常見陷阱。事實上,之所以會產生這樣的思維是因為我們在軟體開發的過程中嵌入了自己的假設。於是就算是寫程式碼的同一個人也無法來測試程式碼。

在編寫和測試程式碼時,學會廣泛地去推理不快樂路徑的場景。如果作為開發者的你能夠因為在推理不快樂路徑方面一次成功而出名,那麼你對細節的注重將為你賺到更多的酬勞。

建立自動測試

也許你一直堅持反對軟體行業自動化測試的安裝驗收。也許你甚至能編寫比那些TDD和ATDD程式設計師更好的程式碼。在某種意義上,兩者之間真的沒有關係。

不要誤會我。我是自動測試的瘋狂支持者,因為它功用巨大並且可以改進程式碼庫。我不但自己實踐TDD,還會去教別人這樣去做。

但是,大家對於職業生涯中關於功用是否應該排在錢包後面的討論,各執一詞。抵制者還是支持者是否正確變得無關緊要。企業越來越多地要求這種技能出現在求職者的簡歷上,但卻沒有一家公司的職位說明上會寫“絕不能編寫單元測試”。學會寫自動化測試,然後見證工作前景的蓬勃發展。

證明你的抉擇

為什麼你要在這裡使用工廠模式?為什麼你選擇那個特定的Javascript框架?如果你在回答這類問題時使用“因為這是正確方法”諸如此類的答案,那麼就不會給你帶來任何好處。

這個世界在很大程度上依賴於軟體和軟體開發者的傳遞性。我們擁有經常使我們處於權威地位的專業知識,特別是在與非技術人員或不太有經驗的利益相關者打交道的時候。因此,你會發現,你經常採取的是那種大家嘗試的做法,“我說怎麼做就怎麼做”。

抵制這樣做的衝動。至少,要解釋你的推理。使用類比和其他方式來幫助人們理解,即使他們缺乏你擁有的技術經驗。最重要的是,學習從經驗出發去做案例,同時借鑑研究、實驗資料或專家意見。職業生涯需要在技術的氛圍中才能發展,所以那些學習將程式設計決策證明也是商業決策的人會發現他們佔據了領導地位。

瞭解你的程式碼如何讓別人賺錢

說到業務對你自己的錢包的重要性,那麼你能描述你寫的某一行給定程式碼是如何幫助業務嗎?你剛新增的用於停止SQL隱碼攻擊的程式碼行——是幫助你避免砸自己的招牌嗎?避免被訴訟嗎?如果它實際上並不能提供任何幫助,那怎麼辦?

如果有人付錢讓你寫軟體,那麼你的輸出結果就應該產出經濟效益。學習並瞭解這個利益關係。發展向任何人解答這方面內容的能力。

對最新的客戶端技術或在雲中進行加速的能力感到興奮的開發人員比比皆是。對這些東西感到興奮,並且瞭解如何使用這些能力來賺錢的開發者就少見的多了。

如果你能針對產品特徵好好培養對業務動機的理解,那麼你就能做得更好。你會找到既能節省時間又同樣能實現業務目標的替代方法。或者,當有一個產品特徵證明不可能實現時,你可以提出能降低一部分成本的建議。

企業(特別是真正支付薪水的大boss)喜歡這種軟體人的思維。這將意味著你可以晉升,提供諮詢服務以及擔任領導角色。

對職業的思考

正如我前面提到的,擅長程式設計代表了職業生涯的其中一個方面,並且是一個重要的方面。建議大家多考慮許多其他的方面,並且有目的地去發展和培養那些習慣。在你自己的時間裡,你應該通過一切手段,愛上這個職業。當然還要確保你可以為他人和為自己賺到錢。

譯文連結:http://www.codeceo.com/article/habits-pay-off-for-programmer.html
英文原文:Habits That Pay Off for Programmers
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章