發表文章

目前顯示的是有「學習方法」標籤的文章

軟體開發中的「無緒」

圖片
無緒 (Cluelessness) 由 Martin Rinard 提出。他在演講時指出: 在開發和維護軟體系統時,應該避免讓開發人員深入了解系統。 因為人的大腦可以處理的資訊有限。若要建立一個日益變大的應用程式,就必須學習「 如何讓每個開發人員在不了解整個應用程式的情況下,也能完成軟體開發 」。  “無緒” 並不是一個貶義詞。它用來區別兩種層次的理解水平。 1. 淺層理解 :指對事物的了解程度僅限於掌握使用方法即可。 2. 深層理解 :指對掌握了事物背後的原則、規律、原理。 在日常生活中的“無緒” 生活中我們通常只需要用到 淺層理解 。例如,刷牙不需要知道化學式。不需要理解冰箱原理就可以冷凍食品。當然,也有一些人需要了解更深入的內容。像是冰箱的維修人員就要了解較深入的領域知識。但即便如此,維修人員所需要的知識仍屬於 淺層理解 ,因為他們也不需要了解事物背後的每個小細節和原理。 當然也可以學習每件事物背後的知識原理,但是必要性與 CP 值通常不大。因此大多數人在日常生活中只需要 淺層理解  就足夠了。 軟體開發中的“無緒” 在軟體開發中,“無緒” 也表示大部分的時間中,開發人員只需要  淺層理解  就足以應付工作。這裡的  淺層理解  並不是指開發人員不需要懂得編寫程式。以下舉個例子來說明軟體開發中的  淺層理解  與  深層理解  之間的差異。 「電子商務網站」: 某天 PM 告知下一個專案是「電子商務網站」。那麼,實作這個網站有兩種做法: 實作方法一: 在專案初始階段,我需要打開 HTTP 協定的文件,解析 HTTP 傳輸格式、 研究如何實現 POST、GET 請求....等等。  此外還要閱讀 RFC 文件,並實現文件中的各項內容。  全部都搞定後才能開始打造「電子商務網站」。 實作方法二: 在專案初始階段,在作業系統中下載並安裝 Apache、PHP、MySQL,  設定妥當後即開始打造「電子商務網站」。 相信 實作方法二  才是大家熟悉開發的方式,因為現代軟體都是基於組件組裝出來的,沒有人需要獨自從頭到尾完成所有內容。在一個作業系統上安裝 Web 服務並開始編寫 HTML,對現在的開發人員來說是易如反掌。但事實上光是 Web 服務就已經複雜到極點,應該沒人敢說自己了解 Web 服務的所有內容。這

自學工具&方法

圖片
自學工具&方法 一、Markdown:好寫好讀的排版語法,速寫筆記好幫手! Markdown 是一個 好寫好讀 的網路排版語法,很容易幫助你把筆記或重點,並整理成文章。 Markdown 做筆記的優點: 易寫的特性,不用五分鐘就能整理出 好閱讀 的重點。 寫一份 Markdown,可以匯出成 HTML 、 PowerPoint 簡報 、 書本模式 寫文章、報告、書籍不成問題! 網站逐漸支持 Markdown,將你的 Markdown 發佈到部落格吧! Markdown 用簡潔的語法代替排版,不像文字處理軟體 Office Word 有大量的排版、字體設置,非常容易上手。 開始使用 Markdwon 後,每次 學到新觀念,都會趕快用 Markdown 做重點筆記 。 對我來說, Markdwon 提供一個 有系統的筆記方式 ,效果比寫在書面上還好。 整理好的筆記,也能發佈到部落格或自己的知識管理庫。 這對未來的職場面試相當加分 ! 一句話總結,它實際上是個非常簡單、非常容易學習的 排版語法 。 推薦閱讀連結: Markdown 官方說明 Markdown 線上編輯器 hackmd.io Markdown 語法速查表 二、Kanbanflow:待辦事項視覺化工具 用 KanbanFlow 做時間管理,督促自己工作 三、讀書與練習 ​