以下是個人的經驗跟學習總結,對其他人不一定適用,
有些事目前也無法完整做到,僅作為未來提醒自己的研究筆記。
想到什麼會持續更新,應該。
重要程度依序如下:
最重要
- 有選擇:開心;至少不排斥
- 做決定
時間 (一)
- 很多事不是自己一個人的事,要尊重所有合作人的時間。
- 要能評估自身產出時間,定時產出及回報,且回報遭遇的困難處。
- 遇到任何可能延期的事件,盡可能早點揭露。進而調整自身評估產出時間的方式。
- 時間不會說謊,花在哪顯而易見。
時間 (二)
- 認清自己已經老了的事實。生活請盡量健康規律,定時吃飯、睡覺、運動。
- 休息耍廢是必須的,但勿沉迷。建議定時定量,例如午餐晚餐各看一部動畫。
- 生活是研究的一部分。
時間 (三)
- 學會妥協、忍耐
- 自己做的出來不代表要做
- 花錢買時間,例如,雲端儲存服務、挑一款好用的筆記軟體 (Heptabase)
- 如何避免現代人的工作焦慮 - 艾爾文
- 這本書改變我處理壓力的方法|《愈平靜愈有生產力》深度解讀 - 艾爾文
環境
- 打造舒適的工作環境
- 推薦 (目前個人配置)
- 椅子: Herman Miller Mirra 2
- 滑鼠: Logitech ERGO M575
- 鍵盤: Leopold FC750R
- 螢幕: BenQ EW3270U、DELL U2414H
合作
- 參閱 #時間 (一)
- 不斷溝通 (適時求助)。
- 正確解讀是重要溝通技巧。
- 畫出整體架構圖,切割功能並分配。
- 預留合併、除錯時間。
- 案例參考: 分工不合作 - 搞笑談軟工
做研究 (一)
- 如何有效累積、管理知識;將聽到的內容與自己既有知識連結
- 精確調查 (survey),別浪費在不相關的論文上
- 實作與調查 (survey) 取得平衡、取捨
- 能夠說(寫)的就不做
- 思考兩個角度: 向上抽象 (較難)、向下實作 (較易)
- 看影片學習不可恥,快速抓取重點
做研究 (二、找題目)
- 用最小 prototype 驗證方法
- 架構圖、系統架構
- 適合什麼應用場景
- 解決什麼問題
- 原先的效能瓶頸是什麼,套用提出的方法後瓶頸又是什麼
- 多嘗試,把新發現當作原本題目的問題,用之前的嘗試來解問題
做研究 (三、抱怨)
- 大家目標不明確,無法有共患難的精神。
- 難的沒團隊做不來,簡單的沒學術價值,中間剛好的其他人都做了。
讀論文調查 (survey)
- 找出論文的貢獻、作者如何描繪故事
- 要會問 “為什麼”,“適時” 追尋答案
- 大量看 related work 論文
- 內文順序: Title ➜ Abstract ➜ Introduction 最後一段 + Conclusion ➜ Eperimantal results ➜ Methodology (前面不符合方向就跳過,有疑慮再往下看)。
- Title、Abstract 會有關鍵字。
- Introduction 最後一段 + Conclusion 用來確認該篇論文的重要貢獻。
- Experimantal results 可以看出比較基準,我們可以怎麼比較。無法比較也就不用看下去。
- Methodology 通常不是重要對手的話不用看得很細。
- 畫出 related work 關係圖,哪些彼此有前後關係或共用同一種技術。可利用別人發表的 survey paper。
開發 (一)
- 自幹、打掉重練很簡單,難的是最佳化現有的軟體。
- 現有的軟體的分析,中間資料的輸入輸出怎麼跑的,建議邊看程式碼邊畫圖。
- 說服別人為何值得開發 (或自幹、打掉重練)。
- 計算開發成本: 人力、時間、
金錢。
開發 (二)
開發 (二)、(三) 部分內容取自 系统程序员成长计划,或額外參考 實作範例。
- 人是開發中最重要的因素 (這也是為何 Rust 這麼有名,因為編譯器強迫開發者寫出較好的程式碼)
- 只有寫得好才可能寫得快
- 有效控制軟體複雜度
- 隔離變化
- 寫出機器能懂得程式碼很簡單,難的是寫出人能讀懂的程式碼
開發 (三、細節)
- Programming Sense (1)
- Programming Sense (2)
- 善用 “封裝” 概念隱藏不可被調整的部分,最小化 API
- 內部函式加上
static
修飾字,禁用全域變數 - 謹慎的記憶體操作。例如
strdup
內部會呼叫malloc
,所以使用完必須使用free
- 驗證: 考慮特殊輸入資料、邊界值
開發 (四、最佳化)
- 不要過早最佳化
- 事先分析效能瓶頸再對症下藥: 看得到就打得到
寫論文
- 實驗結果要呈現什麼,再往回推前面要寫的內容
- 用 related work 建構論文目標形狀,提出其他人都沒做到我們有做到的點
- 架構圖要清晰,解說文字要能對應
- 一圖多用,減少重複部分
- 實驗環境: 軟硬體設備
- 回覆 reviewer 時要客氣
工作
- 什麼具有影響力
- 付出的努力要能夠累積 (換工作的籌碼)
- 表達能力
- 投影片
- 如何避免現代人的工作焦慮 - 艾爾文
- 減少不健康的完美主義,設立夠好的界限
- 劃清不去想工作的時間
額外的興趣
- 花錢買的快樂很短暫,應花錢買興趣: 一個不只讓自己快樂還會帶來痛苦,但又不會輕易被放棄的事。
字型蒐集
好像跟上面都不相關 @@
可另參考 My humble fonts recommendations。以下皆可免費商用 (使用前請自行查證)。
- 芫荽 / iansui - 中文楷體仿宋 ⭐ (一般中文文件使用標楷體)
- 注音芫荽 - 中文注音
- 內海字體 (瀨戶字體) - 中文可愛
- 隨峰體 - 中文手寫
- jf open 粉圓 - 中文無襯線
- Linux Libertine - 英文有襯線 ⭐
- Merriweather - 英文有襯線
- Lora - 英文有襯線
- Scope One - 英文有襯線 細
- Yanone Kaffeesatz - 英文無襯線 瘦
- Sorts Mill Goudy - 英文有襯線 古典
- Cascadia Code - 英文程式碼 連字 ⭐
- Ubuntu Mono - 英文程式碼 經典
- Iosevka SS15 (Monospace, IBM Plex Mono Style) - 英文程式碼 窄