除開五大這種要什么有什么,進去做打字也能光耀門楣的不談。如果是嫁到一個普通軟件公司,怎樣的環境能使你最快的成長呢?
首先基本的公司項目管理水平是必要的;
其次穩健而不保守的公司技術選型是必要的;
重要的,要有一個嚴苛的環境,那些古訓說的都沒錯,越是嚴苛成長越快。
然后有些助力,讓你在嚴寒中節省體力,過得好些的,就是最佳的練功環境了。
一,最復雜多變的業務規則,最難侍候的客戶
大多數人碰上這幾樣東西都是愁眉苦臉,天天抱怨,其實應該把它視為入門鍛煉的:
第一階是努力用細密的編碼迎合復雜的業務,以金牌的服務態度接受客戶的善變和每樣需求都要24小時有取的限時。充分打磨之后的眼耳口心,才是個合格的IT人。如果業務規則都清的像水,項目時時都是以我為主的,反是在做toy application,不算入了IT的門。
而如果被充分打磨之后,肯靜下心來總結,設計架構如何適應改變,流程如何做到快速更新部署,并抽時間改進的,就是第二階段的進步了。
一直做ERP,自問有足夠復雜的業務(因為不熟悉業務,有些不復雜的也變復雜了)和麻煩的客戶(不是大公司,麻煩的客戶就會很充足),但覺得在第二階段方面還是不很靜得下心。
二,最嚴格的性能要求,準確率要求,錯誤恢復要求
最好是那種每天N萬人訪問,幾億條數據。還有準確性很嚴格,分分鐘幾十萬上下,如果崩機又要迅速完全恢復狀態的項目。
每天幾萬人訪問的項目沒做過,遺憾。
幾千萬條數據的項目倒是每天面對,優化學了一點,但沒有充分利用嚴格的環境去追求改進,遺憾。
ERP的報表倒是經常會搞到幾十萬上下的差額,但一直重視不足,以后要以歷練來對待之。
崩機恢復是最近的項目要求,更爽是這個項目澳國政府居然有一份規范,我說的助力就是指這些了,不用自己慢慢摸索而且經常摸錯地方。
三,最底層的編碼
不要老是高高在上搞ERP搞.com,最好能用到起碼C一級的語言,可以和硬件打打交道,直接寫IO口阿,中斷阿,都是有就不要放過的鍛煉。
沒做過底層編碼,只會純軟件的IT人的感覺是不完整的。
剛好公司最近的項目有要求,捧一本看看〈Linux Device Driver〉。
四,最高層的設計
設計,框架--多少技術人一聽就眼紅的字眼。但不是每個公司都搞很產品化的項目,或者在項目里自寫框架重做輪子。所以,除了剛入行那段瘋狂的日子,很高階的設計其實我也沒做多少,多數時間都是應用層的開發。
不過,因為有時候要除bug或者增強開源產品使其符合項目需求,或者有錯了不明就里時直接讀源碼會更快找到錯誤。這樣就接觸到不少優秀開源項目的源碼,像很好讀的Spring。
而最近搞php的東西時,發現php早不一樣了,其實應該算入python,ruby一類的動態OO語言,它的那些著名項目一樣有著很好的MVC框架和數據層抽象,而且,和Java盛產框架型項目不同,php的項目多是熟透了的Web應用,細看之下學到不少東西。
一陣發呆打了這篇字,其實也是鞭策自己在現在的環境里更快成長。