茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1675441 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
HoneyMoon_Day3_00055.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

爪哇咖啡屋 : [分享]學習Java,提升職場競爭力

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]學習Java,提升職場競爭力
學習Java,提升職場競爭力

應付跨平臺需求,Java是最普遍的選擇

Java的領域廣泛,初學者面對一堆生硬的專有名詞,頓時摸不著頭緒,不知該從何開始。為避免走冤枉路,減少摸索的時間,7位專家與你分享學習經驗,並搜集最完整的Java好書及網站,為Java學習之路鋪設康莊大道。


根據Gartner、IDC等多家分析機構的說法,Java與.NET已呈現五五波的態勢,雙方想消滅對方都是不可能的事。不過兩者的立基點有些差異,.NET目前專注在Windows系列平臺;Java則可開發多種平臺的應用程式。雖然現在已可透過Web Services整合異質性平臺,但在Linux、Unix、Mac OS甚至手機Symbian等作業系統的應用,或企業級多層式應用架構的程式,從開發時程、穩定性及互通性等角度考量,Java技術仍是首選。


不過,Java的領域很廣,有興趣進入Java領域的初學者,面對一堆生硬的專有名詞,往往覺得摸不著頭緒,而不知從何開始。如果想學手機程式開發,卻買本JSP的書,那就大錯特錯了!


為避免新手走冤枉路,並縮短摸索的時間,我們特別採訪王森、林上傑、林康司、耿維德、朱仲傑、蘇國鈞、王建興及葉秉哲等多位Java專家,與大家分享學習Java的經驗。雖然他們都說自己不是專家,不過綜合他們的經驗,可發現興趣、毅心、不拒怕英文及多看好的程式範例,是學習程式開發的不二法門。事實上,學習程式開發的方法與心態,放諸四海皆準,學習Java並沒有什麼獨門祕訣,.NET也可以套用類似的邏輯。


學習Java的方法很多元,大體包括:買書、補習及上網找資源。教育訓練是最速成的方法,好處是講師會竭盡所能在短時間之內,把Java領域的畢生所學傳授給學生。


有基礎的開發人員最普遍的學習方法就是買書,不過有關Java的書百百款,品質也參差不齊,「買對書」變得很困難,因此特別請專家推薦了20多本好書,其中以買書狂昇陽教育訓練中心經理王森推薦居多,並提供小小書評,作為讀者選書的參考。


網站也是很重要的資源,其中昇陽網站是很好的學習管道,不但包含所有Java技術有關的介紹、工具及規格書,甚至還有自我教學(Tutorial),只要不拒怕英文,昇陽網站有最新、最完整的Java資訊。


英文能力比較差的人,可選擇IBM Developer Works中文技術網站,有許多內容詳盡的中文技術文章。JavaWorld.com.tw在2003年6月正式成立,目前已成為臺灣最大的Java論壇,集結許多Java高手分享學習Java的心得,並熱心回答網友的問題,是Java社群交流最好的園地。


寫程式不需要家學淵源

什麼時候開始學Java真的很重要嗎?資訊界不似音樂或舞蹈,不論年級和輩份,有心隨時可以插隊。筆者訪問王森、林上傑、林康司、耿維德、蘇國鈞、朱仲傑、王建興及葉秉哲等曾在Java2大會擔綱的專家,發現高中、大學以後,才開始接觸電腦的人不在少數,重點在於熱誠。


每所大學因為教學風氣及教授擅長的不同,所以未必會開課Java課程。蘇國鈞即表示臺大電機系僅教授資料結構及演算法等理論,程式語言是自學的。林上傑透露,元智大學教學的方向,著墨微軟的技術居多,之所以學習Java是學長帶學弟,私下傳承的結果,只要有興趣,環境並不會阻礙學習。


鈺新科技副總經理耿維德從大學到研究所都念機械,所學領域雖與程式無關,只因對電腦有興趣,而在社團自學C語言,在交大機械研究所時,也持續接觸程式開發。為人所熟知的資訊作家侯捷,可是30歲以後才開始學C和C++,所以重點非幾歲開始學、是否科班出身,而是學習的方法和心態。


