From 9fa8746c0069baf49049a46117aae5fbec04150d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 17 May 2026 16:25:40 +0000 Subject: [PATCH] deploy: feat(insight-engine): add ConsumptionModes component, StepGuide sub-steps, restructure overview - Add ConsumptionModes.vue with grid/stacked layouts for multi-mode product display - Extend StepGuide with subSteps rendering and formatContent helper - Add ConsumptionMode and StepSubItem types - Restructure overview: three consumption modes replacing ConceptPair, refined timeline, reorganized sections Co-Authored-By: Claude Sonnet 4.6 sqliang/insight-stack-blog@a4204eee3b42095998d32f1b4758e2925d950948 --- 404.html | 6 +- about/growth/inner-experience.html | 60 +- about/growth/outer-experience.html | 60 +- about/growth/weight-loss.html | 60 +- about/me.html | 60 +- ai-coding/ai-change-work-workflow.html | 62 +- ai-coding/ai-engineer-capability.html | 62 +- ai-coding/ai-native.html | 62 +- ai-coding/claude-code-deep-dive.html | 62 +- ai-coding/overview.html | 63 +- ai-coding/resources.html | 60 +- ai-insight-engine/overview.html | 208 +++++++ ai-knowledge-systemization/overview.html | 228 ++++++++ ai/agent/claude-agent-sdk-basic-build.html | 64 ++- ai/agent/composition-ai-components.html | 60 +- ai/agent/deepresearch-agent.html | 64 ++- ai/agent/math-bot.html | 62 +- ai/agent/overview.html | 60 +- ai/agent/planning-module.html | 60 +- ai/agent/poetry-bot.html | 62 +- ai/agent/skills-practice-summary.html | 72 +-- ai/full-stack-builder.html | 64 ++- ai/llm-api-resources.html | 60 +- ai/overview.html | 63 +- ai/tools-assistant.html | 60 +- ...ut_growth_inner-experience.md.PtsvqTtz.js} | 2 +- ...owth_inner-experience.md.PtsvqTtz.lean.js} | 2 +- ...ut_growth_outer-experience.md.DdzbhX1I.js} | 2 +- ...owth_outer-experience.md.DdzbhX1I.lean.js} | 2 +- ...> about_growth_weight-loss.md.s50fpS0N.js} | 2 +- ...ut_growth_weight-loss.md.s50fpS0N.lean.js} | 2 +- ...md.jY0GhB0N.js => about_me.md.Cy2wULSx.js} | 2 +- ...N.lean.js => about_me.md.Cy2wULSx.lean.js} | 2 +- ...ng_ai-change-work-workflow.md.Bh07yOer.js} | 2 +- ...-change-work-workflow.md.Bh07yOer.lean.js} | 2 +- ...ing_ai-engineer-capability.md.D8P6LQFg.js} | 2 +- ...i-engineer-capability.md.D8P6LQFg.lean.js} | 2 +- ....js => ai-coding_ai-native.md.BGE6Cf3W.js} | 2 +- ...> ai-coding_ai-native.md.BGE6Cf3W.lean.js} | 2 +- ...ding_claude-code-deep-dive.md.BnKKUELp.js} | 2 +- ...claude-code-deep-dive.md.BnKKUELp.lean.js} | 2 +- assets/ai-coding_overview.md.6IEAUiXH.js | 1 + assets/ai-coding_overview.md.6IEAUiXH.lean.js | 1 + assets/ai-coding_overview.md.EAKFJQU-.js | 1 - assets/ai-coding_overview.md.EAKFJQU-.lean.js | 1 - ....js => ai-coding_resources.md.DIqAiVj7.js} | 2 +- ...> ai-coding_resources.md.DIqAiVj7.lean.js} | 2 +- .../ai-insight-engine_overview.md.BbnuN4uh.js | 8 + ...nsight-engine_overview.md.BbnuN4uh.lean.js | 8 + ...edge-systemization_overview.md.CGjsxMZg.js | 28 + ...systemization_overview.md.CGjsxMZg.lean.js | 28 + ...aude-agent-sdk-basic-build.md.khC45Npz.js} | 2 +- ...agent-sdk-basic-build.md.khC45Npz.lean.js} | 2 +- ..._composition-ai-components.md.BhCIEnY-.js} | 2 +- ...osition-ai-components.md.BhCIEnY-.lean.js} | 2 +- ...i_agent_deepresearch-agent.md.yedPntsw.js} | 2 +- ...nt_deepresearch-agent.md.yedPntsw.lean.js} | 2 +- ...3U.js => ai_agent_math-bot.md.-vLvkKRX.js} | 2 +- ... => ai_agent_math-bot.md.-vLvkKRX.lean.js} | 2 +- ...O2.js => ai_agent_overview.md.CR_rAo-e.js} | 2 +- ... => ai_agent_overview.md.CR_rAo-e.lean.js} | 2 +- ...> ai_agent_planning-module.md.BdhVWJGQ.js} | 2 +- ...agent_planning-module.md.BdhVWJGQ.lean.js} | 2 +- ....js => ai_agent_poetry-bot.md.C9rsodas.js} | 2 +- ...> ai_agent_poetry-bot.md.C9rsodas.lean.js} | 2 +- ...nt_skills-practice-summary.md.EPjwCndm.js} | 12 +- ...ills-practice-summary.md.EPjwCndm.lean.js} | 2 +- ...s => ai_full-stack-builder.md.BLo3G_BU.js} | 2 +- ...ai_full-stack-builder.md.BLo3G_BU.lean.js} | 2 +- ...js => ai_llm-api-resources.md.6-oGbR1R.js} | 2 +- ... ai_llm-api-resources.md.6-oGbR1R.lean.js} | 2 +- assets/ai_overview.md.B9aQv8P1.js | 1 - assets/ai_overview.md.B9aQv8P1.lean.js | 1 - assets/ai_overview.md.e-rqfVR0.js | 1 + assets/ai_overview.md.e-rqfVR0.lean.js | 1 + ..._.js => ai_tools-assistant.md.BKU8VgMm.js} | 2 +- ...=> ai_tools-assistant.md.BKU8VgMm.lean.js} | 2 +- assets/{app.Rl_FcUB1.js => app.CsX3YsVk.js} | 544 +++++++++--------- ....BzD_jmuX.js => categories.md.w3lTeLYY.js} | 2 +- ...lean.js => categories.md.w3lTeLYY.lean.js} | 2 +- .../chunks/@localSearchIndexroot.DEXqmZll.js | 1 + .../chunks/@localSearchIndexroot.JxIxDSsH.js | 1 - assets/chunks/ArticleCardList.BzgU5bLL.js | 1 + ...ote.D2cMg9_N.js => Blockquote.C9_F0lHc.js} | 2 +- assets/chunks/Callout.BI0VwjDT.js | 1 + assets/chunks/Callout.OwFdjn99.js | 1 - assets/chunks/ConceptPair.CG23zxJ6.js | 1 - assets/chunks/ConceptPair.Dfm2_wdx.js | 1 + ...id.BE0CalYp.js => FeatureGrid.BH7jBD1E.js} | 2 +- ....AD2iq8Qb.js => HighLightText.BLi3FYDL.js} | 2 +- ...ay.GPQCMWxN.js => KeyTakeaway.CRpoxP55.js} | 2 +- assets/chunks/SplitPanel.BU1PbmQ5.js | 1 + assets/chunks/StepGuide.BA5YDdbP.js | 1 + ...DIOf_qDf.js => TwoColumnImage.C5gty7nx.js} | 2 +- ...hASQ01.js => VPLocalSearchBox.DTDMNXRw.js} | 4 +- ...0.js => arc-CegaQWj_-yn6JxQT-.Csjpm1A2.js} | 2 +- ...am-SUXI7LT5-MkMpV-jr-B2a9oIQq.CkEAdo-R.js} | 2 +- ... basePickBy-CC-D1y2F-DXbJFnnh.CCBiH0h8.js} | 2 +- ...=> baseUniq-BxlSXXQG-mwChZi-I.D7NyXDqz.js} | 2 +- ...am-6J76NXCF-CKU6xA4s-D8REXnmR.Cgu-X3Ww.js} | 2 +- ...am-6F6E4RAY-vK5l5Ihs-DWW3Ew7m.DsVzixoa.js} | 2 +- .../channel-CYBQPlIk-DDfBD8St.C-RHtKnF.js | 1 - .../channel-CYBQPlIk-DDfBD8St.DzdFsfRw.js | 1 + ...nk-353BL4L5-C1ZAb07r-BMNIXPVo.De7ICz-t.js} | 2 +- ...nk-67H74DCK-BzSPKGN1-D9cP9OkH.DRxqLycC.js} | 2 +- ...nk-AACKK3MU-B0gfjd0p-BcoPfUa7.CbeC1WrR.js} | 2 +- ...nk-BFAMUDN2--_mLoQcM-8W1Vf50q.CU6yQFS6.js} | 2 +- ...nk-E2GYISFI-vYodxFCX-CCBY7rt1.CA5uBtyQ.js} | 2 +- ...nk-OW32GOEJ-YaixIGDO-OV7DQY6p.D78shIUq.js} | 2 +- ...nk-SKB7J2MH-Zr_o4qjH-BQsYZan3.CNOEpu77.js} | 2 +- ...nk-SZ463SBG-DDSAy34r-Cj6UB3O8.CgGJEDuV.js} | 2 +- ...ram-M3E45YP4-DwgdiJrV-CBqnjnjd.BD0f7ZXS.js | 1 + ...ram-M3E45YP4-DwgdiJrV-CBqnjnjd.xJ3Xo-BD.js | 1 - ...-v2-YAWTLIQI-DwgdiJrV-CBqnjnjd.BD0f7ZXS.js | 1 + ...-v2-YAWTLIQI-DwgdiJrV-CBqnjnjd.xJ3Xo-BD.js | 1 - .../clone-78XdctpQ-DP6jZ9da.BZbYEbEw.js | 1 + .../clone-78XdctpQ-DP6jZ9da.cu1u38eo.js | 1 - ...re-JOIXM2OF-HUv6-TmE-C9NriUuC.DMRsQ5Ux.js} | 2 +- ...am-5UYTHUR4-Ts8DWvW8-DtNiVIiC.BwPceTPA.js} | 2 +- ...am-VMROVX33-BbEyrapg-DqJhrp1R.BzqUFJPm.js} | 2 +- ...am-ZTM2IBQH-C32oQvHK-CnXELXZV.CArQUMFB.js} | 2 +- ...am-3M52JZNH-Br8ppgaz-B4QUrJzs.Dek9U3Js.js} | 2 +- ...am-KYDEHFYC-DVhYU71X-BNBS2E_i.igeWFxWK.js} | 2 +- ...am-EK5VF46D-Bly8WreB-mP9R-02L.BlNsewMq.js} | 2 +- ...am-GW3U2K7C-LbRyzza8-61-s67VF.DgpAmXyQ.js} | 2 +- ...js => graph-CQdm8gkL-dflHhQdl.Dq-1LJIi.js} | 2 +- ...am-LHK5PUON-CSaYolw3-BvRhOuze.DCqbPpve.js} | 2 +- ...am-EWQZEKCU-DqZ5Gtod-LnPX6MHg.CEtsTW0x.js} | 2 +- ...on-ZSS6B67P-CUcTB5vL-UWLoG0KX.By2NMqOL.js} | 2 +- ...s => layout-FfY8zw-4-CVLJrweZ.DElBmWNw.js} | 2 +- ...s => linear-m73w_WNc-FCrKOMM3.BtWclEgC.js} | 2 +- assets/chunks/metadata.0b732e60.js | 1 + assets/chunks/metadata.9d861f43.js | 1 - ...on-6CBA2TL7-Cbhri6JR-COAfLT4H.n_sYzbMe.js} | 2 +- ...am-NIOCPIFQ-B6XSd-nA-BuzC7Xnu.d58iNJY0.js} | 2 +- ...am-2OG54O6I-exVKgMW--CNOueA6o.BTc61MSi.js} | 2 +- ...am-QOLK2EJ7-6dWmHEAc-Csct5Blb.eHI4Uz9A.js} | 2 +- ...am-4UZDY2LN-CnAdwvcC-CVFxLWrH.BiZ102DM.js} | 2 +- ...am-SKLFT4DO-CFhuQylM-Cfcj-PHs.BOnSCB9y.js} | 2 +- ...am-MI5ZYTHO-DUpd8xBQ-f0nYnhhU.BQUXDpsK.js} | 2 +- ...-v2-5AN5P6BG-DnT098Gs-BqyhOcwu.BdZ9Weh3.js | 1 - ...-v2-5AN5P6BG-DnT098Gs-BqyhOcwu.bE7WAqed.js | 1 + ...on-MYPXXCX6-CsN-ivIZ-AR6XtwYS.DfwXCQ6B.js} | 2 +- ...ap-75Q7IDZK-CjtfQE8u-DBGEKm3F.CMrauSCL.js} | 2 +- ...En.js => vitepress-theme-teek.TIoFrycB.js} | 4 +- ...am-H2YORKM3-RGV0rR_j-DEZyUg2T.D1XGS1sP.js} | 2 +- ... fullstack_css-engineering.md.DRbhOpNR.js} | 2 +- ...stack_css-engineering.md.DRbhOpNR.lean.js} | 2 +- ...ullstack_decode-es-modules.md.DdRFxwyV.js} | 2 +- ...ack_decode-es-modules.md.DdRFxwyV.lean.js} | 2 +- ...programming-specifications.md.DKhzRf2r.js} | 2 +- ...amming-specifications.md.DKhzRf2r.lean.js} | 2 +- ...d-module-programming-basic.md.DjD1Vm6L.js} | 2 +- ...ule-programming-basic.md.DjD1Vm6L.lean.js} | 2 +- ...ntend-rendering-scheme.md.C5s18Vlh.lean.js | 1 - ..._frontend-rendering-scheme.md.aaqiSBzs.js} | 4 +- ...ntend-rendering-scheme.md.aaqiSBzs.lean.js | 1 + ...stack_full-stack-resources.md.DLPGEXPy.js} | 2 +- ..._full-stack-resources.md.DLPGEXPy.lean.js} | 2 +- ...L.js => fullstack_jamstack.md.t05e90a1.js} | 2 +- ...=> fullstack_jamstack.md.t05e90a1.lean.js} | 2 +- ...programming-practice-guide.md.Bwc-3ZFu.js} | 2 +- ...amming-practice-guide.md.Bwc-3ZFu.lean.js} | 2 +- ...-principles-best-practices.md.B2T47nxC.js} | 2 +- ...ciples-best-practices.md.B2T47nxC.lean.js} | 2 +- ...rking-polling-optimization.md.BF5_Tvry.js} | 2 +- ...-polling-optimization.md.BF5_Tvry.lean.js} | 2 +- ...g-protocol-selection-guide.md.Ce_GLF1T.js} | 2 +- ...tocol-selection-guide.md.Ce_GLF1T.lean.js} | 2 +- ...ck_networking-sse-practice.md.C69DIyW7.js} | 2 +- ...tworking-sse-practice.md.C69DIyW7.lean.js} | 2 +- ...llstack_next-deep-dive.md.Bmvx0apI.lean.js | 1 - ...> fullstack_next-deep-dive.md.R2Tp30ZT.js} | 8 +- ...llstack_next-deep-dive.md.R2Tp30ZT.lean.js | 1 + ...module-programming-summary.md.gn1nm7HF.js} | 2 +- ...e-programming-summary.md.gn1nm7HF.lean.js} | 2 +- ...cams-razor-software-design.md.79ThI17c.js} | 2 +- ...razor-software-design.md.79ThI17c.lean.js} | 2 +- assets/fullstack_overview.md.BES6zdnl.js | 1 - assets/fullstack_overview.md.BES6zdnl.lean.js | 1 - assets/fullstack_overview.md.DxpfUY4t.js | 1 + assets/fullstack_overview.md.DxpfUY4t.lean.js | 1 + ...gn-philosophy-ai-augmented.md.DMGu-9N6.js} | 2 +- ...ilosophy-ai-augmented.md.DMGu-9N6.lean.js} | 2 +- ...ck_server-state-management.md.Cv9mRsb4.js} | 2 +- ...rver-state-management.md.Cv9mRsb4.lean.js} | 2 +- ...ompilation-debugging-guide.md.DYKPntIz.js} | 2 +- ...ation-debugging-guide.md.DYKPntIz.lean.js} | 2 +- ...k_typescript-generic-types.md.SGroY_Z1.js} | 2 +- ...escript-generic-types.md.SGroY_Z1.lean.js} | 2 +- ...le-programming-enhancement.md.D4akN3z0.js} | 2 +- ...ogramming-enhancement.md.D4akN3z0.lean.js} | 2 +- ...ypes-vs-intersection-types.md.COZ6HUpA.js} | 4 +- ...-vs-intersection-types.md.COZ6HUpA.lean.js | 11 + ...-vs-intersection-types.md.teXs4M2i.lean.js | 11 - ...5MSC_hv.js => growth_books.md.CQV-6QIU.js} | 2 +- ...an.js => growth_books.md.CQV-6QIU.lean.js} | 2 +- ...inguish-useful-information.md.DH87F_FV.js} | 2 +- ...sh-useful-information.md.DH87F_FV.lean.js} | 2 +- ....js => growth_reading-tips.md.Br_yMM3-.js} | 2 +- ...> growth_reading-tips.md.Br_yMM3-.lean.js} | 2 +- assets/index.md.CU-h6aj6.js | 1 - assets/index.md.CU-h6aj6.lean.js | 1 - assets/index.md.D_71RlzW.js | 1 + assets/index.md.D_71RlzW.lean.js | 1 + ...i-native-composite-talents.md.BS0uiK5R.js} | 2 +- ...ive-composite-talents.md.BS0uiK5R.lean.js} | 2 +- ...gineer-build-product-sense.md.DSCoDJW9.js} | 2 +- ...r-build-product-sense.md.DSCoDJW9.lean.js} | 2 +- ...roduct-sense_insight-model.md.Bee3H7Z3.js} | 2 +- ...t-sense_insight-model.md.Bee3H7Z3.lean.js} | 2 +- assets/product-sense_overview.md.Z1dzzNWI.js | 1 - ...product-sense_overview.md.Z1dzzNWI.lean.js | 1 - assets/product-sense_overview.md.sy7HqYUu.js | 1 + ...product-sense_overview.md.sy7HqYUu.lean.js | 1 + ...erplexity-knowledge-worker.md.hEFBHH9s.js} | 2 +- ...xity-knowledge-worker.md.hEFBHH9s.lean.js} | 2 +- ...uct-sense_small-rule-learn.md.Bu2wpqcP.js} | 2 +- ...ense_small-rule-learn.md.Bu2wpqcP.lean.js} | 2 +- ...e_using-economics-thinking.md.DRJR8QeW.js} | 2 +- ...ng-economics-thinking.md.DRJR8QeW.lean.js} | 2 +- ...insight_fetch-event-source.md.LqFRwoHj.js} | 2 +- ...ht_fetch-event-source.md.LqFRwoHj.lean.js} | 2 +- ...s => repo-insight_open-cli.md.BbjYGDHw.js} | 2 +- ...repo-insight_open-cli.md.BbjYGDHw.lean.js} | 2 +- assets/repo-insight_overview.md.DhGQY-yn.js | 5 - .../repo-insight_overview.md.DhGQY-yn.lean.js | 5 - assets/repo-insight_overview.md.VXC_8aFU.js | 5 + .../repo-insight_overview.md.VXC_8aFU.lean.js | 5 + ...repo-insight_vercel-ai-sdk.md.CP-USrJR.js} | 2 +- ...insight_vercel-ai-sdk.md.CP-USrJR.lean.js} | 2 +- assets/style.C2Wf7wAW.css | 1 + assets/style.C5TPLtJK.css | 1 - ...ags.md.DNQFXO_e.js => tags.md.SKJwi_eq.js} | 2 +- ...FXO_e.lean.js => tags.md.SKJwi_eq.lean.js} | 2 +- categories.html | 56 +- fullstack/css-engineering.html | 62 +- fullstack/decode-es-modules.html | 62 +- ...ent-module-programming-specifications.html | 62 +- .../frontend-module-programming-basic.html | 62 +- fullstack/frontend-rendering-scheme.html | 66 ++- fullstack/full-stack-resources.html | 60 +- fullstack/jamstack.html | 62 +- .../module-programming-practice-guide.html | 62 +- ...programming-principles-best-practices.html | 62 +- .../networking-polling-optimization.html | 62 +- .../networking-protocol-selection-guide.html | 60 +- fullstack/networking-sse-practice.html | 64 ++- fullstack/next-deep-dive.html | 71 ++- .../nodejs-module-programming-summary.html | 62 +- fullstack/occams-razor-software-design.html | 64 ++- fullstack/overview.html | 63 +- .../react-design-philosophy-ai-augmented.html | 62 +- fullstack/server-state-management.html | 62 +- ...ypescript-compilation-debugging-guide.html | 62 +- fullstack/typescript-generic-types.html | 62 +- ...script-module-programming-enhancement.html | 62 +- .../union-types-vs-intersection-types.html | 68 ++- growth/books.html | 60 +- growth/distinguish-useful-information.html | 60 +- growth/reading-tips.html | 60 +- hashmap.json | 2 +- img/cover/insight_labs_output_workflow.jpg | Bin 0 -> 183558 bytes img/cover/insight_labs_workflow.png | Bin 0 -> 299582 bytes img/cover/insight_labs_workflow_detail.png | Bin 0 -> 670345 bytes img/cover/insight_labs_workflow_full.png | Bin 0 -> 99262 bytes index.html | 58 +- .../ai-native-composite-talents.html | 60 +- .../engineer-build-product-sense.html | 60 +- product-sense/insight-model.html | 60 +- product-sense/overview.html | 65 ++- .../perplexity-knowledge-worker.html | 60 +- product-sense/small-rule-learn.html | 60 +- product-sense/using-economics-thinking.html | 60 +- repo-insight/fetch-event-source.html | 62 +- repo-insight/open-cli.html | 62 +- repo-insight/overview.html | 75 +-- repo-insight/vercel-ai-sdk.html | 64 ++- sitemap.xml | 2 +- tags.html | 58 +- 280 files changed, 3135 insertions(+), 2130 deletions(-) create mode 100644 ai-insight-engine/overview.html create mode 100644 ai-knowledge-systemization/overview.html rename assets/{about_growth_inner-experience.md.DOFINxTr.js => about_growth_inner-experience.md.PtsvqTtz.js} (99%) rename assets/{about_growth_inner-experience.md.DOFINxTr.lean.js => about_growth_inner-experience.md.PtsvqTtz.lean.js} (96%) rename assets/{about_growth_outer-experience.md.B7eovtOL.js => about_growth_outer-experience.md.DdzbhX1I.js} (99%) rename assets/{about_growth_outer-experience.md.B7eovtOL.lean.js => about_growth_outer-experience.md.DdzbhX1I.lean.js} (97%) rename assets/{about_growth_weight-loss.md.BzsscbNp.js => about_growth_weight-loss.md.s50fpS0N.js} (99%) rename assets/{about_growth_weight-loss.md.BzsscbNp.lean.js => about_growth_weight-loss.md.s50fpS0N.lean.js} (97%) rename assets/{about_me.md.jY0GhB0N.js => about_me.md.Cy2wULSx.js} (99%) rename assets/{about_me.md.jY0GhB0N.lean.js => about_me.md.Cy2wULSx.lean.js} (94%) rename assets/{ai-coding_ai-change-work-workflow.md.DaNZuh2X.js => ai-coding_ai-change-work-workflow.md.Bh07yOer.js} (99%) rename assets/{ai-coding_ai-change-work-workflow.md.DaNZuh2X.lean.js => ai-coding_ai-change-work-workflow.md.Bh07yOer.lean.js} (97%) rename assets/{ai-coding_ai-engineer-capability.md.BqzT_cQA.js => ai-coding_ai-engineer-capability.md.D8P6LQFg.js} (99%) rename assets/{ai-coding_ai-engineer-capability.md.BqzT_cQA.lean.js => ai-coding_ai-engineer-capability.md.D8P6LQFg.lean.js} (95%) rename assets/{ai-coding_ai-native.md.D9t4vvmN.js => ai-coding_ai-native.md.BGE6Cf3W.js} (99%) rename assets/{ai-coding_ai-native.md.D9t4vvmN.lean.js => ai-coding_ai-native.md.BGE6Cf3W.lean.js} (95%) rename assets/{ai-coding_claude-code-deep-dive.md.CyAJNRaa.js => ai-coding_claude-code-deep-dive.md.BnKKUELp.js} (99%) rename assets/{ai-coding_claude-code-deep-dive.md.CyAJNRaa.lean.js => ai-coding_claude-code-deep-dive.md.BnKKUELp.lean.js} (94%) create mode 100644 assets/ai-coding_overview.md.6IEAUiXH.js create mode 100644 assets/ai-coding_overview.md.6IEAUiXH.lean.js delete mode 100644 assets/ai-coding_overview.md.EAKFJQU-.js delete mode 100644 assets/ai-coding_overview.md.EAKFJQU-.lean.js rename assets/{ai-coding_resources.md.C4cQRTW5.js => ai-coding_resources.md.DIqAiVj7.js} (99%) rename assets/{ai-coding_resources.md.C4cQRTW5.lean.js => ai-coding_resources.md.DIqAiVj7.lean.js} (99%) create mode 100644 assets/ai-insight-engine_overview.md.BbnuN4uh.js create mode 100644 assets/ai-insight-engine_overview.md.BbnuN4uh.lean.js create mode 100644 assets/ai-knowledge-systemization_overview.md.CGjsxMZg.js create mode 100644 assets/ai-knowledge-systemization_overview.md.CGjsxMZg.lean.js rename assets/{ai_agent_claude-agent-sdk-basic-build.md.BUPQ30jy.js => ai_agent_claude-agent-sdk-basic-build.md.khC45Npz.js} (99%) rename assets/{ai_agent_claude-agent-sdk-basic-build.md.BUPQ30jy.lean.js => ai_agent_claude-agent-sdk-basic-build.md.khC45Npz.lean.js} (96%) rename assets/{ai_agent_composition-ai-components.md.DhT-IgCw.js => ai_agent_composition-ai-components.md.BhCIEnY-.js} (99%) rename assets/{ai_agent_composition-ai-components.md.DhT-IgCw.lean.js => ai_agent_composition-ai-components.md.BhCIEnY-.lean.js} (96%) rename assets/{ai_agent_deepresearch-agent.md.vu7YwzF3.js => ai_agent_deepresearch-agent.md.yedPntsw.js} (99%) rename assets/{ai_agent_deepresearch-agent.md.vu7YwzF3.lean.js => ai_agent_deepresearch-agent.md.yedPntsw.lean.js} (92%) rename assets/{ai_agent_math-bot.md.DxcYDn3U.js => ai_agent_math-bot.md.-vLvkKRX.js} (99%) rename assets/{ai_agent_math-bot.md.DxcYDn3U.lean.js => ai_agent_math-bot.md.-vLvkKRX.lean.js} (95%) rename assets/{ai_agent_overview.md.Cvv8VrO2.js => ai_agent_overview.md.CR_rAo-e.js} (99%) rename assets/{ai_agent_overview.md.Cvv8VrO2.lean.js => ai_agent_overview.md.CR_rAo-e.lean.js} (97%) rename assets/{ai_agent_planning-module.md.Cvhdzeig.js => ai_agent_planning-module.md.BdhVWJGQ.js} (99%) rename assets/{ai_agent_planning-module.md.Cvhdzeig.lean.js => ai_agent_planning-module.md.BdhVWJGQ.lean.js} (96%) rename assets/{ai_agent_poetry-bot.md.Ca3qI4oL.js => ai_agent_poetry-bot.md.C9rsodas.js} (99%) rename assets/{ai_agent_poetry-bot.md.Ca3qI4oL.lean.js => ai_agent_poetry-bot.md.C9rsodas.lean.js} (96%) rename assets/{ai_agent_skills-practice-summary.md.DsnihNOO.js => ai_agent_skills-practice-summary.md.EPjwCndm.js} (97%) rename assets/{ai_agent_skills-practice-summary.md.DsnihNOO.lean.js => ai_agent_skills-practice-summary.md.EPjwCndm.lean.js} (84%) rename assets/{ai_full-stack-builder.md.DbBI_BBo.js => ai_full-stack-builder.md.BLo3G_BU.js} (99%) rename assets/{ai_full-stack-builder.md.DbBI_BBo.lean.js => ai_full-stack-builder.md.BLo3G_BU.lean.js} (97%) rename assets/{ai_llm-api-resources.md.CeNgmwRd.js => ai_llm-api-resources.md.6-oGbR1R.js} (99%) rename assets/{ai_llm-api-resources.md.CeNgmwRd.lean.js => ai_llm-api-resources.md.6-oGbR1R.lean.js} (99%) delete mode 100644 assets/ai_overview.md.B9aQv8P1.js delete mode 100644 assets/ai_overview.md.B9aQv8P1.lean.js create mode 100644 assets/ai_overview.md.e-rqfVR0.js create mode 100644 assets/ai_overview.md.e-rqfVR0.lean.js rename assets/{ai_tools-assistant.md.ORokoJy_.js => ai_tools-assistant.md.BKU8VgMm.js} (99%) rename assets/{ai_tools-assistant.md.ORokoJy_.lean.js => ai_tools-assistant.md.BKU8VgMm.lean.js} (99%) rename assets/{app.Rl_FcUB1.js => app.CsX3YsVk.js} (66%) rename assets/{categories.md.BzD_jmuX.js => categories.md.w3lTeLYY.js} (72%) rename assets/{categories.md.BzD_jmuX.lean.js => categories.md.w3lTeLYY.lean.js} (72%) create mode 100644 assets/chunks/@localSearchIndexroot.DEXqmZll.js delete mode 100644 assets/chunks/@localSearchIndexroot.JxIxDSsH.js create mode 100644 assets/chunks/ArticleCardList.BzgU5bLL.js rename assets/chunks/{Blockquote.D2cMg9_N.js => Blockquote.C9_F0lHc.js} (92%) create mode 100644 assets/chunks/Callout.BI0VwjDT.js delete mode 100644 assets/chunks/Callout.OwFdjn99.js delete mode 100644 assets/chunks/ConceptPair.CG23zxJ6.js create mode 100644 assets/chunks/ConceptPair.Dfm2_wdx.js rename assets/chunks/{FeatureGrid.BE0CalYp.js => FeatureGrid.BH7jBD1E.js} (92%) rename assets/chunks/{HighLightText.AD2iq8Qb.js => HighLightText.BLi3FYDL.js} (92%) rename assets/chunks/{KeyTakeaway.GPQCMWxN.js => KeyTakeaway.CRpoxP55.js} (91%) create mode 100644 assets/chunks/SplitPanel.BU1PbmQ5.js create mode 100644 assets/chunks/StepGuide.BA5YDdbP.js rename assets/chunks/{TwoColumnImage.DIOf_qDf.js => TwoColumnImage.C5gty7nx.js} (91%) rename assets/chunks/{VPLocalSearchBox.C-hASQ01.js => VPLocalSearchBox.DTDMNXRw.js} (94%) rename assets/chunks/{arc-CegaQWj_-yn6JxQT-.BeLU9TL0.js => arc-CegaQWj_-yn6JxQT-.Csjpm1A2.js} (98%) rename assets/chunks/{architectureDiagram-SUXI7LT5-MkMpV-jr-B2a9oIQq.BKnp3JbF.js => architectureDiagram-SUXI7LT5-MkMpV-jr-B2a9oIQq.CkEAdo-R.js} (99%) rename assets/chunks/{basePickBy-CC-D1y2F-DXbJFnnh.CTYTKRuM.js => basePickBy-CC-D1y2F-DXbJFnnh.CCBiH0h8.js} (95%) rename assets/chunks/{baseUniq-BxlSXXQG-mwChZi-I.CtHPfxga.js => baseUniq-BxlSXXQG-mwChZi-I.D7NyXDqz.js} (99%) rename assets/chunks/{blockDiagram-6J76NXCF-CKU6xA4s-D8REXnmR.JAewAtQ6.js => blockDiagram-6J76NXCF-CKU6xA4s-D8REXnmR.Cgu-X3Ww.js} (99%) rename assets/chunks/{c4Diagram-6F6E4RAY-vK5l5Ihs-DWW3Ew7m.Cg7Fr-uL.js => c4Diagram-6F6E4RAY-vK5l5Ihs-DWW3Ew7m.DsVzixoa.js} (99%) delete mode 100644 assets/chunks/channel-CYBQPlIk-DDfBD8St.C-RHtKnF.js create mode 100644 assets/chunks/channel-CYBQPlIk-DDfBD8St.DzdFsfRw.js rename assets/chunks/{chunk-353BL4L5-C1ZAb07r-BMNIXPVo.DKfWSK7P.js => chunk-353BL4L5-C1ZAb07r-BMNIXPVo.De7ICz-t.js} (70%) rename assets/chunks/{chunk-67H74DCK-BzSPKGN1-D9cP9OkH.CObPE9_E.js => chunk-67H74DCK-BzSPKGN1-D9cP9OkH.DRxqLycC.js} (95%) rename assets/chunks/{chunk-AACKK3MU-B0gfjd0p-BcoPfUa7.B-Gmnq7O.js => chunk-AACKK3MU-B0gfjd0p-BcoPfUa7.CbeC1WrR.js} (64%) rename assets/chunks/{chunk-BFAMUDN2--_mLoQcM-8W1Vf50q.Bkhj5did.js => chunk-BFAMUDN2--_mLoQcM-8W1Vf50q.CU6yQFS6.js} (71%) rename assets/chunks/{chunk-E2GYISFI-vYodxFCX-CCBY7rt1.CEFGwmVZ.js => chunk-E2GYISFI-vYodxFCX-CCBY7rt1.CA5uBtyQ.js} (84%) rename assets/chunks/{chunk-OW32GOEJ-YaixIGDO-OV7DQY6p.DCcFtHfD.js => chunk-OW32GOEJ-YaixIGDO-OV7DQY6p.D78shIUq.js} (99%) rename assets/chunks/{chunk-SKB7J2MH-Zr_o4qjH-BQsYZan3.Crsep91h.js => chunk-SKB7J2MH-Zr_o4qjH-BQsYZan3.CNOEpu77.js} (87%) rename assets/chunks/{chunk-SZ463SBG-DDSAy34r-Cj6UB3O8.onHngSUo.js => chunk-SZ463SBG-DDSAy34r-Cj6UB3O8.CgGJEDuV.js} (99%) create mode 100644 assets/chunks/classDiagram-M3E45YP4-DwgdiJrV-CBqnjnjd.BD0f7ZXS.js delete mode 100644 assets/chunks/classDiagram-M3E45YP4-DwgdiJrV-CBqnjnjd.xJ3Xo-BD.js create mode 100644 assets/chunks/classDiagram-v2-YAWTLIQI-DwgdiJrV-CBqnjnjd.BD0f7ZXS.js delete mode 100644 assets/chunks/classDiagram-v2-YAWTLIQI-DwgdiJrV-CBqnjnjd.xJ3Xo-BD.js create mode 100644 assets/chunks/clone-78XdctpQ-DP6jZ9da.BZbYEbEw.js delete mode 100644 assets/chunks/clone-78XdctpQ-DP6jZ9da.cu1u38eo.js rename assets/chunks/{dagre-JOIXM2OF-HUv6-TmE-C9NriUuC.CKrB_NOn.js => dagre-JOIXM2OF-HUv6-TmE-C9NriUuC.DMRsQ5Ux.js} (96%) rename assets/chunks/{diagram-5UYTHUR4-Ts8DWvW8-DtNiVIiC.DXDvMeow.js => diagram-5UYTHUR4-Ts8DWvW8-DtNiVIiC.BwPceTPA.js} (90%) rename assets/chunks/{diagram-VMROVX33-BbEyrapg-DqJhrp1R.B1ZrqAB8.js => diagram-VMROVX33-BbEyrapg-DqJhrp1R.BzqUFJPm.js} (97%) rename assets/chunks/{diagram-ZTM2IBQH-C32oQvHK-CnXELXZV.oJXPgtnD.js => diagram-ZTM2IBQH-C32oQvHK-CnXELXZV.CArQUMFB.js} (93%) rename assets/chunks/{erDiagram-3M52JZNH-Br8ppgaz-B4QUrJzs.BQyjfpX9.js => erDiagram-3M52JZNH-Br8ppgaz-B4QUrJzs.Dek9U3Js.js} (98%) rename assets/chunks/{flowDiagram-KYDEHFYC-DVhYU71X-BNBS2E_i.DbkOPfPF.js => flowDiagram-KYDEHFYC-DVhYU71X-BNBS2E_i.igeWFxWK.js} (99%) rename assets/chunks/{ganttDiagram-EK5VF46D-Bly8WreB-mP9R-02L.zHYibxBs.js => ganttDiagram-EK5VF46D-Bly8WreB-mP9R-02L.BlNsewMq.js} (99%) rename assets/chunks/{gitGraphDiagram-GW3U2K7C-LbRyzza8-61-s67VF.BIzW3vul.js => gitGraphDiagram-GW3U2K7C-LbRyzza8-61-s67VF.DgpAmXyQ.js} (97%) rename assets/chunks/{graph-CQdm8gkL-dflHhQdl.DPKXd_n3.js => graph-CQdm8gkL-dflHhQdl.Dq-1LJIi.js} (97%) rename assets/chunks/{infoDiagram-LHK5PUON-CSaYolw3-BvRhOuze.BPm-C0A1.js => infoDiagram-LHK5PUON-CSaYolw3-BvRhOuze.DCqbPpve.js} (50%) rename assets/chunks/{journeyDiagram-EWQZEKCU-DqZ5Gtod-LnPX6MHg.C7tsgqZ1.js => journeyDiagram-EWQZEKCU-DqZ5Gtod-LnPX6MHg.CEtsTW0x.js} (98%) rename assets/chunks/{kanban-definition-ZSS6B67P-CUcTB5vL-UWLoG0KX.CchGMCMa.js => kanban-definition-ZSS6B67P-CUcTB5vL-UWLoG0KX.By2NMqOL.js} (99%) rename assets/chunks/{layout-FfY8zw-4-CVLJrweZ.BwSNVWGB.js => layout-FfY8zw-4-CVLJrweZ.DElBmWNw.js} (99%) rename assets/chunks/{linear-m73w_WNc-FCrKOMM3.CQ-jPsyg.js => linear-m73w_WNc-FCrKOMM3.BtWclEgC.js} (97%) create mode 100644 assets/chunks/metadata.0b732e60.js delete mode 100644 assets/chunks/metadata.9d861f43.js rename assets/chunks/{mindmap-definition-6CBA2TL7-Cbhri6JR-COAfLT4H.BLxHUFDF.js => mindmap-definition-6CBA2TL7-Cbhri6JR-COAfLT4H.n_sYzbMe.js} (99%) rename assets/chunks/{pieDiagram-NIOCPIFQ-B6XSd-nA-BuzC7Xnu.DlTmh6E9.js => pieDiagram-NIOCPIFQ-B6XSd-nA-BuzC7Xnu.d58iNJY0.js} (91%) rename assets/chunks/{quadrantDiagram-2OG54O6I-exVKgMW--CNOueA6o.CG9tNbSh.js => quadrantDiagram-2OG54O6I-exVKgMW--CNOueA6o.BTc61MSi.js} (99%) rename assets/chunks/{requirementDiagram-QOLK2EJ7-6dWmHEAc-Csct5Blb.rfmXR3J4.js => requirementDiagram-QOLK2EJ7-6dWmHEAc-Csct5Blb.eHI4Uz9A.js} (98%) rename assets/chunks/{sankeyDiagram-4UZDY2LN-CnAdwvcC-CVFxLWrH.CnP-P53y.js => sankeyDiagram-4UZDY2LN-CnAdwvcC-CVFxLWrH.BiZ102DM.js} (99%) rename assets/chunks/{sequenceDiagram-SKLFT4DO-CFhuQylM-Cfcj-PHs.BKeXrPwW.js => sequenceDiagram-SKLFT4DO-CFhuQylM-Cfcj-PHs.BOnSCB9y.js} (99%) rename assets/chunks/{stateDiagram-MI5ZYTHO-DUpd8xBQ-f0nYnhhU.BkR9EZuK.js => stateDiagram-MI5ZYTHO-DUpd8xBQ-f0nYnhhU.BQUXDpsK.js} (95%) delete mode 100644 assets/chunks/stateDiagram-v2-5AN5P6BG-DnT098Gs-BqyhOcwu.BdZ9Weh3.js create mode 100644 assets/chunks/stateDiagram-v2-5AN5P6BG-DnT098Gs-BqyhOcwu.bE7WAqed.js rename assets/chunks/{timeline-definition-MYPXXCX6-CsN-ivIZ-AR6XtwYS.Btbja7lD.js => timeline-definition-MYPXXCX6-CsN-ivIZ-AR6XtwYS.DfwXCQ6B.js} (99%) rename assets/chunks/{treemap-75Q7IDZK-CjtfQE8u-DBGEKm3F.DUxsZ13-.js => treemap-75Q7IDZK-CjtfQE8u-DBGEKm3F.CMrauSCL.js} (99%) rename assets/chunks/{vitepress-theme-teek.B9Ta5bEn.js => vitepress-theme-teek.TIoFrycB.js} (99%) rename assets/chunks/{xychartDiagram-H2YORKM3-RGV0rR_j-DEZyUg2T.BwEgxdD1.js => xychartDiagram-H2YORKM3-RGV0rR_j-DEZyUg2T.D1XGS1sP.js} (99%) rename assets/{fullstack_css-engineering.md.Do-qgh6m.js => fullstack_css-engineering.md.DRbhOpNR.js} (99%) rename assets/{fullstack_css-engineering.md.Do-qgh6m.lean.js => fullstack_css-engineering.md.DRbhOpNR.lean.js} (95%) rename assets/{fullstack_decode-es-modules.md.tfePtJCU.js => fullstack_decode-es-modules.md.DdRFxwyV.js} (99%) rename assets/{fullstack_decode-es-modules.md.tfePtJCU.lean.js => fullstack_decode-es-modules.md.DdRFxwyV.lean.js} (95%) rename assets/{fullstack_different-module-programming-specifications.md.4eRVAMIA.js => fullstack_different-module-programming-specifications.md.DKhzRf2r.js} (99%) rename assets/{fullstack_different-module-programming-specifications.md.4eRVAMIA.lean.js => fullstack_different-module-programming-specifications.md.DKhzRf2r.lean.js} (95%) rename assets/{fullstack_frontend-module-programming-basic.md.Da2LUp5l.js => fullstack_frontend-module-programming-basic.md.DjD1Vm6L.js} (99%) rename assets/{fullstack_frontend-module-programming-basic.md.Da2LUp5l.lean.js => fullstack_frontend-module-programming-basic.md.DjD1Vm6L.lean.js} (95%) delete mode 100644 assets/fullstack_frontend-rendering-scheme.md.C5s18Vlh.lean.js rename assets/{fullstack_frontend-rendering-scheme.md.C5s18Vlh.js => fullstack_frontend-rendering-scheme.md.aaqiSBzs.js} (88%) create mode 100644 assets/fullstack_frontend-rendering-scheme.md.aaqiSBzs.lean.js rename assets/{fullstack_full-stack-resources.md.LWkLQPwU.js => fullstack_full-stack-resources.md.DLPGEXPy.js} (99%) rename assets/{fullstack_full-stack-resources.md.LWkLQPwU.lean.js => fullstack_full-stack-resources.md.DLPGEXPy.lean.js} (99%) rename assets/{fullstack_jamstack.md.BxSPj_yL.js => fullstack_jamstack.md.t05e90a1.js} (99%) rename assets/{fullstack_jamstack.md.BxSPj_yL.lean.js => fullstack_jamstack.md.t05e90a1.lean.js} (94%) rename assets/{fullstack_module-programming-practice-guide.md.qM0rpbmx.js => fullstack_module-programming-practice-guide.md.Bwc-3ZFu.js} (99%) rename assets/{fullstack_module-programming-practice-guide.md.qM0rpbmx.lean.js => fullstack_module-programming-practice-guide.md.Bwc-3ZFu.lean.js} (94%) rename assets/{fullstack_module-programming-principles-best-practices.md.vXZHMqjf.js => fullstack_module-programming-principles-best-practices.md.B2T47nxC.js} (99%) rename assets/{fullstack_module-programming-principles-best-practices.md.vXZHMqjf.lean.js => fullstack_module-programming-principles-best-practices.md.B2T47nxC.lean.js} (97%) rename assets/{fullstack_networking-polling-optimization.md.CGtsbYU-.js => fullstack_networking-polling-optimization.md.BF5_Tvry.js} (99%) rename assets/{fullstack_networking-polling-optimization.md.CGtsbYU-.lean.js => fullstack_networking-polling-optimization.md.BF5_Tvry.lean.js} (95%) rename assets/{fullstack_networking-protocol-selection-guide.md.ZuY6Q95b.js => fullstack_networking-protocol-selection-guide.md.Ce_GLF1T.js} (99%) rename assets/{fullstack_networking-protocol-selection-guide.md.ZuY6Q95b.lean.js => fullstack_networking-protocol-selection-guide.md.Ce_GLF1T.lean.js} (95%) rename assets/{fullstack_networking-sse-practice.md.Cqaviacm.js => fullstack_networking-sse-practice.md.C69DIyW7.js} (99%) rename assets/{fullstack_networking-sse-practice.md.Cqaviacm.lean.js => fullstack_networking-sse-practice.md.C69DIyW7.lean.js} (94%) delete mode 100644 assets/fullstack_next-deep-dive.md.Bmvx0apI.lean.js rename assets/{fullstack_next-deep-dive.md.Bmvx0apI.js => fullstack_next-deep-dive.md.R2Tp30ZT.js} (78%) create mode 100644 assets/fullstack_next-deep-dive.md.R2Tp30ZT.lean.js rename assets/{fullstack_nodejs-module-programming-summary.md.DM9OtwLh.js => fullstack_nodejs-module-programming-summary.md.gn1nm7HF.js} (99%) rename assets/{fullstack_nodejs-module-programming-summary.md.DM9OtwLh.lean.js => fullstack_nodejs-module-programming-summary.md.gn1nm7HF.lean.js} (97%) rename assets/{fullstack_occams-razor-software-design.md.hyk3Jggv.js => fullstack_occams-razor-software-design.md.79ThI17c.js} (99%) rename assets/{fullstack_occams-razor-software-design.md.hyk3Jggv.lean.js => fullstack_occams-razor-software-design.md.79ThI17c.lean.js} (95%) delete mode 100644 assets/fullstack_overview.md.BES6zdnl.js delete mode 100644 assets/fullstack_overview.md.BES6zdnl.lean.js create mode 100644 assets/fullstack_overview.md.DxpfUY4t.js create mode 100644 assets/fullstack_overview.md.DxpfUY4t.lean.js rename assets/{fullstack_react-design-philosophy-ai-augmented.md.BJ61Qyyf.js => fullstack_react-design-philosophy-ai-augmented.md.DMGu-9N6.js} (99%) rename assets/{fullstack_react-design-philosophy-ai-augmented.md.BJ61Qyyf.lean.js => fullstack_react-design-philosophy-ai-augmented.md.DMGu-9N6.lean.js} (97%) rename assets/{fullstack_server-state-management.md.CrQlQFZG.js => fullstack_server-state-management.md.Cv9mRsb4.js} (99%) rename assets/{fullstack_server-state-management.md.CrQlQFZG.lean.js => fullstack_server-state-management.md.Cv9mRsb4.lean.js} (96%) rename assets/{fullstack_typescript-compilation-debugging-guide.md.DyuAi8df.js => fullstack_typescript-compilation-debugging-guide.md.DYKPntIz.js} (99%) rename assets/{fullstack_typescript-compilation-debugging-guide.md.DyuAi8df.lean.js => fullstack_typescript-compilation-debugging-guide.md.DYKPntIz.lean.js} (95%) rename assets/{fullstack_typescript-generic-types.md.FKC916Ue.js => fullstack_typescript-generic-types.md.SGroY_Z1.js} (99%) rename assets/{fullstack_typescript-generic-types.md.FKC916Ue.lean.js => fullstack_typescript-generic-types.md.SGroY_Z1.lean.js} (95%) rename assets/{fullstack_typescript-module-programming-enhancement.md.BuSI8XVH.js => fullstack_typescript-module-programming-enhancement.md.D4akN3z0.js} (99%) rename assets/{fullstack_typescript-module-programming-enhancement.md.BuSI8XVH.lean.js => fullstack_typescript-module-programming-enhancement.md.D4akN3z0.lean.js} (95%) rename assets/{fullstack_union-types-vs-intersection-types.md.teXs4M2i.js => fullstack_union-types-vs-intersection-types.md.COZ6HUpA.js} (94%) create mode 100644 assets/fullstack_union-types-vs-intersection-types.md.COZ6HUpA.lean.js delete mode 100644 assets/fullstack_union-types-vs-intersection-types.md.teXs4M2i.lean.js rename assets/{growth_books.md.B5MSC_hv.js => growth_books.md.CQV-6QIU.js} (98%) rename assets/{growth_books.md.B5MSC_hv.lean.js => growth_books.md.CQV-6QIU.lean.js} (98%) rename assets/{growth_distinguish-useful-information.md.Dbxn103B.js => growth_distinguish-useful-information.md.DH87F_FV.js} (99%) rename assets/{growth_distinguish-useful-information.md.Dbxn103B.lean.js => growth_distinguish-useful-information.md.DH87F_FV.lean.js} (95%) rename assets/{growth_reading-tips.md.DbCX2Cgm.js => growth_reading-tips.md.Br_yMM3-.js} (99%) rename assets/{growth_reading-tips.md.DbCX2Cgm.lean.js => growth_reading-tips.md.Br_yMM3-.lean.js} (96%) delete mode 100644 assets/index.md.CU-h6aj6.js delete mode 100644 assets/index.md.CU-h6aj6.lean.js create mode 100644 assets/index.md.D_71RlzW.js create mode 100644 assets/index.md.D_71RlzW.lean.js rename assets/{product-sense_ai-native-composite-talents.md.DeQsmnkt.js => product-sense_ai-native-composite-talents.md.BS0uiK5R.js} (99%) rename assets/{product-sense_ai-native-composite-talents.md.DeQsmnkt.lean.js => product-sense_ai-native-composite-talents.md.BS0uiK5R.lean.js} (96%) rename assets/{product-sense_engineer-build-product-sense.md.R4GEXdyT.js => product-sense_engineer-build-product-sense.md.DSCoDJW9.js} (99%) rename assets/{product-sense_engineer-build-product-sense.md.R4GEXdyT.lean.js => product-sense_engineer-build-product-sense.md.DSCoDJW9.lean.js} (96%) rename assets/{product-sense_insight-model.md.BaEsJFWV.js => product-sense_insight-model.md.Bee3H7Z3.js} (99%) rename assets/{product-sense_insight-model.md.BaEsJFWV.lean.js => product-sense_insight-model.md.Bee3H7Z3.lean.js} (96%) delete mode 100644 assets/product-sense_overview.md.Z1dzzNWI.js delete mode 100644 assets/product-sense_overview.md.Z1dzzNWI.lean.js create mode 100644 assets/product-sense_overview.md.sy7HqYUu.js create mode 100644 assets/product-sense_overview.md.sy7HqYUu.lean.js rename assets/{product-sense_perplexity-knowledge-worker.md.BBQH2Bgu.js => product-sense_perplexity-knowledge-worker.md.hEFBHH9s.js} (99%) rename assets/{product-sense_perplexity-knowledge-worker.md.BBQH2Bgu.lean.js => product-sense_perplexity-knowledge-worker.md.hEFBHH9s.lean.js} (97%) rename assets/{product-sense_small-rule-learn.md.BbV8jAeP.js => product-sense_small-rule-learn.md.Bu2wpqcP.js} (99%) rename assets/{product-sense_small-rule-learn.md.BbV8jAeP.lean.js => product-sense_small-rule-learn.md.Bu2wpqcP.lean.js} (97%) rename assets/{product-sense_using-economics-thinking.md.Cn-62jAT.js => product-sense_using-economics-thinking.md.DRJR8QeW.js} (99%) rename assets/{product-sense_using-economics-thinking.md.Cn-62jAT.lean.js => product-sense_using-economics-thinking.md.DRJR8QeW.lean.js} (93%) rename assets/{repo-insight_fetch-event-source.md.BtKJWG4l.js => repo-insight_fetch-event-source.md.LqFRwoHj.js} (99%) rename assets/{repo-insight_fetch-event-source.md.BtKJWG4l.lean.js => repo-insight_fetch-event-source.md.LqFRwoHj.lean.js} (98%) rename assets/{repo-insight_open-cli.md.I70cOS2v.js => repo-insight_open-cli.md.BbjYGDHw.js} (99%) rename assets/{repo-insight_open-cli.md.I70cOS2v.lean.js => repo-insight_open-cli.md.BbjYGDHw.lean.js} (99%) delete mode 100644 assets/repo-insight_overview.md.DhGQY-yn.js delete mode 100644 assets/repo-insight_overview.md.DhGQY-yn.lean.js create mode 100644 assets/repo-insight_overview.md.VXC_8aFU.js create mode 100644 assets/repo-insight_overview.md.VXC_8aFU.lean.js rename assets/{repo-insight_vercel-ai-sdk.md.BBgKef5K.js => repo-insight_vercel-ai-sdk.md.CP-USrJR.js} (99%) rename assets/{repo-insight_vercel-ai-sdk.md.BBgKef5K.lean.js => repo-insight_vercel-ai-sdk.md.CP-USrJR.lean.js} (98%) create mode 100644 assets/style.C2Wf7wAW.css delete mode 100644 assets/style.C5TPLtJK.css rename assets/{tags.md.DNQFXO_e.js => tags.md.SKJwi_eq.js} (70%) rename assets/{tags.md.DNQFXO_e.lean.js => tags.md.SKJwi_eq.lean.js} (70%) create mode 100644 img/cover/insight_labs_output_workflow.jpg create mode 100644 img/cover/insight_labs_workflow.png create mode 100644 img/cover/insight_labs_workflow_detail.png create mode 100644 img/cover/insight_labs_workflow_full.png diff --git a/404.html b/404.html index 9085d98d..0acdfa7b 100644 --- a/404.html +++ b/404.html @@ -6,10 +6,10 @@ 404 | Insight Stack - + - - + + diff --git a/about/growth/inner-experience.html b/about/growth/inner-experience.html index 8657da62..2b1e96c1 100644 --- a/about/growth/inner-experience.html +++ b/about/growth/inner-experience.html @@ -6,12 +6,12 @@ 向内思变:当疫情给世界按下暂停键,去重构生活秩序 | Insight Stack - + - - - - + + + + @@ -37,77 +37,85 @@ -
Skip to content

