Skip to main content

Posts

Showing posts with the label Development

資訊科技的學習途徑

在這個資訊爆炸的年代,想學一門資訊科技的方法實在太多了... 最傳統的方法當然是去辦學機構上課,不過在下只在初出茅廬時上過工聯會辦的 MCSE 課程,所以沒有太多這方法的認識。再者,在下比較喜歡自步學習。 自步學習的方法很多,看書、看片、甚至到付費的網上平台邊學邊做練習都可以。正所謂咸魚白菜,各有所愛,在下相信每一位同業都有自己喜愛的自步學習方法。 在下在這裏分享一下用過的APP / 網頁 (同時亦給日後失憶的自己一點回憶): - Kindle / https://www.amazon.com/ 在阿瑪遜站上買了電子書,可以在 iPhone 上安裝 APP 或 Kindle 電子書閱讀器 上看。你可以加書籤、標示一段文字、加注釋。而我最喜歡的就是它那即時網上查字典功能 -- 在手機上你只需一隻手就可以翻書查字做標示,十分適合每天都花一小時以上在公共交通工具的人 (我多數坐巴士的,以前真的沒有地下鐡在住處附近)。 - Queue / https://www.safaribooksonline.com/ 在下之前兩間公司都有付費給員工使用。當然,沒有公司資助,個人也可以付費使用的(但在下應該不會,因為在下使用率不高)。每天都有很多新書 和 影片等你發現。另一個要留意的是它多數是一頁一個章節。另外,你亦可以在電腦上看。 - https://www.codecademy.com/ 一個提供免費課程的網上平台。在下在這網上上了 75%  的免費GIT課程,但未上過要付費的 Pro 或 Intense 課。GIT 免費課程提供邊學邊做功能,各位不用在電腦安裝GIT 亦可以做練習。早一陣子對 Test Driven Development 的 Intense Course 有點心動,但回想前年上 MongoDB 和 Mule 的每週一課真的需要很強的決心...所以沒有報名... - https://www.tutorialspoint.com 一個有很多免費詳細教學的網站,有些便甚至是圖文並茂的(一看圖就大概知道是哪個時代拍下的)。我的 Python、ReactJS 和 Cucumber 也是在這網站開始的 (但現在還未完結以上任何一個課程...在下覺得表達得比較悶,遇到問題時可以回來參考,但由頭看到尾在下實在做不到...

十分充實的兩個星期

做回上班族兩個星期,在新工作崗位,無論同事、制度、著眼點、做事方法、使用的資訊科技技術等等 對我來說都很新,在下需要多些時間去探索、去學習。在另一方面,我亦明白受人錢財要替人消災,既然項目現時需要多點 程序猿 人力,我亦樂於邊學邊做邊觀察。當然,若然能夠全職觀察及聆聽團隊,多點時間思考的話,可以找出多一些深層次改善空間。若然講到經驗的話,我在 Agile / Scrum / Kanban / Lean 這些領域都只是一個門外漢,我也不可能以為看過幾本書就變專家。但另一方面,沒有勇氣去嘗試踏出第一步,就沒有機會知道自己真的尚有多少不足。 作為一個程序猿,學習資訊科技真的如逆水行舟,不進,則退。之前做無牌架構師時,只在wiki 上找過一下那些新 Buzz Word ( BDD , ATDD , Cucumber & Gherkin , TestNG , Functional Programming , Java 6 +, ...其實"我知道我不知道"的東西還有很多...)、看過一下相關網頁的第一版,但從來沒有下載試玩。工具到用時方恨少就是用來形容現在的我... 另外, 為其一個星期的 Sprint 真的不是跟你開玩笑的... 做事不能大多思前想後,做任何事,尤其研究、工具比較 等這類難以估計需時多少的任務,最好還是 TimeBox 一下,或見時間過了一半還是膠著就找人幫手。否則,是會交不出東西的... 以下幾件東西,在下真的要引以為戒 - 不要只依書直說,不求甚解,明白內容的動機,才能融匯貫通。 - 小心『新官上任三把火』陷阱,無論有多想展示自己能力和經驗,都要先了解而後行動。 - 耹聽 但不要建議解決方法 (超難!!),其實很多時間人是知道問題所在和解決方法的,他們其實只要 Rubber Duck - 小心 Zombie Scrum