昇陽推SAI希望提升校園教授Java的品質

Java剛出現的前幾年,學校開設Java課程的比例比較少,此外,科系也有差別,第二類組資訊工程系開Java課程的比例較高,則資管系則未必會將Java列入必修課程。


Java剛開始進入校園時,上課的老師及教授也未必做好準備,因此教學品質不一,歷經幾年學習及調整,才能逐漸上軌道。為協助學校提供品質更好的Java課程,昇陽今年針對國內大專院校推出SAI(Sun Academic Initiative;昇陽電腦學術種子領航計畫),目前共計有80多所學校參與。SAI由昇陽提供教師的教育訓練,教授Java入門課程,學校授課時則提供原廠教材,僅收取書本費,希望藉此提升Java的教學品質。


想走得長遠,就要重視基本理論

電腦進修的管道很多,因此非本科系畢業的開發人員,在職場也佔不小的比例。資訊相關科系出身的開發人員,因為受過紮實的基礎教育,寫程式的習慣往往比較正規,較少出現以a、b、c宣告變數的情況,但不代表半路出家的開發人員就一定比較差。


耿維德依過去在恆逸資訊教學的經驗分析:「科班與非科班技術上的差別,一年的時間就可以追上。」但觀念上的差異,兩者是平等的,因為資訊相關科系的人才,對物件導向的觀念也未必是正確的。


艾群科技專案研發部資深工程師朱仲傑表示:「資訊科系的開發人員,因為曾接受演算法、資料結構等理論基礎的正規教育,一開始的確有優勢。」其他科系轉戰程式開發的人才,若只有進修初階課程,即投入程式開發工作,初期難以確保開發的品質,不過,但隨經驗的累積,這樣的差別將逐漸消失。


王建興認為:「在解決特定問題手法,可看出兩者的差別。」資訊相關科系在求學階段,必須接受計算機概論、多執行緒、作業系統、硬體架構、演算法及資料結構等背景知識的洗禮,進入職場後無論還給老師多少,只要腦子裏還存有基本的概念,就對解決問題有幫助。例如演算法是前人解決問題的經驗,當你知道前人解決過相同的問題,而且解得那麼漂亮,就不必自己從頭摸索起。


理工科系多少具有基本的概念,文法商畢業的學生雖然可能沒有基礎,不過目前多數教育訓練中心的電腦課程,會教授基本的計算機概論,但王建興和葉秉哲認為:「那只是一個開始。」其實很多科班出身的人,早在學分修完之後,就把生硬的理論拋到九霄雲外,即使是這樣,還是照樣可以寫程式。


不過,葉秉哲認為:「如果要在資訊界走得長遠,理論是必要的功課。」懂得這個道理的人,就會回頭重拾課本。而非科班的人只要有心,也可以自行涉獵相關資訊。所以重點不是科班出身與否,而是必須認同「理論」的重要性。


邏輯概念及求新求變是生存之道

真正適合投入程式開發與否的關鍵,在於邏輯概念及喜歡追求新知的精神。程式開發著重邏輯思考,不過,邏輯概念與生俱來,無論是否為資訊相關科系畢業的開發人員,都存在「暴力法」開發手段,才致使應用程式暗藏難以除錯的陷阱。


何謂「暴力法」? Borland資深產品經理李匡正曾舉為企業除錯遇到的例子:民國年與西元年的轉換。正確公式是「民國年+1911=西元年」,但他協助客戶除錯時,看到的寫法是「if 民國年=87 then 西元年= 1998…一路寫了20年」。只要語法正確,編譯器並不會認為有問題,系統執行時,當然也會得到正確的結果,直到第21年,才會出現無法預料的狀況。所以邏輯概念不夠清晰的話,最好選擇程式開發以外的資訊工作。


另一種不適合程式開發的類型,是求穩定、不適應改變的個性,曾有會計老師在推廣教育中心,遇到學生是薪水不錯的資訊工程師,他想轉學會計的動機,是因為資訊科技日新月異,永遠要追趕新的技術,讓他覺得疲累;而會計理論學一套就可以用一輩子,的確比較輕鬆。


