Ervin

真正的强者是认清了生活的本质,并且去热爱他的人。


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

AI 与程序员:被改变的不是职业,而是价值重心

发表于 2026-03-15 | 分类于 技术
字数统计: 2.7k | 阅读时长 ≈ 9

这两年,关于”AI 会不会取代程序员”的讨论几乎已经被说烂了。每隔一段时间,总会有人抛出一个更刺激的判断:程序员将被大规模替代,写代码会像流水线一样被模型接管,未来只需要少数人发号施令,大多数人都会被清理出场。

这种说法听起来很有冲击力,但我越来越觉得,它真正制造的不是洞见,而是情绪。因为它把一个复杂问题,粗暴地压缩成了一个耸动结论:AI 会写代码,所以程序员要完。

可问题是,程序员如果只是”写代码的人”,那这个职业从一开始就被理解错了。

代码从来都不是软件开发最难的部分。代码只是最后被看见的部分,是冰山露出水面的那一截。真正决定一个系统质量的,往往不是”这一段代码怎么写”,而是”为什么要写这段代码””它解决的到底是不是真问题””它和旧系统如何衔接””它的代价由谁承担””出事之后谁来收拾”。如果把程序员理解成一个高级打字员,那 AI 确实已经足够危险;但如果承认程序员的核心工作从来都包含理解、拆解、权衡、取舍和负责,那问题就完全不是一个层面了。

AI 最擅长的事情,是把模式化的东西快速吐出来。样板代码、接口封装、测试用例、SQL 语句、重构建议、文档初稿,这些它都越来越能干,而且干得越来越快。对很多人来说,这种速度足够震撼,于是他们自然会得出一个结论:既然 AI 已经能生成这么多东西,那程序员的价值是不是正在消失?

我反而觉得,恰恰是因为 AI 能生成这么多东西,程序员真正的价值才第一次被逼着暴露出来。

过去,很多人可以把”我写得快”误认为”我很重要”;把”我能堆出功能”误认为”我有不可替代性”;把”我熟练掌握某个框架”误认为”我拥有长期竞争力”。但 AI 一进来,这些建立在局部效率上的优越感,很快就开始松动。因为模型会补全,会仿写,会迁移,会总结,很多过去靠时间积累起来的机械优势,现在正在被迅速稀释。

这不是程序员价值的消失,这是程序员价值的去泡沫。

说得更直接一点,AI 不是在摧毁程序员,而是在摧毁那些原本就不够坚固的职业幻觉。它让人不得不面对一个很不舒服的事实:有些人所谓的”技术能力”,本质上只是对熟悉模式的重复劳动;有些人所谓的”经验”,本质上只是对旧答案的路径依赖;有些人所谓的”不可替代”,本质上只是组织还没来得及优化掉他。

所以我一直不太认同”AI 会不会替代程序员”这种问法。更值得追问的是:AI 会优先替代程序员身上的哪一部分能力,或者说,哪一部分原本就不配被当成核心能力。

在我看来,最先被压缩的,一定是那些模板化、低判断、低责任的工作内容。只会 CRUD、不会抽象问题的人,只会拼装方案、不会理解约束的人,只会复制答案、不会验证答案的人,都会越来越被动。过去这些能力还能勉强构成一种岗位价值,因为企业需要有人把脏活累活做完;但当 AI 可以以更低成本、更高速度完成同类输出时,组织一定会反过来问:既然这些东西模型也能做,你留下来的理由是什么?

这个问题很残酷,但也很真实。

很多人谈 AI 对程序员的影响时,喜欢把焦点放在”编码效率提升”上。我觉得这只是表层。更深的变化是:AI 正在强迫程序员从”产出导向”转向”判断导向”。过去大家默认一个程序员的贡献是他写了多少代码,解决了多少 ticket,完成了多少需求;以后真正重要的,可能是他是否能判断哪些需求值得做,哪些方案只是看上去能跑,哪些技术债不能再拖,哪些局部优化会在未来变成系统性代价。

这类能力,才是程序员真正稀缺的部分。

