嘗試十種作法 讓你離牛逼程序猿更進一步
很多開發者會認為要想成為一個牛逼程序員所需要做的事情一定都是與編程技能相關的,不過這種想法卻是完全錯誤的!優秀的代碼是很好,但要想得到更好的工作,獲得更高的報酬則需要讓更多的人知道你是誰。換句話說,你需要做的還有您想不到的,成為牛逼程序員的10個姿勢如下:
(此文來自Andrew C. Oliver,是Open Software Integrators公司的總裁與創始人,認不認識沒關系,總之他很牛逼)
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. 保持謙卑
很少有開發者具備謙卑這種特質。有時,這意味著你需要做一些很具體的工作。極客的聲望來去匆匆,不過請記住,是你的行動才讓你收獲這種聲望的。下一周可能一切都煙消云散了。換句話說,“你并沒有什么特殊的”。