向内思变:当疫情给世界按下暂停键,去重构生活秩序

摘要总结:当世界按下暂停键,如何避免内耗?本文记录了笔者三年间的“自我重构”实验。文章摒弃了单纯的情绪宣泄,而是利用分解法、渐进明细和统计分析等工程思维,对健康饮食、知识体系、时间分配及远程协作进行了系统化改造。这是一份关于如何在无常的外部环境中,建立内在确定性秩序的行动指南。

目标到践行思维流程示意图

写在前面

自去年 7 月份迁移几篇旧文后,笔者就没有继续写软文了,想不到再次写文章时疫情政策已经调整,且初步实现了开放。那么问题来了,为什么要继续写文章呢?概括来讲,有两个方面的原因:

  • 直接原因:疫情这三年,每个人都体验到了不同于之前的 “难”,也都有属于自己独一份的经历。笔者这三年也在疫情影响的基础上,经历了一些之前未曾遇到过的事情,幸运的是从中也学到了一些东西,并在生活实践中去尝试、去改变。因此,在疫情进入初步放开的新阶段,也想做一次复盘总结。
  • 间接原因:复盘总结的可选方式有很多种,但写文章是笔者觉得挺适合自己的一种方式。所以,笔者决定借助开放平台来继续完成一篇复盘总结文章。既锻炼下自己的写作能力,也能借助开放平台或多或少收到一些反馈与建议。鉴于笔者没有过多思考要总结哪些东西,所以标题也命名为 “漫谈疫情这三年向内思变”。

