第一篇:Java高級程序員是這樣煉成的 - 文庫課程
Java高級程序員是這樣煉成的-文庫課程 Java基礎(chǔ)篇:J2SE基礎(chǔ)入門系列
學(xué)習(xí)課程:《JAVA語言基礎(chǔ)與OOP入門》
您可以學(xué)到:
?
?
? 面向?qū)ο驩OP入門 Java中的實用類與集合 繼承與多態(tài)、接口...參加課程
本課程由北風(fēng)網(wǎng)資深講師鳳舞煙老師主講,通過理論+上機練習(xí)的模式,全面細致的講解了java入門技術(shù),課程涵蓋內(nèi)容包括:Java中的實用類與集合詳解、以及Java中的oop思想,課程配合2個項目,進行教學(xué),讓學(xué)生可在最短的時間內(nèi)掌握java。22小時18816人已學(xué)習(xí)
學(xué)習(xí)課程:《JDK5.0新特性培訓(xùn)》
您可以學(xué)到:
?
?
? 泛型類型及繼承的使用 枚舉的應(yīng)用 EnumSet和EnumMap 參加課程
JDK是針對Java開發(fā)員的產(chǎn)品;自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK。JDK是整個Java的核心,包括了Java運行環(huán)境、Java工具和Java基礎(chǔ)類庫。
5小時913人已學(xué)習(xí)
學(xué)習(xí)課程:《Junit測試驅(qū)動開發(fā)》
您可以學(xué)到:
? JUnit4中的注釋講解
?
? HttpUnit TDD思想 參加課程
JUnit是Java語言事實上的標準單元測試庫。JUnit的易用性無疑是它受歡迎的主要原因。也許你會這樣想:它做的事情不多,僅僅是做一些測試然后報告結(jié)果,JUnit應(yīng)該是很簡單的。
4小時867人已學(xué)習(xí)
學(xué)習(xí)課程:《ANT使用全攻略》
您可以學(xué)到:
?
?
? Ant屬性Ant數(shù)據(jù)類型 Ant測試和JUnit Ant的結(jié)構(gòu)化構(gòu)建 參加課程
ANT是使用最廣泛的Java項目構(gòu)建工具,具有跨平臺、易于擴展、簡單和快速的特點。它伸縮性好,小到個人項目,大到多團隊J2ee項目,在各種規(guī)模項目中都可一顯伸手。并且,最重要的是,它易于掌握。
7小時1033人已學(xué)習(xí)
Java WEB篇:深入淺出Java web開發(fā)之JSP應(yīng)用系列
學(xué)習(xí)課程:《深入淺出學(xué)Java中級教程》
您可以學(xué)到:
?
?
? JSP語法 BBS項目實戰(zhàn) MVC實例-在線通訊錄 參加課程
本課程重點在項目實戰(zhàn)培訓(xùn),主要采用MVC設(shè)計模式進行開發(fā)。通過本次課程,您能很好地掌握MVC下Web項目設(shè)計方法,在JSP+servlet講解中,主要結(jié)合論壇項目,讓您通過切實的項目去掌握知識。
33小時5266人已學(xué)習(xí)
Java框架篇:深入淺出框架實戰(zhàn)開發(fā)
學(xué)習(xí)課程:《2013版Struts2.X深入淺出》
您可以學(xué)到:
?
?
? MVC思想簡介 Struts2配置 學(xué)生信息管理系統(tǒng)實戰(zhàn) 參加課程
本課程是2013版Struts2.X深入淺出系列,課程配合一個Strus2實現(xiàn)學(xué)生學(xué)籍管理實戰(zhàn)項目,課程深入淺出,全面解析了Struts2.X的應(yīng)用,相比市面上的課程,更具有實用性質(zhì)。
15小時1354人已學(xué)習(xí)
學(xué)習(xí)課程:《2013版Hibernate深入淺出》
您可以學(xué)到:
?
?
? Hibernate基本配置以及...ORM之映射關(guān)聯(lián) Hibernate與struts2的整合 參加課程
2013版Hibernate深入淺出(詳解Hibernate3.X及Hibernate4新特征結(jié)合學(xué)生學(xué)籍管理系統(tǒng)),課程全面講解了Hibernate3.X以及Hibernate4的區(qū)別,是目前市面上Hibernate最新的版本,也是目前國內(nèi)唯一一套講解完整細致的教程。
18小時3009人已學(xué)習(xí)
學(xué)習(xí)課程:《2013版Spring3.0實戰(zhàn)開發(fā)系列》
您可以學(xué)到:
?
? 屬性注入方式以及模擬...Spring與Hibernate集成? Annotation方式實現(xiàn)...參加課程
本課程是2013版Spring3.3實戰(zhàn)開發(fā)系列(SSH版學(xué)籍管理系統(tǒng)、Ant部署、SSH常見面試題),課程涉及內(nèi)容包括:控制反轉(zhuǎn)(IoC)、面向切面編程(AOP)、IOC使用的兩大關(guān)鍵技術(shù)和一個設(shè)計模式(與Hibernate類似)。
14小時1021人已學(xué)習(xí)
Java實戰(zhàn)篇:項目實戰(zhàn)企業(yè)設(shè)備點檢系統(tǒng)
學(xué)習(xí)課程:《J2EE平臺下的企業(yè)設(shè)備點檢系統(tǒng)》
您可以學(xué)到:
?
?
? 需求分析的制作 核心代碼的編寫方式 數(shù)據(jù)庫設(shè)計 參加課程
本課程主要對企業(yè)設(shè)備點檢系統(tǒng)的開發(fā)過程進行講解,企業(yè)設(shè)備點檢系統(tǒng)是根據(jù)企業(yè)的實際要求和實際需要進行對設(shè)備、備件、人員等方面的素質(zhì)化信息管理平臺,它可以為企業(yè)解決流程、成本、設(shè)備的檢修維修等方面的問題。
15小時1503人已學(xué)習(xí)
查看文檔來源:http://wenku.baidu.com/course/theme/java?fr=search
第二篇:程序員是這樣煉成的12
程序員是這樣煉成的(12)-勇于面對開發(fā)失敗
個人一輩子不犯錯很難,作為一個程序員要每天不制造程序錯誤更難。今天跟大家討論如何面對失敗和錯誤,大到一個項目的開發(fā)失敗,小到幾行代碼中的bug,都是我們在日常開發(fā)中經(jīng)常要面對的問題。
有一家這樣小公司,測試部和軟件開發(fā)部是獨立的兩個部門,有各自的部門經(jīng)理。老板總是喜歡給下面的員工施緊箍咒,施加壓力,又是能力評估,又事績效考核,于是某一年,在領(lǐng)導(dǎo)們別出心裁的領(lǐng)導(dǎo)下,公司出臺了軟件開發(fā)工程師的考核制度,制度明確規(guī)定:將程序員開發(fā)項目和軟件的測試一次通過率和項目中的bug個數(shù)納入開發(fā)人員的年終績效考核,由測試部門進行考核和執(zhí)行。(所謂一次通過率,就是軟件提交測試后,一次通過的概率,一次測試就通過的軟件/提交測試申請的軟件數(shù)*100%)新法頒布后,測試部大呼過癮,軟件開發(fā)部一片嘩然,第一年的過去了,果然“成績喜人”,全公司的軟件一次通過率達到了97%,無數(shù)未經(jīng)測試軟件被偷偷發(fā)布給了客戶。第二年領(lǐng)導(dǎo)們在吸取了第一年的經(jīng)驗和教訓(xùn)后,毅然的修改了考核標準,在統(tǒng)計bug個數(shù)的同時融入了代碼行數(shù)的概念,bug個數(shù)/100行代碼 *100%來,進行年終考核,第二年過去了,軟件開發(fā)部門戲劇化的以100行代碼0.5的bug數(shù),高效的開發(fā)質(zhì)量給了領(lǐng)導(dǎo)們一個有力的答案。這是一個真實的事故,一個三流的軟件公司的開發(fā)水平和軟件質(zhì)量已經(jīng)“超越了”微軟和google,我相信現(xiàn)在仍然還有很多公司在進行類似這個的考核。
這樣的小公司把軟件開發(fā)和測試部門獨立本身就是一種錯誤,嚴重的影響的開發(fā)和測試的時間,兩個部門相互扯皮,項目進展一拖再拖。
其次,兩個部門工作的出發(fā)點也錯了,兩個部門的工作重心是交給客戶盡善盡美的軟件產(chǎn)品,而不是為了應(yīng)付考核和被考核。
第三大錯特錯的是考評制度,一看這樣的制度,多半都是事不關(guān)己高高掛起的人出的主意,開發(fā)軟件能一次就通過嗎?寫出來的代碼能沒有bug存在嗎?公司要提高產(chǎn)品質(zhì)量,不把注意力放在項目管理人,開發(fā)人員的能力培訓(xùn)上,開發(fā)規(guī)范和文檔管理上,想憑借一紙空文,或者員工的主觀能動就達到一個“質(zhì)”的飛越,實在愚不可及!軟件工程師在把軟件測試N次以后才敢把軟件提交測試,幾行代碼就能完成的完成功能,引用了很多填充行數(shù)的無效單元。
最可惡的是,使所有的開發(fā)人員,散失了面對失敗和錯誤的勇氣!為什么不改面對呢?一面對就要扣工資和年終獎,誰還敢去面對啊?于是,整個開發(fā)風(fēng)氣就是:開發(fā)人員私下放行軟件給客戶成風(fēng),不經(jīng)過任何測試。程序員有了錯誤死有的不承認,有了bug支支吾吾。不但開發(fā)水平提升不上去,常見的開發(fā)問題還沒有被公開和分享解決,導(dǎo)致產(chǎn)品質(zhì)量嚴重下降。
大家都應(yīng)該知道在開發(fā)的過程中,越早發(fā)現(xiàn)軟件的問題,軟件就更加的完善。而不是藏著掖著,或者添上一抔土把這個“地雷”埋著,留著讓用戶踩去吧。正確的心態(tài)是:測試人員越早發(fā)現(xiàn)我們開發(fā)軟件中錯誤,我們應(yīng)該越高興,因為不僅可以彌補我們的思維漏洞,讓我們的代碼更加完美,更加減少了我們挽救這個問題的開銷。不敢直面bug的程序員,算不上真正的程序員,如果你沒有闖過雷區(qū),沒有被炸了個人仰馬翻,沒有給你留下深刻的教訓(xùn),那么下次你仍然會不知道代碼的隱患在哪?仍然不會學(xué)會選擇趨吉避兇之道。仍然會被炸的死去活來。
寫代碼有經(jīng)驗的人,對異常處理都很有一套,知道大概這一塊要保護起來,那一塊要加一個判斷,這里要驗證下是否存在或已經(jīng)被銷毀。如果程序員沒有很好的對未能遇見的故障做好防御工作,那么產(chǎn)品帶給用戶的錯誤提示或者死機,將讓客戶連殺了你的心都有。記得好多年前,在一個網(wǎng)吧找了一臺賽揚上網(wǎng),打開IE,自動彈出網(wǎng)頁,然后就報錯系統(tǒng)級的錯誤了,還無休無止,CPU直接滿上,然后死機,當時又好笑又好氣,你寫個彈窗軟件,偷偷彈就算了,代碼都沒寫好,結(jié)果害網(wǎng)吧老板重裝系統(tǒng):)
看過武俠的都知道,危難關(guān)頭,出現(xiàn)異常的時候,才是檢測一個真正武林高手水平的時候,平時的舞蹈練劍都是假把式,最多只能算是基本功,補救危局,化腐朽為神奇才能顯示技藝的高超。有多少人會記恨千年蟲問題是哪個混蛋帶給我們的?但是解決千年蟲問題軟件工程師們都是英雄。所以放心的動手開發(fā)
吧,即使你犯了錯誤,被罵成狗熊,也沒有人會記住你。問題被解決后一切釋然。
是人都會犯錯誤,對別人犯錯誤評頭論足的人愚昧。用發(fā)布制度來阻止別人放錯誤的人愚蠢,因為害怕放錯誤,而畏手畏腳不敢創(chuàng)新和向前的人則更加愚上加愚。錯誤面前我們要敢于應(yīng)對:
1、對錯自在人心。
當然你發(fā)現(xiàn)問題后,請馬上提出,不要企圖隱瞞問題,越早發(fā)現(xiàn)問題,那么損失就越小,抗震救災(zāi)有黃金72小時,軟件開發(fā)也有黃金72小時。我們在解決陳年詬病的時候,通過要花上數(shù)倍的時間,來回憶當時的開發(fā)心境和設(shè)計意圖。
2、接受批評。
如果這個問題跟你有關(guān)那么就是你的問題,千萬別動念頭找到一只替罪羊,出現(xiàn)問題后,重要的解決問題,不是秋后算賬,更加不要交纏不清推脫問題。
3、向解決的方向前進。
如果你不能馬上解決這個問題,那么請你把這個問題向解決的方向推進,如果你無法推進問題去解決,那么請不要讓這個問題繼續(xù)惡化。讓大家都知道這個問題的存在。
4、尋求幫助。
請不要讓自己的自尊心作祟,拒絕別人的幫助,一個好漢三個幫,放下那所謂的自尊,去聽取團隊和伙伴的建議。
每個人對錯誤的處理方式不同,會產(chǎn)生不同的結(jié)果,問題處理的好,會使得團隊更加信任你,甚至比遇到問題之前,更加信任你,要是處理的不好,不但摧毀了大家的信任,還會讓人覺得你難以擔任重任。
第三篇:程序員是這樣煉成的5
程序員是這樣煉成的(5)-海納百川 做程序員要“海納百川”,其實就是建議各位要做一個通才。當然做通才是有條件的,我總結(jié)了下前提有三:
1.你已經(jīng)是一個專才。熟練操作學(xué)一門像樣的編程語言。
2.有穩(wěn)定的工作和收入支持。
3.想得更多的挑戰(zhàn)和機會。
作為項目經(jīng)理和管理者而言,坦白的說,比較喜歡的還是專才,因為專才聽話,你在他知曉的領(lǐng)域劃一個圈,他能保證幫你完成任務(wù),而且還不給你添麻煩,專才們在各自的領(lǐng)域的努力才會推動項目前進。那在項目中,通才的表現(xiàn)又如何呢?你給他畫一個圈,他會給你考慮到圈子以外的事,甚至跳到別人的圈里子耍弄一番。他就像潤滑劑一樣,提出很多創(chuàng)新的idea,雖然老是給項目管理者帶來不少的麻煩,但是總能讓整個項目更加協(xié)調(diào)。其實項目管理者討厭他,但又離不開通他,他的鬼點子時常能優(yōu)化各個結(jié)構(gòu)和模塊。更重要的是當管理者被提升,要選擇接替者一般是一個會顧大局,協(xié)調(diào)眾多專才的通才。
在所有的項目管理者或者teamlead的心里,肯定都有一種軟件工廠的構(gòu)思或者布局。大意就是整個部門各個人都各施其職,讓整個軟件開發(fā)的過程,就像一個生產(chǎn)工廠一樣運轉(zhuǎn)。招來的程序員都是生產(chǎn)線上的工人。他們不需要想太多,照任務(wù)單做就是??蛻粜枨缶拖癞a(chǎn)品訂單一樣進來,需求分析師開始根據(jù)訂單安排我們要生產(chǎn)的產(chǎn)品規(guī)格滿足客戶的需求,系統(tǒng)架構(gòu)是開始把這些規(guī)格加工成工廠生產(chǎn)計劃或者價格框架。設(shè)計師拿著詳細的設(shè)計文檔來往這個框架里面套,剩下的就交給代碼機器人們填充內(nèi)容,然后到質(zhì)量工位,檢查貼牌,然后出廠。整個過程每個工位都是專才,在領(lǐng)導(dǎo)的構(gòu)想中,他們每天都只需要做重復(fù)的勞動就好了,如果他們想辭職了,也不會帶走我們?nèi)康纳a(chǎn)機密,更重要的是這樣的工人很廉價,找一個替換品不難。但是實際上管理者的春秋大夢很難實現(xiàn),原因是軟件這個產(chǎn)品具有可復(fù)制性,也就是軟件可以copy.在軟件工廠里,生產(chǎn)兩個完全一模一樣的產(chǎn)品是沒有意義的??蛻舻男枨蠖际呛苋嵝缘?,每次都會不一樣,大大小小的改變是避免不了的,管理者們費盡了心血設(shè)計的一套生產(chǎn)流程,竟然只能生產(chǎn)一件產(chǎn)品?(去過生產(chǎn)線的朋友應(yīng)該都知道,一旦生產(chǎn)的流程有所
變化,線上的工人們基本上都不知道怎么開始干活了,要重新培訓(xùn)上崗,因為他們從來就沒有想過,半成品是從哪來的,又是干什么去,一直都在做機械的勞動。)但是我們的管理者們,他們肯定不會罷休焦頭爛額,會再一次優(yōu)化生產(chǎn)流程。到下一個新的產(chǎn)品,又會繼續(xù)把生長線從頭至尾優(yōu)化一下。某一天管理者突然頓悟,我們?yōu)槭裁疵看味际职咽值母恳粋€人安排任務(wù),每次都親自設(shè)計整個流程,我應(yīng)該去辦公室里面喝喝茶,上上網(wǎng)。這個時候他會想到誰?毫無疑問,肯定不是專門,他需要的是一個能走通每一個環(huán)節(jié)的通才。
小時候我經(jīng)常聽我老爸說:“不要半桶水,不要什么都懂點,什么都不?!边@句話就是用來貶低通才的,在這里我要為通才平凡。我的一個軟件項目曾經(jīng)出了一次事故,整個汽車的生產(chǎn)線面臨停產(chǎn),幾次電話支持的效果都不理想,需要一個技術(shù)人員立馬去現(xiàn)場解決問題。軟件用delphi開發(fā)在windows平臺運行,oracle數(shù)據(jù)庫,通過進口的硬件,用客戶的線束跟汽車通信,操作員是個新手,電腦硬件是我們提供的,現(xiàn)場環(huán)境惡劣。我思索了每個可能出現(xiàn)問題的可能,客戶能提供的有效信息太少,連軟件的日志文件都無法取出來(USB端口封閉,車間信息嚴格保密)。我不可能同時派一個軟件工程師,數(shù)據(jù)庫DBA,IT,或者硬件工程師奔赴現(xiàn)場。最后我選擇去的是一位軟件工程師,他很快找出來原因,是客戶的線路沒有按照我們的電路圖制作,關(guān)鍵線一條線是斷開狀態(tài)。我相信他,不是因為他是我們公司最厲害的程序員的,而是他懂技術(shù)領(lǐng)域的比其他人要多。其實在整個項目開發(fā)過程,除項目經(jīng)理外,不可能每個人都會一直忙忙碌碌,無論是程序員,測試員,設(shè)計師,架構(gòu)師,你總會有一段時間無所事事,除非你同時加入很多的項目。希望你能在有空的時候關(guān)注下你的同事們在做什么?你能不能幫助下或者學(xué)習(xí)下。做了這么多年的程序員,我們可能都常有一個共同的擔心,這個擔心是什么呢?我們一個項目或者我們公司的的關(guān)注點,研發(fā)的中心開始轉(zhuǎn)移出我擅長的技術(shù)領(lǐng)域。我們害怕自己發(fā)揮不了作用和特長,害怕我們對公司沒有價值,也就是意味著我們漲工資的幅度要比別人小了,或者沒有工資加了。其實這個擔心還不是最要命的,最要命的是,我們要精簡團隊的時候,你才發(fā)現(xiàn)自己比較單純,只會測試或者編碼,很多平時做其他工作的同事都能做你的替代者,那么你就要被over了。
說了這么多的苦口婆心勸大家做一個海納百川的通才,大家肯定會問,我覺得我在我的team里面已經(jīng)算了百事通,萬事通了,我應(yīng)該怎么繼續(xù)豐富我們的技術(shù)領(lǐng)域呢? 夜深了,還沒洗澡,我在這里不打算多說了,我請問各位幾個問
題,希望可以為你指點方向:
1.你有沒有想過在公司里,你計劃的職業(yè)階梯的各個領(lǐng)導(dǎo)每天都在干什么嗎? 你的boss,你boss’boss…..?(拿破侖不是說過將軍和士兵之類的名言….)
2.你知道你的一個組的同事在干什么嗎,每天?
3.你知道哪幾種操作系統(tǒng)平臺,軟件開發(fā)平臺?你會通過別的路徑走到羅馬嗎?
4.軟件工程師你知道你要用的數(shù)據(jù)是哪來的怎么來的嗎? 數(shù)據(jù)庫管理員你知道你的數(shù)據(jù)是去哪里的嗎?為什么人家裝個oracle一下就搞定,我寫了一輩子連oracle的程序連個listener.ora都不會配。
5.程序員知道你開發(fā)的軟件,打包后是怎么安裝注冊的嗎? 那般客戶的是什么折騰你的寶貝軟件的嗎?
6.有沒有約個罵你的杰作的客戶出來吃吃飯,聽聽他的用戶體驗?
希望我們都能明白自己缺少的是什么?如果程序員想找一份工作,做一個專才足矣,如果想把事業(yè)做好你最好做一個通才。
第四篇:程序員是這樣煉成的10
程序員是這樣煉成的(10)-現(xiàn)在我們能做些什么?
前天在1+1<2里面談到的那個麻煩今天被解決了,最后還是以AB兩組雙贏為目,相互合作,兩組和二為一,共同完成項目,這個是最好不過的結(jié)局了。今天的文章是寫給一位網(wǎng)友的,因為他問了我一個問題:“現(xiàn)在我們能做些什么”?
其實我以前也常有這樣的感覺:茫然,麻木,不知道自己要做些什么?也不知道自己能做些什么? 有時候一天下來,雖然一直在忙碌不停,但是工作都會自動的膨脹到占滿我所有的時間,包括我休息的時間。有時候我常問自己為什么會這樣?是我們的項目計劃出了問題?還是我們的任務(wù)量在增加?都不是,其實是時間在我們身邊偷偷的溜走了。我以前做項目的時候有個壞毛病,項目的前80%的時間,被我浪費在所謂需求分析和程序設(shè)計上,(實際上沒有花這么多時間,花時間在偷懶上了),到了最后的20%的時候,時間已經(jīng)非常緊迫,這個時候我會發(fā)現(xiàn)編程的狀態(tài)完全不一樣。原因是,項目的dead line要到了,我們沒有機會拖延時間了,已經(jīng)沒有時間讓我拖著熬著不作出決定,沒有時間讓我去組織無聊的項目會議,沒有時間讓我去接聽一些莫名其妙的客戶電話,我更沒有時間呆坐在電腦面前思考如何去躲過這無聊的工作,我必須要全力以赴在第一時間完成工作。其實當這個項目完成時,我再回頭想想,并不是我在最后的時候“蓋茨附體”,“圖靈重生”,而是一種危機感和急迫感讓我的效率提高了兩三倍,讓我在一些徘徊猶豫的問題上花費的時間變少了。我相信很多軟件工程師都有這樣的感觸。事實很明顯,我們的問題是在于我們能做很多,只是我們都沒有做,我們只動嘴,卻沒有動手。
在我的公司有一個這樣的故事,某幾位同事負責(zé)一個項目,項目的進展一直都不是很理想,不久公司公布半個月后集體outing的消息(就是集體旅游,還是公費),為了保證項目的完成時間,一些項目拖延的員工需要駐守大本營,繼續(xù)奮斗。本已經(jīng)被我們放棄的那幾位同志,盡然在短短的半個月中,完成了1個月的工作量,提前的把項目完成了??磥硇∮钪姹l(fā)的威力真的很恐怖,可憐公司測試部的MM們,被那幾個家伙拖著天天加班:)。可見,有時候工作雖
然讓我們很頭疼,但我們不應(yīng)該把問題高高掛起,或者因為官僚作風(fēng),或者以召開分析會,技術(shù)評估的名義去拒絕問題,其實很多的困難都可以在我們的日常工作的空隙去完成的,沒準是一杯咖啡或者一根煙之后,我們就可以做出選擇。程序員應(yīng)該學(xué)會選擇和面對。
我們不是不知道我們能做什么,而是我們沒有學(xué)會面對和抉擇,沒有想去做。附: 有的朋友問我,為什么每次更新文章的時間都很晚,實在抱歉4-6月我有一個開發(fā)項目要完成,周一-周四一般都在加班基本上10點才能抵達小窩,請諒解。
程序員是這樣煉成的,每天深夜寫作,已經(jīng)過了十章完成了一半,雖然很累,謝謝一直支持和鼓勵我的同事和網(wǎng)友們,我不會半而廢的!
第五篇:如何成為高級Java程序員
如何成為高級Java程序員
給一個剛出社會的程序員新生一個建議,想成為一個優(yōu)秀的程序員,高級程序員,不能眼高手低,不能認為開發(fā)新項目,技術(shù)研發(fā)才學(xué)到東西,不能看不起維護系統(tǒng),不要以為自己懂的技術(shù)越多自認為自己很牛叉。假如你忽略了一個問題那么你永遠成為不了優(yōu)秀的程序員、高級程序員,那就是系統(tǒng)優(yōu)化。
一、JAVA。要想成為JAVA(高級)工程師肯定要學(xué)習(xí)JAVA。一般的程序員或許只需知道一些JAVA的語法結(jié)構(gòu)就可以應(yīng)付了。但要成為JAVA(高級)工程師,您要對JAVA做比較深入的研究。您應(yīng)該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、線程。如果可能,希望您對JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發(fā)現(xiàn)其實您想實現(xiàn)的很多功能,通過JAVA的API都可以實現(xiàn)了,就不必自己費太多的腦經(jīng)了。
二、設(shè)計模式。其實寫代碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個“好”字包括代碼可重用性,可維護性,可擴展性等。如何寫出好的代碼往往要借助一些設(shè)計模式。當然長期的代碼經(jīng)驗積累,只要您用心,會使您形成自己代碼風(fēng)格。相信您的代碼也比較符合代碼的可重用性,可維護性,可擴展性。但既然前人已經(jīng)給我們總結(jié)出了經(jīng)驗,我們何不踩著前人的肩膀前進?
三、XML?,F(xiàn)在的系統(tǒng)中不使用XML幾乎是不可能的。XML的功能非常強大,它可以做數(shù)據(jù)轉(zhuǎn)換、做系統(tǒng)的配置、甚至可保存您的系統(tǒng)業(yè)務(wù)數(shù)據(jù)。因此您必須了解XML,包括它的語法,結(jié)構(gòu)。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因為在我們一般的項目中,XML往往擔當系統(tǒng)配置信息的作用,您需要用這些API解析這些配置信息,開發(fā)完美的項目。
四、精通使用一種或兩種框架。像在《如何成為java初級程序員》中提到的那樣,“框架都會有許多可重用的代碼,良好的層次關(guān)系和業(yè)務(wù)控制邏輯,基于框架的開發(fā)使你可以省出很多的開發(fā)成本”。但我這里希望您能精通,更多的是希望您能通過框架的使用了解框架的思想。這樣您在開發(fā)一個項目時思路會開闊一些,比如您會想到把SQL語句與您的java代碼分開,再比如您會考慮把您的業(yè)務(wù)邏輯配置到XML或者數(shù)據(jù)庫中,這樣整個項目就很容易擴張了。
五、熟悉主流數(shù)據(jù)庫。其實真正比較大的項目都是有人專門做數(shù)據(jù)庫的,但往往很多項目要求作為(高級)工程師的您也參與數(shù)據(jù)庫的設(shè)計以及SQL的編寫。所以為了更好的為國家做貢獻,建議您還是多了解一些主流數(shù)據(jù)庫,比如SQLSERVER,ORACLE,多連接SQL和存儲過程以及觸發(fā)器。如果您不是“科班”出身,您還需要補充一些數(shù)據(jù)庫原理方面的知識。
六、精通一種或兩種WEBServer。盡管我再《如何成為java初級程序員》里講過它,我還是要強調(diào)您要精通一種或兩種。因為作為java工程師,特別時想成為高級JAVA工程師的您,您不可避免地要部署您的項目到WebServer上,而且只有當您精通一種WebServer,您才可能最大限度地使用它的資源,這往往可以節(jié)省很多時間和精力。
七、UML。我知道您肯定想成為高級工程師,因此您有必要了解或熟練或精通UML,這取決于您有多大決心想成為高級工程師和項目經(jīng)理。在比較正規(guī)的開發(fā)團隊中,UML是討論項目的交流工具,您要想做一個軟件工程師,您至少要能看懂,您要想做高級工程師,您要能通過它來描述您對項目的理解,盡管這不是必須,但卻很重要。
八、站在高度分析問題:這不是一個知識點,也不是通過書本就能學(xué)得到的。只所以提到這一點,是因為我比您還著急,我希望您更快的成為一個高級的軟件工程師,而不是一個一般的軟件工程師。希望您在工作中多向您的系統(tǒng)分析員、需求分析員、系統(tǒng)設(shè)計員學(xué)習(xí),多站在他們角度上去看您在開發(fā)的項目。在最好在項目之初先在您的腦海里對項目有個大致的分析、設(shè)計,然后和他們進行比較,找找差別,想想缺點。
九、工具。與在《如何成為java初級程序員》里提到的不同,您在這個階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA,但能可能對ROSE,Together要多了解一些,因為您要畫UML了。不要再對Dreamweaver等HTML編輯器情有獨鐘了,那些JSP頁面讓初級程序員去寫吧。
1、具有1-5工作經(jīng)驗的,面對目前流行的技術(shù)不知從何下手,需要突破技術(shù)瓶頸的可以加群。