2022年11月30日 星期三

『普林斯頓最熱門的電腦通識課』硬體

去年在一次偶然的機會重組桌機,我已經好多年沒自己組過電腦,這才發現現在組電腦比 20 年前更簡單,內部的元件更精簡,然後排線都已經標準化,光碟機、硬碟機或軟碟機等,都已經退出主流,取而代之的是 SSD USB 外接裝置及網路等,顯示卡如果不追求效能,直接用CPU 內建的 GPU 也非常足夠,不需要獨立顯卡。

因此,機殼裡面要組裝的東西就只剩主機板、記憶體、CPU SSD,也可以說現代的主機板已經囊括太多功能,讓組裝電腦變成只要會裝拆就可以,一切都是標準化動作。

甚至有的機殼還有免用螺絲起子拆拔,以及主機板上非常人性化的防呆功能,現在組裝電腦幾乎是不用專業知識就能自己動手 DIY

講這麼多,其實只是印證書中所講的,電腦的「邏輯架構」都沒甚麼改變,是它實際呈現的硬體樣式或模式改變了,變的更精簡更方便使用。

可攜式的儲存裝置,從軟碟機到光碟機,再到 USB 外接隨身碟,然後現在是直接連上網路存在雲端硬碟。

硬體越來越簡化,但使用者的習慣從以前都現在,似乎都沒甚麼太大變化;一樣是點選磁碟槽存取檔案,在使用上認定它就是個儲存槽,不管實體裝置有多大的不同,反正操作方式跟目的都是一樣的,這就是「抽象化」的好處。

至於 CPU 跟 記憶體的速度跟架構也是一日千里,只不過在一般使用者的認知上,也就只是處理速度越來越快,不會太在意平行處理、多核處理或多執行緒等這些不同架構而產生的影響。

只要知道現在 CPU 有內顯,如果不玩遊戲或是特殊應用,基本上是不用買獨立顯卡,少花一筆錢。

網絡效應」在社群軟體、通訊軟體或影音平台最為明顯,越多人用 YouTubeLineFB IG,吸引力或效用就越大,不得不說 Line 在台灣的普及率真的是太高了,得益於智慧型手機及平板的發展,現在連我爸媽這種以前不碰電腦的人,現也是 Line 大軍的其中一員;我爸還很愛到 YouTube 上去找教學影片來看,這已經是他們連結世界的「重要通道」。

至於講到「邏輯閘」,雖然常說數位世界,但因為大多數人都是使用者,其實對於底層的技術不用太了解,會碰到或用到邏輯閘這個觀念的人,不是學生就是這專業的相關工作者。

手機的「邏輯架構」真的跟電腦越來越像,或者是說根本一模一樣;現在 Window 11 已經有在 ARM 上面執行的版本,以後電腦跟其它嵌入式裝置的邊界會更模糊;當小小一片樹莓派 4 的效能已經超過 10 年前的電腦時,就可以預知這個世界未來會有更多的計算裝置或說微型電腦,圍繞在生活周遭。

科技的進步現在連台灣「中老年人」都非常有感,透過這些通道「拓展自己的世界」,這在 20 年前真的難以想像。


本章節重點摘要如下:

硬體是電腦運算中實體、有形的部分:你看得到、觸碰得到的器材與設備。

數十年來,電腦運算系統的「邏輯架構」大致不變,而硬體已經有了驚人程度的變化。

由兩個觀點來看電腦:

1. 邏輯或功能性組織;有哪些部件,它們做什麼以及它們如何連結。.

2. 實體結構;部件的模樣如何,它們是如何製造的。

個人電腦比麥金塔電腦便宜的原因是較多供應商激烈競爭的結果。各式各樣硬體附加元件,更多的軟體及更多的專門知識與技術,都更容易取得。

經濟學家稱這為「網絡效應 (network effect)」的一個例子:越多其他人使用某個東西,這東西就變得對你更有效用,其效用與使用者人數成「正比」。

手機有類似電腦的網絡效應,而且現在的智慧型手機跟執行電腦運算的硬體很相似。

電腦的邏輯或功能性架構包含:處理器(processor)、主記憶體(primary memory)、輔助儲存器(secondary storage),以及其他元件,全部都由一個名為匯流排 (bus)的線路連結,這些線路在它們之間傳輸資訊。

手機或平板電腦有類似的架構,只不過滑鼠、鍵盤及顯示器結合成一個元件 → 「觸控螢幕」,還有電腦沒有的元件,如「羅盤」、「加速規」及判讀實體位置的 「GPS 接收器」。

1940 年代起,這個基本的邏輯架構 → 一個處理器、儲存指令與資料的記憶體及儲存器,以及輸入與輸出器材,被稱為「馮紐曼架構 (Von Neumann architecture)」。

處理器→中央處理器(central processing unit, CPU),電腦的大腦。

主記憶體→隨機存取記憶體(random access memory, RAM),依電性記憶體,關閉電源內容就消失。

輔助儲存器→磁碟(disk 或 drive),非依電性記憶體,分為硬碟(hard disk/hard drive, HD)及固態硬碟(solid state drive, SSD)。

這些反映的是不同的「實體布局 (physical implementation)」。

磁碟機是「邏輯結構 (logical structure)」與「實體布局」之間有所差異的一個好例子。

Windows上的 File Explorer 或 MacOS 上的 Finder 等程式,把一個磁碟機的內容展示成資料夾與檔案層級結構形式 (hierarchy of folders and files);但實際上,資料可以儲存於旋轉式機械裝置(硬碟)、無移動元件的積體電路(SSD),或其他完全不同的裝置上。

磁碟本身的「硬體」和作業系統的「軟體」合稱「檔案系統 (file system)」。

在電腦運算領域,「抽象化」是一個很普遍的概念:「實作細節被隱藏起來」,在檔案系統中,不論實體所採用的技術有多不同 (HD vs. SSD),都是以資料夾與檔案的層級結構形式把內容呈現給使用者。

電腦裡的電子電路是由大量的基本元素建構而成,這其中最重要的是「邏輯閘 (logic gate)」,邏輯閘根據一或二個輸入值,運算出一個輸出值;它使用電壓或電流之類的「輸入訊號來控制一個輸出訊號 (電壓/電流)」。

有足夠的邏輯閘以正確方式連結,就可能執行任何種類的運算。

在電腦中,一個「電晶體 (transistor)」基本上就是一個電閘,在電壓的控制下,開啟或關閉電流;用這簡單的基礎,可以建構非常複雜的系統。

現今,邏輯閘建造於「積體電路(integrated circuit, IC)」,積體電路常被稱為「晶片 (chip)」或「微晶片 (microchip)」。

在手機,電腦賦能的設備,以及提供雲端運算的伺服器,它們的邏輯或功能屬性全部相同。若不去看速度及儲存容量之類的實用性,它們全都能運算相同的東西。

2022年11月29日 星期二

『Soft Skills 軟實力』習慣的重要性

又再一次講到「習慣的重要性」,近期真的有好多本書都在講習慣,從「原子習慣」之後,我就不斷的看到文章在強調該如何創造好習慣跟移除壞習慣,只能說這些觀念相見恨晚。

從前一篇的責任心、紀律及內在動機,到這篇習慣的重要性等,都是不分年齡、性別及行業的自我修養之路,也就是說越早意識到,就能提早往更好的方向靠攏。

雖然我現在才察覺自己的不足,但應該還有挽救的機會,為時不晚。

這本書討論的議題很多,雖然有些部份跟「軟體開發人員職涯發展手冊」重疊,但它的編排方式跟內容討論範圍是我比較喜歡的。

不管是不是軟體開發人員,我想都能從中得到啟發,畢竟很多思考的方向,或許在我們上班工作後都有一些體悟,但不見得有作者講的這麼全面及透徹。

我從中受益良多,也決心做出一些改變,希望多年後再回頭看這篇心得時,會慶幸自己走出了第一步。


本章節重點摘要如下:

生產力的真正秘訣:長時間反覆完成小事

「習慣」是塑造生活型態最有力的方式,讓你更有生產力,促使你達成目標。每天生活裡所做的每件事都會隨時間累積。

你每天所做的事,會隨時間定義與塑造你這個人。

如果想實現一個目標,像寫小說、開發應用程式,或甚至創業,那就必須落實一項習慣,每天「緩慢」但堅定地往你嘗試的方向移動。

好習慣起始於一個大目標;你想完成什麼事?

找出步驟完成大目標,這會形成你每日例行工作的基礎,「圍繞目標制定你的行程計畫」

實際規畫時間,把這段時間投入在最重要的目標上。只要做些簡單的改變,就能每天朝最重要的「目標」邁進。

真的想提高生產力,就要加強對生活的「掌控」。

如果自己創業或在家遠距工作,一定要制定一份「例行工作表」,清楚定義一整天要做什麼,包含何時開始工作,何時休息;雖然這樣生活缺乏彈性,卻能增加生產力,安全地知道自己正朝目標邁進。

下班前記得「規劃」隔天的工作任務,並「記錄」今天完成的工作任務。

大腦很擅長形成一項習慣,我們會圍繞著自己所做的事,自動形成習慣。

做的次數越多,就越能形成一項習慣。

找出壞習慣,改掉它們,就能快速提高生產力。

每天優先選擇最喜歡的事來做,從最喜歡的工作下手,提高工作效率。

只要能「堅持」一項例行事項夠久的時間,就能成功養成一項新習慣。

找出新習慣的「暗示」,做什麼事能觸發習慣。

「工作拖延」的主因之一,就是覺得工作任務過於複雜或困難,令人生畏。

分解工作,把大任務「拆解」成小任務,你會發現自己有更多動力去完成它們。

大型工作任務或專案會造成我們的「心理壓力」,從而降低生產力。

當我們面對複雜問題時,比起採取步驟來「解決問題」,往往會花更多時間「思考問題」;人都會傾向於選擇最省時省力的道路,所以就不斷發生拖延的情形。

多數的複雜任務都可以拆解成無數個簡單的小任務,這樣也能更精準的估算要花多少時間才能完成。

當你試著把複雜任務分解成許多小任務時,沒有足夠的資訊能幫助你確實了解該怎麼做;拆解的「關鍵步驟」就是找出「缺少的資訊」,來建立定義完善的小任務。

必須確保每個小任務都有清楚的目標。

每個人永遠都在找生活中的捷徑,「想成功但不想辛苦工作」的方法。

所有值得的、有意義的事都是來自辛苦工作的成果;請學習坐下來,然後持續做自己不想做的事。

我們認為難的工作,似乎都是能讓我們獲益的工作或是開啟新機會的工作;所有看似簡單的工作,永遠都沒有任何好處

願意長期投入心力與時間、持續做著枯燥工作的人,不僅能完成工作,最終還將超越所有一起起跑的人,遙遙領先。

現實情況就是沒有什麼事能「不勞而獲」。

多數人的職業生涯都是平淡無奇,他們不願為了真正的成功,而投入必要的時間與犧牲。

2022年11月28日 星期一

『Soft Skills 軟實力』自我負責與突破職業倦怠

一般來說,外在的獎懲動機應該比內在動機影響力大很多,這比較符合人性。

有兩句重點可以總結這個章節的內容:

1. 有內在動機,當沒人監管你的工作進度時,才會有生產力。

2. 無法克服倦怠感,就會失去動力和興趣,轉身去做其他的事。

有內在動機才有辦法在沒外力的情況下,自己安排時間持續工作;如果已經習慣外在的獎懲動機來主導自己的工作或生活,那麼當外力消失時,會茫茫然不知所措。

這應該也是退休族群常面臨的問題,當開始不用工作時,突然不知道自己還能做些甚麼事情,生活失去重心。

另外,自營者或是創業者也有類似的狀況,沒有上頭的吩咐跟交辦事項,一切由自己安排時,「自我責任感」就非常重要。

這點我深有體會,當沒有束縛「放飛自我」時,突然間好像可以甚麼都不做,也沒有人究責,這對一直習慣接受外在規範的人來說,會有點不知所措。如何在無人監管的情況下維持生產力,並建立自己的規則及維持紀律,這都需要「反覆練習」

至於「工作倦怠」「撞牆期」,我在這幾年間也是經歷過好幾次挫折,尤其是碰到撞牆期時真的很難闖過去,當自己內心都認為已經沒辦法再進步時,「放棄」反而是最容易的選項。

如果有看到我一兩年前的文章,就知道我當時真的是想「轉身」去做其它事情。後來的解決辦法是,適時的「放慢腳步」,先不做重要決定,然後回頭檢視自己以往所堅持的事物,再慢慢地重新接觸它、認識它。

