Steve Jobs: Get Rid of the Crappy Stuff

http://blogs.forbes.com/carminegallo/2011/05/16/steve-jobs-get-rid-of-the-crappy-stuff/

“People think focus means saying yes to the thing you’ve got to focus on. But that’s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I’m actually as proud of the things we haven’t done as the things I have done. Innovation is saying ‘no’ to 1,000 things.”

“A designer knows he has achieved perfection not when there is nothing more to add, but when there is nothing left to take away.”

 


韜睿惠悅最新2011年產業預期調薪率發佈 – Towers Watson – 台灣

http://www.towerswatson.com/taiwan/press/3812

Towers Watson 是很有名的薪資依據排名…

 

 

 


Android 免費軟體 不自由!?( 微軟追權利金 點名宏碁華碩)

http://blog.udn.com/glee/4531830

業界人士表示,微軟認為Android作業系統侵權的範圍,以電子郵件、行事曆、聯絡人與PC同步功能,以及應用程式隨著訊號強度、剩餘電池電力變化而改變模式等為主,專利本身頗具殺傷力,而隨著宏碁、華碩等品牌業者都會將Android作業系統應用範圍由智慧型手機延伸至平板電腦,代表微軟追索權利金的範圍也將隨之擴大。


電腦報價

http://www.kingtech.com.tw/Default.aspx

http://price.oc.com.tw/

http://www.bartek.com.tw/p_class_index.php

http://www.mren.com.tw/


皮皮書屋 — 免費電腦科學電子書

http://www.ppurl.com/register/


軟體專案管理大亂鬥

http://singlelogvskenchu.funp.tw/

軟體專案管理大亂鬥


程式員的個人性格

提要:軟體開發是一個“以人的智力為加工原料”的工程活動,在開發過程中會不斷的對智力和性格作研究。需要注意20/80原則,並不是最勤奮的才是最優秀的。程式設計的工作難以檢查,是否成為高手和個人性格有關。你無法改變智力,但可以改變性格。在軟體開發者的成長過程中,EQ還是佔主要因素。

1. 聰明和謙遜

一個人越謙虛進步越快,承認自己的無知才會去正視和彌補自己的錯誤。理解程式需要通常很強的對細節把握和理解能力,這對程式員的智力有很大要求,但是很好的利用聰明要比你到底有多聰明要重要的多。有個程式員需要也需要謙虛,用謙虛去促進自己的智慧,使得自己更加聰明。這是軟體開發者的兩個基本質素要求,它們互相依賴促進,有時候也互相排斥,把握好自己的才智和謙虛就能更大程度提高能力。

也許某些事情很麻煩和困難,我們這時就需要使用一些方法去聰明的解決它們。比如:採用良好的程式風格便於理解、採用分解的辦法使複雜問題簡單化、多進行評審和測試,多和別人討論和關注軟體品質問題、儘量使用高度抽象的思維使問題一般化,提高重用率減少工作量、如果問題走進一個“死胡同”不妨和杯咖啡放松情緒,或和別人交談交流觀點,這是解決鑽牛角尖的好方法。

2. 好奇心

一旦你認為自己理解程式的能力是有限的,而且你意識到,進行有效程式設計是補償自己能力的方法時,你就開始了你職業生涯中漫長的探索過程。對技術的好奇很重要,否則你將在知識爆炸的時代迅速落伍。別在忙碌的工作或瑣事中,失去了對學術,自然和生活的好奇心和激情。我們可以在:

1 開發過程中建立自我意識。透過在開發中有意識的可以使用進行新技能的鍛煉,多對開發工程進行觀察,和學習其他解決方法,這樣就對整個項目有很強的把握 能力,甚至可以帶領整個團隊走向更好的方向。如果你現在做的是市場前景很好的工作,那也意味著工作中的某些技術可能會很快被淘汰,注意保持好奇心和創造 力。

2 實驗。了解程式設計的一個有效方法就是對程式設計和開發過程做實驗。你可以編寫一個程式並觀察它是如何工作的,調試器裏跟蹤程式的執行把握它的特性。 用個小程式去檢驗一個不太了解的概念,這對增進理解有非常大的幫助。或者用一個短程式,去試圖製造一些錯誤,透過錯誤去學習。錯誤不是罪過,沒有從錯誤 中學到什麼那才是罪過。

3 閱讀解決問題的有關方法。解決問題是軟體開發過程核心的活動。一個奇怪的現象:人們通常不能從自己面臨的問題找出解決的方法,即使這個方法很簡單。