疫情期间,笔者基本没有怎么出过远门,甚至阴差阳错地给自己安排了更多的独处时间。周末也倒逼自己按照比较严格的作息推动业余实践,尝试向内探索。因此,所谓 “向内思变”,用时髦的说法也叫 “闭关”,接下来就阐述下要漫谈的话题。

漫谈话题

健康,拥有的时候经常不会被珍惜,失去的时候却追悔莫及,但重新找回后却很容易再次不被珍惜(不难理解,这就是人性)

读书与学习,一个被广为熟知的话题,但笔者在这方面是有一定自信的,因为有过比较正向的实践,多少有点底气。自大学时代开始,笔者在这方面有一定的嗜好,且系统践行了此嗜好,还通过啃一些跨专业的书来学习,直至可以抛弃原来的专业,在毕业时也留下了两篇关于这方面的总结文章。当然,任何时候、任何人的经历都代表不了实力。本次漫谈笔者会结合自己的经验、思考与总结来梳理,尽最大努力让这个话题起到抛砖引玉的作用,有兴趣的小伙伴在以后的日子里可共同进步。

时间管理,这个话题虽被大家熟知,却很少有人能自信地说 “自己能很好地管理时间”,笔者肯定也不例外。但本次漫谈会梳理下笔者自己在实操方面的尝试,思考与总结。