個人建議先找個簡單的相關工作做,重新建立「信心」以及獲得「成果」,然後才有機會把當初的動機與興趣找回來。


本章節重點摘要如下:

有兩種動機可以激勵人完成工作:「發自內心的內在動機」「外在的獎懲動機」

內在動機比外在動機有效,如果是由內在動機所激勵,工作效率更高,品質也更好。

以內在動機激勵自己,為自己負責。

對一項工作具有「責任感」,就是會要求自己去做不想做的某些事。

培養自我責任感很重要,當「沒人監管你的工作進度時,才會有生產力」。

自身沒有責任感,則只能依賴外部因素來鞭策自己完成工作,容易受到外部獎懲因素所操縱

自我激勵的核心概念是「自我負責」。如果想獲得可預測、可信賴的成果,不依賴來自他人的影響,就必須學會對自己負責。

當工作結果完全取決於自己時,必須學習「自我紀律」,才能有效率地完成工作,擁有良好的生產力。

要培養責任感,為自己制定規則,必須自發性地把同一套系統規則落實在生活裡。

創造自己的規則,支配你如何生活。

激勵的動機來自內在,但可以請其他人協助執行規則。

有效的方法是「公開自己的行動」,讓越多人知道。把自己的工作暴露於「公眾監督」,會激勵你的行動,因為不想讓依賴你的人失望。

對自己自身的行動具有責任感,唯有堅持自己建立的標準,才能更有生產力。

我們以為自己可以同時做很多事,能夠多工,但事實上我們所做的事只是「不斷地在不同任務間切換」,而這個切換行為似乎就是打擊生產力的主因。

在多工情況下,必須打斷原先的專注力,最終要花更多時間才能重新掌握被打斷的任務。

要進入「專注模式」達到最高生產力,必須先花一段時間專注在工作上,這就是為何快速切換工作會降低效率的原因。

相比於多工作業,批次處理更有生產力,同時處理一系列的工作,而不要把這些工作分散於一整天之中。

適合批次處理的工作:

1. 電子郵件。

2. 打電話聯繫他人。

3. 修改程式。

4. 短時間會議。

真正的多工是可以將「不需腦力的任務」「需要一點專注力的工作」結合在一起,例如邊聽音樂同時寫作,還有可能提高寫作的生產力;健身運動和教育活動結合在一起也是可行的方式之一。

妨礙生產力的最大因素,莫過於身體與心理狀態,或是稱為「倦怠」

人在面對新事物時,一開始往往會真的很興奮,並且受到激勵,但隨著時間過去,會對這些事物越來越熟悉,往往就視為理所當然。

工作上也會有類似的感覺,對於大部份工作,熱情很快就會褪去,不用多久就會開始厭倦工作不想上班。

這樣的情形通常來自於「對新事物的熱情降溫」。如果剛開始啟動一個新專案或學習一項新技能,最終一定會到達「臨界點」,興趣與動力變得低落,發展的結果成長緩慢,甚至是完全停滯,一點進度都沒有。

當你感到身心俱疲,可能會對工作、專案或健身運動等等任何事都不感興趣,覺得自己已經「筋疲力盡」。越是努力,完成的工作越多,但也更加快倦怠的速度,這是生產力難以保持的原因。

生產的效率越高,就越難感受到高生產力的成就感。

如果無法真正地「克服倦怠感」,就可能在失去動力和興趣時,轉身離開去做其他的事。

多數人都會碰到這面牆,遇到臨界點,逐漸喪失最初的動機與興趣,唯有累積到足夠的成果,才能讓我們把動機與興趣找回來。

興趣的燃料是希望與期待,在我們實際開始動手之前,對事物最感興趣。

早期的「成功」能讓你感到更有「動機」,然後產生動力推動你持續向前。

如果進展緩慢,就會開始磨損你的動機,最後發現自己站在臨界點,動力和興趣都降到谷底,這就是「撞牆期」。許多人無法越過這道牆,在真正得到好的結果或專案完成前,就放棄了。

忽視倦怠就能治癒它,克服倦怠的秘訣就是度過痛苦。當動力處於低點時,要說服自己前進真的很難,沒有動機就不會感到壓力,此時請回想「自我負責」,事前為自己建立計畫與設定規則,確保自己能持續前進。

2022年11月27日 星期日

『Soft Skills 軟實力』生產力計畫

我很喜歡這章節的內容,事實上台灣也有許多作者都出過關於生產力的書,其中最有印象的是福哥的『工作與生活的技術』,不是幫忙行銷這本書,而是我腦海中第一個浮現的就是這本書。

先前看這本書時,還沒有寫心得的習慣,但我依然記得他有用到「蕃茄鐘」的概念,不過更令人驚嘆的是他如何「從不自律到極度自律的人生發展軌跡」

用兩句話就能總結這個章節想表達的內容:

1. 事先控制把時間花在哪,而不是事後才來回想實際上都把時間用在哪。

2. 緩慢且穩定的工作步調,會勝過有時快速卻又缺乏一致性與堅持到底的工作方式


上面講的兩點,我一直以來都表現的很差,不夠自律的人生態度與習慣,處處吃虧。但自從疫情發生後,我開始建立類似作者所說的「定量系統」,這也是模仿『原子習慣』中的方法;這一年多來,確實讓我在運動與閱讀寫作上建立好的習慣,具有一致性。

當我成功改掉多年來的「壞習慣」(緊張或思考時就愛咬指甲)後,就聯想到先前看到的一本書說,想要改變一個人,就先從改變他的一個長期習慣開始,不管這個習慣是大是小。

親身體驗測試後,覺得這個說法有道理,當伴隨自己多年的習慣都能被改變時,還有甚麼是「不能被改變的」

至於長期生產力計畫,我至今最長期只做過大約半年兩季左右的規劃,中間也是不斷修正工作進度,不過沒有作者規劃的這麼細膩。

要做到「事前妥善規劃」「確實執行」,這需要長時間的訓練,如果一個人能同時做到這兩點,那我想他不管在哪個領域的表現肯定都是佼佼者。

我自己的主要缺點就是只有在期限快到時,才能燃燒小宇宙提高專注力,然後再提升生產力,總是無法按照規劃的進度執行,諸多藉口拖延;不過我通常都會「堅持到底」,所以還是會有產出 (但品質不如預期) 並達成進度目標。

因應這個爛特質,先前想到一個辦法,我把大目標拆分成多個小目標,分別制定「查核時間點」,並借助外力確認,讓自己「一直有期限的壓力」存在,然後衝刺短期目標。這樣做的好處是,拉遠來看,好像都有按步就班的完成規劃事項。

但這很考驗規劃的能力,一旦短期的目標有所延遲可能會造成「連鎖反應」,不斷為自己找藉口,然後心態上也會崩潰掉「無法準時」完成工作。

或許我該考慮採用作者所提的「長期生產力計畫」,以及擴大我目前在定量系統的使用範圍,看能否在期限還沒到前就能提高「專注力」,並且讓自己有穩定的工作步調與產出。


本章節的重點摘要如下:

作者獨創的「生產力計畫」基本概念是將一整週的工作規劃成各個小任務,每個任務的工作時間最多兩小時。

規劃長期的生產力計畫時,會從季度開始,規劃每季的計畫時,提出季度的大專案,搭配一些小目標,然後再思考每週或每天要進行的任務。

先列出每季的「目標大綱」,針對那季的主要目標,以及如何達成目標的做法有概念,並保持專注。

每月計畫,在當月的第一天把月曆印出來,然後直接在月曆上規劃工作的日期,雖然非精確的規劃,但可以根據該月的工作天數和先前已經答應的工作,估計當月能完成的工作量。其實就是把季度計畫列出來的工作大綱,看要怎麼放進每個月的工作時間裡。

每週計畫,在週一早上規劃這一週的工作,並安排工作任務。每週一要先確認每週的例行事項清單,底下列出作者每星期都必須要做的事。包含:

1. 寫一篇部落格貼文

2. 製作一部 Youtube 影片

3. 寫一篇部落格文章介紹製作的影片

4. 錄製兩集 Podcast 節目

5. 寫一篇部落格文章宣傳這兩集 Podcast 節目

6. 轉錄和編輯 Podcast 節目

7. 撰寫電子報

8. 安排當週要在社群媒體上發布的內容


事先控制把時間花在哪,而不是事後才來回想實際上都把時間用在哪

每天開始工作的「第一件事」就是規劃今日工作任務。

必須先確定自己確實了解要做什麼,在開始工作前,知道完成一項任務的準則,才能「避免工作任務定義不清」,導致拖延與浪費時間的狀況發生。

當天工作進度超前或落後,都需要「調整工作計畫」

「保持一致的工作步調」,白天避免干擾,基本上就是忽略電子郵件、登出即時通訊軟體,可以選擇在有空時回覆,而不是嘗試專注時被即時的訊息打斷。

人無法跟機器一樣,長期每天在緊繃的時程下工作。作者會在幾個星期「隨興的自由工作」,偶而要從強制的工作任務抽離出來。

長時間努力工作與專注後,「休息」確實有其存在的必要性。

要保證自己對追求的某件事「持續有進度」,唯一方法就是預先建立明確的目標,在定義的時間內設定自己要進行多少進度。

要建立「定量」的概念,如果打算重複一項工作,就先定義進行的頻率是多久一次,並對自己承諾要完成這些工作,認真看待這些定量事項;有一致性的基礎,容易評估成果,了解一段時間內的產能有多少。

定量範例:

1. 每週跑步「三」天。

2. 每週發布篇部落格文章。

3. 每天寫個章節。

4. 每週完成五十番茄鐘

定義好工作項目和進行頻率後,下一步就是「承諾」,沒有真正的承諾,就不會成功。這意味著你會進最大的努力去完成所規劃的事,完成你承諾的事,其他別無選擇。

必須選擇可以「實現」且可以「維持」的定量,不要對自己承諾一個明知做不到的事,這註定會失敗。從小處著手,等成功後再慢慢擴大。

不要在執行途中更改規則,不能在設定要完成定量的期間半途而廢。

定量系統的規則:

1. 挑出重複的工作任務

2. 定義工作任務必須完成與重複的時間間隔

3. 定義定量,在已知時段內工作任務要完成多少次

4. 承諾:堅定承諾自己的工作要符合設定的定量

5. 調整:根據實際執行的情況調高或調低定量,但不要在進行工作的時間間隔內調動

緩慢且穩定的工作步調,會勝過有時快速卻又缺乏一致性與堅持到底的工作方式

多數人在「長期生產力」上所面臨的問題是,無法維持穩定一致的工作步調。

定量系統還能克服意志力的弱點,預先設定好要遵守的行程,免除做「決策」的需求。

決策往往會消耗掉有限的「意志力」

2022年11月26日 星期六

讀後感與見解:從商業模式解釋為什麼每個行業薪水差這麼多

今早讀到這篇從商業模式解釋為什麼每個行業薪水差這麼多,覺得滿有意思的,所以也從它的內容來分享一下我的讀後感與見解。

文中提到一個重點,在台灣的高薪與低薪,很多時候不是教育程度有多高努不努力認不認真所決定的,而在於最一開始的行業選擇是甚麼。白話來說,所選擇的行業從一開始就決定了薪資的地板價跟可預期的天花板價。

為什麼這麼多文章都說選擇比努力重要,就是在講投入的努力所得到的回報,跟一開始選擇的方向息息相關。當然,以台灣行業的薪資結構來看,確實是過於失衡,農業、零售、餐飲、行政與文字及藝術服務業相對於工程、金融與醫藥從業人員的薪資差異過大,整個國家雖說是以科技立國,但這些產業能吸納的就業人口實際有限,且門檻也相對較高。

從以前常講的四師:醫師、教師、律師及會計師具有高薪高社會地位,演變到今日大概只剩新進的醫師,還能在首都圈勉強有不錯的生活品質。新進的教師、律師及會計師早已經失去薪資的競爭力。

所以父母其實也別去主導孩子以後要從事甚麼行業,因為幾十年後的行業變遷誰又能預料的到呢?

把焦點拉回文章本身,作者從商業的角度來解釋薪資差異的問題,其中歸納出兩個切入點:

1. 商業模式的不同
2. 價值能否被證明


講到商業模式,通常被問到的都是,是否有標準作業流程? 這個模式是否可複製? 可規模化的機會有多大? 邊際成本是遞增還是遞減? 諸如此類的問題在新創公司的商業模式上,會被反覆討論。

