soft skill
8 ways to be a better programmer in 6 minutes.
by calendarw on May.18, 2009, under diary, soft skill
前日子維 send 左個 post 比我, 內容幾好, 都係講緊 software improvement – 8 ways to be a better programmer in 6 minutes
1. 用大 Size 既字
當用左大 Size 既字後, 因為睇既野少左, 所以你就要開始諗點寫短一些既 method, 從而減低軟件既複雜性及增加可讀性
2. 將 hard code 既 string 變得討厭
這樣可以鼓勵你寫少一點 hard coding, 同埋指示你那裡有 hard coding

Visual Studio Options
3. 學習一下關鍵字 (keyword)
每隻 language 既關鍵字都有佢既用途, 請認識一下 language 不同關鍵字既用處. 以我為例, 呢兩年都開始學多左用不同既關鍵字, 例如 (is, as, ?? opertor 等), 識多一點更會簡化自己既 coding, 亦對自己既寫作有幫助.
以下係原文提供既幾個 .net languages 參考: C#, VB.net, F#.
4. 增加 1% 代碼覆蓋度
除左用自動化單完測試外, 進一步測驗一些內容深入難明或易錯既地方. 增加 1% 覆蓋度對代碼更有幫助
5. 閱讀 Open Source Project
學習一下 Open Source 既代碼, 對自己會有幫助. 近年都開始睇緊 NHibernate, Rhino-Tools 等既 Source Code, 當然係有些難度, 不過真係 improve 到好多方面既 skill, 例如學下人地 d Test Case 點寫, Inheritance 既 Test Case 點寫, 人地用咩 keyword 去處理事件, 同埋人地點設計等等.
亦可以參考原文建議既 Hanselman’s Weekly Source Code series.
6. 用代碼分析軟件進行分析
這個可減少代碼既複雜性.
原文有幾個 Tools: fxcop, StyleCop, clone detective, ndepend, 或者 code metrics feature of VS 2008
7. 找一個最醜既 method 進行重構
重構一個不唔清晰既 method 可以提升到軟件既架構, 可讀性, 重用性等多個方面
8. Stop Reading, Start Writing
學以致用才是最好既學習模式, 最好由最基本既寫起, 原文建議寫 Complier. 另一方面, 我見過既好多人都有個好重要既問題, 就係佢地從來都無 Start Reading, 有些連學校教既野都唔會去用, 寫出黎既野完全難以重用!! 請記住, 係 Stop Reading 之前係有個 Start Reading 的, 如果你無一個清楚既概念, 無 Start Reading 既話, 就好難會學得好!!
Don’t put your resume ahead of the requirements
by calendarw on Apr.04, 2009, under soft skill
有時工程師會因為想將自己既履歷表寫好一點, 而推薦用一些未必係最善長或者最好既科技同方法去解決問題, 這些決定往往會影響成果.
其實, 最好既工作前路係由一班因為你為計劃作出了最好既決定而滿意既顧客為你建立的. 良好既信譽會比起你用最好既科技或方法帶來更大既好處. 在重要或者緊急既時間, 最新既科技永遠不應該放進客人的計劃內.
你要記住你被委託的職責, 作為架構師, 你應忠誠於公司及避免所有有衝突既興趣. 除非計劃有足夠時間及機會, 才可滿足你工作既需求. 如果你為計劃內應用最佳既建議而不使用未善長最新既科技或方法, 所有人都會因為你用最適當既科技多而感快樂.
當然, 有時新既科技往往太動人而難以抵抗, 甚至不適用於現在既情況. 有最好既解決方法, 計劃才有開心既團隊, 開心既客人. 這會給予足夠既時間來深入現有既科技, 你或者可以用自己既時間學習新既科技. 與其用不熟識既科技在唔夠時間既環境下完成計劃, 不如用熟識既科技來處理當前既問題, 再用空閒既時間去上堂, 又或者陪下屋企人吧.
無論如何, 將顧客放得比自已短期目標前是不會錯的.
##############################################
As engineers we sometimes recommend technologies, methodologies and approaches for solving problems because deep down we want to have these on our resume and not because they are the best solution for the problem. Such decisions very rarely result in happy outcomes.
The best thing for your career is a long string of happy customers eager to recommend you because you did the right thing by them and for the project. This goodwill will serve you orders of magnitude better than the latest shiny object in the latest shiny language or the latest shiny paradigm. While it is important, even critical, to stay abreast of the latest trends and technologies this should never happen at the cost of the customer. It’s important to remember that you have a fiduciary duty. As an architect you have been entrusted with the well-being of your organization and its expected that you will avoid all conflicts of interest and give the organization your undivided loyalty. If the project isn’t cutting edge or challenging enough for your current career needs then find one that is.
If you can’t do that and you are forced to be in such a project, then you and everyone else will be happier using the right technology for the customer rather than for your resume. It’s often difficult to resist utilizing a solution that is new and cool, even when it’s inappropriate for the current situation.
With the right solution, the project will have a happier team, a happier customer and overall far less stress. This will often give you time to go deeper into the existing older technology or to learn the new stuff on your own time. Or to go take that painting class you always wanted to do. Your family will love you for it, too – they’ll notice the difference when you get home.
Overall always put the customer’s long-term needs ahead of your own short term needs and you won’t go wrong.
By Nitin Borwankar in 97 Things Every Software Architect Should Know
This work is licensed under a Creative Commons Attribution 3
20 tech habits to improve your life
by calendarw on Sep.03, 2008, under soft skill
今日經 codeproject subscription 入面既 redirect link 見到的. 但係有幾多樣係自己 apply 左既呢?
1. Telecommute by Remotely Controlling Your Office Computer
呢個 habit 其實都幾危險, 要做足安全功夫先好試, 如果唔係好易比人 hack!!!
2. Schedule Automatic Hard-Drive Backups, Locally and Remotely
可能我唔係太多時間可以用同一部機, 而家通常都係放晒 d 野上網, 所以呢方面我唔太擔心.
3. Work Faster and More Efficiently Without a Mouse
有限度既 short cut… on windows and firefox only. 下一步應該係會學下 google short cut~~
4. Lose Weight, Get Fit, Save Money, and Increase Your Mileage Online
呢幾年肥仔左好多!! haha~~ 唔知有冇人可以陪我跑步?? XDDD
呢樣野我近排都見到, 一個 weight history 既 widget, 但未試過點用.
5. Clear Out Your In-box Every Day
常用既會日日 check, 但好似 hotmail 果個太多 spam…都無乜心機理!!!
6. Get Your Cables Under Control
機箱內有….機箱外就未有 LOL, 有諗過 control, 但未有時間買有關既野!!
7. Stay on Task With the Right To-Do List
呢樣我好有興趣, 仲留意緊!!! 有個 task list 可以 integrate 落 gmail 度, 我仲測試緊!!
8. Replace Your Laptop With a Thumb Drive or iPod
呢個正, 但我未有 usb 同 iPod!! Boot from USB OS 其實係一個幾好既 idea, 因為可以 work anywhere!!~
9. Use Your Camera Phone as Your Digital Photographic Memory
呢個要學下!!! 呢期都做緊 web photo hosting 既 research, 影左d 相唔知放邊度會方便 d!!
(facebook 個 tag 好好, yahoo 有 geo information)
10. Create Your Own Price-Protection System
係文章度果d 都比較支援西方的, 而支援香港就既……就要搵搵.
自己除左用過 yahoo auction 呢個有少少關係既 system 之外, 都無乜用過同 price 有關既野.
11. Consolidate Multiple E-Mail Addresses With Gmail
呢個 feature 我上個月先知 =.=|| 不過仲未用!!
12. Never Forget a Birthday, Teeth Cleaning or Oil Change Again
其本上…我除左星期六日之外, 日日都會開個 google calendar 睇返有咩野要搞!!! 而且開多左幾個 calendar for 唔同用途!!!
13. Never Forget a Password Again
Um…..password 呢樣野, 都係靠自己記, 唔記得左既就 “Forgot Password”……
所以自己通常會去 d 支援 OpenID 既 site, 咁 single authentication anywhere!!!
14. Encrypt Your Private Files
留意過, 但未做過!!!~~ 成日都怕 encrypt 左….跟住 decrypt 唔返!!
15. Stream Content From Your PC to Your Tivo, PlayStation 3, Xbox 360, or Wii
我屋企…..No Tivo, No PS3, No Xbox, No Wii……..未有錢買住!!!
16. Get Your TV and Music Fix Online
我覺得香港既 BT 已經解決左呢個問題!!!
17. Reach Favorite Sites and Searches Faster With Firefox Keywords
呢個 function 已經用緊!!~~
18. Tweak, Monitor, and Extend Your Wi-Fi Network With a Firmware Upgrade (or Aluminum Foil)
呢個無時間做………呢方面知識唔夠!!
19. Master Search Techniques to Pinpoint Files or Web Sites
睇左本 Google Hack, 應該夠我用好耐!!
20. Print Smart to Reduce Costs
通常我都會 Print PDF 先, 因為 Print 出黎既野成日都唔係我想要既 format, 所以出左 PDF 睇過啱既先再 Print.
The 30 skills every IT person should have
by calendarw on Jul.07, 2008, under soft skill
前排睇到呢份 article, 有好多真係一般 IT 人應該知既野, 不過有 d IT 人真係要留意既, 例如 Learn Business Process, 係 Apply IT 黎講, 大部份既 IT Project 都係 create, improve or support Business Process, 對香港既純 IT 人黎講真係要留意下, 如果唔係真係只識做, 唔知佢工作背後既目的. 而 IT Manager 方面, 果幾個 Item 真係建議得好好, 而 “Always give people more work than you think they can handle”, 入面個解釋真係掂, 一般員工真係無諗過.