混合工作制,这个话题在疫情到来后被大家熟知,所以笔者这里也未必能分享出多么稀奇古怪的见解,但同样会结合实操给出自己的思考与总结。

漫谈健康

健康危机

鉴于笔者在大学阶段自由学习与探索的勇气可嘉,因此在经历两次 “校园互联网小作坊” 的锻炼后,毕业时选择的工作自然而然地成为了大学兴趣的延续。当然,也延续了很多大学阶段养成的对健康不利的习惯,作息无规律,仗着无知挥霍身体;无健康意识,不怎么锻炼身体,比如:

  • 很少吃早饭,经常吃早中饭或者午饭。除了工作、学习和娱乐勤快点,别的方面比较懒。
  • 长期熬夜,业余也喜欢学点东西,写点代码(大概率是走出校园后看到了人外有人,随着工作的深入,慢慢意识自身不足,想要提升一些技能)。

人无作息规律地熬一天不累,熬十天就累了,熬几年也就要坏事了。就这样经过长年累月地洗礼,健康也在疫情到来的第一年亮起了小红灯。当然,经过医生、家人等多方的协力帮助,以及自己的坚忍硬扛,最终康复了。期间虽然经历了比疫情放开后大部人转阳痛苦且印象深刻多倍的事情,但不是本文的重点,这里只留下笔者事后深刻反思的几个心得:

  • 不好的事情如果已经到来,懊悔等悲观情绪都没有任何用处,只能是想尽一切办法 “先治病救命,休养康复,然后再谈健康养生”。
  • 现代医疗虽能救死扶伤,但终究只是最后的止损方式。我们只有在日常注重预防保健、培养健康意识,注重养身修身,才有可能在这个社会上走的更远
  • 随着社会的发展,人被技术圈和社会圈包裹了起来,人与自然之间的距离也就越来越远了,自然人也就发生了异化(放眼望去,身边充满着太多类似笔者这种不够注重自身健康的人)。

健康知识学习

既然已经知晓自身问题且暂时止损了,自然要继续寻找更长远的解决方法。但方法不会凭空从天上掉下来的,它需要自己去寻找。笔者寻找方法的主要途径是:向专业或有经验的人咨询,向书本上的健康标准和知识找

1、向有专业或有经验的人咨询

由于笔者仍然保持着大学时代学会的“免费”思维,所以在接近康复出院的时候就开始跟医生、医护、病友等以聊天的方式咨询。众所周知,医生是经常传授病人一些健康知识的专业人员,医护是长年累月协助病人康复训练的专业人员,病友是那些与自身有着相同失误的人,向这几波人咨询更能习得比较正向的建议或小技巧。这一阶段积累了一些碎片化的健康意识,康复训练小技巧,以及戒掉不良生活习惯的注意点,也为后面的防治宜早、起居有常、适量运动等原则做了铺垫

2、学习健康标准和知识

健康其实是有标准、有依据的:

*《皇帝内经》中的标准:形与神俱,而终其天年,度百岁乃去。 *现代的健康标准:生理健康、心理健康、社会及自然环境适应良好,道德良好,并达到人之天年

如上所述,健康标准简单且易懂,但它不足以指导大部人去实践(除非是不世出的罕见人才,看到标准后就能推导出符合实际的解法)。所以笔者结合自身经历和健康知识,进一步采用 “分解” 和渐进明细的方式,学着梳理出一些健康原则

  • 合理饮食,日常饮食注重杂食多样,确保能量、营养、性味平衡。
  • 起居有常,尝试改变生活方式,健康有序,防戒不良生活习惯。
  • 适量运动,因人因时因地地制定出一套健身运动的项目,循序渐进、持之以恒地坚持下去,保持健康一点的形体,提高对环境的适应能力
  • 静养心神:
    • 给自己的生活做减法,宁可不合群,也要避免接触一些没有用还容易内耗的人和事。
    • 多读点书,尝试将书中的一些知识用到工作和生活中。
  • 防治宜早,吸取医生的建议,对亚健康状态及疾病坚持预防为主、早防早治

最后,为保证自己在理论意识上更注重身体健康,笔者还拜读了毛教员在青年时期写下的《体育之研究》。读过教员鞭辟入里的文章后,也更从理论上明白了:“体者,载知识之车而寓道德之舍也。体育一道,配德育与智育,而德智皆寄于体。”

3、健康实践

结合沉淀下来的原则,笔者花费了 1.5 年的时间,进行了两个方面的实践:

  • 工作日早上坚持做早饭,三餐慢慢靠向合理均衡。周末培养一些做饭的技能,借助烟火气来平衡下工作与生活。
  • 设定减肥目标,通过控制饮食、增强体育锻炼活动来实现体重的减少,提升自身健康。

随着时间的流逝,笔者现在也能自己做出 75 分的家常菜了(特别感谢很多师傅指导),且将下面这张图作为自己的日常饮食原则:

日常饮食原则示意图

关于健身减肥方面的实践,笔者这里只阐述下主要实践思路,实践细节可参考笔者之前写的一篇文章:减肥这件小事阶段随笔汇总

关键点 1:要考虑打工人工作比较忙碌的客观现实,将时间周期拉的长一点,目标拆解的细一点,可分阶段来。我们可以结合身边的很多例子来反思下,为什么那么多人喊着健身和减肥,真正成功的却不多呢?是耐力不够,还是客观环境不允许呢?笔者觉得两个原因都有,如果时间足够充裕,用这么多空闲时间来专注地完成一件正确的事情是没有大问题的。可现实生活中时间不会多么充裕,正是基于客观考虑,笔者才调整了实践思路:

  • 严格阶段:基于“管住嘴,迈开腿”的准则,每月减 5 斤,半年减 30 斤(已完成实现)
  • 巩固阶段:在 “管住嘴” 的基础上, 侧重 “迈开腿”的准则,加大运动量,提升自身身体素质(2022年执行良好)
  • 持续阶段:“每天锻炼一小时,快乐工作五十年”作为一个长期习惯来贯彻下去(希望 2023 年及以后的日子里可以继续做到)