從可複製性/可規模化,然後又講到邊際成本遞減,大致上就說明了以人的時間為主要生產要素的行業,如果無法讓製造或流通的邊際成本趨近於零,那麼該行業的報酬大致上會以工作的時間乘以時薪來看待人的時間在這就是邊際成本

時薪則是看供需決定,如果行業門檻越高或擁有該技能的人數越少,那時薪也會相對較高,但依然難以跳脫高工時換取高工資的模式

如果只能用時間來換取收入,那當然還是選擇高時薪的行業,想辦法往那邊努力,畢竟每個人一天的時間就是 24 小時,能用來交換的時間也有限,唯一能提升的就是時薪。

換個角度想,不然就把自己的時間賣給具有壟斷、高毛利、可規模化或邊際成本趨近於零等特性的公司,這樣公司越賺錢,分配給你的時薪也就越高。美國現在市值最高且薪資中位數名列前茅的公司幾乎都是軟體或是雲端服務,某種程度上就從現實層面驗證這個說法。

因此,也不是所有工程師都能賺到高薪,要看所在的公司是否具有類似上述的特性。工程師所在的行業並非是一個封閉性的就業市場,就供需的角度來看,當市場上全產業欠缺工程人力時,薪資的地板價會相對較高;醫師也是高時薪的工作,主因是因為由政府進行控管名額,因此長年保持水準以上的薪資水平。

教師及律師自從政府降低培訓門檻及廣開錄取名額後,從本來的供不應求變成供過於求,該行業的人力需求相對封閉,而且內需市場逐漸萎縮中,又難以出口外銷,因此新進人員的薪資大不如前

說了這麼多,到頭來薪資水平還是要看行業的特性及商業模式而定,有些行業就特別賺,它可能具有上述的特性又或是具壟斷性的行業,那從業人員高薪就很合理。

選擇了某個行業,大致上就選擇了該行業的薪資分布結構,同時決定從業人員薪資的地板與天花板價,這一切都是自己的選擇;真的要比較薪資就找同行比,別跨行比,不然會很心酸。

除了行業選擇外,在同業中,想要領的比別人多,就是看你做的工作是否容易突顯自身價值。同樣是在軟體公司上班,做後勤支援工作跟產品研發主力,對公司來說價值就天差地遠。

有些職位的工作內容是公司產品的核心,貢獻相對容易被量化(用營收說話),因此個人的價值容易被看到或放大。一般來說,公司有兩大部門的貢獻比較容易被看到,一是銷售或業務,另一個就是產品研發會不會賣跟會不會做,決定了公司的營收來源及毛利高低

銷售或業務的貢獻最好識別,它可以直接用業績/營收/金錢來量化,這不管在哪個行業應該都是最容易突顯自身價值的職位;研發工程師就要看行業別,純軟體工程師的產品相對來說距離客戶較近,比較容易評估其貢獻度;跟硬體相關或捆綁的工程師,因為整個生產流程太長,牽涉到的人事物比較廣,有時候比較難辨識哪個職位貢獻比較大。

說白話點就是,營收高獲利佳到底是業務會賣? 產品做的好? 還是大環境佳商業模式特殊? 這都影響了個人價值衡量貢獻度評估

就像先前在微小疊代所討論的,個人的價值要經過兩次評估,第一次是市場評價,另外就是公司內部評價。當獲利不好時就都別討論其他,全部都該檢討;但當獲利佳的時候,如何爭取公司內部的高度評價,那又是另外一回事,請參考提高職場能見度的技巧吧!。


今日閱讀: 免費! 揭開零定價的獲利秘密 重點摘要

這本書呼應了先前讀過創業與職涯規劃所說的集客式行銷變現方式,而且更詳細的介紹了現今數位產品已經存在的交叉補貼免費模式,這適合我用來規劃部落格的免費內容及其相關配套。

類似的內容之前也在自我行銷的部份討論過,軟體開發人員在架設部落格,並產生免費且有價值的內容時,可以同時思考這幾種交叉補貼的免費模式,看能否引用到自己的副業中。

我現在就有滿多的想法湧現,或許可以一一測試這些形式,看哪些是最適合我們的,同時也能打造不同於現在的商業模式


本書的重點摘要如下:

所有免費的形式,其實是同一件事的變形:1. 把錢從一種產品移轉到另一種產品,2. 從一個人移轉到另一個人,3. 從現在移轉到以後,4. 或先進入非金錢市場,之後再回來。經濟學家把這些稱作交叉補貼 (cross-subsidy)

交叉補貼的精髓就是,不管用哪種方式,一定得有人負擔成本,不是由你直接買單,就是由提供免費資源對自己有利的其他人負擔。

人們有時是靠間接付款取得產品。我們讀的免費報紙是靠廣告收入發行,而廣告支出是零售商行銷預算的一部份。行銷預算已經算進產品成本中,所以人們最終是以購買更貴的產品作為付款方式。

超級市場的免費停車場,是利用產品售價加成來支付;免費樣品則靠有人購買付費產品來補貼。

禮物經濟中的交叉補貼,通常比較不著痕跡,例如部落格供人免費閱讀,而且通常不夾帶廣告,但這不表示你每次造訪都不涉及交換價值

看了免費的內容,回報是注意到某位部落客的貼文,不管是造訪還是連結,都能強化名聲。這位部落客可以用這個名聲得到更好的工作、提高網路排名,或者找到更多的顧客。


交叉補貼可以用以下幾種方式運作:

1. 付費產品補貼免費產品。從賣爆米花補貼賠本電影,到餐廳賣貴的葡萄酒補貼便宜的餐點,免費則是更進一步免費奉送。

2. 日後付費補貼現在免費。免費行動電話綁約兩年,就是這種時間補貼的典型例子。

3. 付費者補貼免費者。男人花錢才能進夜店,而女人免費進場。根據付費的意願或能力,把市場區隔成幾個群體的做法,是定價理論的傳統基礎


而交叉補貼的免費模式通常有四類:

1. 直接交叉補貼

免費的東西是吸引你掏錢購買另一樣東西的任何產品,如免年費的信用卡是因為你向零售商買東西,銀行跟零售商收服務費創造收入,零售商再把他們負擔的費用轉嫁給消費者。(信用卡逾期不繳,利息更是高的嚇人)

2. 三方市場

免費的東西是內容服務軟體或其它;免費的對象是每一個人。   

例如,無線廣播讓人免費收聽,無線電視讓人免費收看,媒體業是把聽眾或觀眾賣給廣告主,這就是三方市場。網路的出現,讓媒體的商業模式延伸到許多行業。

經濟學家把這種模式稱作雙邊市場(two-sided market),因為有兩組截然不同的使用者群體,相互支撐而產生綜效:廣告主付錢給媒體,以接觸消費者,消費者再回過頭來支持廣告主。最後付錢的人是消費者,他們間接支付加入行銷費用而產生的較高價格。

3. 免費增值

免費的東西是搭配付費加值(premium paid)款的任何東西;免費對象是基本款的使用者

免費增值是網路商業模式最常見的一種。內容從免費到昂貴分級,有些網站會有加值付費的專業版或軟體,功能比免費版要多。

跟傳統化妝品或保養品的免費樣品模式雷同,但這些樣品有真實的成本,只能少量贈送。

對於數位產品來說,免費相對於付費的比例倒轉過來,典型的線上網站是採 5%守則5%的付費者養活其他所有的免費使用者。這套方法行得通的原因,在於用數位產品服務免費使用者的成本趨近於零。

4. 非金錢市場

免費的東西是人們選來贈送,不期待付費的任何東西;免費對象是每一個人。

禮物經濟:金錢不是唯一動機,利他精神一直存在,但網路給了它一座平台,因為流通成本為零,使得分享成了一種產業。

勞力交換利用服務的行為都會創造某種有價值的東西,例如改善服務本身,或者把產生的資訊用在別的地方,這等同用自己的勞力交換免費的東西而不自知。例如登入網站時要解開一些驗證碼,利用人的視覺比對技能來得到辨識好的驗證碼。

5. 剽竊

網路音樂是最好的例子。在數位重製和點對點流通的夾殺下,音樂的真實流通成本掉到谷底。有些歌手乾脆讓作品在網路上可以免費下載或觀看(youtube)作為演唱會宣傳、販售商品、授權和取得其他付費形式的方法。

『Soft Skills 軟實力』職涯發展

「職涯發展」說簡單也很簡單,就是把自己當成一家公司來經營,擬定長短期目標,做對的事;說難也很難,習慣被動接收指令做事,跟自己「積極主動」去分階段完成自己的目標,截然不同。

了解自己,並真正明白自己的目標或想去達成什麼事,是如此的重要。每個人都要問自己 5 年後或 10 年後,「想成為怎樣的人,會做著甚麼樣的事」,要對自己的職涯有想像力,才會有長期的目標,然後會更有動力往前邁進。

先前有寫過文章,我在 20 歲時希望自己 35 歲時能做到甚麼,這是一個跨越十年的大目標,然後分解成一個又一個的小目標,分階段達成。

如果在 20 歲的那時,跟別人說我 15 年後的會扮演甚麼樣的角色,有著甚麼樣的經歷,大概會被別人笑掉大牙,然後對著我說那不是「目標」,是「夢想」「幻想」,其差別就在於做不做的到

經歷過那段一直「驅動」自己往下一個階段性目標邁進的過程,每完成一個目標,沒有喘息的時間,要趕緊再往前走,一路保持急迫感才能讓原本是夢想或幻想的事情變成「現實」

作者這章節又再次提醒我一件重要的事,所謂的專業人士就是要「保持自律」「好習慣」,維持不斷「超越自我」的精神。

我曾經有過迷惘及懈怠,因此要重新設定自己的短中長期目標,找回繼續前行的動力,讓自己做真正的「專業人士」!


本章節重點摘要如下:

請把自己視為一家企業,就能做出好的商業決策。

人若習慣於領取一份固定的薪水,而薪水又與工作績效無關時,就會陷入一種「消極」的心態。

別讓特定職務角色「侷限」個人與職涯發展。

轉換思維,把雇主當成你個人事業的一名客戶,你的態度就會從原本對工作的「無力」「依賴」,轉變為「自主」「自我」導向。

多數人都沒有具體意識到自己的人生目標或嘗試想達成的事,最終就造成自己的行動「缺乏目的或方向」

人的天性會傾向於「逃避」,選擇做一份能獲得薪水的工作,在工作上等待下個更好的機會,或直到被解雇為止。

沒有「明確的方向」,你所前進的每一步都是浪費;不為你的職涯設定目的,人生就會漫無目標地虛度。

請思考職涯最終想達成的目標是什麼;花點時間思考這些問題,真的非常重要。

你希望五年或十年後,自己會在哪裡? 

一旦找到自己的大目標,下一步就是制定能實現目標的進程,逐步「把大目標拆成小目標」

如果你已經實現了一項遠大的目標,那麼請回想一路走來達成了哪些「里程碑」? 從大目標反推到目前的狀況,你能「回溯」出自己走了哪些路嗎?

持續推動各個小目標,就能逐步驅動自己朝大目標前進,最終到達你所設定的目的地。

小目標能讓我們覺得自己有進度,正在完成一些事,進而激勵我們持續向前。

定期檢查自己所設定的目標,有助於在需要時進行調整,對自己負責。

「追蹤目標」有助於反映短期與長期所要完成的目標有哪些,透過這樣的方式來檢視進度是否正確或需要調整。

發展「專業力」的原則:專業程度越高,機會數量越少,但獲得機會的可能性就越高。

不論做甚麼工作,重點是要確保自己選擇某項專業。就業市場的大小會決定「專業的獨特性」,並盡可能使其獨特,才能提高專業市場對你的需求程度。

新創事業通常專注於「快速成長」,盡可能讓公司獲利或是達成一些具有急迫性的目標。

不管在哪家公司任職,想獲得升遷,關鍵就是要承擔更多責任

如果老闆和管理高層不知道你為公司做了什麼,你所有的努力很容易就會付諸東流,主動寄工作週報是作者最推薦的方式。

提高職場能見度:

1. 工作日誌,彙整工作日誌成週報寄給主管。

2. 發表簡報或提供教育訓練,挑選對團隊有用的主題。

3. 提出個人想法,在會議上或任何你抓到的機會提出自己的想法。

4. 被看見,定期讓老闆看到你,確保自己經常在老闆的視線範圍內。

持續提升自己的技能和專業知識,展現自己有更多的價值,更容易帶來加薪或升遷的機會。