改變

古語有云:「窮則變,變則通。」 今年五月做了一個很大的決定 - 轉工,亦即是結束我在這間國際商業公司的四年長工。回想到當年,在下帶著一鼓對之前那電訊公司文化的不滿 和 對資訊科技的熱誠,大膽地加入一個令人聞風喪膽的項目做合約員工。現在想起,真的要為自己當年的決定感到驕傲。沒有當年的勇氣 和 鬥志,沒有每些艱難的項目,今天我也許還是一個 只會怨天尤人 廢中。 以前我覺得跟用戶談需求是浪費時間,寫化碼一定要跟 Sun MicroSystems 的 Java Coding Convention,帶人一定慢過自己做。 今天我懂得人與人溝通的重要性。我知道有效地將一個訊息傳到聆聽的人 比 自怨自艾 好上一萬倍,也知道沒有人想寫一些不容易維護的代碼,可能只是因為經驗不足、沒有回顧 或 不夠時間⋯⋯等等。還有,一個團隊合作的總輸出 比 各自的輸出 高得多。 在下學會了很多(年紀沒有白長),同時亦知道我懂的只是少部份,世界上還有許許多多我知道我不知道的 和 我不知道我不知道的。有了這些認知,我性情改變了 (雖不知道是因為怕自己血壓再高會有健康問題 還是真的 動心忍性)、平和了。 轉工過後,私人時間多了(當然打電玩的時間還是存在的),亦開始去學一些這些年有想過教但 "沒時間"學的科技。開始時總有點不想改變(隋性),但開始過後又不想停(也是隋性)。現在要去學一種科技真的很方便!YouTube 有很多片教學如何 X 分鐘學懂 YY,很多科技都有免費的培訓 (e.g. Mongo University, MuleSoft.U, etc),閣下只要家裹有台可以上網的電腦,便可以學到各樣科技。 我對之前的磨練 和 工作給我認識很多不同人的機會 是十分肯定的。今天在下只是想分享一下我對自己開始去學"新東西" 的喜悅 jer ~~~ 我真的很快樂 :)

Scrum 敏捷軟件開發 培圳

雖然 在下 於2008 年參與過一些 在香港舉辦的 Agile 活動 ,但工作假期回港後 沒有擠出時間在這方面研究。很幸運地,在下於上年 (2014) 有幸參與一個由客戶要求用 Scrum 的項目。項目開始時小隊內有位由外國來的 Certified Scrum Master,可惜他在項目的時間太短,在打後的時間小隊都是摸著石頭過河。 為免過河時發生意外,在下在 Google 上找了一下關於 Scrum 的資料,也找了一些關於 Scrum Certification。以下列出的是會發証書的機構(如有更多,煩請指教): www.scrum.org scrumalliance.org scrumstudy.com 各個機構都有不同的証書,收費和証書考試的要求亦不同。由於在下覺得不用上課就可以去考這門欖太低,就算考到未必夠矝貴(其實用心去讀而不是背brain dump 就好了),再加上想透過培圳擴闊一下這方面的圈子,於是在下於上年五月 報了個由 外國培訓公司 在香港 代 Scrum Alliance 攪的 Certified Scrum Master Training⋯⋯ 只可惜時不與我,那外國培訓公司由於某些原因,開課前兩星期才通知在下未能如期開課。起初那個客戶服務員跟我說在上海 / 深圳都有培訓,問在下會否考慮。一想到在上海/深圳過夜會令 愛妻不安,在下即時拒絕。客服提到下一個香港的培訓未有時間表,但表示一有消息便會通知我。殊不知一等就是三個月都沒有時間表,加上那個客服有一段時間沒有回我電郵,令在下心驚膽跳到不得不大叫回水。回水這件事,也攪了一個月多⋯⋯ 雖然心裹尚有餘悸,但始終覺得這方向還是正確的,所以今年想捲土重來。 如閣下於香港有上過任何 Agile / Scrum 的培圳,還請賜教,不勝感激!