关键点 2:实践过程中借助体脂秤的指标和数据统计,来定期分析自身数据,及时发现、纠正实操过程中的问题(这是笔者所在行业的惯用套路)。我们可以继续结合生活中的例子来看下,自己可有花些时间来反思、复盘自身存在的问题,然后调整行动呢?大部分应该都没有这么做。其实,笔者之前在这方面做的也特别少,后来随着工作和生活阅历的增加,慢慢注重这方面了。

4、健康小结

健康这个话题聊的差不多了,笔者在这个话题的最后简单分享两个自己学到的、且感觉比较实用、可广泛应用的迭代实践套路。有兴趣的朋友可去深入学习,如果还能在工作和生活中尝试起来,相信会取得更好的效果。

(1) 目标 -> 问题 -> 诊断 -> 方案 -> 践行 (套路来自《原则》这本书,该书在疫情前被笔者知晓后阅读,疫情后又翻了下,跟老朋友们也强烈推荐过)

目标到践行思维流程示意图

2、一个全面质量管理的思想基础和方法依据,循环式品质管理 PDCA,又称戴明环。由戴明提出,据说他十分热爱统计学,二战时曾将统计学应用于制造业,后来在日本传授质量控制,随着日本制造技术的逐渐发达,戴明也成为了比较著名的人物。

漫谈读书与学习

1、读书的目的

读书与学习的区别是什么呢?

在笔者看来,读书与学习是两码事,读书不等于学习,想要学习成长倒是可以多读点书。当然,有些人会把读书当成一种习惯和爱好,但笔者想继续问的是:习惯和爱好不是凭空来的,这种习惯和爱好背后的本质原因和动力又是什么呢?可能答案中多少会涵盖点 “想从读书中学到点东西”吧。

身处一个知识迭代速度和生活节奏都在加快的时代,“焦虑”与“迷茫”会时不时来敲门。因此,为应对社会生活中的焦虑与迷茫,人们选择了各种各样的方式,读书与学习自然也成为了一种常用的方式。笔者之前主动跟人交流的动力不大,所以读书与自我规划学习也是笔者的选择。

因此,如果有人问起 “你读书的目的是什么”,笔者会结合读过的《纳瓦尔宝典》这本书给出现在的答案:构建自己的心智模型。当然,如果在未来 N 年后有人再问起这个问题,笔者希望自己可以结合《穷查理宝典》这本书和查理芒格这个人给出比当前更深入和细化的答案(目前不能给这个答案,因为笔者自己构建的心智模型还不够好)。

2、读书的方式

随着时间的推移,笔者在读书方面体验了以下三种方式:

  • 自由式阅读,作为一种娱乐和爱好,比如阅读一些小说或自己觉得有趣的书。
  • 填鸭式阅读,为短时间学习、了解某个技能或东西,而选择的类似应试教育的方式。
  • 海绵式阅读,结合自身遇到的问题通过阅读学习来找答案,或阅读学习的过程基于书中的阐述来结合实际提炼出可指导实践的“套路”。

我们并不需要像辩论赛那样争论、PK 出上述哪种方式好,哪种方式不好。因为每种方式都有可能、或多或少助力我们成长。从实践效果来看,或许海绵式阅读是大多数人认可的方式,但有些采用自由式阅读的人真的在某些方面比采用海绵式阅读的人优秀;从时间维度来看,没有自由式、填鸭式的阅读,也很难直接转变为海绵式阅读。

在笔者看来,我们要关注的不是单选题,是“全都要”,要学会在不同的场景下切换到不同的阅读方式。即使是同一个人,也可根据不同的场景、不同的时间来切换到不同的阅读方式。所以,这里再做一个大胆又狂妄地的论断:为什么很多人读了很多的书,却依旧过不好这一生?因为纵使一个人满腹经纶,但 TA 没有清晰的认清问题本质,做不到学以致用与知行合一(书生误国也是这个道理)

3、读书工具选择与实践

大学时代,自接触互联网后,笔者依旧会买一些纸质书来看,但也坚信“信息化”是大势所趋,一个大学生在学好数学等基础学科的基础上,应该花些精力来学习了解下计算机技术。经历疫情这三年后,笔者再次坚信 “数字化” 是继 “全球化” 之后的大势所趋。

在阅读工具的选择方面笔者经历了以下几个阶段:

  • 纸质书 => 互联网信息
  • 纸质书 + 互联网信息 + Kindle 电子书
  • 纸质书 + 互联网信息 + 国内阅读APP(微信阅读、蜗牛读书等)

目前,“纸质书 + 微信阅读 + 互联网信息”成为了笔者最终选择的组合工具。在 2021 年底,笔者认为微信读书推出的年度报告产品已不足以总结自己在阅读方面的全貌,而且在闲暇的时候觉得自己在阅读方面不够系统化。因此,就创建了一个“阅读准则表格”,用于指导自己的阅读实践。表格依旧采用了分解与渐进明细的思路

  • 明确自己当前的定位,划分出四个“定位圆圈”,对每个圆圈进一步分解,从而划分出几个分类:
    • 工作技能圈,包括编程技术学习、职业发展学习、互联网行业与科技 三类
    • 生活短板补充圈,目前只包括身体健康与居家这一个大类
    • 个人能力补充圈,包括统计与数学、经济与财经知识学习 两类
    • 人文哲思调剂圈,包括哲思人生、历史读物、文学与小说 三类
  • 为每一个分类配备对应的阅读工具与实践原则
目标到践行思维流程示意图

4、小结

在上述“阅读准则表格”的协助下,阅读与学习这件小事在疫情期间也变得比之前明晰起来,且由于 2022 年频繁居家,节省下来的时间也就多了,笔者希望能继续向着“构建自己的心智模型”这个方向实践下去。

阅读与学习这个话题到此也基本漫谈完了,对这个话题或阅读工具感兴趣的朋友可以看下凯文凯利在几年前写的《必然》这本书(笔者坚信,微信读书这个产品在发展的过程中,其团队中肯定有人读过这本书)。当然,如果不觉得笔者在做广告,也可看下笔者毕业前留下的两篇相关文章:

漫谈时间管理

1、时间不够用问题

时间是我们在这个世界上最优质和公平的资产,可它也能是让人在其面前最无奈。因此,如何利用、管理自己的时间也成为了每个人的必修课。

身处时间碎片化、角色多元化的社会,我们的时间变得越来越碎,每个角色背后也都有一堆琐碎的事不断涌进来。很多人觉得时间管理、时间不够用是老生长谈的话题,身边充斥着讲这个方面的人和书,但没有多少实际的用处。笔者曾试图分析过这个现象,最终总结出来的主要原因有 3 个:

  • 即便读遍全天下关于时间的书,遍访了全天下有相关经验的人。只要不去行动,就是白费功夫,与其这般努力,不如躺平。
  • 每个人遇到的问题和设定的目标不同,采用的处理方式自然也不同,有些人的总结未必适合自己,拿来借鉴也未必能起到多少效果。
  • 调整后的效果需要时间来证明,在没有看到效果前大多数人都容易放弃。即使看到了短期的效果,只要解决了当前棘手的问题,很少有人会选择继续保持。

刚好在疫情这三年,笔者有机会基于遇到的问题,在这方面尝试改善了下。重新拥有健康的身体后,有几个难题摆在了笔者面前:

  • 随着工作年限和阅历的增加,需要依赖发现、分析后才能清晰的问题和事务相较之前占比多了,压力也随之上升,时间变得明显不够用。
  • 合理的饮食、健康的身体、比较有规律的作息被列为头等大事,有些实践需要时间落地,有些改变需要依赖时间才能有效果
  • 重新拥有健康的身体后,笔者不但想在工作方面多做些正确的事,还想在为数不多的业余时间推动“读书与学习”这件小事,通过构建稳健的心智模型来应对不稳定的大环境。

笔者相信,有过类似经历的人肯定能更明白其中的矛盾与酸楚,面对很多件抢占时间资源的事务,又不得不逼着自己想方设法找到解决办法,真的蛮有压力的。当然,躺平和摆烂是一种方式,可人躺久了也会不自觉地想要尝试突破一下局限,与其让问题与环境倒逼自己改变,不如自己思变。

2、分阶段调整时间管理

第一阶段:疯狂做减法,专注重要的事

不推荐的严格时间表,形如 7:20-7:50 起床、洗漱;7:50-8:30 锻炼身体;8:20-8:50: 吃早饭...... 这样简单地把一天时间分为线段的作息日程表.

(1)丢弃不靠谱的严格时间表,为自己减压

  • 普通人勤奋些是对的,但逼着自己执行“严格时间表”只会让自己变得更加焦虑。
  • 越是努力地执行严格的时间表,就越体会到挫败感、焦虑感,我们不该用理想化的方法要求自己。

(2)重新理解与应用“时间四象限”

  • 使用清单 List 来管理事务。基于事务的重要程度,刻意忽略不重要的事,即紧急不重要和不紧急不重要的事务(干掉紧急不重要的事务有点过于暴力,也容易被别人误解。但由于笔者在第一阶段还处于救火阶段,会比较狠)
  • 错开大众上班高峰时间,上午给自己预留 2.5 小时的无干扰时间。半小时用于健身,1.5 小时用于处理重要不紧急的事
  • 正常工作时间处理重要且紧急的事,尽最大努力将重要且紧急的事务快速干掉,并尽最大努力避免重要不紧急的事务演变为重要且紧急的事务

(3)重新调整周末时间

  • 周六无重要事不约不逛:周六上午预留网上冲浪和阅读文章充电时间,周六下午预留健身时间
  • 周日上午随意,下午与晚上预留出阅读与学习时间

在这种“快刀斩乱麻”式的操作下,近小半年后笔者发现自己在工作方面不那么像四处灭火的“捉急状态”了。健康、读书与学习两方面的习惯得以保住,虽然体重变化存在小范围波动,但健身减肥的胜利果实也被巩固住了。

第二阶段:升级清单管理

在这个阶段,鉴于笔者看了一些时间管理相关的书,比如《哈佛时间管理课》、《哪里没有时间》等书。结合自己在第一阶段的问题,决定在第二阶段对清单进行改善。清单是个好东西,能用来梳理、分析自己的时间利用是否符合预期,有助于使用者不断思考如何将日常任务做的更好。列出来清单后能降低甚至避免焦虑,因为在执行时不是从大脑中提取,而是从清单中读取

在升级清单管理前,笔者只有一个主要用来管理工作相关事务的清单,业余时间是没有清单管理的。但随着健康与业余自我充电相关的投入加大,升级清单管理有了一定的必要条件。升级清单管理的主要思路依旧运用了分解与渐进明细,将清单分为:碎片清单、工作日-日常清单、周末-日常清单三类

  • 碎片清单:

  • 作为大脑的缓冲池而存在,收集大脑基于客观因素或主观思绪而产生的事务(不区分优先级,不区分事务大小)。把事务丢进碎片清单的目的是要在其他合适的时间再去思考它、处理它,同时保持当下时间的专注。

  • 碎片清单是另外两个清单的主要输入,建立碎片清单,需要养成每天把碎片及时装进日常清单的习惯

  • 删除长时间没有被迁移且渐进明细到日常清单的事务

  • 日常清单(工作日):

  • 用于收集工作日的日常事务,其输入主要来自碎片清单或临时加进来的重要且紧急事务。

  • 日常清单收集事务不能照搬碎片清单,而是碎片清单的再次分解与渐进明细。进入日常清单的任务必须有子任务或关键步骤,且基于再次分解的结论标出预估耗时。

  • 日常清单(周末):

  • 用于收集周末的日常事务,其输入主要来自碎片清单,优先对健康、读书与学习相关的事务;次优先排日常起居、购物等事务。

  • 日常清单收集事务依旧不能照搬碎片清单,而是再次分解和渐进明细碎片清单。进入周末日常清单的任务必须包含子任务和关键步骤,且基于再次分解的结论标出预估耗时。

就这样,升级后的三个清单进一步优化了笔者的时间。持续几个月后,笔者也慢慢变得敢于决断,哪怕决断错了也要干。因为改变说起来容易做起来难,如果在做的过程中还惧怕错了,那只能是被束缚得各种不适,改变也就很可能夭折。

第三阶段:刻意统计并调整时间

经历了前两个阶段的改变,某天,笔者在娱乐的时候刚好看到有个 UP 主在讲 “进入人工智能时代后,人要怎么做才能既不失业,还能活的不错”。鉴于笔者统计分析的意识已经建立起来(统计学与数学知识应用依旧存在短板),所以笔者冒出了一个想法:UP 主列出的这个东西可能就是当下自己没有梳理过的时间分配准则。

废话不多说,这里直接贴出 UP 主给出的时间消耗建议,也是笔者在第三阶段的时间统计与调整准则,具体如下图:

当前时间消耗现状时间调整建议

因此,笔者结合准则和自己在第一、二阶段沉淀下来的时间分配情况,整出了一个粗糙的时间统计。整个时间统计采用了由局部到整体的方式:

优先统计工作日早上至午休这段时间的分配,基于统计情况调整时间;然后统计并调整午休、下午和晚上等时间的分配 以此类推,次优统计并调整周末时间的分配(为避免自己变成有强迫症的人,周末调整没有工作日拆解的细,为自己预留一些挥霍的自由) 笔者这里给出统计与调整示意如下:

工作日早上至上班前时间统计与调整午休时间统计与调整

至此,刻意统计与调整阶段的阶段也漫谈完了。笔者在这一阶段还挺觉得有成就感的,因为终于有机会在工作之外初级又粗糙地运用了统计学分析,很好地鼓励自己在统计学分析方面继续加大投入力度。

漫谈混合工作制

书接上文,如果说时间管理其实就是对时间这一个维度进行切割,然后把工作与生活中的事务填充进去,那么混合工作制就是基于物理空间和时间这两个维度来切割平面,然后把工作与生活中的事务填充进去。因此,笔者要漫谈的最后一个话题就是混合工作制。

这里所谓的“混合工作制”,对打工人来讲其实就是一部分时间在办公室工作,一部分时间居家远程办公。如果没有疫情,这种方式在国内还不会被大范围运用,虽然互联网行业一直有弹性工作制,但国内很少有企业让员工能持续几天甚至一个月居家办公。笔者认为,疫情只是更显象化了这种方式,因为在疫情出现之前,国外真的有公司在实践,而且国外的自由职业者是比国内多出很多的。

这里不是要展开争论,而是想抛出问题:我们虽然在疫情期间熟悉了这种工作模式,但我们可觉得自己能很好地处理这种模式呢?疫情总会过去的,在疫情后我们要不要继续实践混合工作制呢?

1、适应混合工作制

如上所述,混合工作制是基于空间与时间两个维度来安排要处理的事务,所以适应混合工作制,就是基于二维平面来安排好自己的工作与生活,试着把日子过得顺畅。

笔者不敢说自己在疫情期间很好地适应了混合工作制,因为在疫情早期居家办公真的很累,工作与生活没有了界限,有时觉得自己除了睡觉就一直在工作,回到公司上班的时候就觉得特别爽。但随着疫情的多次反复,也就有了一次次地尝试改变自己来适应居家办公,拥抱混合工作制。在这种客观条件的倒逼下,终究还是适应了,也实现了向内思变。

混合工作制最大的痛点是解决居家办公的苦恼,善用居家办公的优势,甚至把居家办公的经验适当地用在办公室工作中,从而实现真正的混合工作。在居家办公的时候,笔者觉得有以下几个要点需要注意:

  • 居家办公时要强调效果和效率。效果源于对重要业务或任务的识别,效率源于专注地运用工具做正确的事
  • 划定出专门的办公空间,有效区分起居空间与办公区间
  • 基于对重要业务和任务的识别,使用比较清晰的清单和日程表来协助重要事务的推动。笔者这里依旧沿用了时间管理中提到的三个清单:碎片清单、日常任务清单(工作日)、日常任务清单(周末)。
  • 善用远程办公工具,电话会议室一种重要的沟通协作方式,开好电话会议能更明确重点,提升效率。