相較於上述的例子,蘇國鈞在資策會看到的是相反的思考,有空服人員不想當萬年空姊,來學一技之長;也有金融界的職員厭倦一陳不變的生活,希望轉換跑道。


王建興認為:「軟體的本質就是改變。」開發人員的本性必須喜歡求新求變,否則不適合走這一行。其實,資訊原理的變化很慢,許多新技術的概念是一樣的,例如分散式系統的理論很早就出現,在近幾年各種成熟的技術才普及到企業。雖然新技術層出不窮,但企業對技術的導入很謹慎,所以在業界出現成熟的案例之前,資訊人員對新科技的資訊,倒也不必過度焦慮。


結合專業知識,半路出家不輸科班出身

蘇國鈞表示,非資訊科系畢業的開發人員不必妄自菲薄,在教育訓練中心,有許多文法商畢業的學生,為了興趣或工作考量,而進修程式開發;也有在職人員,為求第二專長學習電腦,以提升自身在職場的不可取代性。


非本科系出身的優勢就在擁有本業的專業知識(Domain Know-How),曾有位醫生因為既有的醫療系統始終無法符合要求,而決定前往資策會學習Java。在課程即將結束之際,醫生與同一組的學員,共同開發一套小型醫療系統,在結業發表會中展示,頗受廠商的矚目。其實他們設計的畫面並不精美,但醫生結合專業領域的知識,開發出來的系統,完全切中使用者的需求,這就是資訊科系出身的開發人員,最欠缺的部分。


朱仲傑表示:「資訊科系技術能力強,卻未必了解使用者的需求。」即使系統分析階段與客戶訪談次數頻繁,開發出來的系統,仍可能無法完全符合客戶的需求,不是邏輯或公式錯誤,就是以開發人員的角度設計系統,致使系統介面及操作流程都不夠親和流暢。


所以非資訊相關科系或其他行業轉型的開發人員,應掌握擁有自身領域的專業知識的優勢,站在使用者的角度,開發真正貼近需求的系統。相對的,本科系畢業的開發人員,則最需努力補強實務面的專業知識。


Java從何學起?

在大學一年級最常開設的入門程式語言課程,通常是C或Pascal,因此許多人認為學Java之前應先學C,其實C與Java並不相同,反而與Visual C++比較類似,但也不沒必要先學C++。


很多人會拿 C 和 Java 相比較,Java架構在 JVM 上面執行效能很難與 C 抗衡,但是,簡單容易上手就是Java的優勢。就如王建興所言:「Java與C、C++相較,操控硬體的能力相當,但Java的開發效能提升許多。」


蘇國鈞表示:「現在國外已有大學將Java設為電腦語言先修課程。」可見以Java作為程式入門語言,並無不妥。耿維德表示:「真正入門的障礙是物件導向的觀念。」


在學Java的過程中,一定會帶到物件導向程式設計,很多人看到「物件導向」就覺得是很抽象的專有名詞,而產生抗拒心理,朱仲傑解釋:「其實物件導向是很生活化的概念,周遭的每樣東西都是物件。」如果用生活化的角度思考,其實物件導向並不困難。


至於從何學起,Java是一個平臺,包含很多技術,耿維德表示:「學Java沒有捷徑,但是有順序。」先從基本的語法、物件導向程式設計、Web、EJB最後是Design Pattern。其間也可根據專案所需的技術調整,正如臺灣最大的Java論壇JavaWorld中,開放原始碼版主Jini在「給新手的一封信」中所言:「桌面應用程式就鑽研AWT、Swing;Web應用程式就鑽研JSP/Servlet;要開發PDA或手機應用程式,就鑽研MIDP、J2ME。」文⊙李延華
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]如何成為Java高手
如何成為Java高手

書 電腦書很多,但好書不見得多

市面上的電腦書多如牛毛,有原文、中文甚至原文書中譯本,但不見得都是好書,尤其是譯書品質最沒保障,常常是每個字都看得懂,連起來卻不知道在說什麼。如何在茫茫書海中買對書呢?為了避免讀者花冤枉錢,我們特地請Java專家推薦好書,特別感謝有「行動圖書館」之稱的王森提供最多的書目。