永遠要當個能針對問題提出解決方案的人,並且執行解決方案,獲得成果。

專業人士就是要展現自己的能力、在工作上盡力、不被逆境打敗、要求自己克服缺點,盡可能產出最佳的工作品質。

專業人士會認真看待自己的工作責任和職業生涯。為了做正確的事,願意做出艱難的抉擇,並且經常為此付出代價。

專業人士:

1.  遵守個人原則。

2. 以正確的方式完成工作。

3. 勇於承認自己的錯誤或不足之處。

4. 工作上具有一致性與穩定性。

5. 承擔責任。


業餘者:

1. 說一步才做一步。

2. 專注於完成工作,不論做法是否正確。

3. 假裝自己博學多聞。

4. 無法預測工作品質,且態度不可靠。

5. 逃避責任。


習慣是成為專業人士的基礎,想改變人生就要改變習慣,如時間管理技能。

你每天知道自己要做哪些工作嗎?  每天提前規劃每日的工作時程,才能養成有效管理時間的習慣。

好的習慣能建立在工作上的一致性,工作品質有一致性,才能讓他人認同你是一位可靠的專業人士。

專業人士要知道何時該說,即使是對自己的雇主。

在職涯發展過程中持續不斷地去做你認為正確的事,比起其它替代作法,更可能帶給你回報,而且晚上也能睡得安穩。

專業人士會評估工作的重要性,排定優先順序,然後依序完成工作。

專業人士會致力於不斷改善和提升工作產出的品質,隨著時間逐步提高一致性,達到自己所設定的標準。

你做每件事的方法,就是你做一切事情的方法。降低某方面的標準,也會在無意間降低其他方面的標準,一旦向底線妥協,就很難再回到原先的標準。

確切的制定自己的學習計畫,然後擴展自身的技能和學習新技術,以符合自身高品質的期望,永遠要致力於超越自我

2022年11月25日 星期五

『Soft Skills 軟實力』技術與創業

作者在這個章節點出了人們常見的「偏見」「獨斷」,我倒覺得不只是在技術,通常只要是「自己的選擇」,都會覺得是最正確的,凡是跟自己走不同的路或是做不同的選擇,通常都會下意識的否定它。

我認同軟體開發人員在「創業」上有優勢,尤其是可以自行開發產品,不用仰賴他人。但一體兩面,就因為自己懂技術會開發,常常「太著急」跳下去做產品開發,而忘記去了解「目標客戶」在哪裡。

「副業」開始是個好建議,用最小的成本來驗證想法,這是精實創業的核心思想,我認為特別適合軟體創業的人使用。

不管對創業題目有多大的信心,都別忘記新創公司陣亡率超過 80%,要做好失敗的準備。千萬不要跟賭徒一樣 ALL IN,保留東山再起的資源,這樣才不會因為害怕失敗而不敢去嘗試新的想法。

作者很聰明,當初他也有獲得創業加速器的協助,但他考慮到自己還沒有做好心理準備,來面對「創業生活的煎熬」,所以就放棄那次機會。

以我「接受過外部投資」的經驗來看,真的要審慎評估自己是否真的能熬過那個痛苦的過程,畢竟投資人都希望能早日變現,速度越快越好,因此「創業者的生活大概就只剩工作沒有其它」

換成我是投資人,也會希望所投資的企業早日成長茁壯,讓投資者「快速獲利出場」,因此就別怪投資者冷血,絲毫不理會身在局中的人有多痛苦,畢竟這個遊戲規則從一開始就講清楚了,「願者上鉤,別抱怨」


本章節的重點摘要如下:

多數人崇尚特定技術「只是因為自己會那個技術」,與技術本身的好壞無關。

人很自然會認為自己選擇的東西最好,所以經常會輕蔑任何與我們相反的意見;這種內在的自然行為模式,具有破壞性和限制性。

當我們基於自身的經驗獨斷地堅持某個信仰,往往只會和那些也抱持相同信仰的人在一起,斷開其他接觸,一再地重複這些想法,最後停在這個點,「不再成長」,以為自己已經對技術非常熟悉。

不必因為選擇一項技術,就認為這項技術最好而貶低其它技術。所有技術都有其可取之處,在評斷之前請先去嘗試新東西,「不要侷限自己的觀點」

軟體開發人員在創業之路上具有得天獨厚的優勢,不僅能自己提出概念或新想法,還能自己開發。

軟體開發人員不只能開發軟體產品,還能開發「資訊類產品」, 像是介紹軟體開發方面的書或影片。

常見的軟體開發人員「創業錯誤」就是,還沒找到該產品的目標客戶,就先建立產品。

請避免為一個不存在的問題建立解決方案

每個被創造出的產品都是為了解決特定問題,請在產品開發出來前,明確找出具有這個問題的「目標客戶」

不要貿然跳入追尋創業的道路,先從小處著手,先當副業經營。

第一次創業可能會以失敗告終,可能要經歷多次失敗,才能看到真正的成功;請保留足夠的資源,可以在創業失敗時重新站起來。

最大的學習來自於嘗試與失敗;去做你認為正確的事,找出為何不可行的原因,然後試試其他不同的想法。

開創一項新創事業時,思考未來很重要,要明白多數「投資者」投資你的新創事業,最終都是要「套現獲利」,看到他們的投資有所回報。

要理解新創公司拿外部投資人的錢,目標通常就是要在創業這條路上的某個點,讓投資者獲得巨大的報酬。

保守的人通常會獨資創業,公司資金來自創辦人,成長慢但失敗的可能性也較低,創辦人擁有公司大部分股權。

在開始拿外部投資創業之前,要謹慎考慮,投入數年的人生並瘋狂工作,最終如果失敗,除了艱苦工作的人生經驗外,沒有任何事能證明你曾經辛苦過。

2022年11月24日 星期四

『Soft Skills 軟實力』自我行銷

先前也在好幾篇心得中討論過自我行銷的議題,我從博士班畢業後似乎也默默地在耕耘這件事,只是連自己都沒意識到而已。不管是在大學兼課、又或是到外面演講或講授訓練課程,甚至安排在研討會上面發表文章,都是為了「公司或自我行銷」之用。

但作者這個「免費提供內容或服務」的概念,倒是鮮少嘗試過。在未來的一年裡,要試著將 90 % 有價值的專業內容,透過部落格免費提供給有需要的人,結合在學校的授課或演講機會,持續累積受眾。

我自己個人的心願,還是想嘗試「出版一本基於特定利基點的專業書籍」,藉此為自己的專業水準奠定基礎,這個想法本來覺得遙遙無期,但在今年新課程的磨練後,又覺得再努力一下應該可以找出利基點的存在。雖然不知道這個想法的受眾會有多少,是否會受市場歡迎,但我會持續朝這個方向努力。


本章節的重點摘要如下:

行銷的概念就是「吸引人們的注意」,讓他們注意到你個人或你的產品。

行銷追求的目標是,先提供價值,才要求回報

行銷才能讓天分發揮乘數效應,行銷的能力越好,才能越放大你的天份。

行銷的核心是把產品/服務和需要該產品/服務的人「連結」在一起,所以行銷自己就是把你和那些需要你提供能力的人連結在一起。

想行銷自己,正確的方式是「提供價值給他人」,並帶有目的性地選擇你要如何表現自己,藉此管理自己的職業生涯。

自我行銷要先發展個人品牌,一些能展現自我的東西,不需要把自己完全攤在陽光下,但要有意識地決定你想做甚麼。

軟體開發人員可以利用部落格來發展個人品牌,這是效果最顯著的方法,部落格像是你在網路上的家,能完全控制自己的訊息。

自我行銷的管道:

1. 部落格文章
2. Podcast節目
3. 線上影片
4. 雜誌文章
5. 書籍
6. 研討會

自我行銷這項策略要「花時間持續去做」,每篇貼文、接受訪問的 Podcast 節目,每本書和每篇文章,都會隨時間累積,貢獻在你的行銷力道,提高個人品牌的辨識度。

一切都取決你帶給他人價值的能力。

組成品牌的四要素:核心訊息、視覺設計、一致性和曝光量。

選擇某個「利基點」作為主題,藉此建立你的品牌,如果能專注在侷限的主題上,才能直接把訊息傳達給主要族群,也能建立品牌識別度。

「策略」的觀點來看,你具有什麼優勢,是否能透過特定的「利基點」來發展這項優勢。

找出利基點後,就可以開始運用核心訊息,用一兩句話來表達產品的核心價值。

建立部落格的步驟:

1. 決定架設部落格的主機,免費、付費或虛擬主機。

2. 安裝部落格軟體。

3. 設定任何主題或客製化內容。

4. 開始撰寫部落格文章。


最成功的部落格,提供人們可信賴的價值,而且絕大部分是「免費」的。

當你免費提供內容,人們不需要先投資任何金錢,就有機會能先看內容的價值如何;當人們了解你所提供的免費內容品質很高,通常就能輕鬆說服他們購買你所銷售的東西。

免費提供內容要想成是「投資未來」,今日你為他人創造價值,並免費提供,藉由這樣的方式行銷自己,就是為自己創造名聲。

讓別人知道你為他人提供價值,就是為自己的未來創造機會。

解決他人的問題,才能真正幫助他人

擁有「利他主義」動機的人,通常也是生產力最高的人。

書籍和雜誌不是賺錢的途徑,寫書和雜誌文章的真正好處是,廣泛宣傳你的理念與「建立個人名聲」

書籍的主題越專注、越精確,就越容易提供自己的專業知識,但相對地市場中潛在的讀者數可能也越少,必須在這兩者間取得平衡點。

『Soft Skills 軟實力』建立自主學習的能力

關於這個章節對於「自主學習」的描述,以及十步驟學習的方法,我幾乎可以完全對照到本學期新課程的建置過程。依隨事先「設計好的課程進度」,一步步的摸索並實作,到最後掌握足以授課的相關知識,然後進行教學。

看到作者將這個過程整理成「十步驟學習法」,可以更有系統的依照該流程去學習新事物,同時我也勉強算是這方法見證者之一。以前我都會舉費曼學習法」為例,或許以後也可以拿十步驟學習法出來分享。

從我的經驗來說,步驟五「建立學習計劃」之前的工作,有著決定成敗的關鍵影響,後續當然也可以回頭來微調學習計劃。

當我每週都能達到預期目標時,是相當有「成就感」的,而過程中實作所發現的問題,再去探索答案,也激發了更強的學習動力以及學習效率。雖然因為時間的緊迫性,壓力也不小,但總歸是一種「有效的學習方式」

當自己要將過程中「實作的經驗」「探索到的答案」分享給學生時,又要經過一番整理,將這散落四處零散的知識片段重整起來,有系統的分享與傳授

其實我覺得每次開新課程,授課教師自己學習到最多,同時應該也最興奮,因為這本身就是一個典型的自主學習,雖然過程痛苦,但成果是甜美的。


本章節重點摘要如下:

如果在畢業之後就停止接受教育,會漸漸讓人生處於劣勢。

「自主學習」是一項關鍵能力,可以提升進階技能與知識。

學習某件事物的最佳方式是,在你甚至都不知道自己在做什麼之前,就跳下去開始做,要專注在「實際參與」並且「盡早去做」

動手實踐前對一項主題有足夠的知識,就能挖掘出內心更強大的「創造力」「好奇心」

「唯有當你找出問題,而且想知道答案時」,才會有想法,知道什麼是重要的。然後再把學到的知識重新投入實踐,看學到的新工具是否適合當下的狀況,並解決問題。

探索新領域,了解需要解決的新問題,一步步深入想了解的知識,解決在實踐過程中所發現的問題,為自己所發現的知識感到興奮。

了解三個關鍵,學習一項新技術:

1. 如何開始,了解一開始需要哪些基本資訊。

2. 主題的廣度,要學習的事物範圍有多大以及該如何進行。

3. 基礎知識,學習哪些 20% 的知識,就足以應付工作裡 80% 的應用。

找出 20% 的關鍵知識非常困難,因此作者提出「十步驟流程」來學習一樣新技術。十步驟分別為:

1. 綜觀全貌。

2. 決定範圍

3. 定義成功

4. 尋找資源。

5. 建立學習計畫

6. 篩選資源。

7. 學習恰到好處的基礎知識

8. 實作

9. 具備足夠學以致用的知識。

10. 教導他人

其中前六個步驟是專注於前期研究
,都只要完成一次,用來幫助達成自己的目標和建立學習計劃。這是整個流程中最重要的部分,決定未來學習計畫的成敗。

