發表文章

當java程式設計工程師心得(外傳1-帶新人寫專案心得)2010-滿2年

   從上星期開始來我們公司的新人也過了適應期囉~所以也就開始接專案了!!重點來了...由我帶= =+,呵呵,讓我帶就慘了XD,目前專案完成度約40%,但開發時間只剩一半。 對於剛從大學畢業然後進到公司當開發工程師的人,個人有幾點小小建議: 1.新人進公司寫程式有兩種:   (1)進開發寫專案。   (2)學維護,慢慢寫小功能。 2.必須拋棄學生時代寫程式的寫法,學校通常只要求你要寫得出來,會跑就好,但是在業界會要求你寫的程式要著重維護性,所以每間公司都有自定的規則寫,為的是寫出來的程式大家都可以很好維護,而不需要去幫你修一堆的bug。 3.畢竟剛畢業進到公司,對於專案的流程與程式的撰寫以及整個專案分析完的架構都會霧煞煞,但是這是新人必經的過程,我~當然也是這樣過來的XD,但是也是要靠自己多問,多看、多想,我一開始也是先試著把自己寫的程式由小到大,慢慢的把整個server的架構畫出來,才了解自己在寫什麼,當然一開始一定不知道程式整個架構長怎樣,因為公司會給你一個基本的元件給你使用,一開始都只要會用不需要懂,用了就對了。 4.如果你進去公司是學維護,是讓你先熟架構,那你可以穩札穩打的把公司維護的系統慢慢學下來,不過維護通常都是收拾前人留下的爛bug...程式也不好改,因為前人也是新人過來的,所以就...惡性循環啊~ 5.如果你進去就是開發,那你賺到了,因為可以學到很多,而且不用收拾前人留下的爛bug,不過也不要自己太閒留爛bug給後人修。 6.當你是開發工程師剛參與寫專案時,壓力大是一定的,有壓力才會成長,但一定要可以很快的理解公司給你的元件如何使用,不懂就要快問,不能低著頭猛寫,或許你遇到的問題,別人一看就知道如何解決。 7.盡量把物件導向的觀念建立起來,很多人在大學時都學過物件導向,但是真正在開發實務上都很缺經驗去分析物件,不過久了自然多看多學,就會了^^"    最近因要接手機開發專案,因此把之前寫的一些java server交接給同事做維護,同事花幾天看我的程式只說:「你的server每個都長一樣,架構完全一樣,懂一個等於懂全部了,一看就懂」 我此時心裡想:「當時我也是被磨出來的= =」    後來他交接完馬上就有被要求加新功能,也只花一星期就寫好了,因為在寫的當時都有留彈性,所以架...

當java程式設計工程師心得(3)2010-滿2年

   公司最近面試了幾個新人下星期要進來,才突然驚覺,已經當了二年工程師了,想起二年前我還只是個只會用java的陣列寫遊戲的剛退伍夜校大學生= =" 二年過去真快,寫過10幾個專案,20幾個server,有大有小,有難有簡單。 在這篇就分享一下第二年的心得吧,也列幾點可以提升自己coding能力的方法。 1.拿自己比較會的程式來翻寫別的語法程式,把別的程式拿來改成java,這是基本要求吧,而且我發現這樣可以讓自己了解別人在寫什麼,為什麼這樣寫。例如:我會java,我看到了別人寫了一個method或演算法是c或php程式,而你可以把他整段翻成java執行結果也一樣。 2.多想些小題目來寫,但看到題目不要先急著寫,先想過一次可以有幾種寫法,各有什麼好處。例如:多去javaworld論壇或知識+看看有什麼題目,不需要去回答,若是你自己覺得寫的很棒,你也可以貼出來讓大家比較或批評,這樣自己才知道有哪些可以改進的地方。 3.當你寫的是比較大的專案,這時並不是要去考慮各個method裡的邏輯要怎麼實作,而是先把你整個大系統要拆成幾個功能,整個架構要怎麼劃分,流程如何跑,所有的功能可以先定義成一個類別名稱,或者是一個method名稱,這樣是加速你確定整個系統大流程是對的,而不會導致你邊寫邊想,寫好3分之2才發現,後面寫不下去因為流程有錯,架構有錯。 4.培養自己debug的直覺性與解決問題的能力,我在知識+發現有很多人對於程式所拋出來的錯誤訊息無法判斷是什麼錯,也不會解決問題,連有excepiton的錯都不能解決了,要是遇到整個server某一段邏輯有錯,倒致結果是錯的,也不會有exception,那不就挫咧旦XD 5.多與人分享寫的程式,因為這樣你可以知道自己寫的是否有問題,而你或許會收到對方給你更棒的程式元件,或是寫法,當覺得對方的程式好用,就可以學來用或是拿來套,但是要記得當程式是被包成元件時,收到程式並不能直接拿來改,這樣會造成以後原作者又有更新時,你的程式就不能套新的元件,拿到元件需要用繼承或是把他new在自己另外寫的一個類別裡,重新包過,這樣對你自己的程式才有最大的擴充性。 6.或許你看到這裡會覺得上面很多廢話,但等你實際都去做之後,能力還沒有提升,那我也沒辦法XD,有提升的話記得買飲料請我啊XD 共勉之!