雖然有很多推薦書都是原文,不過如朱仲傑所言:「學電腦要突破心理障礙。」其實原文書的語法及用字未必困難。統計Java專家推薦書,「Thinking in Java」是被點名最多次的書。事實上,王森推薦的書,也有原文書的中譯本,他個人認為:「如果作者翻譯得很好,何必買原文書呢?」。


教育訓練講師的品質是關鍵

現在很多的電腦補習班都有開設Java課程,如果要找比較正統的Java課程,除了昇陽本身的教育訓練中心外,其他較知名的還包括恆逸資訊及資策會,也是昇陽ASEC(Authorized Sun Education Center)授權的教育訓練中心。昇陽教育訓練中心、恆逸資訊及資策會,教授Java使用教材及收費都完全相同。其實選擇教育訓練中心的人,未必是初學者,根據王森的經驗:「許多Java開發人員到昇陽教育訓練中心上課,是因為想導正觀念。」


原廠的教材有其神秘度,也是學員願意花費高額成本進修的原因,此外,最重要的條件就是講師的品質。王森表示:「昇陽對講師的要求很高,回收的問卷評分必須在水準以上。」此外,昇陽重視學員概念的釐清,雖然Java號稱跨平臺,但王森會構思一個簡單的錯誤示範,讓學員了解設計不佳的Java程式無法跨平臺。業界普遍的概念是Java效能較差,王森也會展示Java效能超越.NET的範例。


曾任職於恆逸資訊多年的資深講師耿維德表示:「上課時,會先請學員自我介紹,以了解學員的需求。」此外,物件導向的觀念也是重點。資策會講師蘇國鈞也表示:「資策會強調客製化,養成班甚至根據學員的需求,針對IBM及Oracle解決方案開課。」綜觀以上的說法得到的結論,講師才是選擇教育訓練中心的關鍵,因為教材相同,可以區隔品質的,就只有傳道授業解惑者的功力了。


依賴工具,就被工具操縱

Java與VB及.NET最大的不同,在於Java工具的選擇很多元,其實只要有JDK搭配文字編輯工具,就可以開發Java程式。那麼教育訓練中心上課時,會選擇哪一種開發工具呢?筆者心中設想的答案,是市佔率第一的JBuilder。


耿維德表示:「我們嚐試過在課堂上搭配開發工具,發覺依賴工具的班級,程度特別低。」因此恆逸資訊在教初階設計時,使用「記事本」,各種進階的Java課也會搭配不固定的工具。工具包裝了技術,才能簡化開發的困難度,工作的時候,使用工具是為了加速開發。但是在學習的過程,使用工具就看不到技術真正的面貌,應該在能力提升之後再挑選工具。耿維德強調:「人是要操縱工具,而非被工具操縱。」如果一開始就依賴工具,就會被工具綁死。


準備認證的過程,勝過認證的重要性

蘇國鈞觀察今年Java2發覺:「今年購買准考證的人明顯變多了。」可見Java認證已成功推廣到業界。事實上,業界注重的是實力,筆者訪問過的Java高手中,除了朱仲傑,大概都沒考Java認證。


當能力已被肯定,考不考認證其實意義不大,但對於求職的人來說,認證就像學歷一樣,可以為當事人的能力做某種程度的背書。王建興也抱持相同的看法:「可將認證作為學習的目標,驗證學習的成果。」葉秉哲認為:「意義就像全民英檢,是學歷也是自我肯定。」


耿維德表示:「過程比認證重要。」以認證為目標,作為努力的動力,準備認證的過程,可以獲得更多。考過Java認證的朱仲傑表示:「準備認證的過程中,我才發現自己還有觀念不正確的地方,Java某些部分的設計根本不是讓我這樣用的。」


網站善用免費的網路資源

套句洪志鵬的名言:「沒錢有沒錢的做法。」事實上,訪問多位Java專家之後,發現他們學習新知的途徑其實很「廉價」,就是上昇陽網站閱讀技術文件,或者看國外的論壇。王森說:「Java技術都有公開的規格,要理解技術原理並不困難。」甚至可以寫程式實驗,進一步證明自己的想法是否正確。