利用「時間表」幫助決定「學習範圍」,把主題的範圍縮到適合的大小,以符合整體的學習因素和可用的時程。

「成功準則」主要取決於你想從學習經驗裡獲得什麼,重點是確保你能在流程結束後,評估自己的學習成果是否符合目標。

建立學習計劃的好方法,就是看看別人怎麼教。好的技術書籍都會在每一章為後續章節奠定基礎。

「要找到正確的學習路徑」,在最短的時間內帶領你從 AZ,完成過程中的所有主要里程碑。

篩選資源,留下少數最有價值的部分,幫助你達成目標。

針對學習計劃裡的每個模組,重覆步驟七到十「基礎學習→實踐→深入學習→教學」 的循環,直到實現目的為止。

多數人常犯的兩個學習錯誤,第一是在知道得太少的情況下就太快行動;二是事前準備工作做得過多,太晚投入。

要學習夠用的知識,讓自己能「盡早開始實作」,又不能多到沒有探索知識的機會,才能獲得最好的學習效果。專注於學習最小量的知識,只要足夠能開始下一步驟的實作即可。

先不要讀任何資料,直接開始實作,做中學。

這會在腦海中自然而然形成問題:這是怎麼運作的? 如果這麼做會發生什麼? 要怎麼解決這個問題?  這些問題會引導你找出實際上什麼才是重要的。

當你回頭去找問題的答案,這些你學到的知識不僅更有價值,還會記得更多,因為你學習的都是對你重要的事物。

「好奇心」是學習的關鍵,特別是對自主學習來說。快速學習的時期主要都是受到好奇心所驅動,想要了解世界是怎麼運作的,所以我們會問問題,然後尋找答案。

透過閱讀與實驗來解決實作過程中遇到的問題,隨著探索問題的答案,會學到更多與主題有關的新知識,盡可能徹底理解正在學習的主題。

要確定你已經學會某件事物,就是去教別人你所學會的知識。當你跟他人解釋時,無形中就能補足自身學習的落差。

這個流程會真正剖析與理解你正在學習的主題,也會以別人可以理解的方式來組織這些資訊。

教導他人的方法:

1. 寫部落格文章。

2. 製作 youtube 影片或教學。

3. 簡報。

4. 和朋友或另一半對話。

5. 在線上論壇回答問題。

學習流程背後的觀念才是真正重要的事;付出努力才能學會如何教育自己。

2022年11月19日 星期六

『普林斯頓最熱門的電腦通識課』資料與資訊

資料探勘」早在十幾年前唸書時就有耳聞,但資料科學倒是近五年來才知道有這門學科。

就我的理解來說,資料探勘就是如何從大量資料中找出有用的資訊,而「資料科學」就是利用這些有用的資訊來做分析,從而達到預測的目的。

網際網路每天都在產生大量的資料,要用人為收集並篩選毫無效率,因此誕生了「網路爬蟲」來自動抓資料,這應該也是早期 Google 在建立搜尋演算法時跟其它公司有所差異的地方,它們的爬蟲跟建立索引的效率比其它搜尋引擎好上不少 (個人猜測)。

話說好幾年前在上「行銷課」時,有位老師超愛講網路爬蟲,然後再用以分析資料擬訂行銷策略;這樣看來資料探勘跟資料科學已經是「現代行銷學」的一環,作為行銷的工具被使用。

就是聽到這位老師一直講網路爬蟲,當年有位同學跟我還跑去中研院上 Python 網路爬蟲的實作課程。

因此,我覺得有志走「數位行銷」的人,未來除了「消費心理學」、「市場分析」與「產品定位策略 STP 分析)」的學習與應用外,也要了解資料探勘與資料科學,至少該知道怎麼在行銷的過程中使用它們,就算自己不會,還能找會的人來協助。

S是市場區隔 (Segmentation)、T是市場目標 (Targeting)、P是市場定位 (Positioning)。

最怕的不是自己不會,而是連這項工具都不知道,那就更別提找人來協助了。 

就創業家來說,初期的「 STP 分析」很重要,至於要不要做「數位行銷」就看所屬產業是否適合。

怎麼講著講著就從資料探勘跟資料科學講到數位行銷了,但在這個領域它們確實有很大的施展空間,一門學科能蓬勃發展那肯定是有了適合生長的土壤。

在數據爆炸的時代,能妥善應用的人就會脫穎而出

說到雲端運算,從十幾年前就已經有人提出相關概念,當時也有廠商提出相關產品;但多年前的基礎設施還不完善,網路速度也不夠快,也缺乏基於「雲端應用軟體」;再加上人們的使用習慣一時間無法轉換過來,導致早期推出產品的廠商都死在沙灘上。

來到智慧型手機的時代,人們慢慢習慣透過網際網路處理各種事務,這也給予「雲端服務」成長的動能,不管是 Google 推出的各式免費雲端服務 (包含電子信箱、行事曆、地圖導覽等),或是把線下服務搬到線上的網路銀行、電商及外送等,加上日漸普及的「電子支付」,都象徵著「雲端服務的輝煌時代」到來。

這也代表要一直新增「雲端伺服器」,相關產業都能分到一杯羹;現在由於生成式 AI 的崛起,「AI 伺服器」的相關產業更是受惠的一方。


本章節重點摘要如下:

資料探勘 (Data Mining)」是從大數據中尋求與萃取出潛在寶貴資訊與洞察的過程。

資料科學 (Data Science)是應用統計學、機器學習或深度學習,及其他方法與技巧來試圖了解資料,從中萃取意義,並據以做出預測的一門學科。

搜尋引擎的大部分工作是為查詢做好準備,把頁面資訊儲存及整理在伺服器上:使用「網路爬蟲 (web crawler) 」掃瞄網頁,把重要內容儲存於一資料庫中,以便能夠快速回應後續的查詢。

搜尋結果是根據一個「預先運算」的快取頁面資訊索引,不是即時的網際網路頁面搜尋。

以瀏覽器為基礎 (Browser-based) 的系統的反應速度可以媲美以個人電腦為基礎 (Desktop-based)的系統,並且讓你可以從任何地方存取資料。

雲端運算」的優點很多,它們供應的軟體總是最新的,資訊儲存於專業管理有大容量的伺服器上,客戶資料隨時都有備份;一份文件只有一個版本,不會發生同一份文件在不同的電腦上可能有不一致版本的情形。

2022年11月18日 星期五

『Soft Skills 軟實力』指導他人是掌握學習的不二法門

這學期授課時,常有作者提到的情況發生。某項技術主題我明明就用很多年了,可是當我要教給學生觀念或技術時,才發現原來「我只是懂其中一個部份,讓自己可以用來工作」而已,而非了解該技術的全貌。

重新整理授課內容後,又找出更多相關聯的方向可以突破;原先是要備課教導學生,反而是我變成了「最大受益者」,學到最多東西,也讓自己可以有系統的理解某個主題。

同樣的,當有朋友在詢問我對於他企業經營上的建議時,不管是分析經營的狀況又或是討論一些細節,總是讓我可以從「不同角度及角色」去審視每個事件的發生,反而看的更清楚一些。

當自己身在局中,往往看不清楚問題在哪裡,更別提要如何解決問題。

因此,我也認同作者所提及的「教導他人就是成就自己」,甚至因為要教學才會讓自己理解的更深入。

這部份,在先前的費曼學習法也有提到過,可以一併參考。


本章節重點摘要如下:

當你擔任導師的角色時,經常會比你所指導的人學到更多的東西,因為當你重新審視自己對一項主題的想法時,會從新的視角來看這項主題

在你企圖協助他人時,會發現回答他人的問題能使你更深入了解一項主題的知識,甚至完全改變你的看法。

自我成長的機會,幫助別人也會讓你成長。

最棒的學習法就是指導他人,這或許也是深入學習任何事情的唯一方法。

教學就是把一些知識分享給其他人。

當我們首次學習某項主題時,往往會高估自己對這項主題的理解程度,很容易欺騙自己,以為自己真的很懂某件事,直到教導他人後才發現自己所知有多麼不足。

「教學」會強迫你去面對所有你已經擁有相當知識的領域,檢視你是否具有夠深入的能力,能充分向其他人解釋。

人類的大腦擅長「辨識模式」,經常能解決許多符合這些模式的問題,而不用真正理解自己正在做什麼或是為什麼這麼做。

當我們只想運用這些知識來工作時,不會去管我們是不是只有表面的理解。可是當我們嘗試想對某人解釋某件事的運作原理時,或為什麼要這麼做,認知上的漏洞就會暴露出來。

透過把某項知識教給某人的過程,會強迫自己面對跟這個主題相關的困難問題,更深入的探討,直到你從學習變成「理解」一件事。

教導他人無形中會強迫你的大腦重整資料。

剛開始學習某件事時,通常是很「零碎的知識」,以「混亂的方式」儲存在大腦;也就是大腦是在掌握一個觀念後,才引導你到下一個觀念,然後再帶你回到之前的觀念,最後才獲得以前尚未理解到的知識。

教導他人時,會思考哪種方式才是最好的說明方法,整理成文件、投影片檔案,這樣的動作促使「散落在大腦裡的資訊碎片放在一起,以有意義的方式重組」

教別人之前,要先教會自己,這也是教學對自身學習有效率的原因。

教學是要幫助他人理解,而非證明你自己的優勢或尋求他人承認你的能力

『Soft Skills 軟實力』覺察自身的知識落差

總覺得這章的內容是在「說給我自己聽」的,頗有既視感。

我確實習慣掩飾自己的弱點,現在回想起來也覺得很可笑;明明知道自己哪邊偏弱或不安卻又不願花時間去加強,是有點在「逃避」的味道。

以前當學生時,對於理論工具如「微積分」、「線性代數」或「統計等不擅長,在唸碩士做研究時就盡量避開,往自己能力較強的程式語言或其它偏實務的學科方面下手,盡量以實作面取代理論面的創新,這樣也不是說不行,但其實是把自己的發展限制在一個範圍內。

還好當時有正視自己「英文」能力不行,未來會是一個顯著的「弱點」,這倒是有面對它,雖然過程中有好幾次想逃避,但最終還算有達到自己的目標;現在還是頗不擅長,但至少面對它時不會感到不安,因為心裡相信自己終究可以解決這方面遇到的困難。

在接近 40 歲的現在,我覺得還是要面對自身的弱點,解決理論工具不足的問題,讓自己在「創新研發」這條路上能走的更遠。

這個覺悟來得好晚,如果博士剛畢業回國的那個時間點有想通,那到現在應該也積累了不少能量吧!

人生沒有後悔藥可以吃,剛畢業時就一頭熱闖進「創業的世界」,想說好不容易拿到博士學位,應該不用繼續苦讀了吧,趕快賺錢比較實在;不過這到底算不算藉口,連我自己都搞不清楚。

理論工具的不擅長,確實制約了我在創新發展上的可能性,雖然後續又跑去唸了 MBA,這算不算是另一種逃避呢?  

從現在來看,應該不算,這個旅程至少讓我在「財務及「行銷上,有些不同於以往的想法,或許現在幫助與收穫都不大,但未來很難說;請參考「會計、行銷與創新」。

只能說,先面對它,才有機會解決它;這個道理人盡皆知,但發生在自己身上時,就好難做到阿!

本章節重點摘要如下:

如果不解決自身的弱點,通常會成為「限制職涯或人生發展的因素」。

發現缺乏的知識並且補足它們,越能幫助我們在工作上走得更長遠。

我們習慣掩飾自己的弱點,找藉口說自己太忙沒有時間停下來,把這部分的「知識落差」補上,避開自己覺得弱或感到不安的部分;就算明白「知識落差」對自身所造成的痛苦,往往還是不會有所作為。

當沒有「全盤透徹地理解」一件事,就只能笨拙地摸索去做,導致投入大量時間做重複性的工作。

不斷地嘗試覺察自己是否有任何無法理解或清楚的地方,列個清單持續追蹤相同主題出現的頻率。

填補「知識落差」的關鍵就是找出它們,一旦知道自己的「知識落差」為何,以及它如何阻礙自己的發展,通常就能弄清楚該如何填補落差。

重點是要確實了解自己需要「學習」甚麼,確定有將「焦點」限制在「明確的範圍」內。

當在對話或討論過程中遇到完全不懂的事,千萬不要掩飾,問就對了,這樣才能對每件事一清二楚。

2022年11月16日 星期三

『普林斯頓最熱門的電腦通識課』軟體總結

