前言
這是在網(wǎng)上看到的一篇文章,寫的是一個(gè)從事軟件工程開發(fā)的大牛對(duì)從業(yè)七年的一些經(jīng)驗(yàn)總結(jié)乡翅。感覺挺不錯(cuò)鳞疲,轉(zhuǎn)來與大家分享了,下面是正文蠕蚜。
分享
1尚洽、分享第一條經(jīng)驗(yàn):“學(xué)歷代表過去,能力代表現(xiàn)在靶累,學(xué)習(xí)力代表未來腺毫。”
其實(shí)這是一個(gè)來自國外教育領(lǐng)域的一個(gè)研究結(jié)果挣柬。相信工作過幾年潮酒、十幾年的朋友對(duì)這個(gè)道理有些體會(huì)吧。但我相信這一點(diǎn)也很重要:“重要的道理明白太晚將抱憾終生邪蛔!”所以放在每一條急黎,讓剛剛畢業(yè)的朋友們?cè)琰c(diǎn)看到哈!
2、一定要確定自己的發(fā)展方向叁熔,并為此目的制定可行的計(jì)劃委乌。
不要說什么,“我剛畢業(yè)荣回,還不知道將來可能做什么遭贸?”,“跟著感覺走心软,先做做看”壕吹。因?yàn)椋@樣的觀點(diǎn)會(huì)通過 你的潛意識(shí)去暗示你的行為無所事事删铃、碌碌無為耳贬。一直做技術(shù),將來成為專家級(jí)人物猎唁?向管理方向走咒劲,成為職業(yè)經(jīng)理人?先熟悉行業(yè)和領(lǐng)域诫隅,將來自立門戶腐魂?還是先 在行業(yè)里面混混,過幾年轉(zhuǎn)行做點(diǎn)別的逐纬?這很重要蛔屹,它將決定你近幾年、十年內(nèi)“做什么事情才是在做正確的事情豁生!”兔毒。
3、軟件開發(fā)團(tuán)隊(duì)中甸箱,技術(shù)不是萬能的育叁,但沒有技術(shù)是萬萬不能的!
在技術(shù)型團(tuán)隊(duì)中芍殖,技術(shù)與人品同等重要擂红,當(dāng)然長相也比較重要哈,尤其在MM比較多的團(tuán)隊(duì)中围小。在軟件項(xiàng)目團(tuán)隊(duì)中,技術(shù)水平是受人重視和尊重的重要砝碼树碱。無論你是做管理肯适、系統(tǒng)分析、設(shè)計(jì)成榜、編碼框舔,還是產(chǎn)品管理、測試、文檔刘绣、實(shí)施樱溉、維護(hù),多少你都要有技術(shù)基礎(chǔ)纬凤。算我孤陋寡聞福贞,我還真沒有親眼看到過一個(gè)外行帶領(lǐng)一個(gè)軟件開發(fā)團(tuán)隊(duì)成功地完成過軟件開發(fā)項(xiàng)目,哪怕就一個(gè)停士,也沒有看到挖帘。倒是曾經(jīng)看到過一個(gè)“高學(xué)歷的牛人”(非技術(shù)型)帶一堆人做完過一個(gè)項(xiàng)目,項(xiàng)目交付的第二天恋技,項(xiàng)目組成員扔下一句“再也受不了啦拇舀!”四分五裂、各奔東西蜻底。那個(gè)項(xiàng)目的“成功度”大家可想而知了骄崩。
4、詳細(xì)制定自己軟件開發(fā)專業(yè)知識(shí)學(xué)習(xí)計(jì)劃薄辅,并注意及時(shí)修正和調(diào)整(軟件開發(fā)技術(shù)變化實(shí)在太快)要拂。
請(qǐng)牢記:“如果一個(gè)軟件開發(fā)人員在1、2年內(nèi)都沒有更新過自己的知識(shí)长搀,那么宇弛,其實(shí)他已經(jīng)不再屬于這個(gè)行業(yè)了≡辞耄”不要告訴自己沒有時(shí)間枪芒。來自時(shí)間管理領(lǐng)域的著名的“三八原則”告誡我們:另外的那8小時(shí)如何使用 將決定你的人生成敗谁尸!本人自畢業(yè)以來舅踪,平均每天實(shí)際學(xué)習(xí)時(shí)間超過2小時(shí)。
5良蛮、書籍是人類進(jìn)步的階梯抽碌,對(duì)軟件開發(fā)人員尤其如此。
書籍是學(xué)習(xí)知識(shí)的最有效途徑决瞳,不要過多地指望在工作中能遇到“世外高人”货徙,并不厭其煩地教你。對(duì)于花錢買書皮胡,我個(gè)人經(jīng)驗(yàn)是:千萬別買國內(nèi)那幫人出的書痴颊!我買的那些家伙出的書,100%全部后悔了屡贺,無一本例外蠢棱。更氣憤的是锌杀,這些書在二手市場的地?cái)偵隙己茈y賣掉⌒合桑“擁有書籍并不表示擁有知識(shí)糕再;擁有知識(shí)并不表示擁有技能;擁有技能并不表示擁有文化玉转;擁有文化并不表示擁有智慧突想。”只有將書本變成的自己智慧冤吨,才算是真正擁有了它蒿柳。
6、不要僅局限于對(duì)某項(xiàng) 技術(shù)的表面使用上漩蟆,哪怕你只是偶爾用一垒探、二次。
“對(duì)任何事物不究就里”是任何行業(yè)的工程師所不應(yīng)該具備的素質(zhì)怠李。開發(fā)Windows應(yīng)用程序圾叼,看看Windows程序的設(shè)計(jì)、加載捺癞、執(zhí)行原理夷蚊,分析一下PE文件格式,試試用SDK開發(fā)從頭開發(fā)一個(gè)Windows應(yīng)用程序髓介;用VC++惕鼓、Delphi、Java唐础、.Net開發(fā)應(yīng)用程序箱歧,花時(shí)間去研究一下MFC、VCL一膨、J2EE呀邢、.Net它們框架設(shè)計(jì)或者源碼;除了會(huì)用J2EE豹绪、JBoss价淌、Spring、Hibernate等等優(yōu)秀的開源產(chǎn)品或者框架瞒津,抽空看看大師們是如何抽象蝉衣、分析、設(shè)計(jì)和實(shí)現(xiàn)那些類似問題的通用解決方案的巷蚪。試著這樣做做买乃,你以后的工作將會(huì)少遇到一些讓你不明就里、一頭霧水的問題钓辆,因?yàn)椋芏鄸|西你“知其然且知其所以然”!
7前联、在一種語言上編程功戚,但別為其束縛了思想。
“代碼大全”中說:“深入一門語言編程似嗤,不要浮于表面”啸臀。深入一門語言開發(fā)還遠(yuǎn)遠(yuǎn)不足,任何編程語言的存在都有其自身的理由烁落,所以也沒有哪門語言是“包治百病”的“靈丹妙藥”乘粒。編程語言對(duì)開發(fā)人員解決具體問題的思路和方式的影響與束縛的例子俯拾皆是。
我的經(jīng)驗(yàn)是:用面對(duì)對(duì)象工具開發(fā)某些關(guān)鍵模塊時(shí)伤塌,為什么不可以借鑒C灯萍、C51、匯編的模塊化封裝方式每聪?用傳統(tǒng)的桌面開發(fā)工具(目前主要有VC++旦棉、Delphi)進(jìn)行系統(tǒng)體統(tǒng)結(jié)構(gòu)設(shè)計(jì)時(shí),為什么不可以參考來自Java社區(qū)的IoC药薯、AOP設(shè)計(jì)思想绑洛,甚至借鑒像Spring、Hibernate童本、JBoss等等優(yōu)秀的開源框架真屯?在進(jìn)行類似于實(shí)時(shí)通信、數(shù)據(jù)采集等功能的設(shè)計(jì)穷娱、實(shí)現(xiàn)時(shí)绑蔫,為什么不可以引用來自實(shí)時(shí)系統(tǒng)、嵌入式系統(tǒng)的優(yōu)秀的體系框架與模式鄙煤?為什么一切都必須以個(gè)人晾匠、團(tuán)隊(duì)在當(dāng)然開發(fā)語言上的傳統(tǒng)或者經(jīng)驗(yàn)來解決問題?“他山之石梯刚、可以攻玉”凉馆。
8、養(yǎng)成總結(jié)與反思的習(xí)慣亡资,并有意識(shí)地提煉日常工作成果澜共,形成自己的個(gè)人源碼庫、解決某類問題的通用系統(tǒng)體系結(jié)構(gòu)锥腻、甚至進(jìn)化為框架嗦董。
眾所周知,對(duì)軟件開發(fā)人員而言瘦黑,有京革、無經(jīng)驗(yàn)的一個(gè)顯著區(qū)別是:無經(jīng)驗(yàn)者完成任何任務(wù)時(shí)都從頭開始奇唤,而有經(jīng)驗(yàn)者往往通過重組自己的可復(fù)用模塊、類庫來解決問題(其實(shí)這個(gè)結(jié)論不應(yīng)該被局限在軟件開發(fā)領(lǐng)域匹摇、可以延伸到很多方面)咬扇。這并不是說,所有可復(fù)用的東西都必須自己實(shí)現(xiàn)廊勃,別人成熟的通過測試的成果也可以收集懈贺、整理、集成到自己的知識(shí)庫中坡垫。但是梭灿,最好還是自己實(shí)現(xiàn),這樣沒 有知識(shí)產(chǎn)權(quán)冰悠、版權(quán)等問題堡妒,關(guān)鍵是自己實(shí)現(xiàn)后能真正掌握這個(gè)知識(shí)點(diǎn),擁有這個(gè)技能屿脐。
9涕蚤、理論與實(shí)踐并重,內(nèi)外雙修的诵。
工程師的內(nèi)涵是:以工程師的眼光觀察万栅、分析事物和世界。一個(gè)合格的軟件工程師西疤,是真正理解了軟件產(chǎn)品的本質(zhì)及軟件產(chǎn)品研發(fā)的思想精髓的人(個(gè)人觀點(diǎn)烦粒、歡迎探討)。掌握軟件開發(fā)語言代赁、應(yīng)用語言工具解決工作中的具體問題扰她、完成目標(biāo)任務(wù)是軟件工程師的主要工作,但從軟件工程師這個(gè)角度來看芭碍,這只是外在的東西徒役,并非重要的、本質(zhì)的工作窖壕。學(xué)習(xí)忧勿、掌握軟件產(chǎn)品開發(fā)理論知識(shí)、軟件開發(fā)方法論瞻讽,并在實(shí)踐中理解鸳吸、應(yīng)用軟件產(chǎn)品的分析、設(shè)計(jì)速勇、實(shí)現(xiàn)思想來解決具體的軟件產(chǎn)品研發(fā)問題晌砾,才是真正的軟件工程師的工作。站在成熟理論與可靠方法論的高度思考烦磁、分析养匈、解決問題哼勇,并在具體實(shí)踐中驗(yàn)證和修正這些思想與方式,最終形成自己的理論體系和實(shí)用方法論呕乎。
10猴蹂、心態(tài)有多開放,視野就有多開闊楣嘁。
不要抱著自己的技術(shù)和成果,等到它們都已經(jīng)過時(shí)變成垃圾了珍逸,才拿出來丟人現(xiàn)眼逐虚。請(qǐng)及時(shí)發(fā)布自己的研究成果:開發(fā)的產(chǎn)品、有創(chuàng)意的設(shè)計(jì)或代碼谆膳,公布出來讓大家交流或者使用叭爱,你的成果才有進(jìn)化和升華的機(jī)會(huì)。想想自己2000年間開發(fā)的那些Windows系統(tǒng)工具漱病,5买雾、6年之后的今天衔沼,還是那個(gè)樣子苔埋,今天流行的好多Windows系統(tǒng)工具都比自己的晚那槽,但進(jìn)化得很好寝衫,且有那么多用戶在使用瞧哟。并且且轨,不要保守自己的技術(shù)和思想毛肋,盡可能地與人交流與分享梨水,或者傳授給開發(fā)團(tuán)隊(duì)的成員老客×欧梗“與人交換蘋果之后,每個(gè)人還是只有一個(gè)蘋果胧砰;但交換思想之后鳍鸵,每個(gè)人都擁有兩種思想”,道理大家都懂尉间,但有多少人真正能做到呢偿乖?
11、盡量參加開源項(xiàng)目的開發(fā)乌妒、或者與朋友共同研制一些自己的產(chǎn)品汹想,千萬不要因?yàn)闆]有錢賺而不做。
網(wǎng)絡(luò)早已不再只是“虛擬世界”撤蚊,網(wǎng)上有很多的開源項(xiàng)目古掏、合作開發(fā)項(xiàng)目、外包項(xiàng)目侦啸,這都是涉獵工作以外的知識(shí)的絕好機(jī)會(huì)槽唾,并且能夠結(jié)識(shí)更廣的人緣丧枪。不要因?yàn)楣ぷ魇亲鯡RP,就不去學(xué)習(xí)和了解嵌入式庞萍、實(shí)時(shí)拧烦、通信、網(wǎng)絡(luò)等方面的技術(shù)钝计,反過來也是一樣恋博。如果當(dāng)別人拿著合同找你合作,你卻這也不會(huì)私恬,那也不熟時(shí)债沮,你將后 悔莫及。
12本鸣、書到用時(shí)方恨少疫衩,不要將自己的知識(shí)面僅僅局限于技術(shù)方面。
諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)得主西蒙教授的研究結(jié)果表明:“對(duì)于一個(gè)有一定基礎(chǔ)的人來說荣德,他只要真正肯下功夫闷煤,在6個(gè)月內(nèi)就可以掌握任何一門學(xué)問′陶埃”教育心理學(xué)界為感謝西蒙教授的研究成果鲤拿,故命名為西蒙學(xué)習(xí)法。
可見饲宛,掌握一門陌生的學(xué)問遠(yuǎn)遠(yuǎn)沒有想象的那么高難皆愉、深?yuàn)W。多方吸取艇抠、廣泛涉獵幕庐。極力夯實(shí)自己的影響圈、盡量擴(kuò)大自己的關(guān)注圈家淤。財(cái)務(wù)异剥、經(jīng)濟(jì)、稅務(wù)絮重、管理等等知識(shí)冤寿,有空花時(shí)間看看,韜光養(yǎng)晦青伤、未雨綢繆督怜。
總結(jié)與反思:
1:不要去做技術(shù)上的高手,除非你的目標(biāo)如此狠角。雖然本文是關(guān)于提高軟件開發(fā)知識(shí)的建議号杠,做技術(shù)的高手是我一向都不贊同的。你可以提高自己的專業(yè)知識(shí),但能勝任工作即止姨蟋。
2:提高軟件知識(shí)和技術(shù)只是問題的表面屉凯,本質(zhì)是要提高自己認(rèn)識(shí)問題、分析問題眼溶、解決問題的思想高度悠砚。軟件專業(yè)知識(shí)的很多方法和原理,可以很容易地延伸堂飞、應(yīng)用到生活的其它方面灌旧。
3:在能勝任工作的基礎(chǔ)上,立即去涉獵其它領(lǐng)域的專業(yè)知識(shí)绰筛,豐富自己的知識(shí)體系节榜、提高自己的綜合素質(zhì),尤其是那些目標(biāo)不在技術(shù)方面的朋友别智。