4 行動前先做好分析和設計。儘管實踐和分析設計過程有很大的矛盾,但是好的分析會避免讓你過早走向一個錯誤的方向,好的設計可以避免混亂。

5 學習成功或失敗項目的開發經驗。學習程式設計的好方法是向一些優秀的程式員學習。應該要注重項目的戰略思想,把握項目中解決關鍵難點的戰術。任何成熟的 科學,都是透過解決問題發展起來的。這些問題通常被看一些被良好解決的例子,並可為將來工作做指導。(這可能也是目前很多公司注重工作經驗的原因吧?) 我們應該努力對別人工作存在的問題做研究,學習別人的無論成敗的解決辦法都是很有意義的。多拿自己的代碼和比你優秀人的代碼做比較,看看你們間有什麼異 同?為什麼會有這樣的差異?誰的更好?為什麼?也要多讓自己的代碼讓別人評價,這樣可以提高自己的程式品質。

6 閱讀手冊,書籍和期刊。手冊中往往對帶有些可以直接調用的例程,這對我們研究和解決具體問題有很大幫助。書籍中往往是介紹系統理論,多閱讀可以提高專業 能力;期刊中常常包含著流行的技術和觀點可以開闊眼界。

3. 誠實

程式設計生涯成熟的部分標志是堅持誠實。通常是:不假裝自己是高手、樂於承認錯誤、尊重編譯器的警告、對程式有清晰的了解,而不是編譯看其是否有錯、提高實際狀態報告、提供實際方案評估,在上級面前堅持自己的意見。你最好假裝自己知之甚少,聽別人的解釋,向他們學習,並且評估他們是否了解其正在討論的東西:)

你應該對自己能力做某種程度評估,認為自己完美是一個不妙的信號。錯誤正如潮流一樣是一個複雜的活動,如果你過去沒犯過錯誤,那麼沒有人會將錯誤歸咎於你。所以正視自己的錯誤。當你並不了解程式時,編譯運行並不是解決問題的方法。測試是證明錯誤的存在,而不是保證沒有錯誤。如果不能深入理解程式,就不能深入測試。依據事實給出準確的狀態報告,不能欺騙自己和別人,這是充分合作的前提。不能因為壓力而否定符合規律的做法--這個項目需要10人月,要用5人月完成除非降低性能或其他做法--準確的向上司說明情況。

4﹒ 交流與合作

真正優秀的程式員應學會怎樣和別人工作和娛樂。真正閱讀你寫出的程式是人,而不是給電腦--注意代碼的可讀性。絕多數高水平的程式員堅持自己代碼的可讀性,並抽出充足時間這麼做。對程式員能力的界定標準:

1 初學者

是能使用一種語言基本能力的程式員,他能使用例程、循環、條件語句或其他許多語言特徵。

2 中間者

有使用許多語言的能力,並且至少非常熟悉某一種語言。

3 專家

對其語言或環境或這二者有很深的造詣。這種級別的程式員對公司是有價值的,而且有些程式員往往就停留在這個水平上。

4 大師

有著專家那樣的專業知識,並且意識到程式設計隻是15%和電腦交流,其餘85%是和人打交道。一般程式員只有30%時間或更少。而且大師注重給人看的清晰易 懂的代碼,並注意建立有關文檔。

不強調可讀性的高水平代碼者可能停留在級別3上面。並且根據經驗,編寫不可讀代碼的主要原因是:代碼品質差或是編寫者自己並不能完整地理解自己的代碼。當你知道自己的水平後,不必內疚和自愧。在你知道如何提高水平後,你倒應該為自己停留在初學者或專家水平上有多長時間而內疚。

5. 創造力和紀律

雖然一些有創造力的程式員將各種標準和約定視為對其創造力的阻礙,但是沒有這些約束項目實現是不可能的。不要在無關緊要的領域建立約定,應該在值得的地方發揮你的創造力。一個傑出的程式員需要遵守許多規則。如果編碼之前不分析需求就設計,那麼你就學不到項目的許多東西,那樣工作就像小孩畫畫而不是藝術品。

6. 懶惰

懶惰的三種形式:1 拖延自己討厭的工作 2 迅速解決討厭的任務以襬脫任務 3 寫一個工具來完成討厭的工作解脫自己。當你不是透過玻璃看問題的時候,你就看到了懶惰的另一方面。“趕著做”是一種多餘和沒有必要的“努力”。有效的工作最重要的現象是人們在思考種往往顯得冷靜而不忙。一個一直很忙碌的程式員不是好程式員,因為他並不是在使用對於他來說最有價值的工具和頭腦。