現代的計算機概論範圍也越來越廣了,從傳統的「硬體」、「軟體」到「通訊」及「資料」等;其中,通訊現在應該算獨立於計算機之外自成一派。

而資料科學則在近十年「機習學習」或「深度學習」變成顯學後,受到高度重視。

我自己也覺得未來要多加重視「資料科學」,畢竟現在的資訊太發達,資料太多反而讓人無法快速反應過來,就算不是資料科學的從業人員,也應該具備相關知識,才能更好的解讀被分析過後的數據。

話雖然是這麼說,但回想十幾年前唸書的時候,資料科學這個詞連聽都沒聽過,活著就得努力的追求新知識與新技能,科技進步的很快,但也要跟得上才行阿! 

不想變成時代的眼淚,還請多努力,別輕易躺平


本章節重點摘要如下:

演算法」是一系列精確、清楚的步驟,執行特定的工作後停止;它敘述一個「與實作細節無關的運算這些步驟以定義周詳的基本運算為基礎。

演算法的複雜度是它的工作量的一種抽象描述,複雜度的衡量是看此演算法的基本運算的工作量是如何隨著資料量的增加而成長。

從最低等級的「對數曲線 (資料增加 1 倍只增加 1 個運算步驟)」、「線性曲線 (資料 1 倍運算 1 倍)」到「指數曲線 (增加 1 個資料項運算 1 倍)」。

演算法是「抽象」的東西,程式是要讓「真實」的電腦執行工作所需要的全部步驟具體表述。

撰寫程式必須應付的問題包括「有限的記憶體空間與時間」,用以表述數字的資訊量大小與精確度有限,以及經常變化的環境。

程式語言」是用以表示所有運算步驟的標記法,其形式要讓人能夠自在地撰寫,但可以被轉譯成電腦最終使用的二進制表示。

最常使用的是「編譯器 (或再加上組譯器)」,把用程式語言撰寫的程式轉譯成在電腦上運行的「二進制形式」。

目前「軟體開發」的工作有很大一部份是把既有的「元件」拼湊起來 (可能是函式庫裡的函式),這不少於自行撰寫的部份。

函式庫及元件透過應用程式介面 (API) 來提供它們的服務。

抽象化」是電腦運算領域的一個基本概念,從硬體到大型軟體系統,所有層級都存在抽象化。

尤其在「軟體的設計與實作」方面,抽象化這個概念特別重要,它把一個程式碼做什麼事和它如何實作這兩者區分開來

軟體可被用來隱藏實作細節,如虛擬記憶體、虛擬機、直譯機及雲端運算。

程式的開發更加倚重已經被證明的軟體元件,隨著消費者的要求更多,程式將變得越來越大。

2022年11月14日 星期一

奇亞幣終於突破 10 XCH !

本來預期要到年底才會超過 10 XCH,想不到今天早上起來又發現爆幣一次,直接越過 10 XCH 的門檻。今年對於加密貨幣來說應該是災難年,比特幣價格的下滑,再加上近期 FTX 交易所的倒閉,讓人見識到這種新興金融產品的風險極高。

先前耳聞穩定幣的活存利率極高,應該在 5% ~ 8% 間,不過我當時手頭就有美股的殖利率也接近 8 %,所以不太理解為何要去追逐這種風險高度不可控的標的。

當然,買股票也是有漲有跌,但每個股票代號的背後都是一間公司,雖說也是有下市的風險或是公司做假帳的可能性,但風險相對可控多了。

也因為單壓個股有風險,所以我也盡量分散投資。不過控管風險不是我們不去接觸新科技的藉口,去年初在倫哥的建議下接觸奇亞幣,也因此變成農夫大軍的一員,這中間的過程先前都有記錄起來,在還不成熟的階段開墾是很辛苦的,但現在已經漸入佳境,幾乎不用怎麼管它,只要按月記錄產出了多少 XCH 即可。

加密貨幣應該會再低迷一陣子,觀察到退出農夫大軍的人也變多,我們這些小農分到的也越來越多,說不定真的能夠提早達成 20 XCH 或 30 XCH 的目標。 但最終目標還是希望奇亞幣能走出一條跟現實世界接軌的路,在現實中有價值才是最重要的。

2022年11月13日 星期日

『普林斯頓最熱門的電腦通識課』軟體系統

這章的概念在過去不同階段的學習中都有出現過,但經由作者放在一起,描述現代軟體系統的組成,就又更清晰了一些。只不過這章節在敘述上,稍嫌雜亂,我想作者應該是想要前後文呼應,所以同樣的概念才會反覆出現。

我個人主要的「閱讀重點」是在軟體分層這部份,像作者所說的,如果換處理器或作業系統,只需要重新挑選編譯器,就能讓同一份應用程式的程式碼可以在不同平台運行,那就能大大節省開發的時間。

這部份通常被稱為「程式碼移植」工作,以目前的發展來看,要注意的是與特定硬體相關的「加速指令集 (SIMD)」以及與特定作業系統相關的系統指令。

如果希望自己的應用程式或函式庫,能在不同的處理器或作業平台上運行,為降低後續移植的困難度,應採用模型、介面與邏輯控制分離 (Model-View-Controller, MVC) 的開發模式,並在一開始就使用標準函式庫進行開發,同時為特定的指令編寫抽象/轉換介面

現今嵌入式系統的硬體效能越來越強大,在擁有通用型電腦的特性下,通常都會運行簡化後的作業系統,因此嵌入式系統的開發越來越接近電腦上應用程式的開發流程,使用的工具與軟體元件越來越多,也導致「開發的進入門檻有變高的趨勢」

我甚至認為以後一個小型的物聯網裝置,就是標準的微型電腦,其效能可能都超過 25 年前的桌上型電腦,一個家庭所具備的算力非常驚人,新的世代一出生就被電腦包圍著,不曉得日本或美國科幻電影的情節會不會提早發生呢?


本章節重點摘要如下:

電腦上有兩大類軟體:「作業系統 (Operating System, OS)」 管理一台電腦的硬體,並使它可能運行其他「應用程式 (Applications)」的程式。

應用程式是專注於做單一一件工作的程式的標準用詞。

瀏覽器是應用程式的一種代表性例子,但它有與作業系統的相似點

近乎每一種電腦,NB、手機、平板、媒體播放器、智慧型手錶或相機等,都有某種作業系統去管理硬體。

早期的電腦並無應用程式和作業系統的區別。作業系統漸漸變得更精巧,與它們控管的硬體演進匹配。

Windows 是最常見的作業系統。蘋果電腦使用 MacOS 作業系統,許多幕後電腦使用 Linux 作業系統;手機也使用作業系統,如今通常是較小版本的 Unix Linux

一套作業系統控管及分配資源給一台電腦。它管理處理器,安排及協調目前正在使用的程式。

一套典型的作業系統將有數百個程式在同時作業,有些程式是使用者開啟的,但多數程式是非專業使用者看不到的系統工作。

作業系統管理主記憶體,它把程式載入記憶體,好讓它們能夠開始執行指令

現在的 Linux 有超過 1,000 萬行程式碼,由成千上萬的人歷經數十年撰寫與修改出來。據推估, Windows 10 可能有大約 5,000萬行程式碼。 

作業系統如何運作

電腦電源開啟時,處理器便開始執行儲存於永久記憶體中的指令,那些指令從一個小的快閃記憶體中讀取指令,這指令要求去磁碟、USB 記憶體或網路連結中讀取更多指令,直到最終載入足夠的指令去做有用的工作。這種啟動程式稱為 bootstrapping,現在稱為 booting (開機)

啟動程序涉及檢查硬體,並載入連接硬體的軟體元件(drivers)。

作業系統提供一個建造應用程式的平台; 作業系統做應用程式請求的事,然後把控制權與結果交還給應用程式,這些系統進入點稱為「系統呼叫」,現代的作業系統通常有幾百個系統呼叫。

設備驅動程式

一個設備驅動程式是作業系統與一種硬體設備(印表機或滑鼠)之間的「橋樑程式」

驅動程式介面讓作業系統以一種統一的方式存取設備。作業系統是對一個抽象或理想化的設備做出要求,此設備的驅動程式讓其硬體執行這些要求。

通用型的作業系統有許多驅動程式,開機程序的一部分是把目前可用的設備驅動程式載入運行系統中。

其他作業系統

電子零組件越來越便宜,體積越來越小,使得可以在裝置中納入更多硬體,有更強的處理能力與記憶體,具有主流通用型電腦的元件與特性;把一台數位相機稱為加了鏡頭的電腦又或是智慧型手機稱為加了通話功能的電腦。

「物聯網」也是以此為基礎:恆溫器、電燈、保全系統等,由「內建的電腦控制,連結至網際網路」


應用程式

應用程式是在作業系統上執行特定工作的程式或軟體系統;它可能只專注做一件特定工作或處理廣泛的工作;可能是要花錢購買或是免費使用的;可能是高度專有的軟體或免費提供的開放源碼軟體。

Word Photoshop 都是應用程式的一種,它們具有可觀的商業價值,並歷經持續的演進增添新功能。

瀏覽器本來只是應用程式的一種,但現在越來越像一個作業系統提供給外掛程式、虛擬機及擴充套件等幾個層面延伸擴充。Google 推出一種名為 Chrome OS 的作業系統,主要仰賴網路型服務。

軟體分層

軟體是分層結構,這能幫助程式設計師應付管理的複雜性,每一層做不同的事,並提供一個讓上面那層能用以存取服務的抽象概念。

最底層是硬體,往上一層是作業系統 (核心 kernel),把硬體的特定屬性隱藏起來,向應用程式提供無關硬體屬性的介面。

把一個程式移到一個新的處理器上,只需要用一個合適的編譯器去編譯這程式即可;如果一個程式越是和一特定硬體的屬性緊密關聯,就越難轉換

蘋果在 2020 年中,把所有平板、電腦從 Intel 的處理器轉換成 ARM 處理器,這個例子展示了軟體可以獨立於特定的處理器架構之外。

作業系統再往上一層是一群「函式庫」,提供通用的服務,讓個別的程式設計師透過應用程式介面(APIs)來存取這些服務,如:數學運算函式、日期與時間運算、圖形使用者介面(GUI)、壓縮等。

作業系統的核心功能主要有:記憶體管理、檔案系統、網路連結、控管裝置及處理器,主要是協調兩種以上應用程式存取資源,互不干擾。

現在「所有的電腦(包含嵌入式裝置)」都有一套作業系統,發展趨勢正朝向使用 Linux 之類的通用型作業系統,而非使用專門型作業系統。

現今使用的任何重要技術中都含有一個以上重要的「軟體元件」

2022年11月8日 星期二

『普林斯頓最熱門的電腦通識課』 編程及程式語言

從電腦程式語言的歷史來看,進入門檻越低且容易取得相關資源的程式語言會被廣泛使用。因為我一直是專注在機器視覺與影像處理的演算法與應用軟體開發工作,在這個領域效能是相對受到重視,基本上 C/C++ 就是基本要會的工具,越熟練越好,甚至十幾年前還要想辦法去寫 MMX 加速指令集的組合語言。

當然,現在還是要熟悉 SSE/AVX/NEON 等跟 CPU 相關的加速指令集,才能讓函式功能的效能符合工業界的要求。所以我一直沒有考慮用其他語言來開發相關演算法,導致忽略了近十年來最熱門的 Python

後來因為授課需求,使用 Python 來呼叫自建的函式庫後,非常驚訝它在開發上的易用性以及各種豐富的專業領域函式庫資源,非常適合專業上的學習與實作,類似機器學習、影像處理、機器視覺、數值運算等課程應該都可以導入使用。

同時,因為機器學習與深度學習的推廣助攻,又讓 Python 的能見度更上一層樓,我覺得以後應該會普及到中小學生就開始學習。

從組語式微變成高階語言的天下,再到 Python 的市佔率逼近第一名,都顯示現代程式語言的開發已經轉向重視易用性、安全性及函式庫支援的豐富程度,而非單純講求執行階段的效能。 如同作者所言,現在讓他只能學一種程式,首選是  Python

先前的心得也曾經提到過,現代的軟體開發更重視軟體元件(函式庫)的整合使用與架構,更勝於程式語言本身的特性。雖然因為效率因素,我還是必須使用 C/C++SIMD 加速指令集來開發演算法,但未來授課會以 C/C++ 來進行函式庫的設計與包裝,然後以 Python 來做為驗證與教學用,在應用端降低使用門檻,藉此提高學習意願與效率。 