耿維德表示:「昇陽網站是很好的資源,包含所有Java技術有關的介紹、工具、自我教學(Tutorial)及規格書。」看完技術簡介和規格,利用自我教學印證之後,概念就會很清楚。雖然英文的內容對臺灣的使用者有些障礙,但是用詞並不艱澀,所以不難理解。耿維德甚至很少買書,他表示:「所有第一手的資訊一定都是英文,而且一定沒有書。」技術要有人消化過才能出書,那最少也是半年前的技術。


如果擔心自己英文程度不好,現在已中文的Java論壇JavaWorld,內容囊括所有Java技術、工具、書籍及開放原始碼的討論,是凝聚Java社群力量的好地方。對於不知如何入門的初學者而言,JavaWorld絕對是進入Java領域的踏腳石,至少,筆者人生第一個Java的Hello World,就是靠JavaWorld完成。文⊙李延華


Java認證介紹

考Java認證必須先向昇陽授權的教育訓練中心購買准考證,再上網至昇陽全球認證中心Prometric,根據准考證右上角的編號,線上報名並預約考試時間及地點,Prometric收件後,會傳真確認書結使用者,在約定時間至指定考場考試。過去曾出現仿冒的准考證,使用者一定要認明准考證上的昇陽教育訓練中心戳章及鋼印。Java認證包括SCJP、SCJD、SCWD、SCBCD、SCEA及SCMAD等六個,其中 SCJD及SCEA是最難考的兩個。


SCJP(Sun Certified Programmer for the Java 2 Platform):考Java程式設計語法。


SCJD(Sun Certified Developer for the Java 2 Platform):依考題擇日交出實作程式,為避免程式非自行撰寫,必須解釋程式內容。


SCWCD(Sun Certified Web Component Developer for the Java 2 Platform,J2EE):考JSP及Servlet。


SCBCD(Sun Certified Business Component Developer for the Java 2 Platform,J2EE):考EJB規格。


SCEA(Sun Certified Enterprise Architect for the Java 2 Platform,J2EE):考物件導向及J2EE,必須製作設計圖及文件,並回答申論問題。


SCMAD(Sun Certified Mobile Application Developer for the Java 2 Platform,J2ME):考行動裝置應用。


臺灣最大的Java論壇-JavaWorld

JavaWorld的前身是JSPtw網站(jsptw.com),創始人林上傑和林康司,原本是國內BBS的Java版版主。最初建置JSPTW單純是為了介紹林上傑的第一本書「JSP技術手冊」,並回答讀者的問題,等於是這本書的售後服務,後來因為設備及網路環境問題而停機。


沒有殼的電腦,拼湊一個Java園地

後來林上傑有鑑於BBS的Java論壇分散,且不好管理文章,重複的問題太多,又難以分類及搜索,再看看對岸大陸有很多專業的Java網站及論壇,因此興起成立臺灣Java論壇的念頭。林上傑找來同校的學弟林康司一同架設網站,最初使用jive架設論壇,後來改用大陸的Java論壇程式Jute。


架設及推廣JSPtw的過程非常艱苦,林上傑自費購買論壇程式、網址及一臺Pentium III 450MHz處理器、448MB記憶體,沒有機殼的電腦,再利用元智大學的學術網路架設網站。架設期間林上傑、林康司與遠在美國的Jute軟體開發人員Rainman,利用半夜三方對談,持續一個星期趕在2003年6月,JSPtw終於以Java論壇的姿態重出江湖。


苦心挖角撐起一片天

剛開張時名氣不夠,上論壇討論的人數很少,知道的Java專家也少,在論壇分享知識的站友比例不高,多是為了尋求解答,但Java領域很廣,遇到不熟悉的Java領域問題,林上傑和林康司只好親自查資料回答。


為長久經營下去,林上傑開始挖空心思,挖角昔日BBS上Java版熱心回答問題的高手,林上傑透露,當初開放Jute的悄悄話功能,就是為了「釣」到BBS上頗負盛名的Jini,後來Jini真的點選悄悄話功能,與林上傑取得聯繫。Jini再介紹JiaYun,又有Worookie的加入,他們就是最早加入JSPtw的三大元老。