因为生成可以规模化,判断不行。生成可以被训练,责任不行。生成可以外包给模型,后果不行。

这一点非常关键。AI 可以给建议,可以给方案,可以给一段看起来很像那么回事的实现,但它并不真正承担结果。线上事故不会因为”这是模型写的”就减轻损失,架构错误不会因为”AI 当时建议这样做”就自动免责,安全漏洞也不会因为”提示词没写清楚”就不造成后果。最终站在系统前面,面对用户、业务、团队和损失的人,仍然是人。

也就是说,AI 可以参与软件生产,但它并没有真正进入责任链条。只要责任还在人,程序员这个角色就不会消失,只会重新分层。

而这种重新分层,恰恰是很多人还没有真正意识到的地方。

未来程序员之间的差距,可能不再主要体现为”谁更会写代码”,而是”谁更能定义问题”。一个人能不能把模糊的需求翻译成清晰的结构,能不能识别伪问题,能不能在业务压力、技术约束和长期维护之间做出合理取舍,能不能在 AI 给出十个看似都对的答案时筛掉九个错误方向,这些事情会比”手写能力”本身重要得多。

换句话说,AI 正在缩小”会不会写”的差距,却在放大”会不会想”的差距。当前一些公开讨论也普遍把 AI 对程序员的影响,归结为效率提升与角色变化,而不是简单的职业消失。

这件事对新人尤其残酷。因为 AI 对新手确实很友好,它能解释代码,补全模板,给出路径,降低门槛,让很多原本要靠漫长试错才能摸到的东西变得触手可及。但问题也正出在这里:门槛降低不等于能力自动增长。一个人如果越来越习惯于直接索取答案,而不是亲自经历拆问题、查文档、做验证、承受错误、修正认知的过程,那他获得的往往不是能力,而是一种被效率包装过的幻觉。

这种幻觉最危险的地方在于,它会让人以为自己已经理解了。可一旦离开提示词、离开现成上下文、离开模型给你的默认路径,很多所谓的”掌握”会立刻露出空心的部分。表面上看,AI 帮助新手跑得更快;实际上,它也可能让一些人更早失去独立思考的耐心。

所以我越来越觉得,AI 时代里最稀缺的,不是会不会用 AI,而是有没有能力不被 AI 毁掉思考习惯。

会用工具当然重要,但这只是起点,不是终点。真正拉开差距的,是你把 AI 当成杠杆,还是把它当成拐杖。杠杆会放大你的能力,拐杖会掩盖你的虚弱。一个判断力强的人,用 AI 会更快、更稳、更敢于探索;一个判断力弱的人,用 AI 只会更快地产生错误,而且常常错得更有自信。公开资料也反复强调,AI 在编程场景里仍需要人工监督、批判性思考和最终校验。

这也是为什么我不认为未来最优秀的程序员,会是那些最抗拒 AI 的人。恰恰相反,真正有竞争力的人,往往会非常积极地使用 AI。但他们使用 AI 的方式,不是把自己交出去,而是把 AI 纳入自己的判断体系里。他们会拿 AI 来做草稿、做探索、做加速、做对照、做重构建议,但不会把”模型说了什么”直接等同于”正确答案”。他们知道什么时候该信,什么时候该怀疑,什么时候该让 AI 参与,什么时候必须亲自下场。

说到底,程序员的价值重心正在发生转移:从代码生产,转向问题定义;从局部实现,转向系统理解;从执行命令,转向承担结果。

这件事听上去像一种压力,但我反而觉得,它也是一次行业清醒。程序员这个职业过去有太多不必要的神话:神化智力门槛,神化技术栈,神化”手写一切”的纯粹感,神化某种对代码的工匠式崇拜。AI 的出现,本质上是在戳破这些神话。它逼着我们承认,代码不是目的,系统才是;实现不是价值,解决问题才是;写得多不是本事,想得清楚才是。

所以如果今天再问我,AI 和程序员到底是什么关系,我的答案会比”取代”或者”协作”更锋利一些:AI 不是来消灭程序员的,它是来清算低质量程序员工作方式的。

