作者:
江南白衣 除開五大或者ThoughtWorks這種要什么有什么,進(jìn)去做打字也能光耀門楣的不談。如果是嫁到一個普通軟件公司,怎樣的環(huán)境才能最快的成長呢?
首先基本的
公司項目管理水平是必要的;其次是穩(wěn)健而不保守的公司技術(shù)選型和一班能溝通的同事。
更重要的,是要有一個嚴(yán)苛的環(huán)境,那些古訓(xùn)說的都沒錯,越是嚴(yán)苛,成長越快。 然后有些引導(dǎo)與助力,讓你在嚴(yán)寒中節(jié)省體力,過得好些的,就是最佳的成長環(huán)境了。
一,最復(fù)雜多變的業(yè)務(wù)規(guī)則,最難侍候的客戶
大多數(shù)人碰上這兩樣?xùn)|西都是愁眉苦臉,天天抱怨。其實應(yīng)該把它視為入門鍛煉的:
第一階是努力用細(xì)密的編碼迎合復(fù)雜的業(yè)務(wù),以金牌服務(wù)的態(tài)度接受客戶的善變和每樣需求都要24小時有取的bt。充分打磨過的眼耳口心,才是個合格的IT人。如果業(yè)務(wù)規(guī)則都清的像水,項目時時都是以我為主的,反是在做toy application,不算入了IT的門。
打磨之后,如果肯靜下心來總結(jié),設(shè)計架構(gòu)如何適應(yīng)改變,流程如何做到快速更新部署,就是第二階段的進(jìn)步了。
一直做ERP,自問有足夠復(fù)雜的業(yè)務(wù)(因為不熟悉業(yè)務(wù),有些不復(fù)雜的也變復(fù)雜了)和麻煩的客戶(自己不是大公司,麻煩的客戶就會很多),但在第二階段還是不很靜得下心。
二,最嚴(yán)格的性能要求,準(zhǔn)確性要求,錯誤恢復(fù)要求 最好是那種每天N萬人訪問,幾億條數(shù)據(jù)。還有準(zhǔn)確性很嚴(yán)格,分分鐘幾十萬上下,如果崩機(jī)又要迅速完全恢復(fù)狀態(tài)的項目。
每天幾萬人訪問的項目沒做過,遺憾。
幾千萬條數(shù)據(jù)的項目倒是每天面對,優(yōu)化學(xué)了一點,但沒有充分利用嚴(yán)格的環(huán)境去追求改進(jìn),遺憾。
ERP的報表倒是經(jīng)常會搞到幾十萬上下的差額,但一直重視不足。
崩機(jī)恢復(fù)是最近的項目要求,更爽是這個項目澳國政府居然有一份規(guī)范,我說的助力就是指這些了,不用自己慢慢摸索而且經(jīng)常摸錯地方。
三,最底層的編碼 不要老是高高在上的搞ERP搞.com,偶然嘗試一下用到起碼C一級的語言,和硬件打打交道,直接寫IO口阿,中斷阿,都是有就不要放過的鍛煉。
沒做過底層編碼,只會純軟件的IT人的感覺是不完整的。
剛好公司最近的項目有要求,捧一本
〈Linux Device Driver〉看看。
四,最高層的設(shè)計
設(shè)計、框架--技術(shù)人一聽就眼紅的字眼。但不是每個公司都搞很產(chǎn)品化的項目,或者在項目里自寫類庫重做輪子。所以,除了剛?cè)胄械哪嵌委偪袢兆樱芨唠A的設(shè)計其實我也沒做多少,多數(shù)時間都是應(yīng)用層的開發(fā)。
雖然自己不寫,但卻經(jīng)常都要進(jìn)行框架選型,也算是蒸發(fā)智力的一個地方。Pragmatic Programmer里說的critical的態(tài)度很重要,Spring好么?一定要想清楚它好在哪里,不要糊里糊涂的看著quick start就入局了,渾忘了without Spring的世界是怎樣的。
另外,因為有時候開源軟件有bug,或者要增強(qiáng)它來吻合項目需求,或者有錯了不明就里時直接讀源碼會更快找到錯誤。這樣就接觸到不少優(yōu)秀開源項目的源碼,比如Spring,無形中也會學(xué)到他的設(shè)計。
如果說Java盛產(chǎn)框架型的項目,php的項目則多是熟透了的Web應(yīng)用。最近發(fā)現(xiàn)php不是以前的php了,應(yīng)該算入python,ruby一類的動態(tài)OO語言,它的那些著名項目一樣有著很好的MVC框架。細(xì)看之下學(xué)到應(yīng)用設(shè)計方面的不少東西。
一陣發(fā)呆打了這篇字,其實也是提醒自己,目前的環(huán)境可以,應(yīng)該以更好的心態(tài)接受更嚴(yán)苛的歷練,那些古訓(xùn)說的都沒錯。