當java程式設計工程師心得(2)2009-滿1年

 從事java程式設計已經滿一年了,幾乎一整年都在寫java,從一開始剛進只會基本的迴圈、判斷式、陣列,跟一些些的資料結構,連執行緒都半知半解,雖然考過SCJP與SCWCD但真正的寫專案倒是進公司才真正跟同事合作寫一個專案,我負責整個server所有的撰寫,另一位同事寫client,還有一位leader幫我們分析整個專案如何開發以及解決實務上奇怪的問題。     記得之前剛發現第一篇心得時,才剛進三個月,剛要接第二、三個專案,現在已經完成近十個專案了,遇到很多實務上的問題,還有程式真正上線時的恐怖= =,測試時沒測到的bug,程式一旦上線,就要待命隨時出現bug時,連半夜也會接到電話,要爬起除錯,而且要時間內修正並更新,所以啊~,寫就要細心,連一個變數宣告錯都會有可能造成是潛在的問題。     程式在主管的帶領下,我學到了很多技術,還有架構,最重要的是觀念,程式被要求一個class不能寫超過500行,而且程式要很直覺,別人看了很容易懂,這都是為了程式可以隨時丟出來給別的人接手維護,但有的人還是會追求寫很複雜的程式,只有自己看得懂= =,而且也不知道什麼時候會出問題。     寫到現在,覺得啊~撰寫技巧可以不斷的學到,而且寫到後來大家都會一樣強,差別在於觀念,觀念不好,會讓自己的程式難以交接給別人維護,程式太複雜,自己久了回來看也會忘了在寫什麼,還有數學要好= =,我就是數學爛,在寫一個專案時要用到大量的數學運算去推演算法,推了一個星期推不出來= =,後來主管直接找我們開會,當場花一個小時寫出來,所以數學真的要好= =...     也沒什麼可以分享的啦,只是一些心得,最近也在寫別的程式了,花了一個月學iphone的objective-c,一開始剛看到程式有的傻眼,語法超不熟的,但也漸漸的習慣了,總之就把java會的通通拿過來用就對了XD,然後再查一下api就差不多了,目前也在開發iphone的專案,iphone的缺點就是,api都是英文,而且很爛,範例少,解釋有點難懂,其實是我英文也爛啦= =,我都十個單字看得懂七個就用猜的了,剩下就是把method拿來試試看跟java的是否一樣,一樣就用了,再注意一下那個method的api有沒有寫note,那都會寫那個method在什麼情況下...

