蛇年談程式設計師發展之路

紫鳳發表於2013-02-21

1.(2-3年)基礎素質

畢業頭2-3年,是培養基礎素質的時候,是把學校學到的理論知識,應用在實踐過程中的時候。

1.1 知識面

工作中用到的知識,和學校裡學習的知識,往往不大相同,去接觸實際用到的技術,解決方案,設計模式,努力擴充套件自己的眼界,是這個階段的主要任務。做web開發的,會慢慢得接觸到html,css,js等等知識,做後臺的,接觸到php,java,linux,執行緒,效能瓶頸等等各類。這個階段接觸的東西比較多,比較雜,同時年紀輕也是學習能力最強的時候。

1.2 解決問題的能力

書上有的東西,不管多難,只要你肯花時間,總歸學得來。比較難的是書上沒寫的東西,需要你自己思考,推理的東西。這些歸結到一起,就是你解決問題的能力。這個得通過師傅教,自己總結經驗,一步一步的掌握到精華。網際網路上有很多專業論壇,網站,會討論一些程式設計師遇到的問題,參加這些論壇,參加進討論,會有很大進步。

1.3 健康心態

心態健康尤其重要,有很多時候,時間緊,任務重,問題多多,間或有些不合理的安排,會導致人心存怨氣,挫傷積極性,要慢慢培養自己堅強的心態,不管遇到什麼問題,不拋棄,不放棄,迎難而上,抱著遇神殺神,遇佛殺佛的念頭,保持信心,問題終究會解決的,事情終究會告一段落的。

畢業3年以後,你知識面也夠廣了,也遇到了不少的問題,都慢慢解決了,心態上也成熟了,不怕壓力,不怕困難了,那這三年就不白乾,很充實,很有意義。

enter image description here    enter image description here    enter image description here     enter image description here

《遠大前程》   《卓越程式設計師密碼》  《程式設計師的職業素養》  《高效程式設計師的45個習慣》

2.(5-6年)專業素質

工作到第5,第6年,原來一起畢業的同學們,差異就開始顯示出來了。有的人喜歡鑽研知識,有的人傾向於走向管理,我們們先說喜歡研究專業知識的人,該是有所成績的時候。在某些專業領域,該有相當造詣了。以下是幾個分類:

2.1 前端

前端是一個概念很大的範疇,包括桌面程式,web程式等等,主要是指跟UI有關的,跟產品長什麼樣子有關的,針對web來說,成為 html,css,js的專家,熟悉各種js外掛,能做出各種效果。

2.2 後端

後端包含的東西也很廣,包括伺服器,各種應用平臺,各類作業系統,總的來說,這部分不關心介面長什麼樣子,主要關心資料存取如何更好,更快,更智慧。學Java的,熟悉各種J2EE元件,熟悉各種框架,平臺,瞭解如何處理大併發的請求等等,這些都是後端。

2.3 資料庫

資料庫是一門獨立的學問,入門容易,深入進去很難,越大的公司,越重視資料庫,能夠掌握各種效能調優,掌握分散式資料儲存,都是一很大的學問,能把這個掌握透了,也是很大的專家。

2.4 移動終端

移動裝置方興未艾,未來會成為主流趨勢,掌握在移動開發的關鍵技術,也是很吃香的,熟悉android,ios等各類系統,熟悉各類終端的效能,優缺點,也是一塊很大的蛋糕,要花不少時間研究。

2.5 雲端計算

人會越來越懶,事情會越來越多交給電腦去處理,所有負責處理事情的電腦會連成一片雲,這也是未來發展趨勢,掌握雲端計算的知識,會是很佔先機的。

2.6 產品設計

有很多程式設計師,做了足夠多的產品之後,對於如何拿技術實現不大感興趣了,他們更感興趣的是,做什麼樣的產品才能更受歡迎,比如說puja乾的活,就是這個。走產品設計,也是一條路。

2.7 其他

