"แอ็ดส์เคอร์ ไดก์สตรา" ได้ให้ คำคมที่ลึกซึ้งกินใจ #โปรแกรมเมอร์ ว่า
“If debugging is the process of removing software bugs ,then programming must be the process of putting them in.”
แปลเป็นไทยได้ว่า
“ถ้าการดีบักคือ กระบวนการเอาบั๊กซอฟแวร์ออกไปละก็ …
เมื่อนั้นการเขียนโปรแกรมต้องเป็น กระบวนการใส่บั๊กเข้าไปแน่ ๆ”
++++รู้ไว้ใช่ว่า ใส่บ่าแบกหาม++++
ประวัติ Edsger Dijkstra (แอ็ดส์เคอร์ ไดก์สตรา)
เขาเป็นนักวิทยาศาสตร์คอมพิวเตอร์ชาวดัชต์
ที่สร้างคุณานุประโยชน์ แก่วงการคอมอย่างมาก
เกิดเมื่อค.ศ. 1930 และเสียชีวิตด้วยโรคมะเร็งเมื่อ 6 ส.ค. 2002
รวมอายุได้ 72 ปี
เขาจบดอกเตอร์ทางคณิตศาสตร์และฟิสิกส์ ที่ University of Amsterdam เมื่อปี 1959
ปี 1972 ได้รับรางวัล "ACM Turing Award"
และปี 1984 ได้เป็นศาสตราจารย์ที่ Uninversity of Texas at Austin
ผลงานของเขา ที่คนเรียนสายคอมทุกคน ต้องรู้จักคือ
“Dijkstra’s algorithm”
ตำราเรียนอาจแปลว่า "ขั้นตอนวิธีของไดก์สตรา" (คุ้น ๆ ใช่มั๊ยละ)
มันเป็นวิธีแก้ปัญหาเรื่อง shortest path หรือก็คือหาระยะทางสั้นที่สุด จากจุดหนึ่งไปยังจุดใด ๆ ในกราฟ นั่นเอง
(ถ้าไม่รู้จักแสดงว่าโดดเรียน และทำข้อสอบไม่ได้นะ)
ผลงานดังอีกชิ้น ที่เราต้องเคยเรียนคือ
การแก้ปัญหาการกินอาหารของนักปราชญ์
หรือชื่อภาษาอังกฤษคือ "dining philosophers problem"
+++ส่วนผลงานดังด้านอื่น ๆ+++
-เป็นหัวหน้าทีมคิดค้นระบบ OS ที่เรียกว่า “THE” Multiprogramming System
-คิดค้นหลักการ Semaphore
-เป็นผู้เขียนบทความ “Go To Statement Considered Harmfull” จนปลุกกระแสต่อต้านคำสั่ง Goto ในยุคนั้น
-เขียนหนังสือ “A Discipline of Programming” ซึ่งรวบรวม Algorithms ที่ตัวเขาเองคิดค้น
-แต่งหนังสือร่วมกับ C. A. R. Hoare Ole-Johan Dah ชื่อหนังสือคือ “Structured Programming”
นอกจากนี้แล้ว เขายังเป็นผู้บุกเบิกศาสตร์ทางคอมหลายเรื่อง ยิ่งคนจบคอมมา ล้วนเคยเรียน หรือเคยอ่านผ่านตามาทั้งสิ้น ได้แก่
Distributed Computing, Compiler Writing, Heuristics, stream, Computer Hardware Design, Dining Philosopher, Software Configuration Management, Sorting Algorithms, Fast Fourier Transform, Deadlock, Concurrent Programming, Garbage Collection, Memory Design, AI: Pattern Matching, Graph Theory, Scope of Variables, Transaction และอื่นๆ อีกมากกว่า 1,000 บทความ
อ่านเพิ่ม -> http://www.patanasongsivilai.com/…/การเขียนโปรแกรม-คือการใ…/
同時也有10000部Youtube影片,追蹤數超過62萬的網紅Bryan Wee,也在其Youtube影片中提到,...
「heuristics」的推薦目錄:
heuristics 在 半路出家軟體工程師在矽谷 Facebook 八卦
這次邀請到的特別來賓是型男設計師 Nick。 Nick 現在在 Google 總部擔任 UX Designer Manager,這次的直播會聚焦在如何成為頂尖的 UX 設計師上。
本次訪談內容皆為個人意見立場,不代表 Google 或任何公司的立場。
直播影片的大綱內容:
Nick 大學是師大的工業科技教育學系,主要偏重寫程式、學習網路、資料庫架構相關的學科。 因為他從小學開始就對美術相關的比賽很有興趣,大學畢業後想持續的往設計方面發展, 於是進入交大的應用藝術研究所就讀。
他研究所方向偏向視覺傳達、心理學,學習如何把 coding 、或是邏輯相關的知識應用在藝術、設計方面。 研究所畢業後先工作, 工作幾年後申請美國學校, 來到 CMU 卡內基美隆大學唸 HCI (Human Computer Interaction)。 HCI 是 3 個領域的結合, Computer Science + Design + Psychology (電腦科學 + 設計 + 心理學),也都剛好是 Nick 接觸過的領域。
Nick 在大學就讀的過程中, 有和另外兩位朋友一起創業, 那時適逢 2000 年,他們想把許多服務及一些內容辦到網路上, Nick 負責把網站做設計、並架起網站、運行。 大學因為有拿到教師資格,所以畢業後去高中教了一年的生活科技課。
隨後 Nick 決定還是回到設計, 先做了網頁 Desinger , 再到 HTC 做 User Usability Engineer , 再來開始做手機的 UI, UI 做久了開始會思考產品要如何設計可以更符合使用者的需求,從介面的安排位置、顏色、到和使用者的互動等等, 就開始進入 UX(User Experience) 領域 。
探討 UX 前先來確定 UX 使用者經驗的定義是什麼? UI 是被包含在 UX 裡, UI 比較偏向視覺的元素, 而 UX 是整個產品生命週期的體驗。 ex: 車子的按鈕、儀表板可以比喻成 UI , 而打開車門、開車、停車的整個體驗是 UX。
比如說去迪士尼玩,從買票到在遊樂園裡玩的所有經驗、排隊買演場會的票、坐在客廳沙發上挑一部電影來看。 如何把經驗從好的變的更好, 就是 UX Designer 的工作。
UX 在科技業包含了幾個部分:
1. 互動設計 Interaction
2. 視覺設計 Visual (與設計的流行趨勢影響密切)
3. 轉場 Motion
4. 使用者研究 Research
5. 工程 Engineering
UX Designer 廣義來說包含以上這五種工作類別,目前比較大的業界需求偏向 1 & 2,如果能同時兼備多樣專長 (Hybrid Designer) 在就業市場上會更有競爭力。 美國的科技產業, 產品和終端消費者比較直接相關,讓設計師比較被視為一個專業。 UX Designer 依照公司規模的狀態, 小公司 3~5人, 第一個 designer 職責可能就是包山包海,連 UX Researcher 的工作也要做, 拿到結果再來自己測試。
什麼是好的 UX Designer?
視覺設計要不錯, 有基本的美感及程度、並且有邏輯思考的能力,這樣就會是很有競爭力的設計師。
UX designer 過往在矽谷還是會希望有寫程式的能力,5~7 年前的一些公司設計師面試還是會考程式, 但到目前, 專業被更尊重及細分, 就比較沒有被考程式了。 當然,找工作的時候, 如何讓自己比別人突出, 如果你是設計師,有程式的經驗,還是會很有競爭力及賣點。
設計的本質: 1. 對事務的好奇心、2. Iteration 迭代 的容忍度、接受度、及執行力,3. 合作、溝通的能力。
提升能力的方式: Nick 相信做中學,產品一個階段之後, 把專案相關人員聚集起來, 討論 Start、Stop 、Continue 。 什麼事情是不該繼續做的? 什麼事需要持續做的? 什麼事情需要開始去做的?
Designer 的工具: 從之前 Photoshop、 Illustrator, 近幾年因為設計潮流變的扁平, 所以 Sketch 因為可以勝任大部分工作, 也變得更流行。 當然, 因為團隊協作的部分, Figma 讓設計師在合作上有像 Google Doc 有一份網上的檔案讓大家協同合作,也是常用的工具。
Designer 面臨的工作挑戰:
如何用研究方法,把主觀的設計,用客觀的方法、數據來解釋、說服團隊。 所以設計師和 UX 研究員的合作緊密,用值化、量化研究來找出好的設計。
UX designer 在整個產品週期都參與, 每個階段都有不同的目標及任務。 產品比喻成的 3 隻腳的椅子的話, 分別是 Designer 、 Engineer、 PM, 少了一個產品都沒辦法順利運行。
UX 常常會被說要有同理心,其實每個產品的角色應該都要有同理心。
質化 vs. 量化研究: 質化是要找問題的本質,比如說 5~8 人的研究就可以找出 85% 以上的錯誤或是設計不好的地方。 量化就是要多的樣本數、找到公正、大數據、可信賴結果的研究。 UX 要知道在什麼樣的情況,用什麼樣的研究方法來證明、並讓案子往前推進。
最後是一些提問及資源分享:
有什麼好的線上資源可以學習?
dribbble (https://dribbble.com/)
behance (https://www.behance.net/)
UX Design Weekly (uxdesignweekly.com)
經典的 UX design 準則, 不僅僅是 designer 適用、工程師及 PM 內化這些準則後也可以發現產品做出來可以避免許多不好使用者經驗的問題:
10 Usability Heuristics for User Interface Design by Jakob Nielsen in 1994
https://www.nngroup.com/articles/ten-usability-heuristics/
推薦閱讀的 2 本書:
Nick 的啟蒙書 Don’t make me think (https://amzn.to/2Zq9Xti) 中文版翻譯為“ 如何設計好網站”
The Design of Everyday Things (https://amzn.to/2zmRNhA),用了許多生活化的例子。Affordance 在使用者經驗領域佔有相當的一席之地,例如:旋鈕、橫桿、直桿、握把的門,大致上會讓使用者理解該用轉的、推的、還是拉的。
找工作的建議:
提升自我的競爭力,先釐清自我的興趣、想要做的方向,因為每個 UX 細分領域看重的技能都不太一樣。 許多人都願意分享,可以找到願意分享的前輩,得到一些建議。
職場上爬升的建議:
首先, title 是公司衡量是你是否有值得那個等級、影響力的結果,所以要著重於你對與展品的影響力是什麼。再來是要有耐心,培養自我能力、提升競爭力,最後就會自然而然走到你該得到的位子。 最後, Nick 覺得 designer 最要有的能力是溝通能力。 好的設計能力可以變成好的設計師。 強的設計師就是厲害在溝通方面。 Design 在 Nick 心中就是解讀 (如何分析問題)、解決(如何解決問題)、解釋(如何解釋你設計出來的東西), 最後解釋就是溝通。 所以對於設計有興趣的朋友,溝通是個很值得培養的能力。
溝通能力加強的方式:
上課培養。如果簡報 (presentation) 角度著墨,從聽眾聽完後,你想要讓他們知道哪 3 件事情反向思考,來幫助架構簡報,3 是個很重要的數字,讓這 3 個有相關、又各自著墨重點, 就可以涵蓋很大一部分思想理念。
最後分享一下UX 設計師大概的面試流程:
如果你有 portfolio,很多時候會被找到, 這是一個門票, 讓你可以開始面試,接下來可能會有 take home exerecise , 讓你做一個開放性的問題, 被公司審核通過的話會邀請到 onsite interview 。 onsite 需要介紹你自己的作品, take home exerecise 的作品。 如果設計師可以充分利用白板來解釋思考過程、思考邏輯、及最後的提案是什麼,會是一個非常大的加分。 面試官其實很在乎你面試過程中展現的思考能力 (其實和軟體工程師的面試的精髓也是一樣的)。
第一段影片在:
https://www.facebook.com/PivotSoftwareEngineer/videos/492317728266537/
heuristics 在 Zen大的時事點評 Facebook 八卦
我第一次感覺到推力(行為經濟學)已經被濫用,偏離原本提倡者的說法(幫助人做出好決策)是幾年前我終於去買智慧型手機時,門市直接幫我下載line並安裝好...
後來我得知line在台灣用戶數量之高時,一點都不意外,因為每一部手機一開始就被推力引導去line,而根據網路外部效應,越多人安裝,越多人會安裝。
後來這幾年,我讀行為經濟學,行銷,廣告,社群網站研究,文案寫作之類的書,就得知這個世界很殘酷的分裂成懂得操弄群眾心理以及被操弄卻還一無所知的兩群人。
人們開始被各種成長駭客技術搞到各種上癮,被各種外在力量制約,失去原本就已經恨微薄的自主權或稱主體性。
這是個讓人憂心的發展趨勢,如果你家的孩大腦還未發育完成就被各種心智操弄技術滲透並且培養出成癮行為,以後讀社會秩序要怎麼運轉?
青少年自殺比例的拉高,有可能跟他所屬的社交媒體世界不整合造成的脫序型自殺有關。
眼下趨勢難以逆轉,個人能做的事情,在我看來要屬趁年紀還小,就養成閱讀紙本書的習慣。
目前的資訊來源,只剩紙本書能讓人較長時間斷線,且在書中沒有推送廣告的演算法干擾,人可以獨立安靜的讀完一本有主題有系統有扎實論證,資訊品質相對穩定,可以鍛鍊獨立思辨能力的作品。
未來非常險峻,很多聰明頭腦都投入這個對人類大腦健全發展沒有幫助的數位系統對開展。這些人不是壞人,但是,系統卻往造成人類大腦不可逆傷害的方向發展。
超快速讀書法
https://zen1976.com/fast_reading/
習慣學
https://zen1976.com/post-1372415058/
行為經濟學
https://zen1976.com/cognitive-heuristics/
https://zen1976.com/reading-book/
heuristics 在 Bryan Wee Youtube 的評價
heuristics 在 Travel Thirsty Youtube 的評價
heuristics 在 スキマスイッチ - 「全力少年」Music Video : SUKIMASWITCH / ZENRYOKU SHOUNEN Music Video Youtube 的評價
heuristics 在 Heuristics and Cognitive Biases - Verywell Mind 的相關結果
A heuristic is a mental shortcut that allows people to solve problems and make judgments quickly and efficiently. These rule-of-thumb ... ... <看更多>
heuristics 在 heuristic中文(繁體)翻譯:劍橋詞典 的相關結果
heuristic 的例句. heuristic. Our method for distinguishing complements from adjuncts relies on heuristics that are based on local structural information. ... <看更多>
heuristics 在 啟發法- 維基百科,自由的百科全書 的相關結果
啟發法(英語:Heuristics),源自古希臘語的εὑρίσκω,又譯作:策略法、助發現法、啟發力、捷思法、拍腦袋)是指依據有限的知識(或「不完整的資訊」)在短時間內找到 ... ... <看更多>