當java程式設計工程師心得(1)2009-滿3個月

   這個月初滿工作試用期三個月了= =,也完成了第一個線上遊戲server,但…上個星期主管又丟兩個線上遊戲server下來了~只能拼命的寫了…,工程師真的是不歸路,忙啊~有興趣要入行的請考慮清楚= =+ 有空再來分享一下寫線上遊戲的心得~ 補充: 2012/06/03 這篇其實是剛入行幾個月時寫的,原本的標題是"最近真忙~冏",今天看到有人在問為什麼沒有標題是"當java程式設計工程師心得(1)"的文章,就是這一篇,呵呵~我特此將標題修改,其實在發表這篇之前我退伍也快一年,一直在當米蟲,後來有一個機緣才進入了遊戲開發行業~ 2013/11/16 我現在終於有空了,來補一下上述提到"有空再來分享一下寫線上遊戲的心得",現在回想當初在進入公司之前,其實有去面試一間當年做yxhoo地圖的公司,有考筆試(一堆sql語法,題目全英文),筆試跟面談都不順利,後來又過了幾星期接到了大學時代的同學打給我問要不要到他公司上班,我才開始了程式設計師之路,在試用期的三個月裡,發生滿多事的,因為我大學剛畢業退伍回來,java也學到皮毛而已,網路程式完全不會,進公司後第一個星期是叫我看書,跟看前輩寫的server,當然囉,看得懂才有鬼XD,第二個星期時,主管跟我說試用期的最終測試就是我要獨立完成一個4人傅奕game server,壓力當然非常大,第二個月底時,我用前輩寫的game server(爆多bug)改成主管要寫的專案server,某一天主管要我把server傳給他,他測試完並一行一行看我寫的程式,就把我叫過去臭駡一頓,問為我什麼拿之前的改,當然結果就是退回重寫,我的同學兼leader也被我害到,最後主管講明「三天內給你重寫一個game server,行不行?給我一個肯定的回答」,我沉默了,此時我的leader擠出了一句話:「讓他試試看,不行再跟主管您說」,主管說:「行就行,不行就不行,三天後我要開會demo給老闆看」語畢就轉身回座位,我就問了一下leader「怎辦?」,leader「只能做啊,試試看吧」。     重寫的第一天,我把game server整個流程打掉重新思考要怎做,然重寫架構與流程,之後開始補method,method裡全都留空,只print method的名稱並加上一些timer跳下一個流程,在第一天就...

當java程式設計工程師心得(0)2008-入坑

我是出生成198x年代,一個鄉下三合院裡的赤腳小孩,家裡有三兄弟,我排行老二,小時候5、6歲時,每天醒來就是找附近小孩玩紅綠燈等等遊戲XD,因為沒穿鞋又愛四處亂跑,常常被竹子乾掉的枝刺傷腳==,因為家裡窮,所以我沒讀幼稚園,第一個學會的字就是"幹",哈哈哈~      其實小時候我家裡窮,買不起玩具跟零食,但是常常看到鄰居的小孩,他們的外婆都會買零食跟玩具,中秋節還買煙火給他們玩,非常羨慕別人,但是小時候什麼也做不到。記得小時候有次,我撿了鄰居小孩玩壞掉的玩具,丟在附近一個橋下,我看到了就爬到橋下去撿上來,結果剛好鄰居小孩就看到,找他外婆過來說我偷他的玩具,當下我非常不知所措,只能站著被罵,壞掉的玩具也被拿回去。      讀了小一時,因家裡因素,我從鄉下搬到了城市,發現鄰居小孩都會穿鞋,只有我喜歡打赤腳XD,到了新家,也開始了我新的人生,不過家裡窮還是沒改變,記得小時候一直到我國中,家裡永遠有做不完的代工,每天都只能在家裡幫忙做代工,看著外面在打鬧玩遊戲的小孩,自己不能出去玩,一直跟媽媽抱怨,但媽媽總是說沒做沒錢,之後又低著頭繼續做,媽媽常常為了趕工做到半夜二、三點,早上一早又起來載我們三兄弟去上小學,上小學最開心的一件事就是,可以吃媽媽親手做的便當,在當時吃媽媽帶的便當的小孩好少,用手指都數的出來XD,後來小學老師知道我家境不好,小學老師每天都會把中午大家選剩下的營養午餐打包給我帶回家,我每天放學除了書包要背之後,還要還2袋菜尾,小時候我曾經很討厭拿菜回家,因為走回家的路上都會被大家用異樣眼光看著,但是我不拿不行,家裡沒有多的錢可以買菜,為了要幫家裡,久而久之,我對於別人的異樣眼光也不怎麼在乎了。      到這裡還沒說到重點XDD,大約小五、六時,家裡有買了一台紅白機(忘了怎麼來的),這時奠定了我走上遊戲之路!!當時我超迷忍者貓、忍者龜等等遊戲,到了國中時,出了超任,但家裡不可能買,後來我媽媽在他工作的工廠認識一個叔叔,他有買sega、超任等等遊戲主機,很好心的借給我們三兄弟玩,剛拿到時,根本玩翻了XDD,最記得就是我把太空戰士v玩到破關XDDD,當時還有破的一款叫"魔裝機神",這款也很經典,現在想想很感謝當時借我玩的人,後來記得出了kof94、95,我就開始了玩街機的生活...