它清算的是那种没有抽象能力却自以为资深的熟练工,清算的是那种没有判断能力却沉迷产出的忙碌感,清算的是那种没有责任意识却把模型结果当挡箭牌的轻浮态度。它不会自动带来更好的软件,但它会更快地区分出,谁在真正思考,谁只是在重复。

从这个意义上说,被改变的不是程序员这个职业本身,而是这个职业过去赖以维持体面的一部分旧逻辑。以后真正值钱的,不会是”我比 AI 更会写代码”,而是”我比 AI 更知道什么问题值得解决,什么方案值得相信,什么后果值得承担”。

而这,可能才是程序员在 AI 时代里最难被替代的部分。

AI与开发工作流程的演变

发表于 2026-03-14
字数统计: 930 | 阅读时长 ≈ 3

随着人工智能技术在代码生成、测试、部署和运维等领域的深入,开发者的工作方式正在发生深刻变化。本篇博客从实务角度出发,聚焦三大维度:协作流程、工具生态与技能要求,以及对代码质量与交付节奏的影响。

1. 协作流程的再设计

AI 的介入并不是要取代人类开发者,而是成为高效协作的伙伴。主要表现在:

  • 需求到实现的闭环加速:AI 辅助的需求理解、用例生成和快速原型可以缩短从需求到实现的周期。开发者通过与 AI 的对话式协作,快速迭代设计。
  • 代码审查与风格一致性:代码生成工具在保持风格一致、遵循项目约定方面有显著帮助,但仍需人来判断领域语义和边界条件。
  • 流程自动化:从 CI/CD 配置、测试用例生成到部署脚本的自动化程度显著提升,减少重复性劳动,让团队把精力投入到架构设计和性能优化上。

2. 工具生态与工作方式

  • 代码生成与补全:基于上下文的代码补全、模板化代码片段与生成器将成为日常工作的一部分。这要求开发者具备评估生成结果可靠性与安全性的能力。
  • 测试与质量保证:自动化测试用例的覆盖面可以通过 AI 快速扩展,但测试的关键在于设计具有可复现性的用例、断言与边界条件。
  • 监控与了修复:将 AI 引入日志分析、异常诊断与自愈策略,使运维效率提升,系统稳定性提升,同时也带来对数据隐私和安全的关注。

3. 技能演进与职业路径

  • 新的技能组合:AI 相关的能力不再是“可选项”,而是核心技能的一部分,包括对话式设计、任务分解、数据驱动的决策,以及对生成代码的安全评估。
  • 学习路径的转变:从掌握单一语言转向熟悉多语言/多框架的组合、以及对工具链的端到端理解(从需求、实现、测试到部署)。
  • 人机协同的软技能:沟通、需求澄清、对话式交互与对 AI 产出进行有效的监控和纠错,成为团队成员的关键能力。

4. 风险与伦理考量

  • 依赖性与可解释性:过度依赖自动化可能削弱对系统设计的深刻理解,应确保 AI 产出可追溯、可解释。
  • 安全性与合规:生成代码的安全性、依赖版本的时效性、以及对开源组件的合规审查需要被纳入标准流程。
  • 数据隐私:在生成与测试过程中使用的训练数据、日志数据需符合隐私保护要求。

5. 实践要点

  • 设定清晰的边界:明确哪些任务由 AI 执行、哪些任务需要人类设计和确认。
  • 渐进式落地:从小范围项目开始,逐步扩展到全栈开发和架构设计,避免一次性引入过多工具。
  • 质量优先的自动化:确保自动化链路中的每一步都可验证、可回溯。

小结:AI 不是替代,而是放大开发者的能力。通过在协作流程、工具生态和技能体系上的有序整合,我们能够显著提升交付速度、质量和创新能力,同时对潜在风险保持警觉。

OpenClaw 安装指南

发表于 2026-03-14 | 分类于 技术
字数统计: 716 | 阅读时长 ≈ 2