当从居家办公切换到办公室工作环境中,除了不用划定专门的办公空间,很多经验都是可以继续沿用的。只有在碰到特别重要紧急的事情或者娱乐的事情才需要与同事当面沟通交流,这在一定程度上可以提升个人工作效率,去尝试摆脱“无头苍蝇式的忙碌”。

2、延伸思考混合工作制

不知道细心的朋友有没有发现,在疫情到来之前,我们大多接触到一些具有数字化特性的 C 端消费品(如:体脂秤具有称 + APP数据统计 + 虚拟社区;智能手表具有手表+数据收集与分析),只在办公时间或业余遇到紧急问题时才使用远程办公工具来协作,而疫情到来后我们更加主动拥抱、主动适应远程办公工具等数字化、虚拟化产品了。这在一定程度上也表明了:

  • 大家在紧锣密鼓地创造产品和服务的数字属性,并以文化、社群的方式加以体现,借助产品的数字化属性,甚至可以把需求方连成网络,从而基于虚拟网络提升服务市场的效率。
  • 跨城市、跨地域地沟通协作已经成为了常态,地域化的问题在“数字化”趋势下能得到缓解,跨城市、跨地域地高效协作更容易被接受了

那么问题来了,一个普通的打工人去延伸思考这些东西有什么用处呢?这是不是类似刚入职的员工操着 CEO 的心,或者说一个普通百姓,业余闲着没事操着治理国家的心呢?笔者个人认为:都不是。而是想基于以上延伸思考引出一个新的业余尝试:业余跨地域协作

这也关系到疫情后要不要继续实践混合工作制?不在其位就不谋其政,笔者这里不去谈国家或公司会不会在疫情后落地混合工作制,比如“3+2”或“4+1”工作制,因为笔者想延伸地是:如何在业余更大范围地尝试、实践混合工作制

遥想当年学生时代,一群比较合得来的学生仅仅凭借几成勇气就在业余时间集中到一个物理空间内去捣鼓一些东西,也因为这样的折腾让我们顺利走向了工作岗位。走向工作岗位后,时不时会在虚拟社群中一起侃大山,聊聊工作与生活,吐槽一下自己的改变,但最终收尾的时候多少都还流露出想要搞些有点创造力或者正能量的事情。

所以笔者认为,在上述延伸思考下,其实业余是可以协作的,主要原因有以下三点:

  • 基于远程工具协作已经被运用,人们已在疫情中适应了远程办公,跨城市、跨地域的阻碍因素在降低。
  • 云服务已经发展得足够简单,很多基础设施已足够便捷(不再是当年在实验室或研究所里拿着裸机装软件的年代了)。
  • 数字化是趋势,轻量、小而美、短期可完成的项目是可以协作完成的(虽然雇佣关系在一定时期内仍然是主导,但自由协作关系会越来越多)。

其实最主要的问题还是在于有没有共同的诉求,能不能拿出时间来捣鼓,有没有人能组织且管理好这种自由的远程协作团伙,并合理分配项目收益,实现大家的共同诉求。在疫情中后期,笔者业余时间没少在由几个老伙计组成的社群中“传销”上述延伸思考,疫情结束后也可能会继续尝试下去。

写在最后

行文至此,疫情这三年向内思变的复盘总结基本梳理完成了,不管文章最终的水平怎么样,依旧把自己的“闭关”经历沉淀下来了。

在文章的最后,顺便聊一聊思变。经历了疫情这三年,笔者认为思变不能只“打鸡血”或者 “立Flag”,思变是要结合客观事实和自身诉求来落地的。如果我们宽泛地谈改变,然后逼着自己变,挺内耗的。因为这种改变容易失败,失败后我们又不太容易原谅自己。可如果我们慢慢固化了,一旦大环境发生变化,我们又只能被动地任由社会教育。所以,改变之前需要多思考,需要学习一些知识套路尝试着实践。

笔者在落地上述几个话题的改变时,有些侧重实践为主,基于遇到的问题寻找解决方法;有些则以读书学习、与别人沟通交流的方式推动;还有些以业余娱乐的方式观察发现来推动,但最终实践的时候其实都初窥门径地用到了一些通识且有点哲学味道的“套路”:

  • 分解与渐进明细,西方还原论的部分应用,“万物皆数”,对自然认知不断细化,尝试拆解分析出影响事物的本质原因。
  • 系统论,即围绕人和社会自身来改善多个影响因素,从而使自己更好地适应社会。
  • 知行合一,知是行的头脑,行是知的落实;知是行的开始,行是知的完成。

最后,引用一下笔者早年看过的小说作为结束,其作者萧鼎老师说过“如果没有曾经的一段经历,自己写不出《诛仙》这样的作品”。虽然笔者与萧鼎老师相差甚远,也想在文章的最后说下:“如果没有疫情这三年的经历和刻意的向内思变,笔者也写不出一篇将多个话题串联起来的长文”。

之所以还记得《诛仙》这本小说,倒不是因为小说阐述了“天地不仁,以万物为刍狗”的法则,而是因为它也讲述了一个资质普通又平凡的少年,虽不醉心于修真,但真的凭借着坚韧、阅历一步步身兼“佛道魔”三种功法,这种特质在经济下行的大环境下可能更值得学习。

向内思变:当疫情给世界按下暂停键,去重构生活秩序

摘要总结:当世界按下暂停键,如何避免内耗?本文记录了笔者三年间的“自我重构”实验。文章摒弃了单纯的情绪宣泄,而是利用分解法、渐进明细和统计分析等工程思维,对健康饮食、知识体系、时间分配及远程协作进行了系统化改造。这是一份关于如何在无常的外部环境中,建立内在确定性秩序的行动指南。

目标到践行思维流程示意图

写在前面

自去年 7 月份迁移几篇旧文后,笔者就没有继续写软文了,想不到再次写文章时疫情政策已经调整,且初步实现了开放。那么问题来了,为什么要继续写文章呢?概括来讲,有两个方面的原因:

  • 直接原因:疫情这三年,每个人都体验到了不同于之前的 “难”,也都有属于自己独一份的经历。笔者这三年也在疫情影响的基础上,经历了一些之前未曾遇到过的事情,幸运的是从中也学到了一些东西,并在生活实践中去尝试、去改变。因此,在疫情进入初步放开的新阶段,也想做一次复盘总结。
  • 间接原因:复盘总结的可选方式有很多种,但写文章是笔者觉得挺适合自己的一种方式。所以,笔者决定借助开放平台来继续完成一篇复盘总结文章。既锻炼下自己的写作能力,也能借助开放平台或多或少收到一些反馈与建议。鉴于笔者没有过多思考要总结哪些东西,所以标题也命名为 “漫谈疫情这三年向内思变”。

疫情期间,笔者基本没有怎么出过远门,甚至阴差阳错地给自己安排了更多的独处时间。周末也倒逼自己按照比较严格的作息推动业余实践,尝试向内探索。因此,所谓 “向内思变”,用时髦的说法也叫 “闭关”,接下来就阐述下要漫谈的话题。

漫谈话题

健康,拥有的时候经常不会被珍惜,失去的时候却追悔莫及,但重新找回后却很容易再次不被珍惜(不难理解,这就是人性)

读书与学习,一个被广为熟知的话题,但笔者在这方面是有一定自信的,因为有过比较正向的实践,多少有点底气。自大学时代开始,笔者在这方面有一定的嗜好,且系统践行了此嗜好,还通过啃一些跨专业的书来学习,直至可以抛弃原来的专业,在毕业时也留下了两篇关于这方面的总结文章。当然,任何时候、任何人的经历都代表不了实力。本次漫谈笔者会结合自己的经验、思考与总结来梳理,尽最大努力让这个话题起到抛砖引玉的作用,有兴趣的小伙伴在以后的日子里可共同进步。

时间管理,这个话题虽被大家熟知,却很少有人能自信地说 “自己能很好地管理时间”,笔者肯定也不例外。但本次漫谈会梳理下笔者自己在实操方面的尝试,思考与总结。

混合工作制,这个话题在疫情到来后被大家熟知,所以笔者这里也未必能分享出多么稀奇古怪的见解,但同样会结合实操给出自己的思考与总结。

漫谈健康

健康危机

鉴于笔者在大学阶段自由学习与探索的勇气可嘉,因此在经历两次 “校园互联网小作坊” 的锻炼后,毕业时选择的工作自然而然地成为了大学兴趣的延续。当然,也延续了很多大学阶段养成的对健康不利的习惯,作息无规律,仗着无知挥霍身体;无健康意识,不怎么锻炼身体,比如:

  • 很少吃早饭,经常吃早中饭或者午饭。除了工作、学习和娱乐勤快点,别的方面比较懒。
  • 长期熬夜,业余也喜欢学点东西,写点代码(大概率是走出校园后看到了人外有人,随着工作的深入,慢慢意识自身不足,想要提升一些技能)。

人无作息规律地熬一天不累,熬十天就累了,熬几年也就要坏事了。就这样经过长年累月地洗礼,健康也在疫情到来的第一年亮起了小红灯。当然,经过医生、家人等多方的协力帮助,以及自己的坚忍硬扛,最终康复了。期间虽然经历了比疫情放开后大部人转阳痛苦且印象深刻多倍的事情,但不是本文的重点,这里只留下笔者事后深刻反思的几个心得:

  • 不好的事情如果已经到来,懊悔等悲观情绪都没有任何用处,只能是想尽一切办法 “先治病救命,休养康复,然后再谈健康养生”。
  • 现代医疗虽能救死扶伤,但终究只是最后的止损方式。我们只有在日常注重预防保健、培养健康意识,注重养身修身,才有可能在这个社会上走的更远
  • 随着社会的发展,人被技术圈和社会圈包裹了起来,人与自然之间的距离也就越来越远了,自然人也就发生了异化(放眼望去,身边充满着太多类似笔者这种不够注重自身健康的人)。

健康知识学习

既然已经知晓自身问题且暂时止损了,自然要继续寻找更长远的解决方法。但方法不会凭空从天上掉下来的,它需要自己去寻找。笔者寻找方法的主要途径是:向专业或有经验的人咨询,向书本上的健康标准和知识找

1、向有专业或有经验的人咨询

由于笔者仍然保持着大学时代学会的“免费”思维,所以在接近康复出院的时候就开始跟医生、医护、病友等以聊天的方式咨询。众所周知,医生是经常传授病人一些健康知识的专业人员,医护是长年累月协助病人康复训练的专业人员,病友是那些与自身有着相同失误的人,向这几波人咨询更能习得比较正向的建议或小技巧。这一阶段积累了一些碎片化的健康意识,康复训练小技巧,以及戒掉不良生活习惯的注意点,也为后面的防治宜早、起居有常、适量运动等原则做了铺垫

2、学习健康标准和知识

健康其实是有标准、有依据的:

*《皇帝内经》中的标准:形与神俱,而终其天年,度百岁乃去。 *现代的健康标准:生理健康、心理健康、社会及自然环境适应良好,道德良好,并达到人之天年

如上所述,健康标准简单且易懂,但它不足以指导大部人去实践(除非是不世出的罕见人才,看到标准后就能推导出符合实际的解法)。所以笔者结合自身经历和健康知识,进一步采用 “分解” 和渐进明细的方式,学着梳理出一些健康原则

  • 合理饮食,日常饮食注重杂食多样,确保能量、营养、性味平衡。
  • 起居有常,尝试改变生活方式,健康有序,防戒不良生活习惯。
  • 适量运动,因人因时因地地制定出一套健身运动的项目,循序渐进、持之以恒地坚持下去,保持健康一点的形体,提高对环境的适应能力
  • 静养心神:
    • 给自己的生活做减法,宁可不合群,也要避免接触一些没有用还容易内耗的人和事。
    • 多读点书,尝试将书中的一些知识用到工作和生活中。
  • 防治宜早,吸取医生的建议,对亚健康状态及疾病坚持预防为主、早防早治

最后,为保证自己在理论意识上更注重身体健康,笔者还拜读了毛教员在青年时期写下的《体育之研究》。读过教员鞭辟入里的文章后,也更从理论上明白了:“体者,载知识之车而寓道德之舍也。体育一道,配德育与智育,而德智皆寄于体。”

3、健康实践

结合沉淀下来的原则,笔者花费了 1.5 年的时间,进行了两个方面的实践:

  • 工作日早上坚持做早饭,三餐慢慢靠向合理均衡。周末培养一些做饭的技能,借助烟火气来平衡下工作与生活。
  • 设定减肥目标,通过控制饮食、增强体育锻炼活动来实现体重的减少,提升自身健康。

随着时间的流逝,笔者现在也能自己做出 75 分的家常菜了(特别感谢很多师傅指导),且将下面这张图作为自己的日常饮食原则:

日常饮食原则示意图

关于健身减肥方面的实践,笔者这里只阐述下主要实践思路,实践细节可参考笔者之前写的一篇文章:减肥这件小事阶段随笔汇总

关键点 1:要考虑打工人工作比较忙碌的客观现实,将时间周期拉的长一点,目标拆解的细一点,可分阶段来。我们可以结合身边的很多例子来反思下,为什么那么多人喊着健身和减肥,真正成功的却不多呢?是耐力不够,还是客观环境不允许呢?笔者觉得两个原因都有,如果时间足够充裕,用这么多空闲时间来专注地完成一件正确的事情是没有大问题的。可现实生活中时间不会多么充裕,正是基于客观考虑,笔者才调整了实践思路:

  • 严格阶段:基于“管住嘴,迈开腿”的准则,每月减 5 斤,半年减 30 斤(已完成实现)
  • 巩固阶段:在 “管住嘴” 的基础上, 侧重 “迈开腿”的准则,加大运动量,提升自身身体素质(2022年执行良好)
  • 持续阶段:“每天锻炼一小时,快乐工作五十年”作为一个长期习惯来贯彻下去(希望 2023 年及以后的日子里可以继续做到)

关键点 2:实践过程中借助体脂秤的指标和数据统计,来定期分析自身数据,及时发现、纠正实操过程中的问题(这是笔者所在行业的惯用套路)。我们可以继续结合生活中的例子来看下,自己可有花些时间来反思、复盘自身存在的问题,然后调整行动呢?大部分应该都没有这么做。其实,笔者之前在这方面做的也特别少,后来随着工作和生活阅历的增加,慢慢注重这方面了。

4、健康小结

健康这个话题聊的差不多了,笔者在这个话题的最后简单分享两个自己学到的、且感觉比较实用、可广泛应用的迭代实践套路。有兴趣的朋友可去深入学习,如果还能在工作和生活中尝试起来,相信会取得更好的效果。

(1) 目标 -> 问题 -> 诊断 -> 方案 -> 践行 (套路来自《原则》这本书,该书在疫情前被笔者知晓后阅读,疫情后又翻了下,跟老朋友们也强烈推荐过)

目标到践行思维流程示意图

2、一个全面质量管理的思想基础和方法依据,循环式品质管理 PDCA,又称戴明环。由戴明提出,据说他十分热爱统计学,二战时曾将统计学应用于制造业,后来在日本传授质量控制,随着日本制造技术的逐渐发达,戴明也成为了比较著名的人物。

漫谈读书与学习

1、读书的目的

读书与学习的区别是什么呢?

在笔者看来,读书与学习是两码事,读书不等于学习,想要学习成长倒是可以多读点书。当然,有些人会把读书当成一种习惯和爱好,但笔者想继续问的是:习惯和爱好不是凭空来的,这种习惯和爱好背后的本质原因和动力又是什么呢?可能答案中多少会涵盖点 “想从读书中学到点东西”吧。

身处一个知识迭代速度和生活节奏都在加快的时代,“焦虑”与“迷茫”会时不时来敲门。因此,为应对社会生活中的焦虑与迷茫,人们选择了各种各样的方式,读书与学习自然也成为了一种常用的方式。笔者之前主动跟人交流的动力不大,所以读书与自我规划学习也是笔者的选择。

因此,如果有人问起 “你读书的目的是什么”,笔者会结合读过的《纳瓦尔宝典》这本书给出现在的答案:构建自己的心智模型。当然,如果在未来 N 年后有人再问起这个问题,笔者希望自己可以结合《穷查理宝典》这本书和查理芒格这个人给出比当前更深入和细化的答案(目前不能给这个答案,因为笔者自己构建的心智模型还不够好)。