SCEA 第一關 ... 過!

今日中午去了考 SCEA 的 Part One (Well ~ 跟我一起買 Voucher 的舊同事在上年年尾 / 今年年頭 已經考了),雖然 合格,但分數偏低 --- 只得 71%。 查看以往的考試成績,這次是最低的一次。 不過,以往的內容較淺,而今次在下準備得較趕,而且沒有 Braindump 幫助,加上只做了一小時不複卷便交,所以可說是表現了在下的實力 (只得 71% 的實力)。 接下來就是第二關 --- 畫圖。現在還未能下載功課,大概要明日才有 Sun 職員幫得上忙吧!這兩天就要好好看書 (UML - Distilled)了 ~ Btw, 各位有興趣考 Sun Java Certification 的朋友, Java Certification Day 將於六月十七日舉行,請前往該處買 優惠 Voucher。如果有時間,更可以登記該 Seminar,Sun 職員會講解一下 該公司有乜想你留意 ~

知識分享

自 WikiPedia 的出現後,在下都慣了在 Google 搜查時 加上 "wiki" 這字段,令在 WikiPedia 的搜尋結果致頂。其實除了用 Wikipedia 外,之前在老電時,小影試過用 Trac 去分享知識,而那亦是我第一次使用 WikiPedia 以外的 wiki。 Wiki web app 都有搜尋功能,用者不用像以前看 工作文件 / 指引那樣,一頭霧水地在文件海中找尋滄海遺珠 ~ Wiki web app 這類東西,由於是 Web Application(廢話),所以一定會是只得一個備份;不會像 Document 那般,給你有一份,給他又一份,如果中途有人改了,其他人又可能因為收不到而失去那個 Delta, 又或者需要某人 Merge Changes (痛苦) 而最最最令在下高興的是,任何登記用戶 (有時要看權限控制) 都可以在 wiki 修改內容,任何登記用戶都可以貢獻。就在下以往的經驗而言,很多指引文件 (Set up guide) 都是在項目開始時寫下來的,時至今日已經全部不合時而了,分分鐘還誤導了新入職的同事。文件的價值在於能夠分享到有用的知識,一旦過了期又沒有修正便會變得無用...而方便各位修改的 wiki 亦鼓勵了各位同事對項目的參與 ~ 不過,世上沒有最好的分享方法,只有最合適的,在下一人認為好,未必在其他人的角度裏係好事 (之前用 Doodle 好讓各位攪活動方便點 不用 reply reply reply email, 不過人家不去填都係無用...又或者填左唔到 [那是另一個問題];之前建議在老電內用 Trac 方便 Bug Tracking + Knowledge Sharing, 不過公司最後還是喜歡自己寫個 Windows Application 去管理) 在下不是心淡了,只是,不強求,量力而為。

恭賀黃師父 過 SCEA 5 考試

雖然遲了兩個星期,還望黃師父見諒我有心唔怕遲 ~ 恭賀黃師父 過 SECA 5 Upgrade 考試! 在 BrainDump 未流於巿面時,黃師父便考了 ~ 證明了黃師父 異於 那些 看 JavaRanch / 大陸 Forum / 背 Braindump 的高分低能。 其實在下亦買了 Voucher 考這個試...但係十劃都未有一撇...OTL 黃師父話,考試問了很多較新的 I.T. 知識... 對於我這個半老的屎忽來講,Hibernate, Spring, WebService - WSDL, SOAP, WS-I compliant, Restful etc...我都係聽過...在 wiki scan 過幾秒 ~ 然後心諗...用到就會識...OTL (脫力) 為了不影響黃師父的聲譽,我想我還是快手考左個試佢...因為我同好多同事講過 如果我係一個 Processor, 黃師父就係一個 Dual Core Processor ~ 我睇怕家陣連佢一半都不如...(灰) 但...我做完手上功夫便會爆氣谷上去 (火)

看了 Ship It! 的頭幾頁