OpenClaw 是一个强大的 AI Agent 框架,可以将 AI 能力接入 WhatsApp、Telegram、Discord、Slack 等多种即时通讯平台。本文记录了从零开始安装和配置 OpenClaw 的完整流程。

环境准备

安装 OpenClaw 之前,需要确保本地已有以下环境:

  • Node.js >= 18.x(推荐使用 LTS 版本)
  • npm >= 9.x
  • 稳定的网络连接(需要访问 npm 源以及 AI 模型 API)

可以通过以下命令检查版本:

1
2
node -v
npm -v

安装 OpenClaw

使用 npm 全局安装最新版本:

1
npm install -g openclaw@latest

安装完成后,验证是否安装成功:

1
openclaw --version

初始化配置

运行交互式引导向导,完成初始设置:

1
openclaw onboard

向导会引导你完成以下配置:

  • 选择 AI 模型(OpenAI、Claude、Gemini 等)
  • 配置 API Key
  • 选择接入的通讯渠道
  • 初始化工作区目录

如果希望以后台守护进程方式运行,可以加上参数:

1
openclaw onboarding --install-daemon

配置 AI 模型

查看当前支持的模型列表:

1
openclaw models list

设置默认模型:

1
openclaw models set <model-name>

配置模型的 API 认证信息:

1
openclaw models auth

启动网关服务

OpenClaw 通过 WebSocket 网关来对接各平台渠道,启动网关:

1
openclaw gateway start

其他常用网关命令:

1
2
3
openclaw gateway stop      # 停止网关
openclaw gateway restart # 重启网关
openclaw gateway # 查看网关状态

接入通讯渠道

以 WhatsApp 为例,添加渠道:

1
openclaw channels add --whatsapp

执行后会弹出二维码,用手机 WhatsApp 扫码配对即可。其他平台同理:

1
2
3
openclaw channels add --telegram
openclaw channels add --discord
openclaw channels add --slack

添加后可以检查渠道状态:

1
openclaw channels status --probe

工作区文件说明

OpenClaw 的工作区默认位于 ~/.OPENCLAW/WORKSPACE,包含以下核心配置文件:

文件 作用
AGENTS.md 定义 Agent 的指令与行为
SOUL.md 设定 AI 的人格与语气风格
USER.md 记录用户偏好
IDENTITY.md 设置 Agent 的名称与身份
MEMORY.md 长期记忆存储
BOOT.md 启动时执行的初始化内容

健康检查

如果遇到问题,可以运行诊断命令,OpenClaw 会自动检测常见错误并提供修复建议:

1
2
3
4
openclaw doctor

# 深度诊断
openclaw doctor --deep

常见问题排查

  • 没有收到私信回复 → 执行 PAIRING LIST 并确认 APPROVE
  • 群组中 Bot 没有响应 → 检查 MENTIONPATTERNS CONFIG
  • 网关意外关闭 → 执行 openclaw doctor --deep
  • 记忆功能异常 → 执行 openclaw memory index 重建索引

总结

OpenClaw 的安装流程整体比较顺滑,核心就是三步:全局安装 → 执行 onboard 初始化 → 启动网关接入渠道。配置完成后,AI Agent 就可以在你日常使用的即时通讯平台上运行,极大地扩展了 AI 的使用场景。

更多命令可以参考:OpenClaw 命令速查表

内容由 AI 生成,仅供参考

OpenClaw常用命令自查表

发表于 2026-03-07 | 分类于 技术
字数统计: 388 | 阅读时长 ≈ 1

🔍 文档内容摘要

核心 CLI 命令

  • openclaw gateway — 运行 WebSocket 网关服务器
  • openclaw gateway start|stop|restart — 管理网关服务
  • openclaw channels login — WhatsApp 二维码配对
  • openclaw channels add — 添加机器人
  • openclaw channels status --probe — 渠道状态检测
  • openclaw onboard — 交互式设置向导
  • openclaw doctor — 健康检查 + 快速修复
  • openclaw models list|set|status — 模型管理 + 认证状态