計算機技術早已經開枝散葉,發展出無數的小系統,這遠不是一篇文章所能描述的,就程式設計師來說,做防毒的,做遊戲的,做金融的,做哪一行也能出狀元。

總的來說,在第6年的時候,如果你喜歡鑽研技術,那麼你應該在某一領域,有了很高的造詣,對某些技術,非常熟悉了。

enter image description here enter image description here enter image description here enter image description here enter image description here

HTTP權威指南》《30天自制作業系統》《JavaScript高階程式設計》《響應式Web設計》《移動應用UI設計模式

3.(5-6年)管理素質

工作到第5,第6年,原來一起畢業的同學們,差異就開始顯示出來了。有的人喜歡鑽研知識,有的人傾向於走向管理。傾向管理的童鞋,在以下幾個領域的能力會凸顯出來。

3.1 知人善任

喜歡鑽研技術的人,目光往往侷限在自己那一個小圈子,不願意去傾聽別人,瞭解別人,有做管理的潛力的人,剛剛相反,他總是能考慮別人的感受,總是去主動了解別人,什麼人有什麼脾氣,適合幹什麼事,怎麼和他相處,他一直在研究,久而久之,這人的領袖能力就展示出來,你讓他安排個什麼事情,他總是把合適的人,放在合適的位置。

知人善任,是做領導的第一級別能力。

3.2 善於納諫

能做到知人善任,這個領導已經算是合格了,但是也僅在入門階段。善於納諫,才是更高階的水準。

不管你是多聰明的人,你掌握的知識是有限的,手下的人,比你更接觸實際,他們的反饋比你腦袋裡想的,可能更接近實際。發揮大家的聰明才智,才是最好的辦法。這個時候,你一定要放低身價,不要剛愎自用。

有很多管理者,止步於第一階段,無法再升,原因之一就是他自認為聰明,放不下面子,總覺得我是領導,難道還不如你們小兵聰明嗎,不肯民主決策,凡事獨斷而行,慢慢就會越來越脫離實際。

3.3 協調能力

如果你能夠知人善任,同時又肯聽大家的意見,那麼你已經有了比較好的領導能力,但是想要再提高,還要掌握一個能力,協調能力。

一般來說,凡事有能力的人,都有小性子,典型的一個特徵就是不大聽話。這乃是正常現象,試想,如果一個人事事聽命於人,事事模仿別人,自己哪裡還有獨立思考的空間?又怎麼能聰明起來?

聰明人自負,愚笨人忠直,這是一般規律。 能讓自負的聰明人不太過出格,讓忠誠的笨人不太受冷落,這是領導者要乾的事情。

3.4 決斷能力

決斷能力是領導者的最後一道門坎,平庸和英明的分水嶺,就在這裡。

為什麼決斷能力如此重要呢?

因為你手下十個人,就有十張嘴,就有十個想法,有的人說往東,有的人說往西,有的人喜歡吃辣,有的人喜歡吃雞,有小人,有君子,有忠臣,有奸臣,聽誰的,不聽誰的,領導者需要下決定,是非成敗,最終都要你一人負責。

嚴格來說,做管理,比鑽研技術要求要更高,因為你牽涉到手下的一批人。一將無能,累死三軍,所以做管理的人,學習要更加勤懇,態度要更加恭謹,幹程式設計師到第6年上,如果你僥倖做了管理者,需牢記此理。

   enter image description here       enter image description here       enter image description here

《量化:大資料時代的企業管理》  《不平凡的一年》     《軟體管理沉思錄》

4.(10-15年)總結

在程式設計師這條路上走到第10-15年,不論你選的是專業路線,還是管理路線,都應該熟能生巧了,辦事應該像庖丁解牛一樣順暢。作為在這行工作了15年的老牛,後輩們見了都要尊稱一聲老前輩。

選擇專業的,應該是在專業技術方面,有了相當造詣,認識了很多在這一行有名望有權威的專家,光講各種成功失敗的故事,就能講一籮筐了。