7. 並不是你想象中起作用的性格

堅持:這是一筆財富也是不利的條件。你可以稱它為頑固或者堅強,這完全取決於應用它的場合。在多數情況下,軟體開發的“堅持”就是頑固的意思!當你遇到新問題時候,你再固執己見並不是好事。你應該迅速適應它,或原方案並不起作用時,學會用另一種解決方法。調試中,當你發現一個困擾你4個小時之久的錯誤時,你一定感到非常滿意。但是實際上,如果你在一段時間--通常為15分鐘沒有取得任何進展時,你應該放棄找錯。用你的潛意識去思考問題,嘗試用別的方法解決問題,甚至重寫厭煩的代碼段。和電腦錯誤做鬥爭時不明智的,你應該儘量避免它們。知道在時候需要放棄時困難的,但是必須面對一個問題:當你覺得自己受挫折時,是否考慮嘗試其他不同的方法。

經驗:過於依賴經驗會導致知識的落伍。今天的經驗必須為明天的工作服務。如果不在過去經驗中去歸納總結出一些有價值的原則或規律並改變自己去適應它們,那麼經驗也將一文不值。如果你的經驗還是停留在上一次戰鬥而不是下一次,也不因時間做出應變,那麼經驗更像是一個阻礙。此外,錯誤的經驗往往得不到客觀的評價。錯誤的經驗可以讓你得出重要的不同結論,學習其他人的錯誤經驗是一個好方法--你更可以對它做客觀的檢查。其他領域有成功經驗的專業人員往往使人放心,而在軟體開發中,知識更新迅速使得此領域中“經驗”處於一個奇怪的地位。為了使自己有所價值,你必須緊跟潮流,對於年輕求知欲旺盛的程式員在這點有優勢,而有些年老的程式員認為自己有所資格而厭倦一年接一年都要證實自己的能力。如果你已工作了10年,你得到了10年的經驗未必是真正的經驗--你如果堅持不斷地學習,你就能得到經驗,但如果你並不想學到什麼,不管多少年你也學不到什麼。

程式設計狂:如果你還沒有至少在一個相同的項目上花費一個月的時間--一天工作 16 個小時;為了發現你的程式中最後一個錯誤睡眠中你也念念不忘它,你接連幾天沒日沒夜地工作--即使你所編的程式並不複雜,那麼你可能不會意識到程式設計中有某種令人興奮的東西。 Edward Yourdon

這種對程式設計的癡迷純粹是胡鬧,並且幾乎注定要失敗。但是那些通宵程式員使你覺得他們是世界上最好的程式員,但是隨後你不得不花費幾周的時間來修正你在這短時間的輝煌中所帶來的錯誤,你可能對程式設計非常熱愛,但是你應能冷靜地處理這個問題。

8. 習慣

好的習慣起作用是由於你為一個程式員所作的大部分事情是你在無意識中所完成的。成為某方面好的或差的程式員,主要是靠你自己的所作所為。你所作所為習慣,決定了你的程式設計品行。最終,你的習慣好壞決定了你是否能成為一位好的程式員。當你開始學習某一件事時,你應按正確的方式學好它。當你開始學時,你已對其進行了思考,並且你可在正確或錯誤的途徑間作出輕易的選擇。在你作過一段時間後,你對你所作的不太注意,此時“習慣的力量”會開始起作用。確保起作用的習慣是你所希望的。

小結

‧你的個人性格直接影響你編寫電腦程式的能力。

‧ 最有明顯作用的性格為:謙虛、好奇心、誠實、創造性和紀律,還有文明的“懶惰”。

‧ 高級程式員的發展和產生與天才並無多大聯系,任何事情都和個人的發展有關。

‧ 令人吃驚的是,小聰明、經驗、堅持和慾望既可幫助你也能妨礙你。

‧ 許多程式員不主動去吸收新資訊和新技術,而是靠偶然地上穫得一些新資訊,如果你抽出少量時間學習別人的程式設計經驗,過一段時間後,你將在你的同行中脫穎而出。

‧ 好的性格對養成良好習慣有很大影響。為了成為一位高水平的程式員,你應養成良好的習慣,其餘的就會隨之而來。


哈今的專利自學手冊

http://www.patent-tutorial.net/index.php

