在互聯(lián)網(wǎng)公司叶摄,后臺的可擴展性,高可用性例书,靈活性,安全性是公司的一個重要成功因素牲平。對于后臺程序員的綜合素質(zhì)要求自然就要比客戶端開發(fā)人員更高。
基本能力
- 代碼書寫規(guī)范域滥,有代碼潔癖[1]纵柿。
- 永遠相信是人寫的代碼就會有bug蜈抓,測試充分。
- 對于自身的代碼要求高昂儒,重構(gòu)的意愿強烈沟使。
- 至少對一種程序語言的精通。
- 這里的精通并不是用了半年就可以在簡歷上書寫對某某語言的"精通"渊跋,而是徹底了解語言的所有特性腊嗡,善于利用程序語言帶來的便利,規(guī)避程序語言的不足刹枉。
- 對基于語言特性的設(shè)計模式順手拈來,比如 Java的設(shè)計模式[2]屈呕。
- 善用變量名和過程名表示注釋微宝,名詞前后保持一致,不會剛用
people
表示用戶虎眨,之后又用user
表示蟋软。 - 至少掌握一門外語,閱讀能力過關(guān)嗽桩,閱讀原版文檔和幫助文件沒有障礙岳守。
- 熟悉計算機組成原理,緩存碌冶,內(nèi)存湿痢,硬盤,網(wǎng)絡(luò)的訪問延遲數(shù)量級熟知在心扑庞。
- 熟悉操作系統(tǒng)原理譬重,對于并發(fā),多線程的了解罐氨,并不僅限于程序語言的實現(xiàn)層面
- 靈活使用至少1種腳本語言臀规,比如shell,python
- 能承受壓力下工作栅隐,對于半夜解決問題和連續(xù)加班無怨言塔嬉。
進階能力
- 對于書寫的代碼消耗空間和時間有精準的認識和苛求
- 實現(xiàn)問題所寫的代碼負載能力是當前系統(tǒng)規(guī)模的10倍以上,而不是只求簡單解決問題
- 對當前系統(tǒng)要求高租悄,不斷尋找當前系統(tǒng)中的弊病并能動手解決
- 可以迅速找到次優(yōu)解決方案和最佳解決方案解決問題谨究,能根據(jù)不同的場景進行靈活選擇
- 求知旺盛,不斷挑戰(zhàn)自己的技能實現(xiàn)泣棋,以頂級程序員的能力要求自己
- 對于安全性嗅覺敏銳
- 善于總結(jié)记盒,經(jīng)常維護自己的技術(shù)博客
- 數(shù)學能力強,喜歡研究算法[3]
高級能力
- 瘋狂的喜愛編程而不是視其為謀生手段
- 在多個開源社區(qū)貢獻代碼
- 白帽子黑客外傅,擅長攻擊和防范
- 經(jīng)常有大神般的突出行為纪吮,比如可用1天的代碼實現(xiàn)其它人1周的coding工作量
總結(jié)
認真你就贏了