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