成為明星程序員的10個提示
英文原文:10 steps to becoming the developer everyone wants
Andrew C. Oliver 是 Open Software Integrators 公司的總裁與創始人,公司主要與一些開源公司合作,特別是那些初創公司,致力于為客戶提供課程開發、培訓、咨詢與支持等服務。合作伙伴可以將精力放在核心 的業務領域上,公司則為其提供專業的服務。近日,Andrew 撰文談到了對于程序開發者來說,通過什么樣的途徑可以成為一個明星程序員,并給出了非常中肯的10 條建議。
很多開發者會認為要想成為一個明星程序員所需要做的事情一定都是與編程技能相關的,不過這種想法卻是完全錯誤的!優秀的代碼是很好,但要想得到 更好的工作,獲得更高的報酬則需要讓更多的人知道你是誰。換句話說,你需要推銷自己,下面是我根據這些年的工作經驗所得出的成為明星程序員的 10 個提示。
1. 撰寫博客
搭一個博客,一個月寫幾篇文章。進行真正的研究,確保你所寫的不是那種非常簡單的東西。更嚴肅地說,就是要學會怎么寫文章。根據學校的英語老師 教你的方式來做:創建一個大綱、敘述、檢查語法和拼音。接下來,簡化剛才所寫的東西,要做到讓讀你文章的人快速過一遍就能迅速掌握文章的要點。現在的互聯 網可是要做到精益求精才行。
2. 開源
不要相信那些關于開源的謊話。你們當中的那些年輕人可能已經記不起來過去有的開發者會失業的那種情況了,不過即便在經濟不景氣的時候,我創建的 開源項目的所有開發者依然不會被裁員。請確保你所開發的開源代碼能夠反映出你的工作。我希望使用最簡單的解決方案來解決難題,不過我面試了很多開發者,他 們都將簡單的問題給搞復雜了。無論你相信與否,這么做是有市場的,不過請確保你所編寫的代碼能夠反映出你所在的市場。
3. 不是 6 個月,更不是 10 年
不要每 6 個月就換一次工作。嚴肅地說,一個公司的很多人都會出現離職的情況,同時也會有新人加入進來。換句話說,不要在同一個地方,做相同的事情達到 10 年以上,否則你會與市場絕緣并形成慣性的。舉個例子,假如你在 IBM 工作,那么要想保持自身的價值,你就不能僅僅滿足于按照 IBM 的方式,使用 IBM 的技術棧來編寫代碼。我從來沒有雇傭過在 IBM 等類似的公司中工作過 2 年以上的人。他們給我的印象常常是面試中表現很不錯,不過在實際的編程中卻敗下陣來。
4. 放眼新技術,著眼實際情況
尤其是一些年輕的開發者們都喜歡使用新技術。Ruby 是我最喜歡的一種編程語言,不過平均來說,Ruby 帶給我的回報是不如 Java 的,Ruby 的市場也比較小。事實也并非總是如此,Scala 看起來勢頭很猛,不過不要忘記它的市場占有率,其實還是很小的。另一方面,也不要長久以來一直使用同樣的技術,比如那些 COBOL 或是 PowerBuilder 開發者們。
5. 編寫自己的文檔
當我參與開發一個項目時,經常會被拉出去參加會議,原因就是他們看了我編寫的文檔或是演示,而且能夠理解,這種情況出現太多次了。我總是一張總 覽圖開始,后面則是對其各種細節的闡述。問題是:對于一個非常忙碌的人來說該知道哪些內容呢?大多數經理們想要知道什么?請按照這個思路編寫文檔。
6. 簡潔是靈魂
對于管理來說,那些知道自己在說什么的人常常會給出更簡潔的答案。如果回答很長且很復雜,那就意味著回答的人并不知道答案是什么。此外,聲調通 常與主題的重要性成反比。如果有壞消息來了,那么大家走進辦公室時就會輕手輕腳,關上門,然后竊竊私語。請保證你知道自己說的是什么,知道如何總結,如何 描述細節,不過請不要事無巨細地進行方方面面的介紹。請確保你的團隊成員都經過了深思熟慮,然后清晰地闡明你的哪些觀點要好于其他人的。
7. 當眾發言
知道如何做演講,學習如何在公眾場合發言。研究一個主題,然后讓自己成為這個主題的專家。如果能有一些幽默感的話,在公眾場合的演講效果就會更 佳。要想掌握這種技能,你需要花費很多的時間與精力,還要忍受住別人的嘲笑,不過對于工程師來說,如果能用英語向管理者解釋清楚問題,同時能就某個主題做 出專業的演講,那么他的薪資一般來說要比那些不具備這種能力的開發者高一些。
8. 現實一些
你很喜歡 Erlang,不過 Erlang 的市場卻沒有那么大。你應該了解多種語言,還應該知道那些“新”的話題,不過請不要說出這種不成熟的話“如果不是 Erlang,那我就不打算寫代碼了”,除非你真正理解了業務問題。這么做也許會讓你成為一個狹窄領域的專家,不過即便這樣也是有代價的,如果你所掌握的技能過時了,結果就不好玩了。當然了,NoSQL 更適合于你自己的一些小項目,不過公司卻不會在那種一次性的系統中對其進行投入,這種情況下 RDBMS 就很適合了。
9. 解決疑難問題,了解相關工具
花點時間學些大部分人都不了解的工具。你知道哪些很少有人知道/使用/理解的工具,讓你比周圍的人更具效率呢?比如說,Aspect4j 并不適合于每一個人,不過它卻適合我。我編寫了一些 .class 文件操作,讓其在 Tomcat 下正常運行,從而替換掉 WebSphere,我修復了私有軟件的內存泄漏問題。這每一次經歷都讓我超過了其他人,因為我使用了其他人很少知道的工具來解決重要的難題,而其他人則 還在等待著廠商的解決方案。當然還有其他的,不過這些簡單的工具卻能夠解決復雜的問題,讓你超越其他開發者。
10. 保持謙卑
很少有開發者具備謙卑這種特質。有時,這意味著你需要做一些很具體的工作。極客的聲望來去匆匆,不過請記住,是你的行動才讓你收獲這種聲望的。下一周可能一切都煙消云散了。換句話說,“你并沒有什么特殊的”。
<span id="shareA4" class="fl"> </span>