書的 foreword 提醒了我... 在軟件開發的世界裏,沒有一個完美的開發方法(因為我們都不是完美),只有較合適的方法... 這就是實事求事吧 ~~ 但如何取決...哪個是較好呢? 在我心目中, Agile software development 是西方業界一個智慧的結晶,在小至中的項目裏比較容易使用 ~ 不過在多過十個人的老公司內做項目的話,一切都會變得很麻煩 ~ 一下子的改變會引至恐慌,但不能撤頭撤尾的改,我只怕會不倫不類,賠了夫人又折兵 ~ 不過,在 Agile Hong Kong 的活動內見到有不少人( Net Dimensions PM / RM 都有出席) 對此有興趣,心裏萬分興奮 ~ 能和一班志同道合的人一起為同一個目標進步,感覺真好 ~~~ XDDD

scrum session ~

前日去了 ThoughtWorks 有份舉辦介紹 scrum 的session,去窺探一下i.T. 世界上的光明一面 ~ 剛到場時只見到 幾位外國人,還以為外了小影和我以外,香港真的沒有人對 agile development 有興趣 ~ 好在 ~ 最後都有一大班 還來的香港人到 ~ 有興趣的朋友收到 Agile 的同行, 可以到 這裏 看一看 ~ 整個 session 都很有趣。傳統 的 Water Fall methodology 的不足 未能 好好管理 Chaos (user 突然間想改 UI, requirement, 發覺某 task 原來被嚴重低估了, etc) 而導致 很多的不幸...令業界們痛定思痛...賞試去用另一些方法去應付問題 ~ 我覺 這個世界沒有最好的方法,只有較好的方法。始終,一個方法能否得到適當的執行是靠人的...不是一個 Buzz word 可以幫到 : 在一個團隊中,沒有人能夠 Commit 去完成任務, 用甚麼方法都係無用 ~ 不過我又覺得肯去運用新方法的公司是 大膽和有遠見的,不變係死硬,變的話都仲有少少機會生存 ~ Zombie company ...我唔想再做 ~ XDDD 不過另一件我想講的事...係我在會議見到有些令我很火滾的人... 1) 遲到 2) 見到有空櫈就立即坐上去...完全無諗過點解後面會有人企...點解會諗唔到個位係有個人坐而佢又啱啱去左廁所... 3) 當佢想去廁所時, 佢又竟然又會叫佢同事坐住佢個位... 4) 當人家做 Demo 時,佢就同佢同事係咁講佢地公司的 blah blah blah ~ 完全唔理會嘈住人地聽野 雖然好唔高興,但係因為當事人係女人,所以我地一班 I.T. 人都好有忍讓地忍足佢全場 (其實我有好幾次想爆句 Can you shut your fucking mouth up and get out of here?)

妳回來了!?

兩年前,由於新工上任時間比較多,我閒著等任務時 看了一堆跟 Extreme Programming (XP) 有關的資訊。 當年剛好得知 妳來到了香港,我便急不及待的跟妳見面 ~ 但跟妳見面絶不容易呢 ~ 首先要做一個兩文三語 的 電話訪問;然後就是給妳做一份功課;但可惜我最終都敗在 一份 邏輯測驗中...也許...當時妳來是為在香港找客戶...也許...當時我還未夠經驗 未夠聰明 未夠準備...當時我未夠渴望去扒過那道磚牆... 最近得知妳又來了香港,十分高興 ~ 我們有緣份一起嗎? 她是誰 ? ThoughtWorks 是也! 不論閣下是 Java , .NET 或 Ruby on Rail 的開發者,如對 XP (不是 Windows XP) 有研究、有興趣,又或者對 Fixed-Price Project 感到絶望,可以來 這裏 看一看 ~

我的 SCJD 成績去了哪裏??