選擇管理的,應該是對於各種人際關係相當在行,編織了很大的交際網路,有一批忠誠於你,崇拜你的粉絲。

NOTE:以上說的都是理想情況下的發展路線,在現實生活中,不如意者十有八九。這就好比在民國時期就開始打仗,一直打到解放戰爭的老兵,雖然有少數幸運兒依靠天縱之資再加上連串的機遇,從小兵打成將軍,但是也有不少老兵依然在扛槍。這些浴血奮戰了二十多年的老兵,依然值得尊敬,能夠經歷這麼多仗而存活下來,堪稱老兵油子,必然積累了大量的實戰經驗,這些老兵,依然是一筆寶貴財富。

     enter image description here       enter image description here       enter image description here

     《黑客與畫家》         《程式設計人生》      《程式設計大師訪談錄》

5. 我們團隊的規劃

    enter image description here            enter image description here

《佈道之道:引領團隊擁抱技術創新》  《例項化需求:團隊如何交付正確的軟體》

針對我們團隊(志虎,默涵,慶飛,沙沙,孫維)來說,結合我們手裡的專案,要掌握的知識,我把它分類兩類:

5.1要勝任工作需要掌握的知識

JQuery

1.會使用各類選擇器

2.瞭解jquery事件的原理

3.會做常用的效果

4.會使用jquery ajax

5.會寫jquery 外掛

  enter image description here

《jQuery基礎教程(第3版)》

Css

1.會使用css的選擇器

2.理解css的框模型

3.理解css定位

4.會使用firebug除錯css

  enter image description here

《精彩絕倫的CSS》

php

1.會使用php 陣列及其函式。

2.會使用php include

3.會使用php 檔案上傳函式

4.理解php exception

5.會使用php date相關函式

6.會使用php物件導向的功能

7.會使用php string各相關函式

  enter image description here

《PHP基礎教程(第4版)》

Linux

1.瞭解常用linux系統,比如ubuntu

  1. 會使用路徑操作命令,比如 cd, pwd, ls

  2. 會使用檔案操作命令,比如 more,cat,cp

  3. 會使用檢視程式以及殺死程式命令

      enter image description here

《Linux命令列與Shell指令碼程式設計大全(第2版)》

Mysql

1.會寫各類帶條件查詢語句

2.會寫多表聯查sql

3.會寫各類insert,update語句

4.理解資料庫index機制

   enter image description here

《MySQL技術內幕(第4版)》

Svn

1.會 svn update

2.會 check in, check out

3.會 merge

4.會revert

5.會 svn compare

Smarty

1.理解mvc原理

2.熟悉smarty基礎語法(註釋,函式,屬性)

3.會使用變數調解器(modifiers)

瞭解公司產品製作流程

每個公司的產品製作流程,都是不一樣的。

1.瞭解elgg cv的整體結構

2.瞭解dragon框架的整體結構

3.瞭解從pm出發到研發到測試到客戶支援的整體流程

4.瞭解開發程式碼的流程

5.瞭解 Fix bug的流程

5.2想要在公司裡脫穎而出需要掌握的知識

想要在公司200來人裡面,能夠讓人聽到你的聲音,需要紮實下一翻功夫,下面的知識,必須要能掌握好:

1.出色的溝通技巧

2.優秀的英語表達

3.對某一個領域專家級別的造詣,比如說你對CSS相當懂,或者你對cassandra相當懂。

4.熱心幫助別人,你對別人幫助越多,回饋越多。幫助不限於針對本部門的同事,也可幫助QA,幫助市場部,幫助支援部門

5.多參與各種討論,只要有時間,就參與進各種討論之中,貢獻自己的思想,學習別人的解決方案。

本文選自:qinzhihu的專欄  文章中的圖書是小編新增的,看文章的時候順道看看書(*^__^*)

相關文章