我在Facebook 的這三年
本周開始是我在Facebook的第四個年頭。我的經驗在這里發生了巨大的變化:退學后我就來到了這里,在這里遇到了前所未有的挑戰。單從這方面講,我經歷和遇到的挑戰比這里4/5的人都要多。所以,我想分享一些我的認識和見解,希望其他一些程序員能感覺這有些用處。
作 為一個軟件工程師,你的工作是開發出能解決問題的東西。初次進入公司時,你會被分配一些小任務,你可以解決它們。隨著專業技能的增加,問題的規模越大越 大。避免這種問題規模變大或問題難度增加的做法是錯誤的。程序是你用來解決問題的工具。如果你園丁,你會去種花和除草。提高你的能力發揮并不是種更多的花 和除更多的草,你的愿望應該是能更快更高效,成為更有經驗的園丁。你真正應該做的是,抬起頭來,從整體看這個花園,思考如何布局,整體規劃這個花園。
為 了能更有效的提高能了,你需要有效的交流渠道。交流渠道代表著一個人在這個世界上活動的能力。作為一個程序員,在你的生活環境里擁有順暢的交流渠道,這對 你全面發掘遇到的問題的邊界和最有效利用問題解決方案起著至關重要的作用。這既包括你的代碼上的溝通,也包括在公司里和他人的交流。對于你參與的代碼庫, 你要快速的了解清楚各個組件是如何組合的。以這些知識為基礎,你不能只去修復被分配的bug問題,而應該去考慮如何阻止這類問題再次發生。你不能只去想著 實現一個新功能,而應該考慮如何在這些老代碼和新代碼上提煉出一個公用組件,讓它們共享80%的代碼。這需要付出努力,但從長期看會有巨大的回報。
站 在更高層面看問題,將整個公司視為己有。不要允許你的同事不做到最好。理解各種決策的權衡以及原因;理解一些臨時方案的決定和這樣做的必要性,但如果你感 覺不對,一定不要在提出你的觀點以求獲取更好方案前就接受。這是你的公司(你的花園),如果你允許有人犁錯了方向,整個花園規劃將會變成一場災難。養成勇 于change的習慣,并有信心這些變化將向好的方向發展。
人很容易陷入認為自己無法做到無所不知的漩渦,認為周圍的人都比你聰明、有經 驗,害怕自己說的不對,被對方看不起。事情其實不是這樣。當你有了一個想法,和你的團隊分享——即使你不能確定你的想法是否正確。錯誤的認識往往是通往正 確認識的里程碑,因為它能幫助你界定問題的真實邊界,還因為你能通過的對錯誤想法的反復推演而獲得正確的想法。
你并不能立即很明顯的發現跟 公司內的其他團隊中的人保持交流、維持關系有多重要。隨機找一個你幾個月未一起工作的人,和他進行簡短的聊天。這能給你遇到的問題帶來新穎的思路,也能讓 你發現其它團隊已有的解決方案,你可以拿來用。團隊之間的信息交流能讓你對公司有更全面的認識,而和另一個項目里的基層程序員交談能激發新思想,新方案, 和新優勢整合的機會。
我也是剛剛總結出這些經驗。我希望這些能給你啟發,促你進步,把它據為己有,指引你的團隊走向正確的方向。祝你在Facebook工作的開心;我知道我是的。
原文鏈接:https://www.facebook.com/ry/posts/10151494199879822
譯文鏈接:http://www.aqee.net/this-week-marks-the-beginning-of-my-4th/