話說上年有位人兄,考過 SCWCD 之後想再進一步挑戰自己成為 SCJD,所以在上年的 Java Certification Day 買了一份 Sun 的 SCJD Assignment Voucher 和一份 Exam Voucher。 Assignment 是沒有限期的,有些人兩個星期完成,有些人用了兩至三年。在下心想,我雖不太聰明,亦未至於太蠢,應該在一年內可以完成吧 (Exam Voucher 是一年期限的)!這個想法 又再是一次証明我的考慮不週詳、做事欠魄力 同埋 臨急抱佛腳 !! 到期日是五月三十一日,五月時我開始意識到再唔做的話,花了去買 Voucher 的三千幾大元 (USD$400)會完全泡湯,所以硬著頭皮點死都要折掂佢!! 五月頭開始睇有關的書藉,五月中才開始 Design,五月三十日還在改 UI、做測試,五月三十一日,交了功課 並且考了那個 Exam! 由六月一日開始,我每隔兩天就到到那個去 assignment watcher database 檢視我的功課是否改好 (因為有人試過兩日便收到成績...)。等呀等...等呀等,到了六月中,我還沒見到我的那個 exam entry 出現在 watcher DB 內,心急起來便 發了個 E妹兒給 Prometric,回覆竟然是說 「對不起,我們收到 閣下的 功課 和 考試卷,但似乎還沒有改卷員在為閣下 作評估。如有更新,我們會即時通知 閣下。不便之處,敬請原諒!」Mother~! 是 Prometric 還是 Sun 的問題!? 過了兩個星期還未有回...若果我沒有查問...我的那份功課只怕到今天還是沒有評估... 連番追問之後,Prometric 始終 紆尊降貴 再次回答 「閣下的功課已於六月十八日交給了 評估員,如到七月十八日還未有發成績的話,我們會 escalate上級閣下的關注」。 今天我還未見到那個 Watcher DB 有項 正在評估中的 SCJD...很擔心呢...是我太急了吧!好!我就多等你 十一天,再沒有的話...嘿嘿...我...我...我...便再發 e妹兒!

糟透導向編程

小影在網上看到了這個 Abject Oriented Programming . 這個東西,純粹攪笑,做 I.T. 的同工們,千萬不要跟...否則,你的身價會跌至新低XD ~~ 內裏的東西 每招都有名堂,而且跟 Object Oriented Programming 的四大中流底柱同名。

SCJD 大戰

SCJD 這個考試,現在已經是如箭在弦,不發不得。在下已於今日約了下個星期四去考這個遲了三年的試。至於功課方面,預計將會在下週日前完成 1st GUI Version. 多得舊同事 T 先生的鼓勵,我點都會於星期六死一個行得走得的 program 出來 ~!!! Again ~ 我最憎俾人睇死 ~! 和 T 先生吃過飯時,談到原來自己在受到壓力時,會做得多與主題無關的事:以今次 SCJD 的功課為例,我在這段準備期間,看了一本英文書 (Tuesday With Morrie)、Plan 了去踩單車、打這個 Blog, etc... Side Track 得很緊要,做事不專心...或者,是很容易分心...這樣...能成大事嗎?

忙 忘 妄 亡

最近很忙,忙到有點東西都忘了,努力地回想忘了甚麼時但卻又開始妄想,希望不會因些而過累而亡 >. 星期三下班回家後去了跑步,突然問了自己一個問題,妳手提電話幾多號?頃刻腦子一片空白,在下不報輸的性格驅使在下要想到為止,但較為理性的那部份卻又擔心一把回憶拿出來後 想起的不止只是電話號碼,最後...我記起了 ~ 以往由於經常打此電話,所以當有人問起自己電話時反而會說了你的電話 :P 現在...不會再攪錯了 ~ 話說回來,本週二收到一個我期待已久的任務 : ~Code Review~ 故名思意 就是要 Review(回顧) 別人的 Code (代碼),看看有甚麼問題。 由於今次發起 Code Review 的原因是 DB Connection Pool 爆了,所以先由 Connection 開始著手 ~ 不 Review 還以為 這個 Project 的 Code 除了沒有用 Eclipse format 過之外 是可以的 ~ 但...事實令我有點害怕... 從來沒有做過 Code Review 的 Code 是很可怕的啊 ~ 下次記得 ... 要為所有新同事上課才給他們去做關於 DB resource 的任務 ... 做完還要記得 Review ... 否則當問題堆積到像現在這個地部...一切都會太趕急了...在下還是認為 慢工出細貨呢 ~ 以下是小影 推介 給在下的好東西 : FindBugs [Eclipse Plug-in / Standalone] : Standalone 會比較好一點 ~ Plugin 的確是更cool 但卻令到 Save & Auto compile 的時間更耐... Trac : Deployed ~ 明日即將公諸於Team, Yeah~!! SVN : 如果 PVCS 的 repository 可以 migrate 過去的話應該沒啥問題...可是還要多作研究呢 ~!! Java 6.0 Double Buffering : 沒錯,Look & Feel,Thread Handling 是更好...但我反而擔心 RMI 那部份...是否相容... 下面這個是在下舊公司愛玩的小玩意 : CheckStyle : 那些為了讓代碼看得比較舒服的限制...是否應該引進這個的 Project 呢 ~? 如果要做 ~ 在下並...