2、读书的方式

随着时间的推移,笔者在读书方面体验了以下三种方式:

  • 自由式阅读,作为一种娱乐和爱好,比如阅读一些小说或自己觉得有趣的书。
  • 填鸭式阅读,为短时间学习、了解某个技能或东西,而选择的类似应试教育的方式。
  • 海绵式阅读,结合自身遇到的问题通过阅读学习来找答案,或阅读学习的过程基于书中的阐述来结合实际提炼出可指导实践的“套路”。

我们并不需要像辩论赛那样争论、PK 出上述哪种方式好,哪种方式不好。因为每种方式都有可能、或多或少助力我们成长。从实践效果来看,或许海绵式阅读是大多数人认可的方式,但有些采用自由式阅读的人真的在某些方面比采用海绵式阅读的人优秀;从时间维度来看,没有自由式、填鸭式的阅读,也很难直接转变为海绵式阅读。

在笔者看来,我们要关注的不是单选题,是“全都要”,要学会在不同的场景下切换到不同的阅读方式。即使是同一个人,也可根据不同的场景、不同的时间来切换到不同的阅读方式。所以,这里再做一个大胆又狂妄地的论断:为什么很多人读了很多的书,却依旧过不好这一生?因为纵使一个人满腹经纶,但 TA 没有清晰的认清问题本质,做不到学以致用与知行合一(书生误国也是这个道理)

3、读书工具选择与实践

大学时代,自接触互联网后,笔者依旧会买一些纸质书来看,但也坚信“信息化”是大势所趋,一个大学生在学好数学等基础学科的基础上,应该花些精力来学习了解下计算机技术。经历疫情这三年后,笔者再次坚信 “数字化” 是继 “全球化” 之后的大势所趋。

在阅读工具的选择方面笔者经历了以下几个阶段:

  • 纸质书 => 互联网信息
  • 纸质书 + 互联网信息 + Kindle 电子书
  • 纸质书 + 互联网信息 + 国内阅读APP(微信阅读、蜗牛读书等)

目前,“纸质书 + 微信阅读 + 互联网信息”成为了笔者最终选择的组合工具。在 2021 年底,笔者认为微信读书推出的年度报告产品已不足以总结自己在阅读方面的全貌,而且在闲暇的时候觉得自己在阅读方面不够系统化。因此,就创建了一个“阅读准则表格”,用于指导自己的阅读实践。表格依旧采用了分解与渐进明细的思路

  • 明确自己当前的定位,划分出四个“定位圆圈”,对每个圆圈进一步分解,从而划分出几个分类:
    • 工作技能圈,包括编程技术学习、职业发展学习、互联网行业与科技 三类
    • 生活短板补充圈,目前只包括身体健康与居家这一个大类
    • 个人能力补充圈,包括统计与数学、经济与财经知识学习 两类
    • 人文哲思调剂圈,包括哲思人生、历史读物、文学与小说 三类
  • 为每一个分类配备对应的阅读工具与实践原则
目标到践行思维流程示意图

4、小结

在上述“阅读准则表格”的协助下,阅读与学习这件小事在疫情期间也变得比之前明晰起来,且由于 2022 年频繁居家,节省下来的时间也就多了,笔者希望能继续向着“构建自己的心智模型”这个方向实践下去。

阅读与学习这个话题到此也基本漫谈完了,对这个话题或阅读工具感兴趣的朋友可以看下凯文凯利在几年前写的《必然》这本书(笔者坚信,微信读书这个产品在发展的过程中,其团队中肯定有人读过这本书)。当然,如果不觉得笔者在做广告,也可看下笔者毕业前留下的两篇相关文章:

漫谈时间管理

1、时间不够用问题

时间是我们在这个世界上最优质和公平的资产,可它也能是让人在其面前最无奈。因此,如何利用、管理自己的时间也成为了每个人的必修课。

身处时间碎片化、角色多元化的社会,我们的时间变得越来越碎,每个角色背后也都有一堆琐碎的事不断涌进来。很多人觉得时间管理、时间不够用是老生长谈的话题,身边充斥着讲这个方面的人和书,但没有多少实际的用处。笔者曾试图分析过这个现象,最终总结出来的主要原因有 3 个:

  • 即便读遍全天下关于时间的书,遍访了全天下有相关经验的人。只要不去行动,就是白费功夫,与其这般努力,不如躺平。
  • 每个人遇到的问题和设定的目标不同,采用的处理方式自然也不同,有些人的总结未必适合自己,拿来借鉴也未必能起到多少效果。
  • 调整后的效果需要时间来证明,在没有看到效果前大多数人都容易放弃。即使看到了短期的效果,只要解决了当前棘手的问题,很少有人会选择继续保持。

刚好在疫情这三年,笔者有机会基于遇到的问题,在这方面尝试改善了下。重新拥有健康的身体后,有几个难题摆在了笔者面前:

  • 随着工作年限和阅历的增加,需要依赖发现、分析后才能清晰的问题和事务相较之前占比多了,压力也随之上升,时间变得明显不够用。
  • 合理的饮食、健康的身体、比较有规律的作息被列为头等大事,有些实践需要时间落地,有些改变需要依赖时间才能有效果
  • 重新拥有健康的身体后,笔者不但想在工作方面多做些正确的事,还想在为数不多的业余时间推动“读书与学习”这件小事,通过构建稳健的心智模型来应对不稳定的大环境。

笔者相信,有过类似经历的人肯定能更明白其中的矛盾与酸楚,面对很多件抢占时间资源的事务,又不得不逼着自己想方设法找到解决办法,真的蛮有压力的。当然,躺平和摆烂是一种方式,可人躺久了也会不自觉地想要尝试突破一下局限,与其让问题与环境倒逼自己改变,不如自己思变。

2、分阶段调整时间管理

第一阶段:疯狂做减法,专注重要的事

不推荐的严格时间表,形如 7:20-7:50 起床、洗漱;7:50-8:30 锻炼身体;8:20-8:50: 吃早饭...... 这样简单地把一天时间分为线段的作息日程表.

(1)丢弃不靠谱的严格时间表,为自己减压

  • 普通人勤奋些是对的,但逼着自己执行“严格时间表”只会让自己变得更加焦虑。
  • 越是努力地执行严格的时间表,就越体会到挫败感、焦虑感,我们不该用理想化的方法要求自己。

(2)重新理解与应用“时间四象限”

  • 使用清单 List 来管理事务。基于事务的重要程度,刻意忽略不重要的事,即紧急不重要和不紧急不重要的事务(干掉紧急不重要的事务有点过于暴力,也容易被别人误解。但由于笔者在第一阶段还处于救火阶段,会比较狠)
  • 错开大众上班高峰时间,上午给自己预留 2.5 小时的无干扰时间。半小时用于健身,1.5 小时用于处理重要不紧急的事
  • 正常工作时间处理重要且紧急的事,尽最大努力将重要且紧急的事务快速干掉,并尽最大努力避免重要不紧急的事务演变为重要且紧急的事务

(3)重新调整周末时间

  • 周六无重要事不约不逛:周六上午预留网上冲浪和阅读文章充电时间,周六下午预留健身时间
  • 周日上午随意,下午与晚上预留出阅读与学习时间

在这种“快刀斩乱麻”式的操作下,近小半年后笔者发现自己在工作方面不那么像四处灭火的“捉急状态”了。健康、读书与学习两方面的习惯得以保住,虽然体重变化存在小范围波动,但健身减肥的胜利果实也被巩固住了。

第二阶段:升级清单管理

在这个阶段,鉴于笔者看了一些时间管理相关的书,比如《哈佛时间管理课》、《哪里没有时间》等书。结合自己在第一阶段的问题,决定在第二阶段对清单进行改善。清单是个好东西,能用来梳理、分析自己的时间利用是否符合预期,有助于使用者不断思考如何将日常任务做的更好。列出来清单后能降低甚至避免焦虑,因为在执行时不是从大脑中提取,而是从清单中读取

在升级清单管理前,笔者只有一个主要用来管理工作相关事务的清单,业余时间是没有清单管理的。但随着健康与业余自我充电相关的投入加大,升级清单管理有了一定的必要条件。升级清单管理的主要思路依旧运用了分解与渐进明细,将清单分为:碎片清单、工作日-日常清单、周末-日常清单三类

  • 碎片清单:

  • 作为大脑的缓冲池而存在,收集大脑基于客观因素或主观思绪而产生的事务(不区分优先级,不区分事务大小)。把事务丢进碎片清单的目的是要在其他合适的时间再去思考它、处理它,同时保持当下时间的专注。

  • 碎片清单是另外两个清单的主要输入,建立碎片清单,需要养成每天把碎片及时装进日常清单的习惯

  • 删除长时间没有被迁移且渐进明细到日常清单的事务

  • 日常清单(工作日):

  • 用于收集工作日的日常事务,其输入主要来自碎片清单或临时加进来的重要且紧急事务。

  • 日常清单收集事务不能照搬碎片清单,而是碎片清单的再次分解与渐进明细。进入日常清单的任务必须有子任务或关键步骤,且基于再次分解的结论标出预估耗时。

  • 日常清单(周末):

  • 用于收集周末的日常事务,其输入主要来自碎片清单,优先对健康、读书与学习相关的事务;次优先排日常起居、购物等事务。

  • 日常清单收集事务依旧不能照搬碎片清单,而是再次分解和渐进明细碎片清单。进入周末日常清单的任务必须包含子任务和关键步骤,且基于再次分解的结论标出预估耗时。

就这样,升级后的三个清单进一步优化了笔者的时间。持续几个月后,笔者也慢慢变得敢于决断,哪怕决断错了也要干。因为改变说起来容易做起来难,如果在做的过程中还惧怕错了,那只能是被束缚得各种不适,改变也就很可能夭折。

第三阶段:刻意统计并调整时间

经历了前两个阶段的改变,某天,笔者在娱乐的时候刚好看到有个 UP 主在讲 “进入人工智能时代后,人要怎么做才能既不失业,还能活的不错”。鉴于笔者统计分析的意识已经建立起来(统计学与数学知识应用依旧存在短板),所以笔者冒出了一个想法:UP 主列出的这个东西可能就是当下自己没有梳理过的时间分配准则。

废话不多说,这里直接贴出 UP 主给出的时间消耗建议,也是笔者在第三阶段的时间统计与调整准则,具体如下图:

当前时间消耗现状时间调整建议

因此,笔者结合准则和自己在第一、二阶段沉淀下来的时间分配情况,整出了一个粗糙的时间统计。整个时间统计采用了由局部到整体的方式:

优先统计工作日早上至午休这段时间的分配,基于统计情况调整时间;然后统计并调整午休、下午和晚上等时间的分配 以此类推,次优统计并调整周末时间的分配(为避免自己变成有强迫症的人,周末调整没有工作日拆解的细,为自己预留一些挥霍的自由) 笔者这里给出统计与调整示意如下:

工作日早上至上班前时间统计与调整午休时间统计与调整

至此,刻意统计与调整阶段的阶段也漫谈完了。笔者在这一阶段还挺觉得有成就感的,因为终于有机会在工作之外初级又粗糙地运用了统计学分析,很好地鼓励自己在统计学分析方面继续加大投入力度。

漫谈混合工作制

书接上文,如果说时间管理其实就是对时间这一个维度进行切割,然后把工作与生活中的事务填充进去,那么混合工作制就是基于物理空间和时间这两个维度来切割平面,然后把工作与生活中的事务填充进去。因此,笔者要漫谈的最后一个话题就是混合工作制。

这里所谓的“混合工作制”,对打工人来讲其实就是一部分时间在办公室工作,一部分时间居家远程办公。如果没有疫情,这种方式在国内还不会被大范围运用,虽然互联网行业一直有弹性工作制,但国内很少有企业让员工能持续几天甚至一个月居家办公。笔者认为,疫情只是更显象化了这种方式,因为在疫情出现之前,国外真的有公司在实践,而且国外的自由职业者是比国内多出很多的。

这里不是要展开争论,而是想抛出问题:我们虽然在疫情期间熟悉了这种工作模式,但我们可觉得自己能很好地处理这种模式呢?疫情总会过去的,在疫情后我们要不要继续实践混合工作制呢?

1、适应混合工作制

如上所述,混合工作制是基于空间与时间两个维度来安排要处理的事务,所以适应混合工作制,就是基于二维平面来安排好自己的工作与生活,试着把日子过得顺畅。

笔者不敢说自己在疫情期间很好地适应了混合工作制,因为在疫情早期居家办公真的很累,工作与生活没有了界限,有时觉得自己除了睡觉就一直在工作,回到公司上班的时候就觉得特别爽。但随着疫情的多次反复,也就有了一次次地尝试改变自己来适应居家办公,拥抱混合工作制。在这种客观条件的倒逼下,终究还是适应了,也实现了向内思变。

混合工作制最大的痛点是解决居家办公的苦恼,善用居家办公的优势,甚至把居家办公的经验适当地用在办公室工作中,从而实现真正的混合工作。在居家办公的时候,笔者觉得有以下几个要点需要注意:

  • 居家办公时要强调效果和效率。效果源于对重要业务或任务的识别,效率源于专注地运用工具做正确的事
  • 划定出专门的办公空间,有效区分起居空间与办公区间
  • 基于对重要业务和任务的识别,使用比较清晰的清单和日程表来协助重要事务的推动。笔者这里依旧沿用了时间管理中提到的三个清单:碎片清单、日常任务清单(工作日)、日常任务清单(周末)。
  • 善用远程办公工具,电话会议室一种重要的沟通协作方式,开好电话会议能更明确重点,提升效率。

当从居家办公切换到办公室工作环境中,除了不用划定专门的办公空间,很多经验都是可以继续沿用的。只有在碰到特别重要紧急的事情或者娱乐的事情才需要与同事当面沟通交流,这在一定程度上可以提升个人工作效率,去尝试摆脱“无头苍蝇式的忙碌”。

2、延伸思考混合工作制

不知道细心的朋友有没有发现,在疫情到来之前,我们大多接触到一些具有数字化特性的 C 端消费品(如:体脂秤具有称 + APP数据统计 + 虚拟社区;智能手表具有手表+数据收集与分析),只在办公时间或业余遇到紧急问题时才使用远程办公工具来协作,而疫情到来后我们更加主动拥抱、主动适应远程办公工具等数字化、虚拟化产品了。这在一定程度上也表明了:

  • 大家在紧锣密鼓地创造产品和服务的数字属性,并以文化、社群的方式加以体现,借助产品的数字化属性,甚至可以把需求方连成网络,从而基于虚拟网络提升服务市场的效率。
  • 跨城市、跨地域地沟通协作已经成为了常态,地域化的问题在“数字化”趋势下能得到缓解,跨城市、跨地域地高效协作更容易被接受了

那么问题来了,一个普通的打工人去延伸思考这些东西有什么用处呢?这是不是类似刚入职的员工操着 CEO 的心,或者说一个普通百姓,业余闲着没事操着治理国家的心呢?笔者个人认为:都不是。而是想基于以上延伸思考引出一个新的业余尝试:业余跨地域协作

这也关系到疫情后要不要继续实践混合工作制?不在其位就不谋其政,笔者这里不去谈国家或公司会不会在疫情后落地混合工作制,比如“3+2”或“4+1”工作制,因为笔者想延伸地是:如何在业余更大范围地尝试、实践混合工作制

遥想当年学生时代,一群比较合得来的学生仅仅凭借几成勇气就在业余时间集中到一个物理空间内去捣鼓一些东西,也因为这样的折腾让我们顺利走向了工作岗位。走向工作岗位后,时不时会在虚拟社群中一起侃大山,聊聊工作与生活,吐槽一下自己的改变,但最终收尾的时候多少都还流露出想要搞些有点创造力或者正能量的事情。