快速安装

  • npm install -g openclaw@latest
  • openclaw onboarding --install-daemon
  • 全局标志:--dev、--profile、--json

渠道管理

  • WhatsApp: channels add --whatsapp
  • Telegram: channels add --telegram
  • Discord: channels add --discord
  • Slack: channels add --slack

工作区结构

  • AGENTS.md — 指令
  • SOUL.md — 人格/语调
  • USER.md — 偏好
  • IDENTITY.md — 名称
  • MEMORY.md — 长期记忆
  • BOOT.md — 启动
  • ROOT: ~/.OPENCLAW/WORKSPACE

斜杠命令/COMMANDS

  • /status — 运行状态
  • /model <m> — 切换模型
  • /compact — 压缩上下文
  • /new — 开启新会话
  • /stop — 中止
  • /think — 推理模式

基本路径映射

  • CONFIG: ~/.openclaw/openclaw.json
  • CREDENTIALS: ~/.openclaw/credentials/
  • LOGS: /tmp/openclaw/*.log

语音与 TTS

  • OpenAI / ElevenLabs: Premium
  • Edge TTS: Free (No API Key)
  • messages.tts.auto: "always"

记忆与模型

  • 向量搜索:memory search
  • 模型切换:models
  • 认证设置:models auth

故障排除

  • 没有私信回复 → PAIRING LIST → APPROVE
  • 群组中静默 → MENTIONPATTERNS CONFIG
  • 网关关闭 → DOCTOR --DEEP
  • 记忆错误 → MEMORY INDEX

自动化与研究

  • 浏览器操控:browser start
  • 定时任务:cron list
  • 心跳检查:30m

🌐 最终状态

  • 页面: X (Twitter) - OpenClaw 速查表图片
  • URL: https://x.com/NFTCPS/status/2029182520806543800/photo/1
  • 文档: 已整理为 Markdown 格式,包含速查表全部 10 个模块内容

💡 补充说明

原文网站: http://moltfounders.com/openclaw-mega-cheatsheet

内容由 AI 生成仅供参考

随想(三)

发表于 2025-12-11 | 分类于 读书
字数统计: 495 | 阅读时长 ≈ 1

在职场中呆久了,接触到不同的人,他们的做事风格各异,这种风格可能和性格,环境以及过往经验有关。

这些做事风格在处理事情上无论是过程还是结果都可能千差万别。我总结大概有两种类型,一种是对上管理型,一种是处理问题型。

虽然对上管理型最终也是要解决问题的,但是他是面向上级解决问题,在解决问题的时候不太会思考怎么解决问题,而在意的是解决问题的结果。这种可能问题最终是被解决了,但是可能不是最佳方式,可能是临时解决,基于这种对上解决问题的方式也注定他在处理问题时不会考虑相对长远的事情,属于领导发现问题解决问题,再发现再解决。这种方式可能比较高效,但是对组织是否有益可能不一定。问题如果都是单点式的处理,就不能形成问题-解决-总结-经验-避免下次再出现的闭环。导致的结果是,可能相同的问题重复出现。

处理问题型其实也就是面向问题解决问题,有可能领导发现的是A问题,但是分析下来其实A是由于BCD问题导致的,其实你可以只解决A,领导的问题被解决了,但是BCD还在那里。因为这种处理问题的方式你会思考问题本身,所以你会总结经验,因为很多问题有相似性。这种方式相对处理问题会低效,但是可能对组织的长远发展是有易的。前期问题比较多,但是一旦处理好之后问题会越来越少,因为每一次的问题处理都是对一类问题的处理。

关于Kotlin中副作用的理解

发表于 2025-11-12 | 分类于 技术
字数统计: 952 | 阅读时长 ≈ 3

review代码的时候看到一个副作用,有点忘记原理了,就问了下AI,我觉得它回答的非常好,记录一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
LaunchedEffect(boValue, countDownTime) {
if (countDownTime == CountDownState.Finished.times) {
navigator.navigate(BOExceptionDestination()){
popUpTo(BOWornDetectionDestination.route) {
inclusive = true
}
}

}
if (boValue > 0) {
navigator.navigate(BOResultDestination(boValue.toInt())){
popUpTo(BOWornDetectionDestination.route) {
inclusive = true
}}
}
}

提问:不太明白这个副作用函数的运行机制,你上面说它会开启一个协程来执行内部代码,但是又会监听LaunchedEffect中的key值,这个是怎么做到的?另外,如果key值变化了,主线程中正在执行的代码会怎么样?请作为Android资深工程师用浅显易懂的方式给我讲清楚。

AI回答:
现在我们把上面的比喻套在你的代码上:

LaunchedEffect(boValue, countDownTime) { … }

  1. 首次运行:
  • 你的界面第一次显示时,boValue 可能是 0,countDownTime 是 30。
  • LaunchedEffect 记录下 (key1=0, key2=30),并启动一个协程来执行 {} 里的代码。
  • 这个协程现在开始运行,它会检查 if 条件,发现都不满足,然后就“挂起” (suspend),等待下一次 key 的变化。
  1. 当 countDownTime 变化时:
    • 1秒后,countDownTime 变成了 29。这导致了界面重组 (Recomposition)。
    • 在重组过程中,LaunchedEffect 会再次被执行。它对比新旧 key:
      • 旧 key: (boValue=0, countDownTime=30)
      • 新 key: (boValue=0, countDownTime=29)◦它发现 countDownTime 变了!于是:
      • 立即取消上一个 countDownTime=30 时启动的协程。
      • 启动一个全新的协程,并记录下新的 key (0, 29)。这个新协程又从头开始执行 {} 里的逻辑。这个过程会每秒重复一次。
  2. 如果 boValue 突然变化了:
  • 假设在倒计时到 25 秒时,血氧传感器返回了数据,boValue 从 0 变成了 98。
  • 界面再次重组。LaunchedEffect 对比 key:
    • 旧 key: (boValue=0, countDownTime=25)
    • 新 key: (boValue=98, countDownTime=25)
  • 它发现 boValue 变了!于是:
    • 立即取消上一个 (0, 25) 的协程。
    • 启动一个全新的协程。这个新协程一进来就检查 if (boValue > 0),条件满足,立刻执行 navigator.navigate(…) 进行页面跳转。任务完成!

关于主线程的问题

你还问到:“如果key值变化了,主线程中正在执行的代码会怎么样?”这是一个非常好的问题,涉及到协程的核心优势。
  • LaunchedEffect 里的代码默认运行在主线程上,但它是可挂起 (suspendable) 的。
  • 当协程执行到一个挂起点(比如 delay(1000) 或者其他需要等待的异步操作)时,它会释放主线程,但并不会销毁自己。主线程可以去干别的事,比如响应用户点击、刷新动画等,UI 不会被卡住。
  • 当 key 变化时,是 Compose 框架在主线程的重组阶段发现了 key 的变化,然后它会向旧的协程发送一个取消信号。
  • 正在运行的协程(无论它当前是真正在执行 CPU 指令,还是正处于挂起状态)收到取消信号后,会在下一个挂起点或检查点响应取消,并抛出 CancellationException 来终止自己。
  • 这一切的取消和重启调度都是由 Compose 框架和 Kotlin 协程库在背后无缝完成的,不会阻塞主线程的正常工作。

总结

  • 机制:LaunchedEffect 不是“边运行边监听”,而是在每次重组时,通过对比新旧 key 值来决定是否取消旧协程,启动新协程。
  • 目的:确保副作用代码(比如网络请求、数据库操作、导航)始终与当前的 state (也就是 key) 保持同步。
  • 线程:代码虽然在主线程协程中,但由于其“可挂起”的特性,不会阻塞 UI 渲染。它的生命周期管理是自动且安全的。

习得性无助

发表于 2025-06-06 | 分类于 读书
字数统计: 0 | 阅读时长 ≈ 1

习得性无助

Thinking like a farmer

发表于 2024-11-25 | 分类于 读书
字数统计: 933 | 阅读时长 ≈ 3

背景

在twitter上看到的这个理论,简单了解了下“像农民一样思考”:农民不会对着庄稼大吼大叫,不会播种第二天就希望庄稼已经长好了,更不会在没长好之前将庄稼连根拔起。但是,我们在日常生活可能中经常做出类似上面的这种事情。那么这种思考方式到底有什么好处呢,我问了下AI(Grok-beta),下面是它的总结,个人觉得很有道理记录一下。

内涵

“Thinking like a farmer”是一种比喻,旨在描述一种长期规划、耐心、以及对自然和环境的尊重与合作的思维方式。以下是这个理论的一些核心观点和解释:

  1. 长期视角
    种植和收获:农民在播种时知道收获需要时间,种子不会立刻变成可收割的作物。同样,思考和决策时,我们需要考虑长期的结果,而不是只看眼前的利益。短期的投资或行动可能会在未来带来更大的回报。
  2. 尊重自然规律
    季节和周期:农民必须遵循自然的季节和周期,知道何时播种,何时收获。这教导我们尊重自然和市场的周期,懂得在正确的时间做正确的事情。
  3. 资源管理
    土壤、水和养分:农民知道如何管理土地的养分,保持土壤的健康,不仅是为了当前的收成,更是为了未来的可持续性。这提醒我们要合理利用资源,确保它们能持续使用。
  4. 适应和创新
    气候变化和市场波动:农民不得不适应气候变化和市场的波动,他们会不断学习和尝试新的种植方法或作物。这鼓励我们要有适应性思维,面对变化要有创新精神。
  5. 耐心与坚持
    等待收获:农民在播种后需要等待,期间可能会遇到各种困难,但他们坚持下去直到收获。这反映了在追求目标时需要耐心和坚持不懈的精神。
  6. 合作与社区
    互助合作:农业社区往往通过合作和互助来解决问题,共享资源和知识。这表明在个人或团队的努力中,合作和共同体的力量是不可忽视的。
  7. 风险管理
    天气和市场风险:农民面临天气变化和市场价格波动的风险,他们通过多样化种植、保险等方式来管理风险。这告诉我们要在决策中考虑到可能的风险,并有相应的应对策略。
  8. 回馈自然
    循环经济:好的农民会回馈自然,通过有机种植、轮作等方法来维持土壤的健康和生态的平衡,强调了可持续发展的重要性。
    应用:

在商业中,“像农民一样思考”意味着考虑公司的长期增长和可持续性,而不是只追求短期利润。它鼓励企业家和领导者制定长期计划,关注品牌的声誉、员工的福利、环境的保护和社区的关系。
在个人生活中,这可能意味着对个人目标有长期的规划,耐心地培养技能和关系,尊重自然和社会的规律,采取可持续的生活方式。

总之,“thinking like a farmer”强调的是一种对未来负责任的态度,注重可持续性、耐心、适应性和合作的价值观。这是一种与自然和社会和谐共处的智慧。

对抗内耗

发表于 2024-11-06 | 分类于 读书
字数统计: 0 | 阅读时长 ≈ 1

伪勤奋

发表于 2024-11-01 | 分类于 读书
字数统计: 158 | 阅读时长 ≈ 1

转自推文

伪勤奋的四个表现

  1. 花大量时间做事情中最容易的环节,还到处炫耀“没有功劳有苦劳”
  2. 以“准备”的名义拖延,看上去很忙但是事情没有任何进展
  3. 从来不验证工作成果,不知道做得好还是做得坏,只顾闷头拉车,不会抬头看天
  4. 读了很多书,但从不总结规律,即使总结了规律,也没有用到自己的实践中去。

只有剔除大量低价值的肤浅工作,给生活创造积极的变化,才能走出内耗的怪圈。

12…8
Ervin Zhang

Ervin Zhang

stay hungry, stay foolish

79 日志
3 分类
49 标签
RSS
GitHub E-Mail Twitter
© 2026 Ervin Zhang | Site words total count: 99.2k
本站访客数:次 |
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4