{
    "version": "https://jsonfeed.org/version/1",
    "title": "PJCHENder I/O — 觀點",
    "home_page_url": "https://pjchender.github.io/blog/",
    "description": "一個工程師對技術、職涯與產業的觀點與思考",
    "items": [
        {
            "id": "https://pjchender.github.io/blog/ai-era-taste/",
            "content_html": "<p>在 AI 出來之後，我自己一直在想、身邊的人也常問起的一個問題是：有了 AI 後，我還要花時間、花力氣來學這個嗎？</p>\n<ul>\n<li class=\"\">我還需要學寫程式嗎？以後 AI 就可以幫我寫程式了。</li>\n<li class=\"\">我還需要學做簡報嗎？以後 AI 就可以幫我做簡報了。</li>\n<li class=\"\">我還需要學分析數據嗎？以後 AI 就可以幫我分析數據了。</li>\n<li class=\"\">我還需要學設計嗎？以後 AI 就可以幫我設計了。</li>\n<li class=\"\">我還需要學……嗎？以後 AI 就可以幫我……了。</li>\n</ul>\n<p>老實說，這個問題最近一直在我腦中打轉，身邊的人常問到：「以後 AI 就能寫程式了，我還需要搞懂這段程式怎麼寫嗎？」——我好像應該回他：「還是得學，因為有些東西 AI 幫不了你」，但話到嘴邊又有點心虛，因為我心裡清楚，也許過不了多久，AI 真的就做得到了。</p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"如果-ai-都做得到什麼還值得學\">如果 AI 都做得到，什麼還值得學？<a href=\"https://pjchender.github.io/blog/ai-era-taste/#%E5%A6%82%E6%9E%9C-ai-%E9%83%BD%E5%81%9A%E5%BE%97%E5%88%B0%E4%BB%80%E9%BA%BC%E9%82%84%E5%80%BC%E5%BE%97%E5%AD%B8\" class=\"hash-link\" aria-label=\"如果 AI 都做得到，什麼還值得學？的直接連結\" title=\"如果 AI 都做得到，什麼還值得學？的直接連結\" translate=\"no\">​</a></h2>\n<p>這個問題，我來回思辨了很久：是不是以後這些事情，全部交給 AI 做就好了？想到最後，我給自己的答案是——<strong>產出可以外包，但你的品味不行</strong>。</p>\n<p>很多人談這個題目，是從「別讓 AI 代替你學習」出發：有哪些東西是 AI 做不到、所以還值得我學的？哪些能力是 AI 沒辦法取代的？</p>\n<p>比方說，有人會說你應該學程式架構、系統設計，因為這是 AI 目前還做不來的；也有人會說該練的是把模糊的需求問清楚、跟人溝通協作，因為這種事 AI 還接不住。但再往下想就發現，這條路走不通——這些「AI 做不到」，很多其實只是「現在的 AI」做不到，過半年、過一年，它或許就做得到了。</p>\n<p>也有許多人說，AI 是你能力的放大器，如果你的能力有一分，它可以放大到 10 分；如果你的能力有 10 分，它可以放大到 100 分。延伸的觀點是「你要是偷懶把學習交給 AI，終究會吃虧」。但我在想的是，會不會未來，即使我只有 1 分的能力，AI 也能夠幫我做到 100 分？</p>\n<p>上面這些答案都說服不了我。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"與其想什麼能力是無法被-ai-取代的不如老實承認-ai-能代替我做很多事\">與其想什麼能力是無法被 AI 取代的，不如老實承認 AI 能代替我做很多事<a href=\"https://pjchender.github.io/blog/ai-era-taste/#%E8%88%87%E5%85%B6%E6%83%B3%E4%BB%80%E9%BA%BC%E8%83%BD%E5%8A%9B%E6%98%AF%E7%84%A1%E6%B3%95%E8%A2%AB-ai-%E5%8F%96%E4%BB%A3%E7%9A%84%E4%B8%8D%E5%A6%82%E8%80%81%E5%AF%A6%E6%89%BF%E8%AA%8D-ai-%E8%83%BD%E4%BB%A3%E6%9B%BF%E6%88%91%E5%81%9A%E5%BE%88%E5%A4%9A%E4%BA%8B\" class=\"hash-link\" aria-label=\"與其想什麼能力是無法被 AI 取代的，不如老實承認 AI 能代替我做很多事的直接連結\" title=\"與其想什麼能力是無法被 AI 取代的，不如老實承認 AI 能代替我做很多事的直接連結\" translate=\"no\">​</a></h3>\n<p>如果這些能力都能夠被 AI 取代的話，那還有什麼事情是值得我專注的？</p>\n<p>我發現的是：<strong>如果拿 AI 的能力當標準，答案會一直變，今天還值得學的，明天就被它追上了</strong>。拿「AI 取代不了什麼」來決定要學什麼，根本站不住腳。</p>\n<p>所以在「要學什麼」這件事上，根本不該用 AI 的能力來當比較的尺；真正的尺，得從我自己身上長出來——我認為那就是品味。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"ai-給得了品質給不了品味\">AI 給得了品質，給不了品味<a href=\"https://pjchender.github.io/blog/ai-era-taste/#ai-%E7%B5%A6%E5%BE%97%E4%BA%86%E5%93%81%E8%B3%AA%E7%B5%A6%E4%B8%8D%E4%BA%86%E5%93%81%E5%91%B3\" class=\"hash-link\" aria-label=\"AI 給得了品質，給不了品味的直接連結\" title=\"AI 給得了品質，給不了品味的直接連結\" translate=\"no\">​</a></h2>\n<p>品味和品質不一樣：AI 其實已經能產出一定品質的東西，可是品味是因人而異的。同一份產出，每個人的感受、判斷、覺得好不好，可能都不一樣——而那個「我覺得這樣才好」，沒有人能替你決定。那就是你獨一無二的品味；產出的品質可以外包，但品味無法外包。</p>\n<div style=\"max-width:560px;margin:1.75rem auto\"><svg viewBox=\"0 0 600 332\" width=\"100%\" height=\"auto\" role=\"img\" aria-labelledby=\"qvt-title qvt-desc\" style=\"font-family:inherit;display:block\"><title id=\"qvt-title\">品質可以外包，品味不行</title><desc id=\"qvt-desc\">一份產出可拆成品質與品味：品質可以外包交給 AI；品味無法外包，要親手做、挑選、衡量過才慢慢長出來。</desc><defs><marker id=\"qvt-arrow\" markerWidth=\"8\" markerHeight=\"8\" refX=\"5.5\" refY=\"3\" orient=\"auto\" markerUnits=\"userSpaceOnUse\"><path d=\"M0,0 L6,3 L0,6 Z\" fill=\"var(--ifm-color-emphasis-500)\"></path></marker><marker id=\"qvt-arrow-primary\" markerWidth=\"8\" markerHeight=\"8\" refX=\"5.5\" refY=\"3\" orient=\"auto\" markerUnits=\"userSpaceOnUse\"><path d=\"M0,0 L6,3 L0,6 Z\" fill=\"var(--ifm-color-primary)\"></path></marker></defs><g fill=\"none\" stroke-width=\"1.5\"><path d=\"M300,72 V96 M150,96 H450\" stroke=\"var(--ifm-color-emphasis-500)\"></path><path d=\"M150,96 V118\" stroke=\"var(--ifm-color-emphasis-500)\" marker-end=\"url(#qvt-arrow)\"></path><path d=\"M450,96 V118\" stroke=\"var(--ifm-color-primary)\" marker-end=\"url(#qvt-arrow-primary)\"></path><path d=\"M150,192 V238\" stroke=\"var(--ifm-color-emphasis-500)\" stroke-dasharray=\"4 4\" marker-end=\"url(#qvt-arrow)\"></path><path d=\"M450,192 V238\" stroke=\"var(--ifm-color-primary)\" marker-end=\"url(#qvt-arrow-primary)\"></path></g><rect x=\"185\" y=\"18\" width=\"230\" height=\"54\" rx=\"10\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-300)\" stroke-width=\"1.5\"></rect><text x=\"300\" y=\"42\" text-anchor=\"middle\" font-size=\"15\" font-weight=\"600\" fill=\"var(--ifm-font-color-base)\">一份產出</text><text x=\"300\" y=\"61\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--ifm-color-emphasis-600)\">文章 · 程式 · 設計</text><rect x=\"30\" y=\"120\" width=\"240\" height=\"72\" rx=\"10\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-300)\" stroke-width=\"1.5\" stroke-dasharray=\"4 4\"></rect><text x=\"150\" y=\"150\" text-anchor=\"middle\" font-size=\"14\" font-weight=\"600\" fill=\"var(--ifm-font-color-base)\">品質</text><text x=\"150\" y=\"172\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--ifm-color-emphasis-600)\">內容生得出來、水準也夠</text><rect x=\"330\" y=\"120\" width=\"240\" height=\"72\" rx=\"10\" fill=\"var(--ifm-color-primary)\" fill-opacity=\"0.07\" stroke=\"var(--ifm-color-primary)\" stroke-width=\"1.5\"></rect><text x=\"450\" y=\"150\" text-anchor=\"middle\" font-size=\"14\" font-weight=\"600\" fill=\"var(--ifm-font-color-base)\">品味</text><text x=\"450\" y=\"172\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--ifm-color-emphasis-600)\">我覺得這樣才好</text><rect x=\"114\" y=\"206\" width=\"72\" height=\"20\" rx=\"4\" fill=\"var(--ifm-background-color)\"></rect><text x=\"150\" y=\"220\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--ifm-color-emphasis-600)\">可以外包</text><rect x=\"414\" y=\"206\" width=\"72\" height=\"20\" rx=\"4\" fill=\"var(--ifm-background-color)\"></rect><text x=\"450\" y=\"220\" text-anchor=\"middle\" font-size=\"12\" font-weight=\"600\" fill=\"var(--ifm-color-primary)\">無法外包</text><rect x=\"30\" y=\"240\" width=\"240\" height=\"72\" rx=\"10\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-300)\" stroke-width=\"1.5\" stroke-dasharray=\"4 4\"></rect><text x=\"150\" y=\"282\" text-anchor=\"middle\" font-size=\"15\" fill=\"var(--ifm-color-emphasis-600)\">🤖 交給 AI</text><rect x=\"330\" y=\"240\" width=\"240\" height=\"72\" rx=\"10\" fill=\"var(--ifm-color-primary)\" fill-opacity=\"0.07\" stroke=\"var(--ifm-color-primary)\" stroke-width=\"1.5\"></rect><text x=\"450\" y=\"272\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"600\" fill=\"var(--ifm-font-color-base)\">🙋 親手做、挑選、衡量過</text><text x=\"450\" y=\"293\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--ifm-color-emphasis-600)\">才慢慢長出來</text></svg></div>\n<p>同樣是寫一篇教學文章，AI 可以幫我把內容生出來，品質也有一定的水準，但「怎麼編排脈絡讀者才好懂、哪個地方該放一張插圖讓人更好吸收」，這些是我的想法，做好了我會很有成就感，這就是我的品味。</p>\n<p>寫程式也一樣：AI 現在能大量產出程式碼，但這些程式碼該怎麼被整理、整個專案該怎麼架構，讓未來接手的人也讀得懂——這些事情，我親手做起來特別有感覺，知道或相信怎麼樣做才是更好的，這就是我的品味。</p>\n<p>現在 AI 可以一口氣給你十個版本，每一個看起來都能用、品質也都不錯；品味就是在這十個裡面，挑得出那個我認為真正好的，也講得清楚它好在哪、代價是什麼。而這種眼光，只會長在你真正在乎的領域裡——你不可能對每件事都有品味，但總有一些事，你會忍不住想把它做到好，或者完成後特別有成就感。</p>\n<p>品味買不到，也 prompt 不出來，它是你親手做過、挑選過、衡量過、經驗過、感受過、在乎過之後，才慢慢長出來的東西。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"透過-ai-累積學習磨利品味\">透過 AI 累積學習，磨利品味<a href=\"https://pjchender.github.io/blog/ai-era-taste/#%E9%80%8F%E9%81%8E-ai-%E7%B4%AF%E7%A9%8D%E5%AD%B8%E7%BF%92%E7%A3%A8%E5%88%A9%E5%93%81%E5%91%B3\" class=\"hash-link\" aria-label=\"透過 AI 累積學習，磨利品味的直接連結\" title=\"透過 AI 累積學習，磨利品味的直接連結\" translate=\"no\">​</a></h2>\n<p>前面雖然說了「有些產出可以放心外包」，但真正更重要的，是先回頭問問自己：你想要在什麼地方，累積出屬於自己的品味？把這題想清楚之後，才輪到下一步——在那個你真正在乎的領域裡，反過來用 AI 來幫自己把品味打磨得更利。</p>\n<p>Addy Osmani 在〈別把學習外包（Don't Outsource the Learning）〉裡就提醒我們：現在太容易讓 AI 把事情做完、自己卻跳過了學習，bug 修好了，心智模型卻沒往前。</p>\n<p>舉一個我自己很有感的例子。debug 的時候，你大可以把整段 error trace 直接貼給 AI，請它分析問題出在哪，然後照著建議把錯誤修掉，很快。但下次再遇到同一個錯誤，你還是不知道它為什麼會發生，於是又把同一段貼上去、再修一次——因為你真正外包出去的，不是「修好這個 bug」，而是「如何分析錯誤」這個能力本身。</p>\n<div style=\"max-width:600px;margin:1.75rem auto\"><svg viewBox=\"0 0 660 360\" width=\"100%\" height=\"auto\" role=\"img\" aria-labelledby=\"dbg-title dbg-desc\" style=\"font-family:inherit;display:block\"><title id=\"dbg-title\">把 debug 外包給 AI 的迴圈</title><desc id=\"dbg-desc\">遇到 error 就把整段貼給 AI、照建議修好、下次又遇到同一個錯，回到原點；外包掉的是「分析錯誤」的能力，不只是這一個 bug。</desc><defs><marker id=\"dbg-arrow\" markerWidth=\"8\" markerHeight=\"8\" refX=\"5.5\" refY=\"3\" orient=\"auto\" markerUnits=\"userSpaceOnUse\"><path d=\"M0,0 L6,3 L0,6 Z\" fill=\"var(--ifm-color-emphasis-500)\"></path></marker></defs><g fill=\"none\" stroke=\"var(--ifm-color-emphasis-500)\" stroke-width=\"1.5\"><path d=\"M210,76 V106\" marker-end=\"url(#dbg-arrow)\"></path><path d=\"M210,164 V194\" marker-end=\"url(#dbg-arrow)\"></path><path d=\"M210,252 V282\" marker-end=\"url(#dbg-arrow)\"></path></g><path d=\"M396,312 H416 Q438,312 438,290 V158 Q438,136 416,136 H398\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-500)\" stroke-width=\"1.5\" stroke-dasharray=\"4 4\" marker-end=\"url(#dbg-arrow)\"></path><text x=\"452\" y=\"219\" font-size=\"11.5\" font-weight=\"600\" fill=\"var(--ifm-font-color-base)\">外包掉的是「分析錯誤」的能力</text><text x=\"452\" y=\"239\" font-size=\"11.5\" fill=\"var(--ifm-color-emphasis-600)\">不只是這一個 bug</text><rect x=\"24\" y=\"20\" width=\"372\" height=\"56\" rx=\"10\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-300)\" stroke-width=\"1.5\"></rect><text x=\"210\" y=\"53\" text-anchor=\"middle\" font-size=\"14\" fill=\"var(--ifm-font-color-base)\">🐛 遇到 error</text><rect x=\"24\" y=\"108\" width=\"372\" height=\"56\" rx=\"10\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-300)\" stroke-width=\"1.5\"></rect><text x=\"210\" y=\"141\" text-anchor=\"middle\" font-size=\"13\" fill=\"var(--ifm-font-color-base)\">把整段 error trace 貼給 AI</text><rect x=\"24\" y=\"196\" width=\"372\" height=\"56\" rx=\"10\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-300)\" stroke-width=\"1.5\"></rect><text x=\"210\" y=\"229\" text-anchor=\"middle\" font-size=\"13.5\" fill=\"var(--ifm-font-color-base)\"><tspan font-weight=\"600\">照建議修好 ✅</tspan><tspan fill=\"var(--ifm-color-emphasis-600)\" font-size=\"12\">　很快</tspan></text><rect x=\"24\" y=\"284\" width=\"372\" height=\"56\" rx=\"10\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-300)\" stroke-width=\"1.5\"></rect><text x=\"210\" y=\"317\" text-anchor=\"middle\" font-size=\"13\" fill=\"var(--ifm-font-color-base)\">下次又遇到同一個錯</text></svg></div>\n<p>不過，同樣是這些工具，換個用法就完全不一樣。現在不少 AI 工具開始提供偏教學或引導式的模式，像 Claude Code 的 Learning output style、Gemini 的 Guided Learning。打開之後，AI 不會急著把答案塞給你，而是引導你自己先想、自己先寫。光是這個小小的切換，就讓你在寫程式的過程裡，更有機會慢慢養出自己的品味——知道什麼樣的寫法、什麼樣的架構，對你來說才叫好；而且每解一個問題，學習都真的留在你身上、一點一滴累積起來，而不是修完就還給了 AI。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"真正該問的順序是先決定想在哪裡有品味再決定怎麼學\">真正該問的順序是：先決定想在哪裡有品味，再決定怎麼學<a href=\"https://pjchender.github.io/blog/ai-era-taste/#%E7%9C%9F%E6%AD%A3%E8%A9%B2%E5%95%8F%E7%9A%84%E9%A0%86%E5%BA%8F%E6%98%AF%E5%85%88%E6%B1%BA%E5%AE%9A%E6%83%B3%E5%9C%A8%E5%93%AA%E8%A3%A1%E6%9C%89%E5%93%81%E5%91%B3%E5%86%8D%E6%B1%BA%E5%AE%9A%E6%80%8E%E9%BA%BC%E5%AD%B8\" class=\"hash-link\" aria-label=\"真正該問的順序是：先決定想在哪裡有品味，再決定怎麼學的直接連結\" title=\"真正該問的順序是：先決定想在哪裡有品味，再決定怎麼學的直接連結\" translate=\"no\">​</a></h2>\n<p>在 AI 時代，我覺得問題不是「還要不要學」，因為論能力，都有可能被 AI 取代。要問的則是**你想在哪裡展現出自己的品味？哪裡是你做了會有成就感、會真心在意什麼是好、什麼是不好的地方？**那些你想擁有品味的地方，就是你該守住、不該外包出去的學習；其他的，交給 AI。</p>\n<div style=\"max-width:580px;margin:1.75rem auto\"><svg viewBox=\"0 0 620 350\" width=\"100%\" height=\"auto\" role=\"img\" aria-labelledby=\"ord-title ord-desc\" style=\"font-family:inherit;display:block\"><title id=\"ord-title\">把「要不要學」的問題翻轉順序</title><desc id=\"ord-desc\">別用 AI 的能力當尺問還要不要學 X（答案一直變）；改成從自己身上長出尺：先決定想在哪裡擁有品味，再決定怎麼學。</desc><defs><marker id=\"ord-arrow\" markerWidth=\"8\" markerHeight=\"8\" refX=\"5.5\" refY=\"3\" orient=\"auto\" markerUnits=\"userSpaceOnUse\"><path d=\"M0,0 L6,3 L0,6 Z\" fill=\"var(--ifm-color-emphasis-500)\"></path></marker><marker id=\"ord-arrow-primary\" markerWidth=\"8\" markerHeight=\"8\" refX=\"5.5\" refY=\"3\" orient=\"auto\" markerUnits=\"userSpaceOnUse\"><path d=\"M0,0 L6,3 L0,6 Z\" fill=\"var(--ifm-color-primary)\"></path></marker></defs><rect x=\"24\" y=\"18\" width=\"572\" height=\"132\" rx=\"12\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-300)\" stroke-width=\"1.5\" stroke-dasharray=\"5 4\"></rect><text x=\"42\" y=\"45\" font-size=\"13\" font-weight=\"600\" fill=\"var(--ifm-color-emphasis-600)\">❌ 用 AI 的能力當尺</text><text x=\"170\" y=\"105\" text-anchor=\"middle\" font-size=\"14\" fill=\"var(--ifm-font-color-base)\">還要不要學 X？</text><path d=\"M298,98 H374\" fill=\"none\" stroke=\"var(--ifm-color-emphasis-500)\" stroke-width=\"1.5\" marker-end=\"url(#ord-arrow)\"></path><text x=\"476\" y=\"92\" text-anchor=\"middle\" font-size=\"13\" fill=\"var(--ifm-font-color-base)\">答案一直變</text><text x=\"476\" y=\"114\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--ifm-color-emphasis-600)\">今天值得學、明天就被追上</text><path d=\"M310,150 V182\" fill=\"none\" stroke=\"var(--ifm-color-primary)\" stroke-width=\"1.5\" marker-end=\"url(#ord-arrow-primary)\"></path><rect x=\"272\" y=\"156\" width=\"76\" height=\"20\" rx=\"4\" fill=\"var(--ifm-background-color)\"></rect><text x=\"310\" y=\"170\" text-anchor=\"middle\" font-size=\"12\" font-weight=\"600\" fill=\"var(--ifm-color-primary)\">翻轉順序</text><rect x=\"24\" y=\"182\" width=\"572\" height=\"150\" rx=\"12\" fill=\"var(--ifm-color-primary)\" fill-opacity=\"0.07\" stroke=\"var(--ifm-color-primary)\" stroke-width=\"1.5\"></rect><text x=\"42\" y=\"210\" font-size=\"13\" font-weight=\"600\" fill=\"var(--ifm-color-primary)\">✅ 從自己身上長出尺</text><text x=\"172\" y=\"270\" text-anchor=\"middle\" font-size=\"13.5\" fill=\"var(--ifm-font-color-base)\">① 我想在哪裡</text><text x=\"172\" y=\"292\" text-anchor=\"middle\" font-size=\"13.5\" fill=\"var(--ifm-font-color-base)\">擁有自己的品味？</text><path d=\"M298,278 H374\" fill=\"none\" stroke=\"var(--ifm-color-primary)\" stroke-width=\"1.5\" marker-end=\"url(#ord-arrow-primary)\"></path><text x=\"474\" y=\"270\" text-anchor=\"middle\" font-size=\"13.5\" fill=\"var(--ifm-font-color-base)\">② 那要怎麼學？</text><text x=\"474\" y=\"292\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--ifm-color-emphasis-600)\">反過來用 AI 來打磨</text></svg></div>\n<p>順序變了：把上面這題回答清楚了，才輪到第二個問題——那我要怎麼去學？在 AI 時代下，又該怎麼去學？至於具體怎麼學，已經有很多文章在談；我更想先把順序放回來。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"別讓-ai-決定你最終的產出讓你的品味決定\">別讓 AI 決定你最終的產出，讓你的品味決定<a href=\"https://pjchender.github.io/blog/ai-era-taste/#%E5%88%A5%E8%AE%93-ai-%E6%B1%BA%E5%AE%9A%E4%BD%A0%E6%9C%80%E7%B5%82%E7%9A%84%E7%94%A2%E5%87%BA%E8%AE%93%E4%BD%A0%E7%9A%84%E5%93%81%E5%91%B3%E6%B1%BA%E5%AE%9A\" class=\"hash-link\" aria-label=\"別讓 AI 決定你最終的產出，讓你的品味決定的直接連結\" title=\"別讓 AI 決定你最終的產出，讓你的品味決定的直接連結\" translate=\"no\">​</a></h2>\n<p>這些品味和成就感，其實不關乎 AI，也不關乎會不會被取代，而是我自己做起來有感覺、而且在意的事。所以產出當然可以外包，學習也可以讓 AI 輔助；但在外包之前，先認得自己在乎的品味是什麼；那些讓你成為你的部分，才是無論如何都不該交出去的。</p>\n<p>前陣子我心裡也有許多自我懷疑：我做出來的東西，很多其實也都是 AI 幫我生成、幫我寫的。如果我就這樣把它當成自己的產出，拿去跟別人分享，一方面好像蠻厲害的，另一方面又擔心被批評、質疑我只是複製貼上。</p>\n<p>但我發現，當我逐漸知道自己想磨出什麼品味時，雖然同樣是透過 AI 產生出來的東西，但那才是我的東西，因為裡面有了我的品味。至於我不在意的部分，就外包給 AI 吧！</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"reference\">Reference<a href=\"https://pjchender.github.io/blog/ai-era-taste/#reference\" class=\"hash-link\" aria-label=\"Reference的直接連結\" title=\"Reference的直接連結\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><a href=\"https://addyosmani.com/blog/dont-outsource-learning/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Don't Outsource the Learning — Addy Osmani</a></li>\n</ul>\n",
            "url": "https://pjchender.github.io/blog/ai-era-taste/",
            "title": "AI 時代，不再問「學什麼才不會被淘汰」：問你真心想把什麼做好",
            "summary": "AI 能把產出做到一定品質，但替你決定「什麼才叫好」的品味無法外包。與其問還要不要學，不如先決定想在哪裡擁有品味，再回過頭用 AI 來打磨它。",
            "date_modified": "2026-06-22T00:00:00.000Z",
            "author": {
                "name": "PJCHENder",
                "url": "https://github.com/pjchender"
            },
            "tags": [
                "AI",
                "反思"
            ]
        },
        {
            "id": "https://pjchender.github.io/blog/2024/12/10/ai-this-year/",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"開發者如何使用-ai\">開發者如何使用 AI？<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#%E9%96%8B%E7%99%BC%E8%80%85%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-ai\" class=\"hash-link\" aria-label=\"開發者如何使用 AI？的直接連結\" title=\"開發者如何使用 AI？的直接連結\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\">\n<p>The Bootstrappers: Zero to MVP</p>\n<ul>\n<li class=\"\">Bolt</li>\n<li class=\"\">v0</li>\n<li class=\"\">screenshot-to-code / figma-to-code</li>\n</ul>\n</li>\n<li class=\"\">\n<p>The Iterators: daily development</p>\n<ul>\n<li class=\"\">Cursor</li>\n<li class=\"\">Cline</li>\n<li class=\"\">Copilot</li>\n<li class=\"\">WindSurf</li>\n</ul>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"a list of AI products and their primary uses\" src=\"https://pjchender.github.io/assets/images/assets_FYJIGb4i01jvw0SRdL5Bt_F127ab975cc6145a7925f62ab0e64362e-8fccc5644c24991ffe18ccfc7c8de86b.jpeg\" width=\"705\" height=\"500\" class=\"img_ev3q\"></p>\n</li>\n</ul>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"senior-或-junior-誰更能從-ai-tools-中獲益\">Senior 或 Junior 誰更能從 AI Tools 中獲益<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#senior-%E6%88%96-junior-%E8%AA%B0%E6%9B%B4%E8%83%BD%E5%BE%9E-ai-tools-%E4%B8%AD%E7%8D%B2%E7%9B%8A\" class=\"hash-link\" aria-label=\"Senior 或 Junior 誰更能從 AI Tools 中獲益的直接連結\" title=\"Senior 或 Junior 誰更能從 AI Tools 中獲益的直接連結\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\">Senior<!-- -->\n<ul>\n<li class=\"\">根據已知的知識，快速 prototype idea</li>\n<li class=\"\">能夠 refine AI 產出來的 code</li>\n<li class=\"\">能夠探索其他不同的解法</li>\n<li class=\"\">自動化重複性的 coding tasks</li>\n</ul>\n</li>\n<li class=\"\">Junior<!-- -->\n<ul>\n<li class=\"\">接受不正確或版本不正確的解法</li>\n<li class=\"\">沒有留意到安全或效能上的問題</li>\n<li class=\"\">苦於 debug AI 產出來的程式</li>\n<li class=\"\">做出一個自己也不了解的系統</li>\n</ul>\n</li>\n<li class=\"\">正確使用 AI 的方式（難 😔）<!-- -->\n<ul>\n<li class=\"\">使用 AI 進行快速原型設計</li>\n<li class=\"\">花時間了解產生的程式碼如何運作</li>\n<li class=\"\">在使用 AI 的同時學習基本的程式設計概念</li>\n<li class=\"\">逐步建立知識基礎</li>\n<li class=\"\">使用 AI 作為學習工具，而不只是程式碼產生器</li>\n<li class=\"\"><strong>矛盾：不要只是 accept =&gt; 但這樣我要 AI 幹嘛？</strong></li>\n</ul>\n</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"工程師會被取代嗎\">工程師會被取代嗎？<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#%E5%B7%A5%E7%A8%8B%E5%B8%AB%E6%9C%83%E8%A2%AB%E5%8F%96%E4%BB%A3%E5%97%8E\" class=\"hash-link\" aria-label=\"工程師會被取代嗎？的直接連結\" title=\"工程師會被取代嗎？的直接連結\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"ai-適合拿來快速做-prototype\">AI 適合拿來快速做 Prototype<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#ai-%E9%81%A9%E5%90%88%E6%8B%BF%E4%BE%86%E5%BF%AB%E9%80%9F%E5%81%9A-prototype\" class=\"hash-link\" aria-label=\"AI 適合拿來快速做 Prototype的直接連結\" title=\"AI 適合拿來快速做 Prototype的直接連結\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"&amp;quot;the app in figma&amp;quot; vs &amp;quot;the app in prod&amp;quot; meme\" src=\"https://pjchender.github.io/assets/images/assets_FYJIGb4i01jvw0SRdL5Bt_F6233ab72b55e4799b36cb6a8e53c15c6-8e8e3faaba90816404e742ab866df194.jpeg\" width=\"700\" height=\"455\" class=\"img_ev3q\"></p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"ai-只能解決問題的-70-後接著就會撞壁\">AI 只能解決問題的 70% 後，接著就會撞壁<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#ai-%E5%8F%AA%E8%83%BD%E8%A7%A3%E6%B1%BA%E5%95%8F%E9%A1%8C%E7%9A%84-70-%E5%BE%8C%E6%8E%A5%E8%91%97%E5%B0%B1%E6%9C%83%E6%92%9E%E5%A3%81\" class=\"hash-link\" aria-label=\"AI 只能解決問題的 70% 後，接著就會撞壁的直接連結\" title=\"AI 只能解決問題的 70% 後，接著就會撞壁的直接連結\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Graph of the pit of death\" src=\"https://pjchender.github.io/assets/images/assets_FYJIGb4i01jvw0SRdL5Bt_Fc8407ea276e7418a8be29398fa8b433b-4f50e8592c2db020014274286e52b8b5.jpeg\" width=\"705\" height=\"616\" class=\"img_ev3q\"></p>\n<p>AI 能夠以讓你驚訝的速度，幫助你解決問題中 70% 的部分，但剩下的 30% 可能會讓你非常痛苦，甚至走一步、退兩步（因為每次都有新的 bug）：</p>\n<ul>\n<li class=\"\">您嘗試修正一個小錯誤</li>\n<li class=\"\">AI 建議一個看起來合理的變更</li>\n<li class=\"\">這個修正破壞了其他東西</li>\n<li class=\"\">您要求 AI 修復新問題</li>\n<li class=\"\">這又產生了兩個問題</li>\n<li class=\"\">不斷重複</li>\n</ul>\n<blockquote>\n<p>Non-engineers using AI for coding find themselves hitting a frustrating wall.</p>\n</blockquote>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"img\" src=\"https://pjchender.github.io/assets/images/f428f8ca-ebd3-4f88-88d4-1ecb33603598_2160x2160-58f11bf8b8c8aa545cc351a93d644d59.jpeg\" width=\"1456\" height=\"1456\" class=\"img_ev3q\"></p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"工程師的價值反而更重要至少以目前來說\">工程師的價值反而更重要（至少以目前來說）<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#%E5%B7%A5%E7%A8%8B%E5%B8%AB%E7%9A%84%E5%83%B9%E5%80%BC%E5%8F%8D%E8%80%8C%E6%9B%B4%E9%87%8D%E8%A6%81%E8%87%B3%E5%B0%91%E4%BB%A5%E7%9B%AE%E5%89%8D%E4%BE%86%E8%AA%AA\" class=\"hash-link\" aria-label=\"工程師的價值反而更重要（至少以目前來說）的直接連結\" title=\"工程師的價值反而更重要（至少以目前來說）的直接連結\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Graph showing a developer helping recover from the bit of death\" src=\"https://pjchender.github.io/assets/images/assets_9838a298e8ac92fe9-30f26d4f6989eb29c87d9834ec5bf527.jpeg\" width=\"705\" height=\"689\" class=\"img_ev3q\"></p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"真正給使用者用的產品而非只是-prototype\">真正給使用者用的<strong>產品</strong>，而非只是 Prototype<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#%E7%9C%9F%E6%AD%A3%E7%B5%A6%E4%BD%BF%E7%94%A8%E8%80%85%E7%94%A8%E7%9A%84%E7%94%A2%E5%93%81%E8%80%8C%E9%9D%9E%E5%8F%AA%E6%98%AF-prototype\" class=\"hash-link\" aria-label=\"真正給使用者用的產品而非只是-prototype的直接連結\" title=\"真正給使用者用的產品而非只是-prototype的直接連結\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">UX</li>\n<li class=\"\">留意細節</li>\n<li class=\"\">注重工藝</li>\n</ul>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"meme of why ux research is important\" src=\"https://pjchender.github.io/assets/images/assets_FYJIGb4i01jvw0SRdL5Bt_Fad173153345d4e249c3b4a307b19cc88-4ea1afa8f45da5c80e9bc9480e75d4f1.jpeg\" width=\"705\" height=\"406\" class=\"img_ev3q\"></p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"產品不是只需要程式工程師也不只是產生程式\"><strong>產品</strong>不是只需要程式，工程師也不只是產生程式<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#%E7%94%A2%E5%93%81%E4%B8%8D%E6%98%AF%E5%8F%AA%E9%9C%80%E8%A6%81%E7%A8%8B%E5%BC%8F%E5%B7%A5%E7%A8%8B%E5%B8%AB%E4%B9%9F%E4%B8%8D%E5%8F%AA%E6%98%AF%E7%94%A2%E7%94%9F%E7%A8%8B%E5%BC%8F\" class=\"hash-link\" aria-label=\"產品不是只需要程式工程師也不只是產生程式的直接連結\" title=\"產品不是只需要程式工程師也不只是產生程式的直接連結\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">了解需求</li>\n<li class=\"\">設計可以維護的系統</li>\n<li class=\"\">確保安全性和效能</li>\n<li class=\"\">處理不同 edge cases（不同 devices 上的情況）</li>\n<li class=\"\">Maintainable：不同團隊有不同標準</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"ai-model目前碰到的瓶頸\">AI Model目前碰到的瓶頸<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#ai-model%E7%9B%AE%E5%89%8D%E7%A2%B0%E5%88%B0%E7%9A%84%E7%93%B6%E9%A0%B8\" class=\"hash-link\" aria-label=\"AI Model目前碰到的瓶頸的直接連結\" title=\"AI Model目前碰到的瓶頸的直接連結\" translate=\"no\">​</a></h2>\n<p>新的 Model 進步的越來越有限：</p>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Graph of models showing them plateauing\" src=\"https://pjchender.github.io/assets/images/assets_F6a1a92a374ad4185a7d80b69a46d40d1-f77dac65ec4ad96928f3cecf09648135.jpeg\" width=\"705\" height=\"485\" class=\"img_ev3q\"></p>\n<p>進步的速度也漸趨緩慢：</p>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"a graph modeling the timeline of various AI models releases and their capabilities\" src=\"https://pjchender.github.io/assets/images/assets_Fdd9a4c7494884b2b9d2d59729d760dad-2b64922e847c985bd186231637a088cf.jpeg\" width=\"705\" height=\"397\" class=\"img_ev3q\"></p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"ai-對我們帶來的優勢\">AI 對我們帶來的優勢<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#ai-%E5%B0%8D%E6%88%91%E5%80%91%E5%B8%B6%E4%BE%86%E7%9A%84%E5%84%AA%E5%8B%A2\" class=\"hash-link\" aria-label=\"AI 對我們帶來的優勢的直接連結\" title=\"AI 對我們帶來的優勢的直接連結\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\">加速我們學習、探索沒想到的想法</li>\n<li class=\"\">快速驗證 MVP</li>\n<li class=\"\">自動化 routine tasks</li>\n<li class=\"\">讓工程師能跟專注在「真正的」產品開發上</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"ai-model-未來的發�展更快更聰明\">AI Model 未來的發展？更快？更聰明？<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#ai-model-%E6%9C%AA%E4%BE%86%E7%9A%84%E7%99%BC%E5%B1%95%E6%9B%B4%E5%BF%AB%E6%9B%B4%E8%81%B0%E6%98%8E\" class=\"hash-link\" aria-label=\"AI Model 未來的發展？更快？更聰明？的直接連結\" title=\"AI Model 未來的發展？更快？更聰明？的直接連結\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\">\n<p>提升反應的速度</p>\n<ul>\n<li class=\"\">針對 LLM 特製的硬體（更快且更便宜）</li>\n</ul>\n</li>\n<li class=\"\">\n<p>在 LLMs 沒有更聰明的情況下，更清楚 AI 適合以及能做到的是什麼</p>\n</li>\n<li class=\"\">\n<p>越快也表示越聰明？</p>\n</li>\n<li class=\"\">\n<p>Agent</p>\n<ul>\n<li class=\"\">AI Agents？<!-- -->\n<ul>\n<li class=\"\">AI Model 目前仍無法自主完成整個任務，會需要有人協助，否則很快就會脫軌、失控</li>\n</ul>\n</li>\n</ul>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Claude 3.5 Sonnet scored a 14.9% success rate in its ability to solve real world problems \" src=\"https://pjchender.github.io/assets/images/assets_FYJIGb4i01jvw0SRdL5Bt_F1cc3b93a93c7466c8b5d0c670b8fc912-6e78702a00381a8f5355c4187ec7a03d.jpeg\" width=\"705\" height=\"466\" class=\"img_ev3q\"></p>\n<ul>\n<li class=\"\">Micro Agent<!-- -->\n<ul>\n<li class=\"\">進行測試、編寫程式、測試</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"reference\">Reference<a href=\"https://pjchender.github.io/blog/2024/12/10/ai-this-year/#reference\" class=\"hash-link\" aria-label=\"Reference的直接連結\" title=\"Reference的直接連結\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><a href=\"https://addyo.substack.com/p/the-70-problem-hard-truths-about\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">The 70% problem: Hard truths about AI-assisted coding</a></li>\n<li class=\"\"><a href=\"https://www.builder.io/blog/ai-lie\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">The Big Lie AI Vendors Keep Telling You</a></li>\n<li class=\"\"><a href=\"https://www.builder.io/blog/is-o1-worth-it\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Is OpenAI's o1 model a breakthrough or a bust?</a></li>\n<li class=\"\"><a href=\"https://www.builder.io/blog/ai-dev-skill\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Why AI Is Making Dev Skills More Valuable, Not Less</a></li>\n</ul>\n",
            "url": "https://pjchender.github.io/blog/2024/12/10/ai-this-year/",
            "title": "2024 AI Review",
            "summary": "開發者如何使用 AI？",
            "date_modified": "2024-12-10T00:00:00.000Z",
            "author": {
                "name": "PJCHENder",
                "url": "https://github.com/pjchender"
            },
            "tags": [
                "AI"
            ]
        },
        {
            "id": "https://pjchender.github.io/blog/2022/12/10/cs-psy/",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"software-and-softskill\">\"Soft\"ware and \"Soft\"skill<a href=\"https://pjchender.github.io/blog/2022/12/10/cs-psy/#software-and-softskill\" class=\"hash-link\" aria-label=\"&quot;Soft&quot;ware and &quot;Soft&quot;skill的直接連結\" title=\"&quot;Soft&quot;ware and &quot;Soft&quot;skill的直接連結\" translate=\"no\">​</a></h2>\n<p>面對人、組織的問題時，想想如果這是在寫程式的話，可以怎麼處理？</p>\n<!-- -->\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"拆分工作與並行\">拆分工作與並行<a href=\"https://pjchender.github.io/blog/2022/12/10/cs-psy/#%E6%8B%86%E5%88%86%E5%B7%A5%E4%BD%9C%E8%88%87%E4%B8%A6%E8%A1%8C\" class=\"hash-link\" aria-label=\"拆分工作與並行的直接連結\" title=\"拆分工作與並行的直接連結\" translate=\"no\">​</a></h3>\n<p>在軟體開發中有並行（concurrency）和平行（parallel）的概念。善用這兩個可以帶來更有效率的工作表現；就像如果能妥善分派工作，將每個工作拆成相對獨立的的任務，同時交付給多個人去處理，就能夠在更短的時間內完成更多的事項。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"權責與分工\">權責與分工<a href=\"https://pjchender.github.io/blog/2022/12/10/cs-psy/#%E6%AC%8A%E8%B2%AC%E8%88%87%E5%88%86%E5%B7%A5\" class=\"hash-link\" aria-label=\"權責與分工的直接連結\" title=\"權責與分工的直接連結\" translate=\"no\">​</a></h3>\n<p>在軟體開發中有分層（layer）的概念，每個 layer 內只負責和管理好自己應該知道的事，如此可以減少程式耦合、讓程式更好維護與管理；就像組織中，並不是所有部門都需要知道所有的訊息，更有效率的做法應該是每個部門只需知道和自己相關的資訊，並把自己部門內的事項負責好後，再交派給其他部門做處理。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"不變的就是總是會改變\">不變的就是總是會改變<a href=\"https://pjchender.github.io/blog/2022/12/10/cs-psy/#%E4%B8%8D%E8%AE%8A%E7%9A%84%E5%B0%B1%E6%98%AF%E7%B8%BD%E6%98%AF%E6%9C%83%E6%94%B9%E8%AE%8A\" class=\"hash-link\" aria-label=\"不變的就是總是會改變的直接連結\" title=\"不變的就是總是會改變的直接連結\" translate=\"no\">​</a></h3>\n<p>軟體的世界變化很快，不論是架構、框架、語言，都以非常快速的方式在成長。即時你今天真的設計出了一個完美的系統架構，它也很有可能在幾個月後，或幾年後被推翻，而且很有可能推翻的人還是你自己。因為隨著時間的改變，人的想法會改變、使用者會改變、需求會改變、能夠拿來解決問題的工具也會改變。最重要的不是想出什麼是完美的做法、而是寫出最有彈性、能夠適應未來改變的程式。</p>\n",
            "url": "https://pjchender.github.io/blog/2022/12/10/cs-psy/",
            "title": "軟體開發與心理學",
            "summary": "\"Soft\"ware and \"Soft\"skill",
            "date_modified": "2022-12-10T00:00:00.000Z",
            "author": {
                "name": "PJCHENder",
                "url": "https://github.com/pjchender"
            },
            "tags": [
                "團隊協作",
                "反思"
            ]
        },
        {
            "id": "https://pjchender.github.io/blog/2022/12/09/why-not-over-work/",
            "content_html": "<div class=\"theme-admonition theme-admonition-info admonition_xJq3 alert alert--info\"><div class=\"admonitionHeading_Gvgb\"><span class=\"admonitionIcon_Rf37\"><svg viewBox=\"0 0 14 16\"><path fill-rule=\"evenodd\" d=\"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z\"></path></svg></span>Info</div><div class=\"admonitionContent_BuS1\"><p>這篇主要是寫給自己看的，因為我是一個很容易就會不小心加班，想要把事情完成的人。</p></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"為什麼不要加班\">為什麼不要加班？<a href=\"https://pjchender.github.io/blog/2022/12/09/why-not-over-work/#%E7%82%BA%E4%BB%80%E9%BA%BC%E4%B8%8D%E8%A6%81%E5%8A%A0%E7%8F%AD\" class=\"hash-link\" aria-label=\"為什麼不要加班？的直接連結\" title=\"為什麼不要加班？的直接連結\" translate=\"no\">​</a></h2>\n<p>我認為下面這幾種情況是「合理」加班：</p>\n<ul>\n<li class=\"\">因為自己犯錯需要彌補錯誤而加班：可能是因為理解錯需求、寫出 bug 等情況</li>\n<li class=\"\">因為自己能力不足而加班：這比較像是職稱和能力不太對等的情況，這時候也許會需要花時間補足自己能力不足的部分</li>\n<li class=\"\">不是公司要求，但想要自己花時間研究該需求到使用的技術</li>\n</ul>\n<!-- -->\n<div class=\"theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning\"><div class=\"admonitionHeading_Gvgb\"><span class=\"admonitionIcon_Rf37\"><svg viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" d=\"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z\"></path></svg></span>注意</div><div class=\"admonitionContent_BuS1\"><p>如果是因為工作時程排得太不合理，根本一定是要加班才做的完，而且又不是短期或偶爾需要趕趕專案的這種，我認為這就是不合理也不需要的加班。</p></div></div>\n<p>不加班的好處實在太多了，這些時間不論是拿來休息或進修都非常好。</p>\n<p>平常上班的時候，腦袋都在想上班的事情，下班後有時候還沒辦法即時轉換，但一但轉換後，你會發現腦袋有很多想要完成、或想要去做的事：</p>\n<ul>\n<li class=\"\">隨時把自己準備好（找工作）：這並不是說你真的要去找工作，但你應該要有這樣的準備。軟體工作的變化很快，如果是新創的話公司有可能倒閉、經濟不好的時候有可能被裁員，隨時把自己準備好，可以讓你碰到危機的時候不那麼擔心。</li>\n<li class=\"\">花時間學習工作上能用到的技術</li>\n<li class=\"\">花時間研究自己有興趣的技術</li>\n<li class=\"\">當你不去做公司的事情，漸漸的你會發現有其他許多想做或該做的事冒出來...</li>\n</ul>\n<div class=\"theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success\"><div class=\"admonitionHeading_Gvgb\"><span class=\"admonitionIcon_Rf37\"><svg viewBox=\"0 0 12 16\"><path fill-rule=\"evenodd\" d=\"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z\"></path></svg></span>專心上班</div><div class=\"admonitionContent_BuS1\"><p>盡可能把事情都在上班時間專心完成，把下班的時間空出來做任何和工作沒有直接相關的事。</p></div></div>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"加班是為了自己還是為了公司\">加班是為了自己，還是為了公司？<a href=\"https://pjchender.github.io/blog/2022/12/09/why-not-over-work/#%E5%8A%A0%E7%8F%AD%E6%98%AF%E7%82%BA%E4%BA%86%E8%87%AA%E5%B7%B1%E9%82%84%E6%98%AF%E7%82%BA%E4%BA%86%E5%85%AC%E5%8F%B8\" class=\"hash-link\" aria-label=\"加班是為了自己，還是為了公司？的直接連結\" title=\"加班是為了自己，還是為了公司？的直接連結\" translate=\"no\">​</a></h3>\n<p>大部分的人可能都會覺得加班是為了公司，但我發現，我加班其實常常是為了自己，但這不是說「為了自己」而做就有多偉大。確切來說，我發現我加班常常是因為：</p>\n<ul>\n<li class=\"\">「我」害怕他人對我的評價</li>\n<li class=\"\">「我」害怕其他人覺得我事情做的很慢</li>\n<li class=\"\">「我」想要透過加班表現出自己是很負責任的人</li>\n<li class=\"\">「我」想要透過加班表現出自己和公司的目標一致、站在同一條線上</li>\n</ul>\n<p>可以發現到，其實我加班的本意都不是為了公司，而都是為了自己，可能是減輕焦慮、可能是想塑造形象。</p>\n<p>如果真的是為了公司好，我其實或許不應該加班。為什麼呢？因為當加班變成一種文化，漸漸的許多人會受不了而選擇離開（包括你自己）。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"當加班變成一種公司文化\">當加班變成一種公司文化<a href=\"https://pjchender.github.io/blog/2022/12/09/why-not-over-work/#%E7%95%B6%E5%8A%A0%E7%8F%AD%E8%AE%8A%E6%88%90%E4%B8%80%E7%A8%AE%E5%85%AC%E5%8F%B8%E6%96%87%E5%8C%96\" class=\"hash-link\" aria-label=\"當加班變成一種公司文化的直接連結\" title=\"當加班變成一種公司文化的直接連結\" translate=\"no\">​</a></h3>\n<p>這點是我覺得最可怕的，當公司原本只是幾個人加班或只是因為短期專案衝刺而加班，我覺得這都還好。</p>\n<p>比較恐怖的是，事情明明多到只用上班時間是不可能完成的，但有些人為了準時交付任務而加班完成，但這樣的「不正常」卻慢慢變成「正常」而被拿來當作比較的基準。當不正常的加班在主管眼中變成了一種正常：「他（加班的人）都可以完成，為什麼你沒辦法？是不是你能力不足？」</p>\n<p>為了獲得更好的績效或主管的肯定，這時候你可以選擇「一起加班」或「照著自己的步調」—— 選擇前者你會讓自己越來越辛苦，選擇後者你可以「正常」上下班，但在主管眼中，你的產出卻可能變成了「不正常」，進而得到了比較差的考績或無法獲得加薪、升遷...。</p>\n<div class=\"theme-admonition theme-admonition-info admonition_xJq3 alert alert--info\"><div class=\"admonitionHeading_Gvgb\"><span class=\"admonitionIcon_Rf37\"><svg viewBox=\"0 0 14 16\"><path fill-rule=\"evenodd\" d=\"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z\"></path></svg></span>內捲化（involution）</div><div class=\"admonitionContent_BuS1\"><p>有興趣的話可以查查「內捲化（involution）」這個詞 ——「原先按時上下班的人開始擔心自己成為劣勢者，也自願加班，久而久之，加班便成為常態，最後變成如果不自願加班，就會影響自己在職場的生存，降低談判力」（<a href=\"https://zh.m.wikipedia.org/zh-tw/%E5%86%85%E5%8D%B7%E5%8C%96#:~:text=%E5%8E%9F%E5%85%88%E6%8C%89%E6%99%82%E4%B8%8A%E4%B8%8B%E7%8F%AD%E7%9A%84%E4%BA%BA%E9%96%8B%E5%A7%8B%E6%93%94%E5%BF%83%E8%87%AA%E5%B7%B1%E6%88%90%E7%82%BA%E5%8A%A3%E5%8B%A2%E8%80%85%EF%BC%8C%E4%B9%9F%E8%87%AA%E9%A1%98%E5%8A%A0%E7%8F%AD%EF%BC%8C%E4%B9%85%E8%80%8C%E4%B9%85%E4%B9%8B%EF%BC%8C%E5%8A%A0%E7%8F%AD%E4%BE%BF%E6%88%90%E7%82%BA%E5%B8%B8%E6%85%8B%EF%BC%8C%E6%9C%80%E5%BE%8C%E8%AE%8A%E6%88%90%E5%A6%82%E6%9E%9C%E4%B8%8D%E8%87%AA%E9%A1%98%E5%8A%A0%E7%8F%AD%EF%BC%8C%E5%B0%B1%E6%9C%83%E5%BD%B1%E9%9F%BF%E8%87%AA%E5%B7%B1%E5%9C%A8%E8%81%B7%E5%A0%B4%E7%9A%84%E7%94%9F%E5%AD%98%EF%BC%8C%E9%99%8D%E4%BD%8E%E8%AB%87%E5%88%A4%E5%8A%9B\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">維基百科</a>）。</p></div></div>\n<p>的確，你可能是為了自己而加班，你可能會想「是我自己想要加班的，其他人可以不用照著做」，但是請盡可能減少自己加班對他人造成的影響，其他人會不會因此而有非常大的壓力？如果長時間一直加班下來，你真的不會倦怠嗎？會不會最後，因為給自己的壓力太大，第一個想離開的人，反而是自己。</p>\n<p>為了公司好，請不要讓公司走向這種不健康的職場文化。</p>\n<p>好好利用時間，下班了，做做和工作無關的事吧！</p>\n<div class=\"theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success\"><div class=\"admonitionHeading_Gvgb\"><span class=\"admonitionIcon_Rf37\"><svg viewBox=\"0 0 12 16\"><path fill-rule=\"evenodd\" d=\"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z\"></path></svg></span>提示</div><div class=\"admonitionContent_BuS1\"><p>做和工作無關的事，不表示不能做和程式相關的事，你還是可以用下班的時間學新技術、做 side-project。</p></div></div>\n",
            "url": "https://pjchender.github.io/blog/2022/12/09/why-not-over-work/",
            "title": "加班是為了公司，還是為了自己？",
            "summary": "這篇主要是寫給自己看的，因為我是一個很容易就會不小心加班，想要把事情完成的人。",
            "date_modified": "2022-12-09T00:00:00.000Z",
            "author": {
                "name": "PJCHENder",
                "url": "https://github.com/pjchender"
            },
            "tags": [
                "職涯",
                "反思"
            ]
        },
        {
            "id": "https://pjchender.github.io/blog/2021/05/03/time-complexity/",
            "content_html": "<p><img decoding=\"async\" loading=\"lazy\" src=\"https://i.imgur.com/kng0gyR.jpg\" alt=\"time-complexity\" class=\"img_ev3q\"></p>\n<p>剛剛用日常上班前挑衣服的例子和沒學過程式的 00 說明時間複雜度的概念很好理解耶～！</p>\n<p>例子是這樣的...</p>\n<!-- -->\n<p>一早要出門的時候，想要從衣櫃中找出紅色的上衣。</p>\n<p>其中一種方式是像左圖一樣，這是掏寶上很熱門的「疊衣服褲子收納神器」，雖然看起來整理的很乾淨，但如果你要從中找到紅色的衣服，你就得要由上而下一件一件找，最糟的情況就是一直翻到最下面才能找到你要的紅色衣服。</p>\n<p>另一種方式是像右圖一樣，把衣服用立起來的方式，一眼就可以看到紅色的衣服在哪，直接拿出來，幾乎不用找。</p>\n<p>左圖的那種方式，時間複雜的就是 <code>O(n)</code>，n 就是衣服的件數，雖然紅色的衣服有可能就放在最上面，一眼就可以看到，但在探討時間複雜度的時候都要考慮最差的情況，所以如果你有 n 件衣服，最差的情況就是要把 n 件衣服都翻過才會找到紅色那件。</p>\n<p>右圖的方式它的時間複雜度是 <code>O(1)</code>，在你沒有忘記其實衣服已經被丟到洗衣籃的前提下，你看一眼，翻都不用翻就可以把紅衣服直接取出（請先忽略掉人腦內建的視覺搜尋系統，那是另一個有趣的故事 XD）。這種不用一個一個找，就直接取出的，時間複雜度就是 <code>O(1)</code>。</p>\n<p>有了這個時間複雜度的概念後，是不是覺得左邊的那個商品實用性沒這麼高啦～ XDD</p>\n<p>但我還是附一下<a href=\"https://detail.tmall.com/item.htm?id=610962219825&amp;fbclid=IwAR3M2PgNY0q1KIBYs-rPkRK_rJy1HKRP3vOYkTZo9QyX2oXkHS-vJF4foOk\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">購物連結</a>（誤）</p>\n<p>真的是沒想到學演算法還可以用在購物吧！</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"圖片來源\">圖片來源<a href=\"https://pjchender.github.io/blog/2021/05/03/time-complexity/#%E5%9C%96%E7%89%87%E4%BE%86%E6%BA%90\" class=\"hash-link\" aria-label=\"圖片來源的直接連結\" title=\"圖片來源的直接連結\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><a href=\"https://detail.tmall.com/item.htm?id=610962219825\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">叠衣服裤子收纳神器</a></li>\n<li class=\"\"><a href=\"https://www.bella.tw/articles/design&amp;gadget/18430\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">連日本主婦都瘋狂的「怦然心動整理法」</a></li>\n</ul>\n",
            "url": "https://pjchender.github.io/blog/2021/05/03/time-complexity/",
            "title": "從找衣服了解時間複雜度",
            "summary": "time-complexity",
            "date_modified": "2021-05-03T00:00:00.000Z",
            "author": {
                "name": "PJCHENder",
                "url": "https://github.com/pjchender"
            },
            "tags": [
                "技術"
            ]
        },
        {
            "id": "https://pjchender.github.io/blog/2021/04/25/job/",
            "content_html": "<p>由於過去求職時在 ptt 上或許多個人網誌中獲得了許多幫助，因此這次也來分享自己面試的心得，希望對於求職的大家們能夠有些幫助。</p>\n<p>這次求職過程中，在和幾位不同的 Team Lead 或是 CTO 面談的過程中，真的讓我感受到<strong>多數厲害的人總是自信而謙虛的</strong>，他們不會透過問題來讓你覺得自己不懂，反倒是很 open-minded 讓你感受到雖然這個自己現在不懂，但沒關係，甚至會進一步透過提問來協助你進一步釐清自己的思路。</p>\n<blockquote>\n<p>同樣地，我也期許對於自己的專業能夠是「自信而謙虛」的態度。</p>\n</blockquote>\n<p>過去雖然常聽大神說，工作一陣子後，通常就不用自己找工作，而是靠別人介紹或挖角，但我可能還沒到這個階段，周圍沒什麼人介紹，更別說是挖角，所以還是只能靠自己 XDD。</p>\n<p>下面是我這次有面試的幾間公司，主要找公司市場不侷限於台灣的公司，面試的職缺全部都是前端工程師。</p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"line-pay\">Line Pay<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#line-pay\" class=\"hash-link\" aria-label=\"Line Pay的直接連結\" title=\"Line Pay的直接連結\" translate=\"no\">​</a></h2>\n<p>首先 Line Pay 和 Line Taiwan、Line Bank 雖然都隸屬於 Line 集團底下，但在台灣是三間不同的公司。Line Pay 的面試過程較嚴謹，這次從投遞履歷到最終回覆的時間約需要一個多月的時間。</p>\n<p>Line Pay 公司的地點是在大直美福大飯店的側邊，給人非常氣派豪華的感覺。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第零關線上測試\">第零關：線上測試<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E9%9B%B6%E9%97%9C%E7%B7%9A%E4%B8%8A%E6%B8%AC%E8%A9%A6\" class=\"hash-link\" aria-label=\"第零關：線上測試的直接連結\" title=\"第零關：線上測試的直接連結\" translate=\"no\">​</a></h3>\n<p>給予連結，並透過線上測試的方式，題目主要是演算法的測驗，印象中是三題。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第一關onsite-interview-with-taiwan-engineer\">第一關：onsite-interview with Taiwan Engineer<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%B8%80%E9%97%9Consite-interview-with-taiwan-engineer\" class=\"hash-link\" aria-label=\"第一關：onsite-interview with Taiwan Engineer的直接連結\" title=\"第一關：onsite-interview with Taiwan Engineer的直接連結\" translate=\"no\">​</a></h3>\n<p>面試的對象是 Taiwan Line Pay 的工程師們，會針對線上測試的作答進行討論，接著會根據過去實作過的專案進行問答，並可利用白板進行概念的解釋與說明。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第二關onsite-interview-with-korean-engineer\">第二關：onsite-interview with Korean Engineer<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%BA%8C%E9%97%9Consite-interview-with-korean-engineer\" class=\"hash-link\" aria-label=\"第二關：onsite-interview with Korean Engineer的直接連結\" title=\"第二關：onsite-interview with Korean Engineer的直接連結\" translate=\"no\">​</a></h3>\n<p>這關給我的經驗很特別，因為是透過視訊的方式和韓國的工程師們進行面試，原本以為會需要用英文會話，但面談現場直接就有一位中韓文的即時口譯，所以並不需要說到英文，和面試官的溝通會完全透過這位翻譯。（心裡 OS：大公司就是直接找翻譯這樣的氣派。）</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第三關onsite-interview-with-hr\">第三關：onsite-interview with HR<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%B8%89%E9%97%9Consite-interview-with-hr\" class=\"hash-link\" aria-label=\"第三關：onsite-interview with HR的直接連結\" title=\"第三關：onsite-interview with HR的直接連結\" translate=\"no\">​</a></h3>\n<p>最後會和 HR 進行面談，除了討論期待的薪資，也會針對個人或過去的工作經驗進行暸解。據 HR 表示，目前 Line 和 Line Bank 都搬到同一棟建築物，但 Line Pay 因為剛搬到美福大飯店這邊不久，因此暫時沒有再次搬遷的打算。</p>\n<p>最後，HR 會與你進行基本的英文會話，確認有基本英文溝通能力。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"kkstream\">KKStream<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#kkstream\" class=\"hash-link\" aria-label=\"KKStream的直接連結\" title=\"KKStream的直接連結\" translate=\"no\">​</a></h2>\n<p>KKStream 則是隸屬於 KKBOX Group 的公司，做的是影音串流服務，可以想成是讓客戶能夠透過 KKStream 的服務建立 Netflix 或 MyVideo 這類影音平台。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第零關線上測試-1\">第零關：線上測試<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E9%9B%B6%E9%97%9C%E7%B7%9A%E4%B8%8A%E6%B8%AC%E8%A9%A6-1\" class=\"hash-link\" aria-label=\"第零關：線上測試的直接連結\" title=\"第零關：線上測試的直接連結\" translate=\"no\">​</a></h3>\n<p>給予連結，並透過線上測試的方式，題目主要是演算法的測驗。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第一關onsite-interview-with-team-lead\">第一關：onsite-interview with Team Lead<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%B8%80%E9%97%9Consite-interview-with-team-lead\" class=\"hash-link\" aria-label=\"第一關：onsite-interview with Team Lead的直接連結\" title=\"第一關：onsite-interview with Team Lead的直接連結\" translate=\"no\">​</a></h3>\n<p>完成線上測驗通過後，會有一份作業，作業內容是用 React 寫一個待有基本的 CRUD 以及搜尋功能的網站（可以簡單想成 TodoList 這類），作業需在此次面試前完成，並提交到 Github 私人的 repo。</p>\n<p>KKStream 前端目前分成三個組別－Core Tech、BlendVision 和 Enterprise。各組各派一人前來面試，會針對作業內容進行討論，接著則根據過去開發過的專案進行討論。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第二關onsite-interview-with-pm--engineer-manager\">第二關：onsite-interview with PM &amp; Engineer Manager<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%BA%8C%E9%97%9Consite-interview-with-pm--engineer-manager\" class=\"hash-link\" aria-label=\"第二關：onsite-interview with PM &amp; Engineer Manager的直接連結\" title=\"第二關：onsite-interview with PM &amp; Engineer Manager的直接連結\" translate=\"no\">​</a></h3>\n<p>第一關結束後，會根據各組人數的需求將面試者配到適合的組別，也就是一開始投的組別，不見得會是最後的組別，這個部分也可以再和 HR 或 Engineer Manager 進行了解。</p>\n<p>PM 和 Engineer Manager 比較不是針對技術的部分進行發問，而是針對過去的經驗試著了解自己是個怎麼樣的人。在這次面試中和 Engineer Manager 聊了蠻久的時間，包括帶領 Team 的方式、對於前後端的想法、測試撰寫的想法等等，覺得有非常多的收穫。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第三關online-interview\">第三關：online-interview<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%B8%89%E9%97%9Conline-interview\" class=\"hash-link\" aria-label=\"第三關：online-interview的直接連結\" title=\"第三關：online-interview的直接連結\" translate=\"no\">​</a></h3>\n<p>HR 會針對期待薪資進行了解，並試著了解自己過去的經歷。另外，會與一位主管進行面談，過程比較像是在聊天，互相分享彼此的經驗和價值觀。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"onedegree\">OneDegree<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#onedegree\" class=\"hash-link\" aria-label=\"OneDegree的直接連結\" title=\"OneDegree的直接連結\" translate=\"no\">​</a></h2>\n<p>OneDegree 的前端工程師還有分不同 team，分別是做 2C 和 2B，這裡我是面試 2B 的團隊。OneDegree 主要是開發保險系統，讓保險公司能透過此保險系統建立保險商品，並供一般消費者能夠以網路進行線上投保。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第零關線上測試-2\">第零關：線上測試<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E9%9B%B6%E9%97%9C%E7%B7%9A%E4%B8%8A%E6%B8%AC%E8%A9%A6-2\" class=\"hash-link\" aria-label=\"第零關：線上測試的直接連結\" title=\"第零關：線上測試的直接連結\" translate=\"no\">​</a></h3>\n<p>給予連結，並透過線上測試的方式，題目包含演算法、React 和 Git 的問答題。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第一關onsite-interview-with-team-lead-1\">第一關：onsite-interview with Team Lead<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%B8%80%E9%97%9Consite-interview-with-team-lead-1\" class=\"hash-link\" aria-label=\"第一關：onsite-interview with Team Lead的直接連結\" title=\"第一關：onsite-interview with Team Lead的直接連結\" translate=\"no\">​</a></h3>\n<p>主要是與 Frontend Team Lead 們進行面試，一開始會先請面試者以英文自我介紹，並且透過英文進行簡短的問答，主要也是確認面試者有基本的英文能力。接著會切換回中文，同樣是根據過去做的專案進行討論，並且分享彼此對於不同技術上的想法。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第二關onsite-interview-with-taiwan-director--hr\">第二關：onsite-interview with Taiwan Director &amp; HR<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%BA%8C%E9%97%9Consite-interview-with-taiwan-director--hr\" class=\"hash-link\" aria-label=\"第二關：onsite-interview with Taiwan Director &amp; HR的直接連結\" title=\"第二關：onsite-interview with Taiwan Director &amp; HR的直接連結\" translate=\"no\">​</a></h3>\n<p>再來會與 OneDegree 台灣區的總監和 HR 進行面談，這次面談比較不會談到技術上的問題，比較像是互相了解彼此的聊天。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"總結\">總結<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%B8%BD%E7%B5%90\" class=\"hash-link\" aria-label=\"總結的直接連結\" title=\"總結的直接連結\" translate=\"no\">​</a></h3>\n<p>OneDegree 的回應速度還蠻快的，對於面試者來說不會有太長時間的等待。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"privé-technologies\">Privé Technologies<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#priv%C3%A9-technologies\" class=\"hash-link\" aria-label=\"Privé Technologies的直接連結\" title=\"Privé Technologies的直接連結\" translate=\"no\">​</a></h2>\n<p>Privé Technologies 的 recruiter 主動聯繫，Privé Technologies 是一間立基於香港的 Fintech，工程師遍佈在世界不同的地方，目前工程師主力是在香港和台灣。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第零關線上測試-3\">第零關：線上測試<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E9%9B%B6%E9%97%9C%E7%B7%9A%E4%B8%8A%E6%B8%AC%E8%A9%A6-3\" class=\"hash-link\" aria-label=\"第零關：線上測試的直接連結\" title=\"第零關：線上測試的直接連結\" translate=\"no\">​</a></h3>\n<p>給予連結，並透過線上測試的方式，題目主要是前端 JavaScript / React 的測試。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第一關online-interview-with-frontend-team-lead\">第一關：online-interview with Frontend Team Lead<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%B8%80%E9%97%9Conline-interview-with-frontend-team-lead\" class=\"hash-link\" aria-label=\"第一關：online-interview with Frontend Team Lead的直接連結\" title=\"第一關：online-interview with Frontend Team Lead的直接連結\" translate=\"no\">​</a></h3>\n<p>透過 Online 的方式與位在香港的 Frontend Team Lead 進行面談，過程全程使用英語。主要是針對過去的專案進行提問，也有詢問到對撰寫測試的想法，並討論「怎麼樣算是好的程式碼」？</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第二關online-interview-with-frontend-engineer\">第二關：online-interview with Frontend Engineer<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%BA%8C%E9%97%9Conline-interview-with-frontend-engineer\" class=\"hash-link\" aria-label=\"第二關：online-interview with Frontend Engineer的直接連結\" title=\"第二關：online-interview with Frontend Engineer的直接連結\" translate=\"no\">​</a></h3>\n<p>一樣是透過 online 的方式進行面談，面試官是在台灣的前端工程師（很巧的是過去和他還有短期合作過相同的專案）。一開始一樣會以英文進行自我介紹和簡短的問答，確認面試者有足夠的英文會話能力。接著會切換回中文，討論「怎麼樣算是好的程式碼」、還有聊到 OOP 和 Functional Programming 適合的時機、另外則是 JavaScript 有關的題目。</p>\n<p>另外，也有進行 online 的 coding test，內容偏向基本的演算法和邏輯實作。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第三關online-interview-with-cto\">第三關：online-interview with CTO<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%B8%89%E9%97%9Conline-interview-with-cto\" class=\"hash-link\" aria-label=\"第三關：online-interview with CTO的直接連結\" title=\"第三關：online-interview with CTO的直接連結\" translate=\"no\">​</a></h3>\n<p>印象沒錯的話 CTO 是澳洲人，但在香港待了蠻久的一段時間，目前和 Frontend Team Lead 一樣都在香港，他也曾在 LaLaMove 擔任過 CTO 的職位。</p>\n<p>面試全程以英文進行，一樣會討論到「怎麼樣算是好的程式碼」，另外則是聊一些個人的經歷、和同事的相處、人格特質等等的。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"總結-1\">總結<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%B8%BD%E7%B5%90-1\" class=\"hash-link\" aria-label=\"總結的直接連結\" title=\"總結的直接連結\" translate=\"no\">​</a></h3>\n<p>Privé Technologies 是回覆相當快速的公司，收到回覆後會立即安排下一場的時間，不論是 HR、Team Lead 到 CTO 都給人很和善親切的態度，可以讓人感受到是相當尊重且重視面試者的。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"慧科訊業-wisers\">慧科訊業 Wisers<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E6%85%A7%E7%A7%91%E8%A8%8A%E6%A5%AD-wisers\" class=\"hash-link\" aria-label=\"慧科訊業 Wisers的直接連結\" title=\"慧科訊業 Wisers的直接連結\" translate=\"no\">​</a></h2>\n<p>慧科是由 Headhunter 推薦，公司主要是做輿情分析的，會去爬各媒體或社群的資料、關鍵字，以此分析當前熱門的議題或輿論風向，市場主要是在中國。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第一關online-interview\">第一關：online-interview<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%B8%80%E9%97%9Conline-interview\" class=\"hash-link\" aria-label=\"第一關：online-interview的直接連結\" title=\"第一關：online-interview的直接連結\" translate=\"no\">​</a></h3>\n<p>第一關會先以線上的方式進行面談，面試官來自台灣、香港和中國。這裡我有一點小烏龍的是，收到通知的時候，看到 email 寫的是「phone interview」，誤以為是面試官會打電話來...，接著等了又等，想說時間到了怎麼都沒打電話來，後來才知道 phone interview 指的是視訊面談 XDD</p>\n<p>面試主要問過去實作過哪些專案，有沒有處理過複雜的圖表或大量資料需要 render 的經驗，怎麼樣優化和除錯等等。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"第二關onsite-interview\">第二關：onsite-interview<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%AC%AC%E4%BA%8C%E9%97%9Consite-interview\" class=\"hash-link\" aria-label=\"第二關：onsite-interview的直接連結\" title=\"第二關：onsite-interview的直接連結\" translate=\"no\">​</a></h3>\n<p>雖然說是 onsite-interview，但除了和台灣的工程師面試之外，同時也會透過視訊和香港以及中國的主管面談。中國的 Frontend 主管問了很多技術相關的問題，從 CSSOM、Web Component、micro-frontend、performance、如何避免瀏覽器被阻塞（block）都有問到。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"總結-2\">總結<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E7%B8%BD%E7%B5%90-2\" class=\"hash-link\" aria-label=\"總結的直接連結\" title=\"總結的直接連結\" translate=\"no\">​</a></h3>\n<p>可以感覺的出來 Frontend Team Lead 的知識深度很深，我也並沒有全部都回答得出來，但 Team Lead 人非常有耐心，就像個 mentor 一樣，會給我一些思路讓我再去思考這個問題有沒有其他的可能性或答案，面試完後真的有一點「如沐春風」的感覺不誇張 XD。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"常見問題\">常見問題<a href=\"https://pjchender.github.io/blog/2021/04/25/job/#%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C\" class=\"hash-link\" aria-label=\"常見問題的直接連結\" title=\"常見問題的直接連結\" translate=\"no\">​</a></h2>\n<p>如果需要準備英文面試的話，也很推薦 Coursera 上這堂免費的課程 <a href=\"https://www.coursera.org/learn/careerdevelopment/home/welcome\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">English for Career Development</a>，若時間不夠的話，也可以根據自己的需要，直接跳著進度看，不一定要從頭開始慢慢看。</p>\n<p>從技術面來說，JavaScript 面試的內容除了可以參考很久以前整理過的「<a href=\"https://pjchender.blogspot.com/2017/06/javascript-understanding-weird-part.html\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">JavaScript: Understanding the Weird Part（JavaScript 全攻略：克服 JS 的奇怪部分）</a>」筆記之外，網路上也可以搜尋到非常非常多；React 的話，基本的官方文件一定要看過。</p>\n<blockquote>\n<p>有些東西雖然每天都在用，但若沒準備一時被問到的話，還是可能會沒辦法很快速且順暢的解釋出來。例如，請你解釋 event loop 是什麼。</p>\n</blockquote>\n<p>在上述的面試中，撇除技術問題外，有一些共同常被問的，像是：</p>\n<ul>\n<li class=\"\">自我介紹</li>\n<li class=\"\">為什麼離開前一份工作</li>\n<li class=\"\">上一份工作中覺得最困難或最具挑戰的是什麼？</li>\n<li class=\"\">想像未來三年後你預期自己會是個什麼樣的人？</li>\n<li class=\"\">有什麼問題要問我的嗎？</li>\n</ul>\n<p>另外，也可以參考這部 3 分鐘的<a href=\"https://www.youtube.com/watch?v=I2IDGXX5-YY\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">影片</a>，裡面許多題目大家一定都聽過，但還是可以稍微想一下怎麼回答：</p>\n<div class=\"responsiveVideoContainer_rQO_\"><iframe src=\"https://www.youtube.com/embed/I2IDGXX5-YY\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"></iframe></div>\n",
            "url": "https://pjchender.github.io/blog/2021/04/25/job/",
            "title": "2021 求職面試心得分享",
            "summary": "由於過去求職時在 ptt 上或許多個人網誌中獲得了許多幫助，因此這次也來分享自己面試的心得，希望對於求職的大家們能夠有些幫助。",
            "date_modified": "2021-04-25T00:00:00.000Z",
            "author": {
                "name": "PJCHENder",
                "url": "https://github.com/pjchender"
            },
            "tags": [
                "職涯"
            ]
        },
        {
            "id": "https://pjchender.github.io/blog/2021/04/19/common-wealth/",
            "content_html": "<p><img decoding=\"async\" loading=\"lazy\" src=\"https://i.imgur.com/AbjYRAn.jpg\" alt=\"ALPHACamp X 天下雜誌：那些年我們一起走過的數位轉型\" class=\"img_ev3q\"></p>\n<p>這次很幸運有機會能夠擔任 ALPHA Camp 與天下雜誌合作舉辦的實體／線上活動，也是我自己第一次擔任活動主持人。</p>\n<p>從小，我家就非常多與天下相關的雜誌，不論是天下、康健、Cheers 都有，因為我爸媽算是很早期的訂戶，所以一開始收到 ALPHA Camp 詢問能否的擔任活動主持人時，我內心是有些興奮的，是一種竟然可以有機會進到從小就一直在接觸的媒體的雀躍感，而且天下雜誌多數時候也給我相當正面的感受，算是台灣媒體界的清流之一。</p>\n<!-- -->\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https://i.imgur.com/hMGtyA8.jpg\" alt=\"ALPHACamp X 天下雜誌：那些年我們一起走過的數位轉型\" class=\"img_ev3q\"></p>\n<p>除了天下雜誌相當知名的媒體之外，我也很好奇工程師在當今的媒體產業中究竟扮演了什麼角色。主力是在開發「內容管理系統」？或多在進行資料視覺化的專案？</p>\n<p>在這次的活動中很幸運能夠聽到已經在天下雜誌 10 多年的資深產品經理－紹謙，和數位轉型過程中加入團隊，負責從專案發想到實際落地的資深工程經理－世彥，一起來聽他們分享天下雜誌的數位轉型。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"數位轉型是什麼\">數位轉型是什麼？<a href=\"https://pjchender.github.io/blog/2021/04/19/common-wealth/#%E6%95%B8%E4%BD%8D%E8%BD%89%E5%9E%8B%E6%98%AF%E4%BB%80%E9%BA%BC\" class=\"hash-link\" aria-label=\"數位轉型是什麼？的直接連結\" title=\"數位轉型是什麼？的直接連結\" translate=\"no\">​</a></h2>\n<p>在聽演講前，其實我完全不知道「數位轉型」究竟是怎麼一回事，我單純地以為就是把紙本書變成電子書，或是推出幾個 App 後，就算是完成了數位轉型？</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"數位轉型不是事件的完成而是持續且沒有終點的歷程\">數位轉型不是事件的完成，而是持續且沒有終點的歷程<a href=\"https://pjchender.github.io/blog/2021/04/19/common-wealth/#%E6%95%B8%E4%BD%8D%E8%BD%89%E5%9E%8B%E4%B8%8D%E6%98%AF%E4%BA%8B%E4%BB%B6%E7%9A%84%E5%AE%8C%E6%88%90%E8%80%8C%E6%98%AF%E6%8C%81%E7%BA%8C%E4%B8%94%E6%B2%92%E6%9C%89%E7%B5%82%E9%BB%9E%E7%9A%84%E6%AD%B7%E7%A8%8B\" class=\"hash-link\" aria-label=\"數位轉型不是事件的完成，而是持續且沒有終點的歷程的直接連結\" title=\"數位轉型不是事件的完成，而是持續且沒有終點的歷程的直接連結\" translate=\"no\">​</a></h3>\n<p>然而，在聽完兩位講者的分享後，我深切感受到數位轉型絕對不是「做完了 OO」就叫完成了數位轉型這麼簡單，並非把紙本雜誌電子化、推出幾個手機 App、開發幾個 Web 專案就叫完成了數位轉型。數位轉型的過程相當複雜，牽涉到的不只是使用到的技術、文章撰寫的工具、還包括整個組織架構的調整。</p>\n<blockquote>\n<p>不是完成了某幾個「事件」就叫數位轉型，數位轉型是持續且沒有終點的「歷程」</p>\n</blockquote>\n<p>最早天下雜誌完全是紙本作業、編輯是以寫稿紙作業。過去上稿流程是先有紙本文章然後把文章變成電子檔後放在網路上，現在則轉變成線上文章先推出後，才有實際紙本內容；過去團隊中大部分都是編輯，現在則多了產品經理、軟體工程師、數據分析師等各種角色加入團隊；過去沒辦法從使用者的操作中取得大量的資料，現在則可以透過使用者使用 App 或閱讀文章等資料作為反饋，來協助指導後續的決策和產品修正。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"數位轉型是不怕面對改變敢於挑戰不熟悉的事物\">數位轉型是不怕面對改變，敢於挑戰不熟悉的事物<a href=\"https://pjchender.github.io/blog/2021/04/19/common-wealth/#%E6%95%B8%E4%BD%8D%E8%BD%89%E5%9E%8B%E6%98%AF%E4%B8%8D%E6%80%95%E9%9D%A2%E5%B0%8D%E6%94%B9%E8%AE%8A%E6%95%A2%E6%96%BC%E6%8C%91%E6%88%B0%E4%B8%8D%E7%86%9F%E6%82%89%E7%9A%84%E4%BA%8B%E7%89%A9\" class=\"hash-link\" aria-label=\"數位轉型是不怕面對改變，敢於挑戰不熟悉的事物的直接連結\" title=\"數位轉型是不怕面對改變，敢於挑戰不熟悉的事物的直接連結\" translate=\"no\">​</a></h3>\n<p>如果要我說數位轉型是什麼？我認爲就是不怕潮流的變化，努力學習讓自己能夠跟上最新的事物，不怕面對自己不熟悉的事物，願意不斷嘗試與接受挑戰。這就好像一個永遠不會老的人，不斷地透過新陳代謝讓自己的身體和腦袋維持在年輕的狀態。</p>\n<p>天下雜誌並沒有在完成了雜誌電子化，推出手機 App、建立網路內容平台後，就因為覺得「完成了數位轉型」而停下來。在近年 Youtube 的普遍和 Podcast 的竄起，天下雜誌也都沒有缺席，推出了 Youtube 頻道和 Podcast 節目，繼續跟著數位的潮流前進。<strong>因為數位轉型是一種不怕面對改變，敢於挑戰不熟悉事物的精神，因此它是沒有什麼叫做「已經完成的」</strong>。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"有價值的工程師\">有價值的工程師<a href=\"https://pjchender.github.io/blog/2021/04/19/common-wealth/#%E6%9C%89%E5%83%B9%E5%80%BC%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%B8%AB\" class=\"hash-link\" aria-label=\"有價值的工程師的直接連結\" title=\"有價值的工程師的直接連結\" translate=\"no\">​</a></h2>\n<p>在這場活動中，兩位講者也分享到他們認為什麼樣的工程師是有價值的。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"先釐清問題再提出更多可能的解決方式\">先釐清問題，再提出更多可能的解決方式<a href=\"https://pjchender.github.io/blog/2021/04/19/common-wealth/#%E5%85%88%E9%87%90%E6%B8%85%E5%95%8F%E9%A1%8C%E5%86%8D%E6%8F%90%E5%87%BA%E6%9B%B4%E5%A4%9A%E5%8F%AF%E8%83%BD%E7%9A%84%E8%A7%A3%E6%B1%BA%E6%96%B9%E5%BC%8F\" class=\"hash-link\" aria-label=\"先釐清問題，再提出更多可能的解決方式的直接連結\" title=\"先釐清問題，再提出更多可能的解決方式的直接連結\" translate=\"no\">​</a></h3>\n<p>其中一點是當 PM 提出一個需求（或功能）時，好的工程師會試著向 PM 去了解這個需求（或功能）是想要解決什麼問題，<strong>先把實際想要解決的問題釐清</strong>，接著再和 PM 討論如果是想要解決這個問題的話，有哪些可行的做法，因為 PM 一開始提的功能或許只是其中一種解決方式，但工程師在釐清問題後，會多了工程面可行性的評估，進而有機會提出不同的解決方式供 PM 參考與選擇。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"對於開發的產品有-ownership\">對於開發的產品有 Ownership<a href=\"https://pjchender.github.io/blog/2021/04/19/common-wealth/#%E5%B0%8D%E6%96%BC%E9%96%8B%E7%99%BC%E7%9A%84%E7%94%A2%E5%93%81%E6%9C%89-ownership\" class=\"hash-link\" aria-label=\"對於開發的產品有 Ownership的直接連結\" title=\"對於開發的產品有 Ownership的直接連結\" translate=\"no\">​</a></h3>\n<p>另外一個特質則是對產品有強烈的 Ownership，工程師不單純只是把 PM 所交付的功能完成，同時他也喜歡自己完成的產品、會好奇使用者使用時的體驗、會去思考怎麼樣能把這個產品做得更好。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"不怕面對改變勇於嘗試新事物敢於挑戰自己的態度\">不怕面對改變，勇於嘗試新事物、敢於挑戰自己的態度<a href=\"https://pjchender.github.io/blog/2021/04/19/common-wealth/#%E4%B8%8D%E6%80%95%E9%9D%A2%E5%B0%8D%E6%94%B9%E8%AE%8A%E5%8B%87%E6%96%BC%E5%98%97%E8%A9%A6%E6%96%B0%E4%BA%8B%E7%89%A9%E6%95%A2%E6%96%BC%E6%8C%91%E6%88%B0%E8%87%AA%E5%B7%B1%E7%9A%84%E6%85%8B%E5%BA%A6\" class=\"hash-link\" aria-label=\"不怕面對改變，勇於嘗試新事物、敢於挑戰自己的態度的直接連結\" title=\"不怕面對改變，勇於嘗試新事物、敢於挑戰自己的態度的直接連結\" translate=\"no\">​</a></h3>\n<p>作為軟體工程師，總是有新的技術、沒用過的工具、沒聽過的詞彙，但許多時候我也會怠惰，覺得學新的好累、現有的東西就夠用了吧？聽完這場活動後，我最大的反思在於，我想有價值的工程師絕對不止是學會了某些技術或工具後，就成為了一個優秀的工程師，反倒是一種態度或精神－一種<strong>不怕面對改變，勇於嘗試新事物的精神；一種不怕碰到沒解過的問題，敢於挑戰自己的態度</strong>，而這點也正好呼應了這場活動談到的「數位轉型」。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"總結\">總結<a href=\"https://pjchender.github.io/blog/2021/04/19/common-wealth/#%E7%B8%BD%E7%B5%90\" class=\"hash-link\" aria-label=\"總結的直接連結\" title=\"總結的直接連結\" translate=\"no\">​</a></h2>\n<p>很開心初次主持活動就能和天下雜誌合作，而且又能夠聽到兩位非常有經驗的產品經理與工程經理進行分享。</p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https://i.imgur.com/cIymqLM.jpg\" alt=\"ALPHACamp X 天下雜誌：那些年我們一起走過的數位轉型\" class=\"img_ev3q\"></p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https://i.imgur.com/SXSSCvc.jpg\" alt=\"ALPHACamp X 天下雜誌：那些年我們一起走過的數位轉型\" class=\"img_ev3q\"></p>\n<blockquote>\n<p>當主持人意外拿到了一本天下雜誌創刊號的復刻版</p>\n</blockquote>\n",
            "url": "https://pjchender.github.io/blog/2021/04/19/common-wealth/",
            "title": "ALPHACamp X 天下雜誌：那些年我們一起走過的數位轉型",
            "summary": "ALPHACamp X 天下雜誌：那些年我們一起走過的數位轉型",
            "date_modified": "2021-04-19T00:00:00.000Z",
            "author": {
                "name": "PJCHENder",
                "url": "https://github.com/pjchender"
            },
            "tags": [
                "反思"
            ]
        },
        {
            "id": "https://pjchender.github.io/blog/2021/01/28/agile-scrum/",
            "content_html": "<p><img decoding=\"async\" loading=\"lazy\" src=\"https://i.imgur.com/HaOuoJd.png\" alt=\"agile-scrum\" class=\"img_ev3q\"></p>\n<p>由於自己沒有真的很理解過敏捷開發或 Scrum 到底是怎麼一回事，但公司的新專案又開始想要嘗試用這種方式來做 MVP，基於凡事問網友的心態，在 ALPHACamp 社群以及 <a href=\"https://twitter.com/iampjchen/status/1354601393374384129\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Twitter</a> 上得到了很多有價值的回饋，很感謝大家分享意見讓我知道。</p>\n<p>我的問題大概是這樣的：</p>\n<!-- -->\n<p>「想要請問大家所謂的敏捷開發？\n團隊認為敏捷開發就是要快，不用管太多細節，先推出去收到市場回饋再來修改。但很多工程面的東西像是 DB 的設計，API 的規格的改動，添加幾個欄位還好，但若是動到比較大的架構改起來都很痛。\n是真的想要了解大家在碰到這種情況是怎麼處理？因為我沒有深入理解過敏捷開發，不清楚在實際執行上的細節，只知道每次都說就是要快，先不考慮其他情況。</p>\n<p>是不是我們沒有掌握到敏捷開發的核心？還是具體來說有那些東西是可以很「敏捷」？哪些東西不適合嗎？\n先謝謝有經驗到大家」</p>\n<p>下面則整理大家的想法和意見。</p>\n<div class=\"theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning\"><div class=\"admonitionHeading_Gvgb\"><span class=\"admonitionIcon_Rf37\"><svg viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" d=\"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z\"></path></svg></span>注意</div><div class=\"admonitionContent_BuS1\"><p>本人並沒有任何實際了解過敏捷或 scrum 的學習經驗，因此若有任何錯誤或想法，都歡迎提出並一起討論。</p></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"敏捷的重點在於快速應對市場需求變化的能力\">敏捷的重點在於快速應對市場需求變化的能力<a href=\"https://pjchender.github.io/blog/2021/01/28/agile-scrum/#%E6%95%8F%E6%8D%B7%E7%9A%84%E9%87%8D%E9%BB%9E%E5%9C%A8%E6%96%BC%E5%BF%AB%E9%80%9F%E6%87%89%E5%B0%8D%E5%B8%82%E5%A0%B4%E9%9C%80%E6%B1%82%E8%AE%8A%E5%8C%96%E7%9A%84%E8%83%BD%E5%8A%9B\" class=\"hash-link\" aria-label=\"敏捷的重點在於快速應對市場需求變化的能�力的直接連結\" title=\"敏捷的重點在於快速應對市場需求變化的能力的直接連結\" translate=\"no\">​</a></h2>\n<p>首先，<strong>敏捷的重點在於快速應對市場需求變化的能力，同時也驗證自己對於產品能否達到市場需求的概念（Proof of Concept, POC）</strong>，減少過多的時間或人力成本在開發某個專案，做到非常完整，但推出去之後才被市場打臉。</p>\n<p>這裡直接 quote <a href=\"https://www.facebook.com/jack.sung.33\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Jack Sung</a> 所說的：</p>\n<blockquote>\n<p>Jack Sung：「敏捷開發並不是短期的速度快，畢竟開發還是需要跑完基本的流程，而是面對市場變化的反應速度比起瀑布流還快，就像 POC(Proof of Concept)，敏捷開發是更務實的去驗證想法，而非一個美好的想像去花費很高的時間跟成本去開發一個未經驗證的產品，等到真的推上線才被市場賞兩巴掌。」</p>\n</blockquote>\n<div class=\"theme-admonition theme-admonition-info admonition_xJq3 alert alert--info\"><div class=\"admonitionHeading_Gvgb\"><span class=\"admonitionIcon_Rf37\"><svg viewBox=\"0 0 14 16\"><path fill-rule=\"evenodd\" d=\"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z\"></path></svg></span>資訊</div><div class=\"admonitionContent_BuS1\"><p>至於什麼叫「完整」或「非常完整」真的是非常藝術的問題，有的人認為東西可以 work 就可以推出，有的人認爲至少要通過自己這一關後才算可以，而設計、工程、一直到商業端每個人的想法也都不同。也許業務認為有東西可以賣就好，設計認為的會是這個產品拿出去可以見人嗎？工程思考的可能是產品夠不夠穩定，有沒有漏洞，資料庫後續如何修改等等。</p></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"敏捷的目的��是要提早發現問題對象是市場而非開發團隊\">敏捷的目的是要提早發現問題：對象是市場而非開發團隊<a href=\"https://pjchender.github.io/blog/2021/01/28/agile-scrum/#%E6%95%8F%E6%8D%B7%E7%9A%84%E7%9B%AE%E7%9A%84%E6%98%AF%E8%A6%81%E6%8F%90%E6%97%A9%E7%99%BC%E7%8F%BE%E5%95%8F%E9%A1%8C%E5%B0%8D%E8%B1%A1%E6%98%AF%E5%B8%82%E5%A0%B4%E8%80%8C%E9%9D%9E%E9%96%8B%E7%99%BC%E5%9C%98%E9%9A%8A\" class=\"hash-link\" aria-label=\"敏捷的目的是要提早發現問題：對象是市場而非開發團隊的直接連結\" title=\"敏捷的目的是要提早發現問題：對象是市場而非開發團隊的直接連結\" translate=\"no\">​</a></h2>\n<p>之所以要敏捷是因為市場的變化太快速，因此當有產品沒有收到預期的回饋時，適時且立即的停止、停損或轉換方向是敏捷的重點與核心。</p>\n<p>然而，這並不表示要壓縮開發時程或開發品質，如同 Yan 所說的，整個開發流程應該還是嚴謹可靠的，而不是隨便快就好的。</p>\n<blockquote>\n<p>Yan：「敏捷開發不單單是針對開發團隊而是整個軟體工程，從訪談&gt;需求&gt;規格&gt;設計&gt;開發&gt;測試&gt;發布，整個流程應該還是嚴謹的，只是它縮小整個目標進行對目標進行快速迭代，中途有錯應該立即修改或終止，這是 scrum 所謂的「快速試錯」，而已經成型產品遇到要整個砍掉重來，長遠來說如果是必要，我也認同需要去做，根據我的經驗以開發來說敏捷並不會減少「開發時間」。」</p>\n</blockquote>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"敏捷開發不會比較快速敏捷--快\">敏捷開發不會比較快速：敏捷 != 快<a href=\"https://pjchender.github.io/blog/2021/01/28/agile-scrum/#%E6%95%8F%E6%8D%B7%E9%96%8B%E7%99%BC%E4%B8%8D%E6%9C%83%E6%AF%94%E8%BC%83%E5%BF%AB%E9%80%9F%E6%95%8F%E6%8D%B7--%E5%BF%AB\" class=\"hash-link\" aria-label=\"敏捷開發不會比較快速：敏捷 != 快的直接連結\" title=\"敏捷開發不會比較快速：敏捷 != 快的直接連結\" translate=\"no\">​</a></h2>\n<p>如同上面所述，敏捷的重點是為了因應市場的快速變化，避免到後來才發現一場空。但這個敏捷並不是快的意思，該有的開發流程還是不能省，<a href=\"https://www.facebook.com/unn.hsingwen\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Rafeni</a> 分享的這張圖我覺得很到位：</p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https://i.imgur.com/pVOHha6.png\" alt=\"Minimum Viable Product\" class=\"img_ev3q\"></p>\n<p>這裡直接引用 ALPHACamp 助教 Yan 所說：</p>\n<blockquote>\n<p>Yan：「目標是造車，縮小目標往往會被誤認為先造輪子，但其實應該是「可用的」滑板車，因為只造輪子根本收不到市場/客戶回饋，根本無法知道產品方向對不對；壓縮開發時間＝壓縮開發品質，各種開發模式都是透過流程改善來減少時間成本，而非去壓榨單位去達到節省目的。」</p>\n</blockquote>\n<p>每次開發出來的「可用的產品」，到底是要驗證什麼概念，是否能實際收到市場的回饋都是要考慮的問題。至於給人使用的「產品」和有功能就好的「東西」之間的界線要如何定義，又是另一門藝術了。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"盡可能在開發時做到解耦模組化\">盡可能在開發時做到解耦、模組化<a href=\"https://pjchender.github.io/blog/2021/01/28/agile-scrum/#%E7%9B%A1%E5%8F%AF%E8%83%BD%E5%9C%A8%E9%96%8B%E7%99%BC%E6%99%82%E5%81%9A%E5%88%B0%E8%A7%A3%E8%80%A6%E6%A8%A1%E7%B5%84%E5%8C%96\" class=\"hash-link\" aria-label=\"盡可能在開發時做到解耦、模組化的直接連結\" title=\"盡可能在開發時做到解耦、模組化的直接連結\" translate=\"no\">​</a></h2>\n<p>據 Jack Sung 所說，一般來說走敏捷開發對工程團隊來講是痛苦的，太多東西是無法預期或事先規劃的，因此打掉重練是常有的事，能做的是<strong>盡可能在開發時做到解耦、模組化</strong>，以減少這個痛。</p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https://i.imgur.com/ofC1FFp.png\" alt=\"agile-scrum\" class=\"img_ev3q\"></p>\n<p>畢竟以上圖來說，腳踏車和滑板車已經是完全不同的概念了，要做到擴充性和預留彈性幾乎就是不可能的事，所以要<strong>認知到打掉重練可能是必經的過程</strong>。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"打掉重練是常有的事但--再想想-\">打掉重練是常有的事，但 ⋯ 再想想 ⋯<a href=\"https://pjchender.github.io/blog/2021/01/28/agile-scrum/#%E6%89%93%E6%8E%89%E9%87%8D%E7%B7%B4%E6%98%AF%E5%B8%B8%E6%9C%89%E7%9A%84%E4%BA%8B%E4%BD%86--%E5%86%8D%E6%83%B3%E6%83%B3-\" class=\"hash-link\" aria-label=\"打掉重練是常有的事，但 ⋯ 再想想 ⋯的直接連結\" title=\"打掉重練是常有的事，但 ⋯ 再想想 ⋯的直接連結\" translate=\"no\">​</a></h2>\n<p>雖然說打掉重練可能是常有的事，但如果總是在經歷「整個」打掉重練，而不是部分功能或模組打掉，或是整個系統架構的調整，這時候就需要再多想想了。</p>\n<p>如同前幾個段落中的金字塔圖（MVP）所示，在敏捷開發中並非省略掉開發流程來達到敏捷。<a href=\"https://www.facebook.com/unn.hsingwen\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Rafeni</a> 提到，不應該打著敏捷開發就跳過了規劃、跳過了去思考產品是設計給誰用的、是要幫誰解決問題。 <a href=\"https://twitter.com/JacobWannaSleep/status/1354721633961791489\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Jacob</a> 則提到，PM 和 RD 溝通不良，或當問題都沒有先想清楚就馬上進到開發，產品設計沒有做好使用者研究時，常常才是導致架構需要不斷大改。</p>\n<blockquote>\n<p>Rafeni：「因為起點對了，過程與終點才可能對。否則錯誤的流程也是會導致錯誤的結果的。」</p>\n</blockquote>\n<p>也就是說，<strong>如果你覺得常常是整個系統在進行大架構的改動，甚至是經常感受到<a href=\"https://medium.com/3pm-lab/how-to-manage-unexpected-product-change-requests-abce9ed6bd13\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">隕石擊落</a>般的痛快時，那麼不要乖乖的抱著「打掉重練是正常的想法」，而是需要好好的再想想</strong>。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"參考資料\">參考資料<a href=\"https://pjchender.github.io/blog/2021/01/28/agile-scrum/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99\" class=\"hash-link\" aria-label=\"參考資料的直接連結\" title=\"參考資料的直接連結\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><a href=\"https://tw.alphacamp.co/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">ALPHACamp 社群</a></li>\n<li class=\"\"><a href=\"https://twitter.com/iampjchen/status/1354601393374384129\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Twitter 網友</a></li>\n<li class=\"\"><a href=\"https://medium.com/tyrannosaurustech/top-5-misconceptions-about-building-a-minimum-viable-product-1774463c6749\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Top 5 Misconceptions About Building A Minimum Viable Product</a> @ medium</li>\n</ul>\n",
            "url": "https://pjchender.github.io/blog/2021/01/28/agile-scrum/",
            "title": "敏捷開發：你我心中，都有一個屬於自己的 MVP",
            "summary": "agile-scrum",
            "date_modified": "2021-01-28T00:00:00.000Z",
            "author": {
                "name": "PJCHENder",
                "url": "https://github.com/pjchender"
            },
            "tags": [
                "團隊協作"
            ]
        },
        {
            "id": "https://pjchender.github.io/blog/2021/01/03/happy-new-year/",
            "content_html": "<p><img decoding=\"async\" loading=\"lazy\" src=\"https://i.imgur.com/bAtn21z.png\" alt=\"docusaurus v2\" class=\"img_ev3q\"></p>\n<p>過去的「未整理筆記」一直是使用 <a href=\"https://hexo.io/zh-tw/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">hexo</a> 建置的，hexo 用起來其實非常方便，<code>$ hexo generate -d</code> 基本上就搞定了。大概在去年（2020）年中時接觸到 <a href=\"https://v2.docusaurus.io/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">docusaurus</a> 這套由 Facebook 推出的 docs + blogs 的工具，雖然目前還在 alpha.70 階段，但一用就非常吸引我。</p>\n<!-- -->\n<p>Docusaurus v2 對於 markdown 有高度的支援，除了基本的程式碼高亮外，還可以哪些選擇行號要特別標註。下面列出幾點 docusaurus 特別吸引我的地方：</p>\n<ul>\n<li class=\"\">程式碼高亮更方便，可以顯示檔名、標註特定行號</li>\n<li class=\"\">和 React 無痛整合，可以用 React 撰寫獨立的頁面，也可以把 React Component 直接透過 mdx 插入文件中</li>\n<li class=\"\">可以在 md 中插入 live editor 的功能</li>\n<li class=\"\">開源專案可以免費使用 <a href=\"https://www.algolia.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">algolia search</a></li>\n<li class=\"\">內建深色和淺色主題</li>\n<li class=\"\">部署上很方便，且整合 Github Action 可以自動 CD</li>\n<li class=\"\">小恐龍很可愛</li>\n<li class=\"\">...</li>\n</ul>\n<p>雖然有很多文章需要慢慢搬過來，但好險這些文章本來就都是 markdown，要改動的幅度不算太大，這也是我為什麼一直覺得筆記一定要用 #markdown 寫（搭配 Typora 👍），不要太倚賴其他第三方筆記軟體，因為搬家時會方便許多。</p>\n<p>但因為 docusaurus 和 hexo 的 front matter 不太一樣，所以還是要簡單調整一下。</p>\n",
            "url": "https://pjchender.github.io/blog/2021/01/03/happy-new-year/",
            "title": "2021 部落格搬家到 docusaurus",
            "summary": "docusaurus v2",
            "date_modified": "2021-01-03T00:00:00.000Z",
            "author": {
                "name": "PJCHENder",
                "url": "https://github.com/pjchender"
            },
            "tags": [
                "網站誌"
            ]
        }
    ]
}