開放原始碼應該會是各個領域軟體發展的主流,對此我抱持樂觀態度,也許有一天我也能加入這個行列,並藉機了解開源專案要怎麼賺錢?  這也是我的一大疑問阿!


本章節的重點摘要如下:

「程式」具體敘述一台真實的電腦為完成一項工作而必須執行的每個步驟。一個演算法和一個程式的區別,就像一份「建築設計圖」和一棟「建物」的區別;一個是理想化的東西,另一個是真實的東西。

把程式看成用一種讓電腦能夠直接處理的形式來表述一種或多種演算法。程式必須考慮實際問題,包含不充足的記憶體、有限的處理器速度、無效或甚至惡意的輸入資料、有問題的硬體、中斷的網路連結以及「人為疏失(導致其他問題惡化的主因)」

組合語言:當使用組合語言時,組譯器的角色是用來追蹤每一條指令,和每一個資料值的記憶體位置,不需要程式設計師以人工的方式做簿記。

一特定處理器架構使用的「組合語言是該架構專門使用的」,這組語通常和處理器指令一堆一地搭配,它知道哪些指令是如何用二進制編程,資訊是如何存入記憶體。

用組語為特定處理器(Ex. x86)撰寫的程式,將不同於為另一個處理器 (Ex. ARM)的相同工作撰寫的處理器。 如果想轉換程式到另一台處理器就必須重寫。

高階語言:高階程式語言獨立於任何特定的處理器架構之外,亦即非特定處理器架構專用,它的運算表述方式更接近一般人的表述方式。

用高階語言撰寫的程式由一種翻譯程式 (translator program) 轉換成一特定處理器的組合語言指令,再由組譯器轉換成位元,載入記憶體及執行,這翻譯程式通常稱為「編譯器 (compiler)」

實務上,一個編譯器內部可能被區分成一個「前端」和幾個「後端」,前端負責把高階語言撰寫的程式處理成某種中間形式,每一個後端把共通的中間形式轉換成其特定架構的組合語言。

高階語言更接近人們的思考方式,因此更容易使用與學習,不需要知道任何特定處理器的指令集,也能有效地用高階語言來撰寫程式。

因為高階語言的程式獨立於任何處理器架構之外,相同的程式可以在不同的架構下運行,通常不需做任何修改,只需要用一個不同的編譯器去編譯它就行了。寫一次程式可以在不同的電腦上運行,程式開發成本就可以分攤到多種電腦上。

六種最重要的高階語言,Fortran, C,  C++,  Java,  JavaScript,  Python

在電腦昂貴、慢且資源有限的早年,有人擔心用高階語言撰寫的程式效率太低,因為編譯器無法像一位技巧嫻熟的組合語言設計師那樣產生簡潔且有效率的組合程式。今日電腦速度及記憶體皆已為當初的數百萬倍,程式設計師鮮少擔心個別指令的效率。

1973  「C 語言」推出至今,語法只改變了一些,至今仍是最受歡迎及最被廣為使用的程式語言之一。

C++是從 C 演進而來,多數情況下一個 C 語言程式也是一個有效的 C++ 程式

現今在電腦上使用的主要程式,大都是用 C C++ 撰寫的。Unix Linux 這兩個作業系統都是 C 程式,FilefoxChrome Edge 這三種瀏覽器都是 C++ 撰寫的。

90年代,因應網際網路及全球資訊網的成長,「編程速度及便利性變得比機器效率更為重要」Java JavaScript 之類的程式語言就是刻意做出這方面的折衷。

Java 原本是針對內建於家電及電子裝置的小型系統而開發的程式語言,靈活性比速度重要;後來 Java 在網頁伺服器上廣為使用。當造訪一個網站如 eBay 時,電腦跑的是用 C++JaveScript 撰寫的程式,但 eBay 可能是使用 Java 來撰寫它送到你的瀏覽器上的網頁。

Java 也是撰寫 Android 行動應用程式的首選,它比 C++ 簡單 (但也漸漸朝向相似於 C++ 的複雜程度),但比 C 語言更複雜。Java 也比 C 語言更安全,因為它去除了一些具有安全性隱憂的性能,並有內建機制去處理容易出錯的工作,如管理記憶體中複雜的資料結構。

「JavaScript 是源於 C 語言家族中的一種程式語言」,但有很多的差異;JavaScript 和 Java 沒有關係,它的原始設計目的是要用於一款瀏覽器上,以在網頁上達成動態效果;現今近乎所有網頁都包含了一些 JavaScript 程式。

Python 在語法上有些不同於 C, C++, Java 及 JavaScript,它用縮排來表達敘述的開始與結束,而非使用大括號 { }。 

Python 在設計之初就聚焦於可靠性,它易於學習,已經成為最被廣為使用的程式語言之一,有大量用它撰寫的軟體,涵蓋近乎任何你能想到的編程工作。 

若要作者只學習或教導一種程式語言的話,他會選擇 Python

程式語言未來的發展走向,應該是讓程式撰寫更容易以及更安全的程式語言。 「C 語言是極其高效靈活的工具,但它很容易不慎地犯下程式撰寫的錯誤」,在被發現時可能已經被利用於惡意目的。

新的程式語言比較容易防止犯錯,或至少能偵測出一些錯誤,但為此得付出運行較慢及使用更多記憶體的代價。

「緊湊、快速的程式」仍然對很多應用領域如車子、飛機或武器等非常重要,因此仍然會使用 C 語言這類高效率的程式語言

經驗豐富的專業程式設計師,可能稱得上熟練十幾種程式語言,但他們不會對所有這些程式語言都具有相同水準的技能。

軟體開發:作者專案課程的學生以小組方式作業,經常以八到十週的時間交出兩三千行程式碼,這段時間他們需要設計他們的系統,通常是一個容易存取某個大學資料庫的網路服務,或是一款手機應用程式。

函式庫、應用程式介面,開發套件:很少有任何大程式是完全從零做起而創造出來的,有很多現成、他人撰寫的元件可供直接使用。

程式撰寫的工作中,有很大一部分是了解這類元件,以你自己的方式去把它們結合起來

這些元件本身的建造大多也是倚賴了其它更簡單、更基礎的元件,而且往往是幾層的元件。通常這一切都是在作業系統上運行,作業系統程式管理硬體,控管發生的每件事。

在最簡單的層級,程式語言提供一個函式 (function) 機制,讓程式設計師能夠撰寫程式去執行一個有用的運算,再以一種形式包裝這程式,讓其它程式設計師在無需知道它是如何運行的情況下,用在自己的程式中。

函式讓程式設計師可以使用已經被分別建造出來的元件來撰寫程式,所有程式設計師在需要時都可以使用這些元件。

一個相關的函式集合通常被稱為一個函式庫 (Library),例如 C 語言有一個標準的函式庫 (stdio.h) 去讀取儲存於磁碟或其他地方的資料,或把資料寫入磁碟及其他地方。

如何知道一個函式庫提供哪些服務,以及程式設計師如何知道該如何使用這些服務? 這就要談到應用程式介面(Application Programming Interface, API)

API 敘述一個函式庫提供的服務,這個函式庫裡有哪些函式,這些函式做哪些事,如何在程式中使用這些函式,它們請求甚麼輸入資料或資料結構,產生甚麼值或資料結構。

API 定義程式設計師在請求函式庫提供服務時,必須做什麼,以及這些函式將運算什麼。它不僅包含有關語法規定的聲明,也包含支援文件以幫助程式設計師有效設計系統。

現在的大型系統往往涉及一個軟體開發套件 (Software Development Kit, SDK),讓程式設計師能使用越來越複雜的軟體函式庫,類似 Android StudioXcode Visual Studio


智慧財產:智慧財產指的是個人的創造行動(例如發明)所產生的種種無形財產或著作,例如書籍、音樂、畫作、相片等。

軟體也是一種重要的智慧財產,它是無形的,但很有價值,開發及維修一個大程式需要持續的辛苦努力。

軟體可無限量複製,邊際成本趨近於零,且可線上傳送至世界各地,並隨時被修改。但軟體比硬體更容易衍生法律問題,有幾種法律機制保護軟體的智慧財產,包括「商業機密商標著作權專利及授權」

商業機密是最明顯的智慧財產,被所有權人保密,或是只在具有法律約束力的合約(例如保密協議)之下才揭露。這既簡單也有成效,但若機密被洩露,無法提供什麼救濟行為,典型例子是可口可樂的配方。

理論上,若機密已經變成公開知識,任何人都能製造同樣的產品,但他們不能稱之為「Coca-Cola」或「Coke」,因為這是商標,另一種形式的智慧財產。

商標是用以區別一公司提供的產品或服務的一個詞或詞組、一個名稱、一個標誌,甚至一種獨特顏色。

著作權保護創意的表述 (expression)。一般人很熟悉文學、藝術、音樂及電影等領域的著作權,它保護創意作品不被他人抄襲,並且賦予創作者在一定期間內利用其作品的權利。

數位資料的著作權執法相當困難,著作權也適用於程式,如同小說撰寫一樣,無人可以不經我的准許使用我取得著作權的程式但若只是了解程式的行為後,撰寫全新的實作(implementation),那可能就「不算侵權」。

專利對發明提供法律保護,不同於著作權只保護表述 - 只保護程式是如何撰寫的,而專利會保護程式中內含的原始概念。

授權是撰寫使用一項產品的法律合約,在實體店或線上購買軟體,大多是授權而非出售。就大多數的購買而言,法律上的第一次銷售原則,若你買了一本印刷書,它就是你的,你可以轉賣或送給他人,但是數位產品的供應商幾乎都是以授權的方式「銷售」,這讓供應商保留所有權。

開放源碼(open source)指的是把原始碼開放,供研究與改進。

程式語言及支援工具現在幾乎都是開放源碼,把軟體送出去,要如何賺錢呢? 像 Red Hat  銷售你可以在網路上免費取得的 Linux 原始碼,但它靠著提供支援、訓練、品質保證、整合及其他服務來賺錢。

許多開放源碼程式設計師是公司的正式員工,這些公司使用開放源碼,並對它做出貢獻。這些公司受益於能夠引導程式的演進,以及有其他人修補漏洞及做出改進。

2022年11月5日 星期六

今日閱讀: 會計思維(全) 會計、行銷與創新

作者在會計觀點或策略外,說明品牌效應的本質,就是要營造超乎預期的效果或感覺,先前在以價值為基礎的定價法中有討論過相關概念。作者是日本人,特別強調工作的義務感和負債感,並認為在工作上額外付出是合理的做法,這些付出未來會以另一種形式回饋給自己。

常聽到領多少薪水做多少事的講法,身邊不管是同學或朋友,多數人是抱持這種想法,這應該就是所謂的會計觀點。

主要問題是在多付出的何時會回饋,用甚麼方式能收穫? 這些都充滿不確定性,所以多數人還是寧願選擇等價交換吧!

在我看來,個人也是有所謂的品牌效應,當我們願意多做一點,不執著等價才能交換時,或許就能慢慢贏得別人的信賴,這部份從過往的經驗中,深有體會[見心得]。

至於免費策略,作者的想法跟剛做完摘要的[另一本書]雷同,其重點在於創造大量有價值的免費內容,來實現集客式行銷利用免費內容為他人提供超出預期的價值,建立目標聽眾,來打造自己的品牌

以創業來說,行銷創新是公司營運活動的兩大重點,講直白點就是怎麼賣怎麼做,而會計思維就是站在財務平衡的角度來看待這兩樣關鍵活動。這部份其實很難理解,創業家很有可能都是在似懂非懂間前進。

像我自己是技術背景出來創業[創業至今的感想(上)創業至今的感想(下)科技創業在台灣之我見],正常來說創新這部份問題應該比較小,但事實上當創業後心力分散到會計、行銷及日常營運後,慢慢就會降低對創新的關注度。由於每個月都會看到公司報表,時刻提醒自己財務的狀況,心態上就會偏向會計思維,想要撙節開支,刪減行銷與創新的費用

至於行銷,怎麼經營公司品牌,坦白說剛開始是兩眼一摸黑,按照常見的做法參加展覽及相關協會,並參與教授學校與業界課程,希望能借此拓展公司業務;但這模式的成效不彰,雖然有累積一些客群,卻無法達成設定的目標。

因此,如何平衡會計、行銷與創新這幾項公司經營要素,是創業家一生的功課。我近期就在著手嘗試用最小成本來改變創新與行銷的既有模式,這些想法主要也是從閱讀與傾聽而來;更重要的是後續的實踐,如此一來才能具體評估改變的成效為何。