本站希望能提供大眾一個學習美國專利知識的管道,並藉此協助發明人保護自己的發明和監督專利申請的進行。在未來期望能更進一步成為發明人與專利從業人員彼此間互相交流的平台。


Android SDK 教學

http://blog.chinatimes.com/tomsun/category/6165.html


工作與生活:零和遊戲的終結

[前言]

大多數企業都將員工的工作與私人生活視為零和遊戲中對立的兩方,認為工作與家庭生活難以兼顧。公司主管用這種角度決定下屬如何分配工作與私人生活,並常常將促進生活與工作平衡的計畫視為企業提供的福利。

[內文]

在零和遊戲的工作與家庭平衡問題中,大家預設員工會把公司的利益擺第一,而且只有一方會是贏家。絕大多數主管相信,每次員工個人利益獲勝時,組織一定得在營業所得上付出代價,另一方面,企業面臨精簡和縮編組織,也難免員工忠誠度下降。

愈來越多主管會在公司允許的範圍內,以不同的方式面對工作與生活難以兼顧的問題。這些主管認為工作與生活並不衝突,反而是互補的。簡言之,他們採取了雙贏策略。協助員工在工作與生活之間取得平衡,不僅是主管的責任,員工也必須和主管共同合作,才能達到這個目標。

底下是以三個相互強大的原則來進一步探討。

想清楚真正的重點是什麼

大多數組織的員工都不習慣和同事談論重要的個人目標,因為怕公司覺得他們對工作不認真或專心。這種恐懼並非危言聳聽,因為絕大多數經理人都相信、或希望,工作是人一生中最重要的事。對某些人而言,工作的確是最重要的,但對另一些人,工作只是達成其他人生目標工具罷了,他們常常得假裝自己最在意的是與工作相關的事。

能夠和員工共同達成平衡目標的主管,會明示各項目標有多重要。他們會以生產力或績效為評量方法,要求員工想清楚工作之外的重要目標。有人也許要照顧年邁的母親,每個月要到醫院幾次,有人也許希望有些特殊技能的證照,也有人現階段最重要的目標,就是職場上經營成功的事業。

只有互信環境中,才可能激發此類討論。主管必須明白,把工作視為次要的員工,或把個人目標和工作視為同等重要的員工,都不會遭到懲罰,主管不會試圖要他們放棄工作以外的興趣,反而會根據自己對員工的了解,帶領大家邁向同一目標,使事業成功與個人願望得以實現。主管對於績效結果重於過程,只要員工達成預定績效,他們也樂於給員工自我發揮的空間。

鼓勵員工作全人發展

大多數主管都會對員工的私人生活有某些程度的了解,但想協助員工兼顧工作與生活的主管並不滿足於這類片面認知,他們會對員工有更深、更仔細的認識,體認到全人發展的重要性,支持員工積極扮演生活中的各種角色。第一,真誠關心員工的私人生活,可以讓主管和員工之間建立起良好的關係,並進而互信互諒。其次如果主管知道員工所需扮演的各種角色,就可以進一步善加利用員工的才能。第三,人與人應該了解彼此的角色有什麼關係,知道他人和自己什麼地方類似、什麼地方不同,才能拿捏界線,進退得宜。人我界線建立之後,我們才能更專注在眼前的任務上,不會分心。最後,主管一定要了解員工的個人生活,以根據自己的認知來制定策略,使企業和員工的目標並行不悖。比如某些員工熱愛母校的活動,那麼就可以將公司相關的招募工作,請他給予協助,以他對母校的情感,一定可以開花結果,雖然他的工作量會看起來增加,但是如果本來就是他的習慣,短期內不會對現在的工作造成太大的影響,另外,若有機會把工作跟興趣結合,一定會心生感激。所以如果主管能重視並支持員工的全人發展,受益的將不只是個人,公司也是贏家。

嘗試不一樣的解決方法

主管都知道找尋方法增加效率與生產力,但各種新方法與不同的想法就算不具威脅,也可能令人心生畏懼,但有些主管卻喜歡實驗各種做事方法,對不同的工作流程進行實驗,希望可以成為改善組織績效與員工生活品質的大好機會。這些主管發現,工作與私人生活間的衝突其實能刺激員工找出工作績效不彰的原因,若非如此,我們可能無法發現效率低落或其他棘手問題。採取新的思考方式可以讓我們質疑行之已久的方法到底對不對,進而思考改變的必要。比如,遇到組織改組,造成某資深員工不積極並且冷嘲熱諷,此時主管要想怎麼擺脫有問題的資深員工還是用什麼新方法來提升部門績效,不傷害此資深員工自尊,並安排適當的新工作內容?