後來又陸續延攬許多在BBS上活躍的高手,請他們在JSPtw分享心得,這些專家雖然熱心,卻不見得希望曝光,也許是「人怕出名豬怕肥」疑慮,不願公開真實身分,所以只顯示暱稱,目前可以透露的是,browser就是林上傑;koji是林康司;Jini是松凌科技(Softleader)技術總監李日貴;JiaYun是淡江大學資工系的學生,也是JSPtw上唯一的女性版主;Moliwang即昇陽教育訓練中心經理王森;Tempo是隨想行動科技研發經理馮彥文;Yoshi則是輔大資訊工程系的學生;piggy是艾群科技專案研發部資深工程師朱仲傑。


洪志鵬的協助使JavaWorld沒有法律問題

今年三月JSPtw獲到臺灣昇陽及洪志鵬的支持,將硬體升級,AMD2500處理器及1GB的記憶體,效能大幅提升,更將網域名稱改為www.javaworld.com.tw,正式更名為JavaWorld。


昇陽對Java的商標管制嚴格,任何網站使用「Java」字眼,或Duke圖案都會觸及法律問題。林上傑表示在JSPtw時期,已收過昇陽的律師信,JavaWorld可以順立成立,並獲得更好的硬體支援,都要感謝洪志鵬的協助。


規範是為了維護論壇品質

JavaWorld在眾多好手的加入下,半年的時間即具規模,目前總會員數約13000多人,平均每日瀏覽人次為6700人,平均瀏覽頁數為66787頁。事實上,加入的會員人數不只如此,因為超過3個月沒上站,就會被刪除帳號。林上傑認為網站並沒有設限,因此希望站友珍惜自己的帳號,善用網站上的資源,而不是提出問題,取得解答之後就不再上線。


為了掌控論壇的品質,JavaWorld訂了許多規範,例如先查看精華區的文章,避免重複性的問題一直出現。Jute有全文檢索功能,為了方便搜尋,標題要明確讓他人了解問題,不能只寫「請問」、「有問題請教」之類模糊的字眼,如此,有心提供協助的熱心人士,可節省點選文章的時間。此外,內文應詳述執行環境,例如JDK版本、作業系統及應用伺服器類型等,越詳細的資訊,才有利於問題的解答。


未來會有商業模式

JavaWorld是架設在學術網路上的論壇,所以目前沒有商業上的行為,林上傑表示:「未來會有商業模式出現,但並不希望從使用者身上獲利,將朝向廣告贊助之類。」有了經費,可以支持論壇的經營,用以提升論壇的設備,也可以支付熱心分享技術的作者稿費,對論壇的品質,是正面的發展。


今年8月JavaWorld獲得Atlassian的許可,拿到Confluence的非營利授權,共200個帳號,開放文件分享wiki系統,不錯的文章及技術文件,可以作更妥善的分類、整理與排版。因為技術是持續的演進,隨著的版本的不同,會有所修改,wiki的好處是可記錄技術的演進,透過大家的努力持續修改內容,且可比對歷史記錄,了解前後的差異。


Wiki的精神是信任每個人,理應讓大家共同維護文件,不過,一方面因為Atlassian只提供200個帳號,另一方面,臺灣論壇的使用者,多是尋求答案居多,無私貢獻的人較少,所以只提供200個帳號。


論壇以討論為主,未來,針對有貢獻的使用者及版主群,林上傑和林康司將開放Blog,可建置個人的入口網站,提供有關Java的訊息,心得分享及軟體的介紹與下載。成立JavaWorld的林上傑和林康司,都只是六年級後段班的大男孩,結合許多隱身在各個角落的Java愛好者,不求名利的無私奉獻,而成就JavaWorld在短時間之內,成為臺灣最大的Java論壇。對許多Java開發人員而言,JavaWorld是很有幫助的交流天地,站友在社群中學習,也應適時回饋,共同促進論壇的成長。文⊙李延華
下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|