本書重點摘要如下:

會計高手會發現企業的力量還是靠營業額

無論是重組、刪減經費或展開新事業,如果沒有先達到一定的營業額規模,一切也無從談起。

營業額增加,顯示顧客認為企業提供的產品和服務物超所值,正是有了這樣的顧客基礎,企業才有資格去談重組或展開新事業。

商品的銷量是由消費者來決定,不是企業主觀可以決定,包含其他人參與其中。

營業額是公正的指標,最近越來越流行經營瘦身,批判一昧追求營業規模的經營方式,這種想法肯定有其道理,但也過份低估了營業額的價值。

訂價是經營者的工作,決定企業的產品和服務該以什麼價格銷售,需要絕佳的經營判斷能力。

訂價方法可分以下幾種:

1. 成本導向訂價法,把成本加上利益,得出產品價格。因為不存在定價低於成本價的風險,要加上多少利益也是自己全權決定。

2. 競爭導向訂價法,比較其他競爭公司的同類型產品或服務,訂定一個適當的的定價,是一種策略性的訂價方式。

3. 市場滲透訂價法,為了爭取市佔率,不惜把銷售價格壓得比成本還低。例如 PS 遊戲機剛推出時,SONY 是以低於成本價銷售,靠低價策略佔領市場,然後藉由銷售遊戲軟體,以及降低遊戲主機的生產成本來獲取利益。

4. 吸脂訂價法,在產品上市初期將價格訂高,儘快回收費用。

在為產品訂價時,成本以及其他競爭對手的狀況非常重要,但也不能忘記最能突破消費者心理的訂價設定,那就是心理價格

能夠產生品牌效應的本質,應該是超出預期,提供高於價格的服務,慢慢地培養出品牌力。

單從會計策略的角度來看,提供高於等價價值的產品或服務,會造成企業的損失。但沒有損失的等價交換,對客戶而言也只是一場不賺不賠的交易,那該如何提供高於價格的附加價格呢?

如何提供高於價格的附加價值呢? 勞動在本質上就是提供超出預期的價值,對於已經拿到手的薪水,該怎麼回饋?  這種義務感和負債感正是勞動的本質,人一不小心就奉獻出遠超薪水的回饋,但這些付出又會以另一種形式回饋給自己。

對上班族來說,額外付出可能另一種形式回饋給自己,如客戶對你的信任在公司內部的評價上升,也可以是工作技能的提高;如果是企業,收穫就是品牌效應

提供超乎預期的服務,最後還是會獲得相應的回饋。所謂的經濟,與其說是嚴謹的等價交換,不如說是在付出與收獲的時機之間,取得一個最佳的平衡點。

在會計觀點要避免提供過多價值,但如果轉移到打造品牌效用時,卻需要積極實踐。

企業經營,需要的正是這種超越會計思維的經營判斷

免費是最強武器!  超出預期的終極訂價策略,免費提供。既然沒有要拿回等價報酬,免費提供的價值全都超出預期的服務。

積極的免費策略,往往會產生意想不到的結果。除了未來發生的營業額外,還能學到專業技能,建立信賴關係。這種方式建立的信賴關係,便是金錢無法買到的品牌效應,這種信賴之後會轉換生意與金錢回到自己身上。

大眾文化有個特性,就是不壓低成本就很難普及。網路上的許多內容也因為大多免費,為社會帶來極大的變化。

熟客才是生意長久的根本! 事業的持續性並不是由企業規模或資產多寡來決定而是由商品的熟客,也就是由粉絲獲得保證

會計與行銷為一體兩面,中間夾著庫存管理庫存過多需要報廢,會虧損庫存過少則會造成機會損失也有可能錯失商機的風險

讓庫存保持在一個適當的平衡點,只有結合價格設定免費策略品牌效應掌握熟客行銷策略,會計思維才真的能活起來。

在這樣的時代,庫存決定生死的關鍵,透過市場行銷來喚醒消費者的需求,同時再根據需求管理庫存,就變成企業經營的重要課題。服務業的庫存就是人才,員工過多就會產生剩餘人力,員工過少又會忙不過來。

會計思維: 盡可能削減人事費用。
行銷思維: 人事縮減過頭,有可能錯失商機。

會計思維只是以某種特定觀點看待事物,它的缺點就是只能看到現實的一個面向,有時會錯過其他重要的要素。

品牌效應等沒有被放進資產負債表的要素,指出了會計思維的局限性

可以從行銷的觀點,將一些會計看不到的東西挖掘出來,不管是會計中出現的計算,或是行銷中產生的感覺,這兩種立場都很重要。

還有一個重要的觀點就是創新

彼得杜拉克對管理的功能提出以下說明:"企業的目的是創造客戶,所以企業有兩大基本功能行銷與創新,這兩大功能才是創業家的功能"。

想要獲得客戶,除了行銷外,創新也不可少。但在會計上創新這個要素也會被排除在資產負債表外

創新要素包含:能開發新技術的優秀員工經驗豐富的資深員工,或公司內部積累的知識技術等,這些要素和行銷有關的顧客基礎一樣,在會計思維上都很容易被忽視。

會計視角會排除行銷和創新兩大功能的重要性,因此無法僅靠會計思維來做判斷。

但如果完全不從會計視角考慮,便進行行銷或創新,也是在走鋼索

創業家來說,客戶是誰? 需要怎樣的行銷策略? 應該展開怎樣的創新,時刻牢記這些在資產負債表外的要素,並發揮會計知識的長處才是最重要的。

請將會計、行銷與創新的重要性,刻印在腦海中。

2022年11月4日 星期五

『普林斯頓最熱門的電腦通識課』人工智慧與機器學習

「人工智慧與機器學習」在這幾年間變成顯學,在十幾年前我唸書的時代還頗為冷門的一個領域,想不到就這樣大翻身了。

記得以前研究所上課通常是叫做「模式識別與機器學習 (Pattern recognition and machine learning)」,講一堆分類器,然後就沒有然後了。

過了 15 年後,再接觸這門學科時,倒是覺得挺有趣的,可以跟我本來的專長影像處理與機器視覺相結合,而且它也是屬於那種可以自己實作看結果的科目。

唯一的障礙是有很多的「數學與統計觀念」要重新理解,但在我看來,數學與統計跟程式一樣都是工具,必須先熟練這些工具後,才能更有效率的解決問題

還好我的程式能力勉強算可以,再來就花上幾年時間積極擁抱這個領域吧!

接下來應該會繼續熟悉「資料科學」的建模基礎跟統計實務,機器學習是資料驅動 (Data Driven) 的學科,資料的取得與篩選跟適當模型的選擇一樣重要。

既然要做,希望自己至少能掌握這個領域 20% 的關鍵知識,來應對 80% 的實務問題 (80/20 法則)。

如何在有限時間的情況下,拓展原來的領域範圍,並且有加乘的效果,就要參考「費曼學習法」。

因此希望未來有機會教授「機器學習」這門課,教中學效率更好,有時邊講課大腦自動連結既有知識樹時,也會有令人意料不到的新想法出來,最近感受特別深刻。


本章節重點摘要如下:

人工智慧 (Artificial intelligence) 泛指使用電腦去做我們通常認為只有人類能做的事,「智慧」是我們認為人類才具有的東西,「人工」意味的是,電腦也會做。

機器學習 (Machine learning) 是人工智慧的一個子集,指的是一大類方法,被用於訓練演算法,以使它們能夠自行做出決策,從而執行一些我們稱之為「人工智慧」的工作。

機器學習跟統計學是不同的東西,但兩者有重疊的地方:在「統計分析」中,我們使用一個機制模型來產生一些資料,然後嘗試找出這模型中與資料最吻合的母數 (parameter, 參數);反觀「機器學習」並不使用一個模型,而是試圖在資料中找出關係。

統計學與機器學習都是「機率性質」:它們得出的答案有可能是正確的,但不能保證必然正確。

「深度學習 (Deep learning)」 是機器學習的一種,使用相似於人腦的神經網絡的運算模型。深度學習的實作大致模仿人腦的處理方式:一群神經元偵測到低階特徵 (low-level features),它們的輸出訊號成為其它神經元的輸入訊號,然後這些神經元根據前面神經元偵測到的低階特徵來辨識更高階的特徵;伴隨系統的學習,一些連結增強,其它連結減弱。

深度學習在電腦視覺方面非常活躍,有大量不同的深度學習模型。

典型的「機器學習」基本概念是對一種演算法給予大量的例子,讓它自行學習,不給它一套規則,也不明確編寫程序讓它去解決特定問題;最簡單的形式是,我們為程式提供一個標記了正確值的訓練集 (training set)。

舉例來說,我們不試圖建立如何建力辨識手寫數字的規則,而是用一個大樣本的手寫數字去訓練一套學習演算法,對每個訓練資料標記其數值,這演算法使用它在辨識訓練資料時的成功與失敗來學習如何結合這些訓練資料的特徵,得出最佳辨識結果。

所謂的最佳,並不是確定的:機器學習演算法盡力去提高得出好結果的機率,但不保證完美。

訓練後,演算法根據它從訓練集學到的,對新的資料進行「分類」,或是「預測」它們的值。

使用有標記的資料 (labelled data/tagged data)來學習,稱為「監督式學習 (supervised learning)」

大多數監督式學習演算法有一個共通的架構,它們大量標記了正確類別 (正確值) 的例子,演算法根據這個訓練集,研判能讓它得出最佳分類或做出最佳預測的參數值;其實就是讓它學習如何從例子做出推斷。

我們仍然得告訴演算法,哪些「特徵」能幫助做出正確研判,但我們不對這些特徵給予權值或把它們結合起來。

「機器學習」演算法可能因為種種因素而失敗,例如「過度擬合(over fitting )」,演算法對其訓練資料表現良好,但對新資料的表現較差。或是沒有足夠的訓練資料,又或是提供了錯誤的特徵集,又或者演算法產生的結果可能確證了訓練集內含偏誤。

分類型 (classification) 演算法:對資料項做出正確分類,數位辨識系統、垃圾郵件偵測。

預測型 (prediction) 演算法:試圖預測一數值,如房屋價格、股市趨勢等。

「非監督式學習 (unsupervised learning)」 使用未加入標記的訓練資料,亦即沒有對資料加上任何標記或標籤。

非監督式學習演算法試圖在資料中找出型態或結構,根據資料項的特徵,把它們分組。

K群集分析 (K-means clustering) 把資料分成 K 群,讓每一群中的資料項相似度最大化,且各群之間的相似度最小化。

非監督式學習也適用在一群資料項中辨識離群值 (outliers)。

非監督式學習的優點是不需要做訓練資料標記的工作,但它不能應用於所有狀況;使用非監督式學習,必須思考出與各群集相關的一些可用特徵。

人工神經網路藉由重複處理輸入訊號及生成輸出訊號來學習,這種迭代次數非常多,但不需要給予它們一組特徵才能進行處理,它們會自行找出特徵,這是它們學習過程的一部分。

但這就引出人工神經網路的一個潛在缺點:它們不解釋它們辨識了什麼「特徵」,因此也不對它們產生的結果做出解釋或理解;這也是必須審慎而不能盲目仰賴神經網路的原因之一。

深度學習在與電腦視覺有關的工作方面特別成功。

「強化學習 (reinforcement learning)」 是一種深度學習的形式,使用來自外部環境的反饋,持續改進自己的表現;它不需要訓練資料,因為環境會告訴它是否做對了或至少是往對的方向。

機器學習的問與答:

問: 這是你的機器學習系統? 答: 是的! 把資料倒進這一大堆線性代數裡,然後從另一邊取得答案。

問: 若答案是錯的呢? 答: 那就攪拌這堆資料,直到它們看起來是對的。

機器學習系統得出的答案可能「看起來是對的」,但這僅僅是因為它們反映了一開始用於訓練它們的資料。

訓練資料是人為的東西,有可能具有誤導作用。

沒有任何人工智慧或機器學習系統能夠做得比其訓練資料還要好,這類系統有很大的可能性只是確證了訓練資料本身固有的偏誤。

今日閱讀: 勝算 (十七) 如何設計一個有效的商業模式

人往往會因為思維上的僵固性,而無法有效辨識現存的商業模式 (交易結構) 還有哪些改善空間。 我們往往會覺得眼前既存的種種事務、必有其道理,而自己早已習慣這樣的方式了,不覺得有任何問題。 事實上,如果肯用心去剖析生活中所碰到的交易行為,以及需要做決策的地方,或許可以辨識出企業所設計...