如果可以從此員工的生活上去尋找他的興趣點和困難,讓員工時間鬆綁,製造彈性,給予新的職務分工或工作安排,也許就有機會解決此問題,製造雙贏。

三大原則並用,效果更強大

三項原則可以單獨使用,不過通常都是三者並進,不但能相互強化實行效果,而且功效上有些重疊。比如,鼓勵員工清楚表達個人重視的事,是注重、支持全人發展的要素。實驗不一樣的工作流程時,也必須將評估重點放在生產力高低,而不是工作時間的長短。

重視員工的私人需求,並且營造互信的工作環境,就能激勵士氣、提高員工向心力。朝向同時兼顧組織目標與私人生活。勇於改變傳統,採納更具彈性的工作時間、工作方式,不但能保有完整的私人生活,也能讓工作更有效率、激發工作創意。上司甚至可以幫助員工,讓魚與熊掌能夠兼得。比如,有員工若只追求工作或寫作的任何一項活動,對他而言都沒有意思。他不想成為一個餓肚子的作家,也不想為了謀生而寫作,但若不寫作,創造力會消逝,工作將只是工作,所以如果可以明確的界定工作時間,鼓勵員工發展新的工作態度,讓大家可以明白長時間不代表對工作投入,而是工作規劃不夠周全。

經理人落實三大原則的困難

有些主管受到傳統的束縛,只看重員工的工作表面時間,有些不知道員工有能力將私人生活上的技巧和知識帶到工作上。還有些主管根本把工作與生活平衡當作與他們無關。

另外原因是,主管們害怕一但考量某位員工的私人需求之後,將造成組織內其他人起而效尤,會引起憎恨,若主管有義務協助員工兼顧生活與工作,組織可能會因為要替每個員工著想而陷入困境,若主管無法比照辦理,一定會激怒其他員工,他們會覺得組織不重視他們。

但研究發現,採行三大原則的主管很少碰到這些問題。由於主管面對員工問題時,都以個案處理,每個人的工作安排都會考量個人需求,從這方面看,這些都是特殊待遇,因此不可能有員工不滿的顧慮。員工的忠誠度甚至會高於他們對權力的要求,因為主管協助員工兼顧工作與生活時,員工都會心存感激。

另外,很多主管會認為不切實際,會把事情變複雜,每個人的生活角色和瑣事那麼多,一定很花時間和精神處理。根據研究,現今主管幾乎都要協助員工提升專業能力,也就是說,他們必須和下屬商量他們對工作的期許,及公司對他們的期望。主管只需再多問兩三個問題,雙方就可以聊到私人生活,而員工的答案常能讓彼此了解更深,使溝通更誠實、更有效率。有時也可以讓員工自己依三大原則發展解決方案,使得對公司和私人生活都有益處。

從何開始

第一,主管可以先選定一位員工試試看,若因此獲得愉快的經驗和信心後,繼續將三大原則應用在更多人身上。

第二,進行組織對話,討論如何協助員工整合工作與私人生活目標。主管可以帶領大家建立工作與生活的宣言。例如,組織到底能怎麼幫? 員工敢不敢和其他人分享私人生活和角色問題等等。

第三,把這三個原則先用在主管自己身上,怎麼設定人身目標? 工作有多重要? 願意付出哪些代價? 自己有多少角色? 何時重疊何時分開? 可以把某個角色技巧和知識轉移到另一個角色? 角色間的分際? 自己對接受新的解決方法接受度有多高? 主管能藉此了解員工在均衡工作與生活旅程上,會碰到哪些抉擇。對員工同理心的敏感度是高還是低。

[結論]

有三種方式對待員工,交易的方式,也就是工作和私人生活,只有一方是贏家。整合方式,即員工與主管相互合作,找尋辦法完成組織與個人需要。很多公司採用善待私人生活的政策,以網羅、留住人才。但如能綜合三大原則,就可以達到平衡的方式,即平衡工作與生活的做法可以為組織增加價值。三大原則不僅能協助員工過更充實的私人生活,也可凸顯工作流程上效率低落的地方,而得以提升效率。

均衡工作與生活就像有效管理的很多層面一樣,需要時間、精神和心力,但是因為這個過程太有價值,絕對值得你的大力投資。