所以笔者认为,在上述延伸思考下,其实业余是可以协作的,主要原因有以下三点:

  • 基于远程工具协作已经被运用,人们已在疫情中适应了远程办公,跨城市、跨地域的阻碍因素在降低。
  • 云服务已经发展得足够简单,很多基础设施已足够便捷(不再是当年在实验室或研究所里拿着裸机装软件的年代了)。
  • 数字化是趋势,轻量、小而美、短期可完成的项目是可以协作完成的(虽然雇佣关系在一定时期内仍然是主导,但自由协作关系会越来越多)。

其实最主要的问题还是在于有没有共同的诉求,能不能拿出时间来捣鼓,有没有人能组织且管理好这种自由的远程协作团伙,并合理分配项目收益,实现大家的共同诉求。在疫情中后期,笔者业余时间没少在由几个老伙计组成的社群中“传销”上述延伸思考,疫情结束后也可能会继续尝试下去。

写在最后

行文至此,疫情这三年向内思变的复盘总结基本梳理完成了,不管文章最终的水平怎么样,依旧把自己的“闭关”经历沉淀下来了。

在文章的最后,顺便聊一聊思变。经历了疫情这三年,笔者认为思变不能只“打鸡血”或者 “立Flag”,思变是要结合客观事实和自身诉求来落地的。如果我们宽泛地谈改变,然后逼着自己变,挺内耗的。因为这种改变容易失败,失败后我们又不太容易原谅自己。可如果我们慢慢固化了,一旦大环境发生变化,我们又只能被动地任由社会教育。所以,改变之前需要多思考,需要学习一些知识套路尝试着实践。

笔者在落地上述几个话题的改变时,有些侧重实践为主,基于遇到的问题寻找解决方法;有些则以读书学习、与别人沟通交流的方式推动;还有些以业余娱乐的方式观察发现来推动,但最终实践的时候其实都初窥门径地用到了一些通识且有点哲学味道的“套路”:

  • 分解与渐进明细,西方还原论的部分应用,“万物皆数”,对自然认知不断细化,尝试拆解分析出影响事物的本质原因。
  • 系统论,即围绕人和社会自身来改善多个影响因素,从而使自己更好地适应社会。
  • 知行合一,知是行的头脑,行是知的落实;知是行的开始,行是知的完成。

最后,引用一下笔者早年看过的小说作为结束,其作者萧鼎老师说过“如果没有曾经的一段经历,自己写不出《诛仙》这样的作品”。虽然笔者与萧鼎老师相差甚远,也想在文章的最后说下:“如果没有疫情这三年的经历和刻意的向内思变,笔者也写不出一篇将多个话题串联起来的长文”。

之所以还记得《诛仙》这本小说,倒不是因为小说阐述了“天地不仁,以万物为刍狗”的法则,而是因为它也讲述了一个资质普通又平凡的少年,虽不醉心于修真,但真的凭借着坚韧、阅历一步步身兼“佛道魔”三种功法,这种特质在经济下行的大环境下可能更值得学习。

时段可选项
早餐玉米/红薯 + 鸡蛋 + 低脂牛奶燕麦
玉米/红薯 + 鸡蛋羹 + 低脂牛奶燕麦
周末早饭玉米/红薯/豆腐 + 鸡蛋羹 + 低脂牛奶燕麦
午餐/晚餐素菜 + 小份轻食(含少部分主食)
鱼 + 素菜(不吃主食/半份糙米饭)
轻食一份
周末午餐/晚饭尝试使用鸡胸肉、扇贝肉、胡萝卜、西蓝花、玉米等食材搭配做一道简版轻食 + 燕麦/少量水饺
使用三文鱼、巴沙鱼片、虾仁等食材做一道菜或汤 + 燕麦/少量水饺
使用青椒、青菜、黄瓜、木耳、鸡蛋等食材做一到两道家常菜 + 燕麦/少量水饺

时段可选项
早餐玉米/红薯 + 鸡蛋 + 低脂牛奶燕麦
玉米/红薯 + 鸡蛋羹 + 低脂牛奶燕麦
周末早饭玉米/红薯/豆腐 + 鸡蛋羹 + 低脂牛奶燕麦
午餐/晚餐素菜 + 小份轻食(含少部分主食)
鱼 + 素菜(不吃主食/半份糙米饭)
轻食一份
周末午餐/晚饭尝试使用鸡胸肉、扇贝肉、胡萝卜、西蓝花、玉米等食材搭配做一道简版轻食 + 燕麦/少量水饺
使用三文鱼、巴沙鱼片、虾仁等食材做一道菜或汤 + 燕麦/少量水饺
使用青椒、青菜、黄瓜、木耳、鸡蛋等食材做一到两道家常菜 + 燕麦/少量水饺

维度旧全栈 (Legacy Full Stack)新全栈 (AI-Native Full Stack)
关注点语言、框架、语法 (Tools)问题、场景、价值 (Value)
核心能力纯手工编码 (Coding)架构设计、Prompt 工程、代码审查 (Architecting)
交付边界前端页面 + 后端接口需求洞察 \rightarrow 产品设计 \rightarrow 落地运营
AI 的角色辅助工具 (Copilot)核心引擎与分身 (Co-founder)

能力维度核心要点
架构决策当代码生成变得廉价,架构决策变得昂贵。是选择单体还是微服务?是 SQL 还是 NoSQL?这些决定了系统的上限。
代码审计与验收你从"写作者"变成了"编辑"和"审计员",当 AI 帮你写完 80% 的代码后,你是否有能力调试剩下那 20% 最隐蔽的逻辑漏洞?
DevOps 与交付工程力不再止步于 localhost,它意味着你能利用 Docker、K8s、CI/CD 乃至 Serverless,将代码安全、稳定地送达线上,并将产品交付到用户手中。

维度核心要点
同理心 (Empathy)脱离"技术自嗨",回归"用户感知"。工程师常沉迷于后端架构的完美重构(High Effort),却忽略前端模糊的报错提示(Low Effort)正让用户抓狂。
具备同理心的全栈懂得计算体验 ROI:优先解决阻碍用户达成目标的"可见障碍",而非盲目追求技术实现的"隐性完美"。
MVP 思维 (ROI 意识)精准识别"低成本高价值"的功能。在 AI 辅助下,快速构建最小可行性产品(MVP)验证假设,而非陷入过度设计的泥潭。
业务闭环不仅把功能做出来,还要考虑数据如何回流、用户如何增长。

能力维度核心要点
技能树的补全利用 Cursor/Claude Code 等 AI 编程与 Agentic 工具,后端工程师可以写出像素级完美的前端 CSS,前端工程师可以编写复杂的 SQL 分析语句。AI 抹平了技术栈之间的专业门槛
上下文工程学会如何向 AI 提供高质量的上下文(Context),让 AI 理解你的项目结构、业务逻辑和编码规范,从而生成生产级代码。
时间压缩将从"Idea"到"Demo"的时间从数周压缩到数小时。这让"超级个体(Solo Maker)"成为可能——一个人就是一支队伍。

维度旧全栈 (Legacy Full Stack)新全栈 (AI-Native Full Stack)
关注点语言、框架、语法 (Tools)问题、场景、价值 (Value)
核心能力纯手工编码 (Coding)架构设计、Prompt 工程、代码审查 (Architecting)
交付边界前端页面 + 后端接口需求洞察 \rightarrow 产品设计 \rightarrow 落地运营
AI 的角色辅助工具 (Copilot)核心引擎与分身 (Co-founder)

能力维度核心要点
架构决策当代码生成变得廉价,架构决策变得昂贵。是选择单体还是微服务?是 SQL 还是 NoSQL?这些决定了系统的上限。
代码审计与验收你从"写作者"变成了"编辑"和"审计员",当 AI 帮你写完 80% 的代码后,你是否有能力调试剩下那 20% 最隐蔽的逻辑漏洞?
DevOps 与交付工程力不再止步于 localhost,它意味着你能利用 Docker、K8s、CI/CD 乃至 Serverless,将代码安全、稳定地送达线上,并将产品交付到用户手中。

维度核心要点
同理心 (Empathy)脱离"技术自嗨",回归"用户感知"。工程师常沉迷于后端架构的完美重构(High Effort),却忽略前端模糊的报错提示(Low Effort)正让用户抓狂。
具备同理心的全栈懂得计算体验 ROI:优先解决阻碍用户达成目标的"可见障碍",而非盲目追求技术实现的"隐性完美"。
MVP 思维 (ROI 意识)精准识别"低成本高价值"的功能。在 AI 辅助下,快速构建最小可行性产品(MVP)验证假设,而非陷入过度设计的泥潭。
业务闭环不仅把功能做出来,还要考虑数据如何回流、用户如何增长。

能力维度核心要点
技能树的补全利用 Cursor/Claude Code 等 AI 编程与 Agentic 工具,后端工程师可以写出像素级完美的前端 CSS,前端工程师可以编写复杂的 SQL 分析语句。AI 抹平了技术栈之间的专业门槛
上下文工程学会如何向 AI 提供高质量的上下文(Context),让 AI 理解你的项目结构、业务逻辑和编码规范,从而生成生产级代码。
时间压缩将从"Idea"到"Demo"的时间从数周压缩到数小时。这让"超级个体(Solo Maker)"成为可能——一个人就是一支队伍。

场景配置方式
允许运行测试、构建命令"Bash": ["npm run test", "npm run build"]
禁止删除操作、危险命令"Bash": ["rm -rf *", "mkfs *"]
禁止读取敏感文件"Read": [".env", "secrets/**"]
限制大文件处理"maxLinesPerFile": 5000

场景配置方式
允许运行测试、构建命令"Bash": ["npm run test", "npm run build"]
禁止删除操作、危险命令"Bash": ["rm -rf *", "mkfs *"]
禁止读取敏感文件"Read": [".env", "secrets/**"]
限制大文件处理"maxLinesPerFile": 5000

范式一句话描述你的角色
Vibe Coding用自然语言描述需求,AI 直接生成可运行的完整项目描述需求,让 AI 写代码(新手友好)
AI IDE在编辑器里引入 AI 辅助,边写边补全、边问边改主导开发,让 AI 做副驾驶(更多控制)
Agentic EngineeringAI 作为"自主工程师",接收任务后自动规划并执行全套代码工作流提任务、审结果,让 AI 执行(极致提效)

工具核心定位输出形态技术栈最适场景上手门槛
Bolt.new应用生成完整 Web 应用React快速生成可部署全栈 Demo
v0UI 组件生成React 组件代码片段React + Tailwind + shadcn/ui前端界面快速出图,嵌入 Next.js 项目
Lovable零代码全栈建站含数据库的完整 Web 产品前端 + Supabase 后端非技术人员独立做出可上线产品
Replit Agent云端多语言全栈多语言完整项目Python / JS / Go 等多语言在线学编程、非 React 技术栈原型⭐⭐
Same.dev网站 UI 克隆前端页面还原代码前端(URL → 代码)参考竞品设计、快速获取建站初始模板
秒哒 Miaoda无代码应用搭建Web 应用 / 微信小程序Web + 小程序双端中文一句话出原型,尤其适合小程序

工具核心特色Agent 能力数据安全费用最适场景
Cursor多文件上下文感知补全 + Cmd+K 行内生成强 — 多文件规划 + 终端执行一般(代码发往云端)免费额度 + 订阅日常功能开发、多文件重构、代码 Review
Trae IDE国产免费 + 本地优先数据安全强 — 对标 Cursor,含在线 SOLO 版本地优先 + 隐私模式免费有合规需求的国内团队、个人日常开发
WindsurfCascade 前瞻规划 + Tab 一键心流强 — 前瞻 10 步、自动串联多步任务一般(代码发往云端)免费额度 + 订阅复杂多步任务自动执行、追求"心流"开发体验

工具交互方式核心优势适场景典型任务示例费用
Claude Code终端 CLI与本地代码库深度结合,可执行 Shell / Git,多文件读写全自动个人或小团队的重构、批量 Bug 修复、自动提交等完整工程周期claude → "重构 auth 模块,保持接口不变,补齐单测后提交"Claude Pro / API 按量计费
opencode终端 CLI完全开源,内置免费模型,支持接入任意 LLM(含国内模型)无官方订阅、希望接入 DeepSeek / 通义等低成本模型的场景opencode → 配置自定义模型 → 同上工程任务取决于所接模型
DevinWeb 界面高度自主,可持续跟进 GitHub Issue,全链路无人值守有明确 Issue 驱动的团队研发流,AI 自动完成功能开发并提 PR粘贴 Issue URL → 指定验收标准 → 审查 PR付费(企业为主)
OpenHandsWeb / API开源自托管,支持多 LLM,可定制扩展 Agentic 流程企业私有化部署,团队共享 AI 工程师能力,保障数据安全Docker 启动 → 接入 DeepSeek → 批量分配修复任务开源免费,按模型计费
Augment CodeIDE 插件深度索引百万行级代码库,上下文感知精准大型企业存量代码库的日常开发、重构与工程管理圈选模块 → "梳理调用链并生成文档"免费额度 + 订阅

范式一句话描述你的角色
Vibe Coding用自然语言描述需求,AI 直接生成可运行的完整项目描述需求,让 AI 写代码(新手友好)
AI IDE在编辑器里引入 AI 辅助,边写边补全、边问边改主导开发,让 AI 做副驾驶(更多控制)
Agentic EngineeringAI 作为"自主工程师",接收任务后自动规划并执行全套代码工作流提任务、审结果,让 AI 执行(极致提效)

工具核心定位输出形态技术栈最适场景上手门槛
Bolt.new应用生成完整 Web 应用React快速生成可部署全栈 Demo
v0UI 组件生成React 组件代码片段React + Tailwind + shadcn/ui前端界面快速出图,嵌入 Next.js 项目
Lovable零代码全栈建站含数据库的完整 Web 产品前端 + Supabase 后端非技术人员独立做出可上线产品
Replit Agent云端多语言全栈多语言完整项目Python / JS / Go 等多语言在线学编程、非 React 技术栈原型⭐⭐
Same.dev网站 UI 克隆前端页面还原代码前端(URL → 代码)参考竞品设计、快速获取建站初始模板
秒哒 Miaoda无代码应用搭建Web 应用 / 微信小程序Web + 小程序双端中文一句话出原型,尤其适合小程序

工具核心特色Agent 能力数据安全费用最适场景
Cursor多文件上下文感知补全 + Cmd+K 行内生成强 — 多文件规划 + 终端执行一般(代码发往云端)免费额度 + 订阅日常功能开发、多文件重构、代码 Review
Trae IDE国产免费 + 本地优先数据安全强 — 对标 Cursor,含在线 SOLO 版本地优先 + 隐私模式免费有合规需求的国内团队、个人日常开发
WindsurfCascade 前瞻规划 + Tab 一键心流强 — 前瞻 10 步、自动串联多步任务一般(代码发往云端)免费额度 + 订阅复杂多步任务自动执行、追求"心流"开发体验

工具交互方式核心优势适场景典型任务示例费用
Claude Code终端 CLI与本地代码库深度结合,可执行 Shell / Git,多文件读写全自动个人或小团队的重构、批量 Bug 修复、自动提交等完整工程周期claude → "重构 auth 模块,保持接口不变,补齐单测后提交"Claude Pro / API 按量计费
opencode终端 CLI完全开源,内置免费模型,支持接入任意 LLM(含国内模型)无官方订阅、希望接入 DeepSeek / 通义等低成本模型的场景opencode → 配置自定义模型 → 同上工程任务取决于所接模型
DevinWeb 界面高度自主,可持续跟进 GitHub Issue,全链路无人值守有明确 Issue 驱动的团队研发流,AI 自动完成功能开发并提 PR粘贴 Issue URL → 指定验收标准 → 审查 PR付费(企业为主)
OpenHandsWeb / API开源自托管,支持多 LLM,可定制扩展 Agentic 流程企业私有化部署,团队共享 AI 工程师能力,保障数据安全Docker 启动 → 接入 DeepSeek → 批量分配修复任务开源免费,按模型计费
Augment CodeIDE 插件深度索引百万行级代码库,上下文感知精准大型企业存量代码库的日常开发、重构与工程管理圈选模块 → "梳理调用链并生成文档"免费额度 + 订阅