考試

五月六日,之前說過的JAVA考試,我已決定了要考。花了三百多買了Head First SCWCD 書、八百五十元買考試卷,目標是月內完成一書,下月可以操試題。 五月十日,當我到Prometric網頁登記時,回顧了自己之前的記錄,發覺自己在初夏至初秋的考試都會合格。 五月十二日:昨晚由於太累所以沒有睡前看書[不過白天坐車、午飯後都看了幾版...大概看到七十多頁吧!]。很久也沒試過一點前睡了(可想而知本人的眼袋、黑眼圈有多利害@.@)! 五月十四日:由於近幾天均有約會,所以自修進情方面殆慢了,或者應該說是暫停了。 五月廿一日:週末忙於打機和跟女友約會,所以自修尚在二百三十多頁...有點擔心。 五月廿五日: 由於之前的進度不理想,所以這幾天的壓力亦增加。全書十四課,今天還在讀第八課。除非本人真的可做到一天一課,否則"本月要完成課本"的目標將不能達到。晚上,因為沉迷阿寶,慌廢了讀書~ 五月廿七日:昨日開會開了一整天(其實是聽會),所以沒時間看書。放工又去了和 格拉迪斯的同事們唱K,所以,仍未衝破四百頁。 五月廿八日:今天節目豐富:上午打羽毛球、中午跟女朋友吃飯並到了APM修理我的破袋、然後回家Diablo、晚上跳舞、食糖水。很忙的一天...書?!一頁也沒看過>. 六月一日:之前定下的"五月看書、六月操試題"計劃第一步失敗!原本以為一天一課是可行的,但我原來沒想過書中越後的,我便越不會,需要的時閒亦更多...再加上最近又有點沉迷電玩,情況真的是雪上加霜。T_T 六月五日:星期六日最適合甚麼?娛樂?!打機?!休息?!徧徧就是不去讀書!迄今還未試過的Standard action, directive 今天無論如何都要一試(今天仍后第十課)! 下班時與M同事一起坐公司穿梭車離開,閒談間講起手上Project 的軟件設計。M同事一向覺得舊版本所用的MVC設計非常好,而且是出自博士生之手(還好像用到Glass Plan [小弟孤寡聞,未聽過...]),所以對現用的複雜設計投以貶視之眼光。無奈自己無論對舊版本或設計的知識都有限,未能與討論(>_ 六月六日:魔鬼日。我亦非常應節,讀書時咪咪魔魔。 六月七日:一回家便一個箭步入房...Diablo!今天回程時差不受完成第十課的問題。可惜,到對答案時,有兩個發現(1)書中並沒有完全地將所有會...

Software Design Pattern 之研究

其實自已話識 d Software Design Pattern, 充其量亦只是會它們的名字,小弟到到陣都未真係試過用 Design Pattern 去做 Refactoring / Design. 看了一遍有關文章,作者引用了 Command Pattern. 其實小弟在初次接觸 Command Pattern 時,總覺得它會跟 Observer Pattern 很相似 -- 很多時都會被用到在 Button Action 上,令到小弟感到很困擾。