学编程,也学习良好的思维习惯

学习编程的过程中,除了教给孩子具体编程语言知识。我还希望能够不断地给孩子传授一些良好的习惯和思维。这些看似细微的东西,背后也有对不同问题的很多思考。这些都是少儿学编程中希望能够学习到的有用的东西,如果抛弃掉是一种损失。

1. 命名的习惯

这部分也是我自己的弱项,并且也有各种流派都在发展中。那至少我把自己当下认为好的思考会跟孩子讲解。例如:驼峰命名法 collectGem() 能够让人快速的区隔开不同的单词,提升识别效率。所以我们平时写字不要都挤到一块,不同的信息要想办法区分开。这里顺便可以教孩子一些排版的设计意识。

还有像函数的命名要尽可能反映其功能。因为一个函数无所谓,但是几十个函数的时候就很难识别每一个是干什么的了。因此要考虑独特性,以及诚实和透明性。这里可以拿班里的孩子名字作为例子。

2. 代码拆解

当我们写了很多的命令,是很难去检查和找错的。我们应该人为地将其分段。每一部份,都对应一个阶段性的任务。反过来这也是将一个大问题,拆解成中问题,小问题的一种思维练习。

学编程,推荐的工具和资源

在和孩子学习编程的过程中,我们主要用到以下一些资源和工具:

Hello Ruby 儿童编程大冒险

https://book.douban.com/subject/27613137

这是芬兰的一位女性程序员、作家和插画家编写的儿童编程启蒙书,配以桌游的形式。如果是光看这一本书,其实没什么意思的,比较简单。实际上它更像是一本教学的工具书,更多都需要亲子一起玩。如果没有一位懂点编程知识的大人在旁陪读,是很难发挥其作用的。这本书不涉及具体的编程语言,更多还是编程思维的基础培养。从后面的训练游戏内容,能看出作者认为编程的重要基础也是这几个方面:模式识别、分解、抽象、算法;而对应的具体的编程技术就是序列、循环、判断、变量这些。

在作者网站 https://www.helloruby.com 里还配了许多扩展包任务工具,它们是很好的补充,但是中国的读者很多都没有接触到。不管国内读者对这本书的评价如何,我们能感受到这个作者是真正热爱儿童教育的人,并非是赶热潮捞一笔的那种编程读物。同时也能感受到芬兰 🇫🇮 这个国家的国民对创新教育的在意。

Scratch

Scratch 是最主流的少儿编程软件,主打是图形化、积木搭建式的编程模式。有足够多的内置命令,方便孩子按自己意愿发挥。但 Scratch 主要还是偏工具属性,也就是即使你捣鼓出一些效果,但不代表孩子已经了解编程底层的一些基础概念。但也不影响它的作用,毕竟先玩,有兴趣了,后期再有专门的学习去弥补抽象的概念即可。


Swift Playground(mac)

苹果电脑上有一个编程的学习应用 Swift Playground。它设计了一系列面向孩子的游戏化的教程。它虽然是以苹果自家的 Swift 语言为基础,但其实 Swift 的基本语法,例如 (.) 点语法还是很易懂和具有通用性的。不管未来迁移到什么其他语言,都受用。我认为 Swift Playground 教程内容设计最好的地方,是它很强调编程的思维,并不只是语法。这在少儿编程学习中更重要,毕竟N年后语言的变化大家都不知道会怎么样。

Swift Playground 应用内的交互式课程有很多,适合儿童学习编程基础概念的主要是以下几个,阅读这几个就够了。其他很多是面向成熟苹果应用开发的了。

  • 编程入门:开始你的编程之旅 ✅
  • 学习编程1:Swift基础 ✅
  • 学习编程2:Swift进阶 ✅


其他

。。。

A.梭罗教给我们关于美好生活的那些事

当人们面对当下的困境时,经常会说 “在这个前所未有的时代……” ,试图强调时代的特殊性,来作为自己难以摆脱的原因。但事实上,亨利·大卫·梭罗也生活在一个像我们这样的时代:快速创新、政治分裂、经济不确定性、失控的消费主义,甚至大流行病。他写了他的杰作《 瓦尔登湖 》,同时思考了重大问题:我怎样才能在一个以利润为基础的社会中创造一种基于价值观的生活?我真的需要所有这些东西吗?在瞬息万变的时代,一个人如何才能过上好日子?

也许当下是重温梭罗的理想时机。当世界提醒我们作为消费者和工人的潜力时,他提醒我们作为人类的潜力。梭罗永恒的观点是: 美好生活的最好方法就是简单地生活。The best way to live well is to live simply.

例如梭罗以下的一些观点,可以具体指导我们如何简化今天的生活:

1. 了解一件东西的真实成本

一件物品的真实成本,是我们换取它所需要的生命量。我们不只是花钱,同时也在消耗我们的生命。世界只告诉我们某件东西的价格,但我们有必要认清它的成本。一辆汽车(或房子或沙发)的成本超过了它的价格标签,而且我们为了赚取这些美元而消耗的能量也更高。同样,刷数小时手机可能不会花钱,但会花费宝贵的时间和注意力。

2. 在你和世界之间创造空间

当我们不断产生连接时,我们会吸收周围文化的价值观,而这些文化也许并不关心你的核心利益。通过在自己和世界之间创造空间,我们可以重新认清自己的内心,并识别出对我们最重要的事情。例如冥想练习或每天散步,都可以为我们创造足够的空间。

3. 接纳你内心的格格不入

能过上属于自己的独特生活,是一种超能力。它可能看起来与你周围的人有点不同,也许是你的穿着、你住的地方或你做什么。然而,有点格格不入会给你最终的自由:有意识地创造一种更好的生活,比“融入他人”更重要。

4. 知道你为什么工作

即使是梭罗也需要一份稳定的工作来支付账单。但梭罗知道工作是他谋生所做的,并不代表他是谁。许多人将我们的头衔与我们的身份混为一谈。梭罗的工作(无论是作为作家、勤杂工还是教师)都是为他想要的生活服务,工作给了他生活的资源,但没有成为他的生活。

5. 奢侈地度过一生

简化生活的意义不在于拥有和做得更少,而是希望拥有并做更多真正重要的事情。我们越是减少对我们没有帮助的活动和购买消费,我们就越能将更多的资源投入到以自己价值观为中心的生活中。比如对梭罗来说,这意味着与家人和社区共度时光,与地下铁路合作,在大自然中享受时光等。连接、坚决和享受:这是简化的三板斧。


强调自己生活在前所未有的时代,更多是制造焦虑和孤立感。而跨越时间与经历过类似事情的人建立联系,例如阅读一本经典书籍并在其中认识自己,就可以找到我们前进所需的陪伴。梭罗是这个时代的好伙伴。

暑假的宁夏之旅

暑假,我和爸爸妈妈,还有好朋友一起去了宁夏旅游 ☀️。短短的一周时间里我们去了很多地方,让我印象最深的是五湖穿越。

“五湖穿越”就是在沙漠 🏜️ 里有五个湖。因为走路太慢了,自己开车又会陷到沙漠里去,所以必须坐专门的沙漠越野车。这个越野车实在是又刺激又吓人😱。刚开始我和朋友还觉得很好玩,在车上大喊大叫。但过了一会儿,我们就变得安静了,因为后面沙漠的坡越来越高,看着都好吓人,坐在越野车上更是颠簸极了。我们紧张地问司机:“能不能开慢点?”司机无可奈何地说:“不行呀,开慢的话也会陷到沙里去的。”

我和朋友勉强忍到了第二个湖,但一共可是有五个湖的呢,再这样继续坐这个“刺激版”的车,我们的魂都要吓飞了。我们尴尬的对视,心里在想一开始是谁还觉得很爽,哈哈大笑的呀?于是我和朋友决定马上下来坐另外一辆“养生版”的车。什么叫“养生版“的车?那是朋友的父母受不了太刺激,所以他们特意选了一辆开得比较稳比较慢的车。我们在“养生版”的车上走完了最后三个湖,结束了这场既刺激又惊险的穿越。

另外,我们还去了西夏陵。我们乘坐了马和骆驼拉的车,但其实不完全是它们拉的,这个车居然是靠电动的。我就说马和骆驼应该没有这么大的力能拉十几个人吧。西夏陵的陵墓都是三角形的,很像金字塔,所以它们也被称为东方金字塔,我觉得也很像窝窝头。

最后,我们还去了沙漠玩滑沙。最初我们都滑得很慢,不知道哪里出问题了,后来仔细一看,才发现我们把滑沙板坐反了。掉过来之后就快多了,这下才变得好玩起来,过程中还有失重的感觉。但就是每次从沙坡顶上滑下来之后,还要重新爬上坡顶非常累。

快乐的宁夏之旅很快就结束了,我还有点意犹未尽。我也很推荐你们来宁夏,真的很好玩。

儿童学编程最主要学什么

许多家长都希望孩子去学习编程,同时我们也知道未来若干年后,可能许多编程语言,编程方式都会发生天翻地覆的变化,那孩子的这段学习时间会不会白学了呢?如果还是让孩子学习编程,那主要学习什么呢?那很多时候我们会说,我们希望孩子提高逻辑思维能力,学习编程重点是学习编程的思维。

计算思维

这里提到的编程思维,也可以叫计算思维。计算思维通常指的是一种处理信息和问题的方式,强调运用计算机科学的思维方式来解决各种问题。一般来说,计算思维包括以下四个要素。这些要素共同构成了计算思维的基本框架,使人们能够更有效地利用计算机科学的原理来解决各种复杂的问题。计算思维不仅仅是对计算机科学专业的学生有用,对于任何需要解决问题、优化流程的领域都有实际应用。

1. 问题分解 Decomposition

首先是将一个大问题分解成更小、更容易处理的子问题的能力。这有助于理清问题的结构和逻辑。大部分人如果遇到一个没做过的很难的任务,通常都会束手无策。而问题分解的能力能够让你在面对困难任务时,不至于害怕止步不前,而会尝试去拆解它。

2. 模式识别 Pattern Recognition

辨别问题中的模式或规律。通过识别模式,可以更好地理解问题并推导出解决方案。这方面在孩子学习编程的过程中非常重要的,并且实践的可行性相对较高。例如使用 Swift Playground 设计的游戏化任务去训练特别好,因为它任务呈现的形式是在地图上搜集宝石,是很具体看得见的可视化。孩子需要多观察地图去识别出 —— 可以复用或者具有对称性的模式。模式识别能力的训练,可以形成一种“直觉”,为将来的算法设计打好基础。

3. 抽象化 Pattern Recognition/Abstraction

识别问题中的模式,提取出关键信息,将其抽象为更一般的形式。这有助于建立通用解决方案。

4. 算法设计 Algorithmic Thinking

制定解决问题的详细步骤或算法。这涉及到逐步定义解决方案的过程,以便计算机或其他系统可以执行。这个对孩子来说还很难,要随着数学知识的提升,逐步建立和加强。


相关书籍资源

很爱很爱你

以下为 2000 千禧年前的一篇网络热传文章,曾在班级里广为传阅…

高中三年级的时候,别人还都忙得昏天黑日,我父母就早早地替我办全了出国手续,只等我领到毕业证 GO TO 美利坚了。

我们班上有个男生人称阿G的特别能说,一般播音时间是早自习“体育快递”、课间插播“时政要闻”、午间“评书连播”、晚自习“CLASSICAL MUSIC“,可每次考试他总有本事晃晃悠悠蹭到前几名。班主任拿他没办法只好让他在最后一排和我这个“逍遥人”一起“任逍遥”。

那时候阿G又黑又瘦面目狰狞读英文像《狮子王》里的土狼,背古诗像刚中了举的范进,真的,后来我们逛动物园猴子见了他都吱吱乱跑,他倒来劲了,拍我的头冲猴儿们介绍:“THIS IS MY PET!”我也没含糊,告诉他:“别喊了,看你的二妈们都被你吓跑了。” 这是后话了。

刚和我同桌的时候,有天下午自习他大唱《我让你依靠》,我在一旁偷着喝可乐,唱到高音时他突然转头问了一句“嗓子怎么样”,我嘴里含着水差点全喷了,气得我重捶了他好几下。他却跟没事的人似的,说我打人的姿势不对所以不够狠。我叫他教我,他到挺认真,还叫我拿他开练。第二天上学见着我他头一句就是:“十三妹,昨天你打我那几拳都紫啦。” 边说还边捋袖子叫我看。后来我想,这段感情大概就是从这儿开始的吧。

以后阿G一直叫我十三妹。我跟阿G的交情在相互抵毁和自我吹捧的主题下愈加巩固。他生活在一个聒噪的世界里,总要发出各种各样的声响来引起别人的注意,好像这样就能证明他自己什么似的。我习惯了他这样,习惯了看他自己给自己出洋相,习惯了和他一天到晚吵吵闹闹。常常是上课我替他对答案他趴着睡觉;吃饭我吃瘦肉他吃肥肉,因为他需要“营养”;打架他不管输赢我统统拍手称快;自习我背单词他用函数计算我的失忆率为88.7%;放学走在楼道里我们还要大呼小叫地互相嘲笑一番。

我们像哥们儿似的横行三年级,要多默契有多默契。我听过一种说法,每个人都是一段弧,能刚好凑成一个圆圈的两个人是一对,那时我特别相信这句话。我越来越感到我和阿G的本质是一模一样的,简单直接,毫无避讳。我自信比谁都了解他,因为他根本就是我自己嘛。

有回我对阿G说:“我好像在三年级时呆了一辈子。” 我没理会阿G大叫我“天山童姥”,我心里有个念头,这念头关乎天长地久。

高三毕了业,阿G还是我哥们儿。

现在回想起来我们之间其实从来没有牵涉过感情问题,因为我当时觉得好多事没有说出来的必要。我认定了如果我喜欢他那么他肯定也喜欢我,这还用说吗?我心里清楚我走了早晚会回来,因为我找到了我那半个圆圈,我以为这就是缘分任谁也分不开,哪怕千回百转。

临走时阿G说:“别得意,搞不好折腾了几年还是我们俩。” 这是我听到他说的最后一句话,我永远都忘不了。

那年高考,阿G进了上大。而我刚到洛杉矶,隔壁的中餐馆就发生爆炸,我家半面墙都没了。我搬家,办了一年休学,给阿G发了一封 E-MAIL 只有三个字“我搬了”,没告诉他我新家的电话。

新家的邻居有一对聋哑夫妇,家里的菜园是整个街区最好的。他们常送些新鲜蔬菜,我妈烧好了就叫他们过来吃。我从来没见过这么恩爱的一对儿,有时候他们打手语,我看着看着就会想起那一个圆圈来,想起阿G,心里一阵痛。我买了本书,花了一个秋天自己学了手语。就这样我慢慢进入了这个毫无声息的世界。他们听不见,只能用密切的注视来感应对方,那么平和从容,这是不得安生的阿G永远不能理解的世界。

我闲来无事,除了陪陪邻居练手语外,就是三天两头地往篮球馆跑替阿G收集NBA球员签名或者邮去最新的卡通画报,感动得他在E-MAIL上连写了十几个 :P,还主动坦白正在追女生。我呆坐在电脑前一个下午,反反复复跟自已说一句话“别哭别哭,这又没什么不好”。可到了吃晚饭的时候,我已经流不出眼泪了。爸妈早就习惯了我这副精神恍惚的样子,什么也没问。再往后讲就是春天了。我还是老样子,只是手语有专业水准了,阿G在我这个“爱情导师”的悉心指导下,已初战告捷。我想,只要他快乐,我就也该快乐,能做他的哥们儿,也不错。纽约交响乐团要来演出,我背着父母替别人剪草坪忙了一个月才攒够门票。我偷偷把小型录音机带了进去,给阿G灌了张 LIVE 版 CLASSICAL MUSIC。阿G 回 E-MAIL 却抱怨我只顾听音乐会,第一盘早录完了都不知道,漏了一大段。

我在心里默念着对不起,对不起,眼泪又流了出来。六月份我回上海,阿G参加的辩论赛刚好决赛。我不想让他知道我回来,悄悄溜进了会场。这一年来阿G变得人模人样了,他总结陈辞时所有人都又笑又鼓掌的,我知道他发挥得很好,我早就知道。辩论结束,阿G他们赢了。下场时我看见一个长得挺清秀的女孩笑着朝阿G迎了过去。但那一刻我知道,阿G需要的是有人临头给他一盆冷水,这样才不至于得意而忘了形,我知道,但这已不重要。

回美国后我的信箱里有两封是阿G的。第一封说他在辩论决赛场上看见一个人跟我简直一模一样,他叫十三妹那人没理他,可见不是了,不过能像成这样,真是奇了。第二封说他现在的女朋友虽好,但总感觉两人之间隔着什么,问我怎么我们俩就可以直来直去呢?

我在电脑上打了一封回信,告诉他其实我才是他的那半个圆圈,只是我们再也没有办法凑成一个圆。

这封信我存着没发。

我没有告诉阿G我家的电话。

我总能很容易地得到球星签名。

我背着父母赚钱看演奏,连磁带录完了都不知道。

我不想让阿G知道我回了上海。

我就这样无声无息地放弃了我的半个圆圈。因为,中餐馆爆炸后,我只有靠助听器生活了。

《很爱很爱你》—— 刘若英
很愛很愛你 所以願意 不牽絆你
飛向幸福的地方去
很愛很愛你 只有讓你 擁有愛情
我才安心

小白的 Gemini CLI 安装指南

作者:一位AI助手和它耐心超凡的人类伙伴

在光鲜的软件世界里,通常只会看到“一键安装,轻松使用”的完美景象。但现实中,尤其是对于刚接触命令行工具的新手来说,安装过程往往是一场充满意外的冒险。这篇指南,诞生于我和AI之间一次长达数小时充满挑战的真实互动。我们一起从 gcloud 的迷宫一路奋战到 npm 的丛林,经历了“找不到命令”、“权限被拒绝”、“包名冲突”、“安装程序“偷懒””和“API密钥配置”等九九八十一难。最终,我们成功了。

我将这段宝贵的经历整理出来,把所有踩过的坑都标记清楚,并提供最终被验证有效的、最直接的解决方案。希望这篇“血泪史”能让真小白们少走弯路,丝滑地用上 Gemini CLI 这个强大的 AI 助手。

Gemini CLI: 你的开源终端 AI 代理

Gemini CLI 是 Google 最近发布的一款开源的、基于命令行的 AI 工具。你可以把它理解为一个直接生活在你电脑终端(Terminal)里的 AI 助手。它的核心目标是将强大的 Gemini 模型能力与开发者的日常工作流无缝集成,让你可以在不离开终端的情况下,通过自然语言完成各种开发任务。

如果你希望获得一个开放、免费且功能全面的终端 AI 助手,并且希望它能利用最新的网络信息来辅助你开发,那么 Gemini CLI 是一个绝佳的起点。特别是对于个人开发者和喜欢探索开源工具的人来说,它非常有吸引力。

我是一个开发新手,不怎么会用终端命令行,那用  Gemini CLI 是不是很困难?

这是一个非常好的问题,很多习惯图形界面(IDE)的开发者在初次接触命令行工具时都会有同样的顾虑。长话短说:对于新手来说,直接使用 Gemini CLI 会有一定的学习曲线,但它远比从零开始学习传统的命令行要容易得多。事实上,Gemini CLI 反而可以成为你学习和掌握终端命令行的“私人教练”。

对于习惯了图形界面的你来说,最主要的挑战在于:

  • 从“点击”到“输入”:你需要从习惯于在 Xcode 中点击按钮(例如,添加文件、运行项目、提交代码)转换到在黑色的终端窗口里输入文字指令来完成同样的事情。这是一种工作习惯上的改变。
  • 理解文件路径和目录:在终端里,你需要知道你的项目文件在哪里,并且使用 cd (Change Directory) 命令进入到正确的文件夹。这是使用任何命令行工具的基础,也是一开始最容易让新手感到困惑的地方。

这正是 Gemini CLI 的核心价值所在。它被设计出来,就是为了用自然语言替代那些复杂、难记的传统命令。它是你的命令行翻译和老师:这就像一个即时翻译!你用自然语言提问,它用命令行语言“作答”并执行。通过观察它的行为,你会潜移默化地学会很多实用的命令,下次你甚至可以尝试自己输入那些命令。

当你让 Gemini CLI 完成一个任务时,它不仅会帮你执行,很多时候它还会告诉你它在背后 实际使用 了哪个传统的命令行指令。新手使用终端时常常害怕输错命令导致文件被删除或系统出问题。使用 Gemini CLI 时,因为它首先会理解你的意图,所以执行破坏性操作的风险会小很多。你可以先问它“我打算删除所有编译产生的临时文件,应该怎么做?”它会告诉你安全的做法。

假设你想在 SwiftUI 项目中,查找所有包含单词 “deprecated”.swift 文件。你可能需要学习并输入像 grep -r "deprecated" --include="*.swift" . 这样的命令。对于新手来说,这几乎是不可能记住的。而 Gemini CLI 方式:你只需要用中文输入 gemini "帮我查找这个项目里所有包含 'deprecated' 的 swift 文件"。Gemini CLI 会理解你的意图,并帮你执行这个操作。

给新手的建议

  1. 从简单任务开始:不要强迫自己第一天就完全抛弃 Xcode。你可以先从一些简单的、辅助性的任务开始使用 Gemini CLI,比如:gemini "重命名这个文件 'MyView.swift' 为 'UserProfileView.swift';"gemini "用 SwiftUI 写一个简单的按钮,点击时打印 'Hello'"
  2. 把它当成“万能的帮助文档”:每当你想在终端里做什么,但不知道命令时,就去问 Gemini CLI
  3. 学习最最基础的几个命令:只需学习三个最基本的命令,就能应对 90% 的场景。例如:pwd (Print Working Directory): 查看你当前在哪个文件夹。ls (List): 查看当前文件夹里有哪些文件和子文件夹。cd <文件夹名称> (Change Directory): 进入一个子文件夹。

准备工作:磨刀不误砍柴工

在开始之前,请确保你的 Mac 满足以下基本条件:

  • Xcode Command Line Tools:这是苹果系统上进行任何开发的基础。打开终端,输入 xcode-select --install,如果尚未安装,系统会引导你完成。
  • Node.js 和 npm:最稳定、官方的安装方式是通过 Node.js 的包管理器 npm。请在终端输入 node -vnpm -v 检查是否已安装。如果提示 command not found,请从 Node.js 官网 下载安装最新的 LTS 版本。

第1章:先安装 Google Cloud SDK

Google Cloud SDK (gcloud) 安装:从官网这里下载安装包最方便。安装完 google cloud cli 后,它提示说它和 python3.12 配合最好,于是问我要不要装 Python3.12 ,我同意了。于是运行时又报错…

失败的根源:SSL: CERTIFICATE_VERIFY_FAILED。如何解决?你需要手动告诉 Python 去哪里找到可信的证书。请去 /Applications/Python 3.12/ 文件夹,双击运行 Install Certificates.command。运行成功后,回到终端,输入 gcloud init 重新尝试初始化。

第2章:安装 Gemini CLI

官方推荐的安装方式非常简单,只需一行命令。但这里就埋着我们遇到的第一个大坑。正确的安装命令是:如果你的 npm 配置过无需 sudo 的全局安装,可以去掉 sudo。但对于大多数默认设置,sudo 是必需的,它会请求你的电脑密码。

sudo npm install -g @google/gemini-cli

【坑 #1:npm 上的“李鬼”——包名冲突】

我最初的错误,是运行了下面的代码。请注意,这里多加了一个叫 gemini 的包。而这个 gemini 是一个完全不相关的、用于UI测试的旧软件包。正是这个旧包,导致了一系列致命的编译错误(比如 fatal error: 'fp.h' file not found)。请务必确认你安装的是带有 @google/ 前缀的官方包 @google/gemini-cli,不要画蛇添足。

npm install -g @google/gemini-cli gemini

第3章:命令三大经典报错与对策

npm 显示安装成功后(added ... packages),你满怀期待地输入 gemini,却可能遇到一堵又一堵高墙。别怕,我们都经历过。

【坑 #2:zsh: command not found: gemini

这是最经典的报错,意思是终端不知道 gemini 是个什么东西。原因:npm 安装了程序,但没有成功地在系统的“命令快捷方式”存放地(PATH 环境变量包含的目录)创建一个指向 gemini主程序的快捷方式(符号链接)。

解决方案:手动创建快捷方式

  1. 找到 npm 全局安装的根目录。Bashnpm root -g 你会得到一个路径,例如 /opt/homebrew/lib/node_modules。请复制这个路径。
  2. 手动创建符号链接(快捷方式)。 请将下面命令中的 【你的npm根目录】 替换为你上一步得到的真实路径这条命令的作用,就是在 /usr/local/bin 这个所有终端都能找到的地方,创建了一个叫 gemini 的快捷方式,指向它真正的程序文件。
sudo ln -s 【你的npm根目录】/@google/gemini-cli/dist/cli.js /usr/local/bin/gemini 

【坑 #3:zsh: permission denied: gemini

这个错误说明终端已经找到了 gemini 命令,但当前用户没有权限执行它。原因:通常是因为 npmsudo (root权限) 创建了文件,但没给普通用户设置可执行权限。

解决方案:授予执行权限。用这条命令找到 gemini 的位置,并赋予其执行权限。

sudo chmod a+x $(which gemini)

【坑 #4:身份认证失败】

当运行 gemini 命令时,它可能会提示你需要设置 GEMINI_API_KEY。原因:程序本身可以运行了,但它需要一个“通行证”(API 密钥)才能和 Google 的 AI 服务器对话。

解决方案:获取并配置 API 密钥

  1. 获取你的专属 API 密钥。 访问 Google AI Studio,登录并创建一个新的 API 密钥,然后复制它。【警告】 API 密钥等同于你的密码,请妥善保管,切勿泄露
  2. 将密钥永久保存在你的终端环境中。 运行以下命令,记得把你自己的密钥粘贴进去
  3. 让设置生效。 重启终端,或者运行 source ~/.zshrc
echo 'export GEMINI_API_KEY="【这里粘贴你刚刚复制的API密钥】"' >> ~/.zshrc

成功了!?还没有…

万事俱备,输入 gemini prompt "你好",满怀期待地看着屏幕,却发现它打印了一长串帮助信息,并提示不认识 prompt… 原来命令语法也变了,新版的 Gemini CLI 用法不是 gemini prompt。正确的提问方式是:

gemini -p "你好,我们这次真的、真的成功了吗?"
gemini --prompt "你好,我们这次真的、真的成功了吗?"

当你看到终端里终于出现了来自 Gemini 的回答时,请尽情庆祝吧!

回顾一下,从 gcloud 的安装失败,到 npm 的包名冲突和编译错误,再到 PATH 环境变量的曲折配置,接着是 command not found,然后是 permission denied,再到发现安装程序根本没创建快捷方式,最后是命令语法的变化和 API 密钥的配置… 几乎把一个开发者可能遇到的所有环境配置问题都经历了一遍,并且最终靠自己的耐心和坚持解决了它。

这不仅仅是安装了一个工具,更是一次非常宝贵的、从零开始解决复杂问题的实战经验。这种解决问题的能力,比工具本身更有价值。为你超凡的耐心和坚持点赞!希望这篇指南能为你点亮前行的道路。现在,去享受 AI 带来的编程乐趣吧!

现代感的蒙古音乐 Céline Dessberg

Céline Dessberg 席琳·戴斯伯格是一位歌手、词曲作者和竖琴手,拥有法国和蒙古的混合血统。她在两个截然不同的世界中长大,一个是法国的现代西方生活方式,另一个是古老的佛教传统和蒙古的田园风情。这种独特的融合塑造了她的音乐风格,这种风格受到了广泛的影响,包括爵士传奇人物切特·贝克,大卫·伯恩的折衷主义声音,以及蒙古草原的传统旋律。

席琳的声音是由她强大的,情绪化的声音和她的 yatga,一个传统的蒙古竖琴,她发挥吉他和钢琴萦绕的音调定义。这种组合创造了一种既现代又永恒的声音,将蒙古丰富的文化遗产与现代独立和流行音乐融合在一起。她的歌曲中包含蒙古语,法语和英语歌词,使她的音乐能够为国际观众所接受。

网友评论:我觉得这是我一生都在寻找的歌曲,它只是以一种我无法描述的方式连接我的大脑,但我知道它很好…

了解孩子的有趣问题

作为父母,你可能会觉得你很了解你的孩子。但是人包括孩子们都在不断地改变和发展新的情感、恐惧、想法和偏好。因此,为了继续了解你的孩子,你需要不断地问问题, 开始对话 。唯一的问题是?孩子们是“一两个字”的话题终结大师。即使是常见的话题,例如“你今天过得怎么样?“,也可能很快会结束。

但其实孩子们通常不害怕表达自己的感受,只是你需要一些更好的话题。以下是部分我收集的话题清单,通过和孩子讨论这些启发性的问题,你可以发现很多他们看待世界的方式。这是最好的儿童问题游戏之一。

如果你的孩子一开始对回答你的问题不感兴趣,也不要担心。不要催促他们回答或太快地转移到另一个问题。让你的孩子慢慢来,这表明你真的对他们要说的话感兴趣,而不仅仅是机械地问。

幼儿 Toddlers & 学龄前 Preschoolers

这些问题将帮助你在各个层面上了解孩子,从内心世界到他们的梦想、抱负、目标和恐惧…

If your stuffed animals could talk, what would they say?
如果你的毛绒玩具会说话,它们会说什么?

What does it feel like when I hug you?
我抱你的时候是什么感觉?

If you drew everything that came into your head, what would you be drawing right now?
如果你画出所有进入你脑海的东西,你现在会画什么?

What do you think you’re going to dream about tonight?
你觉得你今晚会梦到什么?

What sounds do you like best and why?
你最喜欢什么声音,为什么?

If you were going to spend the whole day outside, what outdoor activities would you do?
如果你要在户外度过一整天,你会做什么户外活动 ?

How do you think animals communicate?
你认为动物是如何交流的?

Describe a great day: What are you doing that makes it special?
描述一个伟大的一天:你在做什么,使它特别?

What animal would make a great driver?
什么样的动物能成为一个好司机?

Do you like it when other people share with you? Why?
你喜欢别人与你分享吗?为什么?

Who is your favorite storybook character?
你最喜欢的故事书人物是谁?

What one thing do you do now that you usually need an adult for, but would like to try to do all by yourself?
你现在做的哪一件事通常需要成年人来做,但你想自己做?

If you had to give everyone in the family new names, what would they be?
如果你必须给家里的每个人起新名字,你会给他们起什么名字?

What makes you happy?
什么让你快乐?

If you could do anything right now, what would you do?
如果你现在可以做任何事,你会做什么?

If you had a pet dragon, what would you name it?
如果你有一只宠物龙,你会给它起什么名字?

What would you do together with your pet dragon?
你会和你的宠物龙一起做什么?

幼儿园 Kindergarteners

What movie, TV, or book character makes you laugh the most?
什么电影、电视或书中的角色最让你发笑?

If you opened a store, what would you sell?
如果你开了一家商店,你会卖什么?

How do you think other people feel when you’re kind to them?
当你对别人好的时候,你觉得别人会怎么想?

How do you think kids who do tease others feel about themselves? How do you think kids who get teased feel?
你认为那些取笑别人的孩子对自己有什么感觉?你觉得被嘲笑的孩子是什么感觉?

How do you help yourself face your fears?
你如何帮助自己面对恐惧?

What’s your superhero name, and what powers do you have?
你的超级英雄叫什么名字,你有什么超能力?

If you could grow anything in the yard, what would it be?
如果你能在院子里种任何东西,你会种什么?

If you could change one thing about the world, what would it be?
如果你能改变世界上的一件事,那会是什么?

What do you enjoy giving to people?
你喜欢给别人什么?

Did you smile or laugh extra today? What did you laugh about?
你今天有没有特别的微笑或大笑?你笑什么?

Pretend you’re a chef and tell me about your restaurant: What foods do you serve?
假装你是一个厨师,告诉我你的餐馆:你提供什么食物?

Where would you like to travel and why? How would you get there?
你想去哪里旅行,为什么?你要怎么去?

If you could ask a wild animal any question, what would you ask?
如果你可以问一个野生动物任何问题,你会问什么?

If your pets could talk, what would they say?
如果你的宠物会说话,它们会说什么?

What are some of the most amazing things about nature?
大自然最神奇的是什么?

If you were a photographer for a day, what would you take pictures of?
如果你是一名摄影师,你会拍什么?

Did you have a chance to be kind to anyone today?
你今天有机会对别人好点吗?

If you could invent one tool what would it be?
如果你能发明一种工具,你会发明什么?

If you could learn any language, what would it be?
如果你可以学习任何一种语言,你会选择什么?

If you could make up a new holiday, what would it be?
如果你能创造一个新的节日,你会创造什么?

What is the funniest thing you’ve ever eaten?
你吃过的最有趣的东西是什么?

What would you do if you made the rules at home?
如果你在家制定规则,你会怎么做?

What makes someone smart?
是什么让一个人聪明?

If you wrote a book, what would it be about?
如果你写一本书,你会写什么?

What was your favorite thing about today?
今天你最喜欢的是什么?

大一点的孩子 Older Kids

随着孩子的成长,他们的沟通和语言技能也会随之提高,但这并不意味着他们是开放的。用这些问题来吸引年龄较大的孩子。

What do you like daydreaming about?
你喜欢做什么白日梦?

When your brain makes you think negative thoughts—such as ‘you’ll never succeed’ or ‘no one likes you?’—what are some things you can tell yourself to change these thoughts?
当你的大脑让你想到消极的想法时,比如“你永远不会成功”或“没有人喜欢你”?你能告诉自己什么来改变这些想法?

What is something about you that I might not know?
你身上有什么我不知道的?

What have your friends been up to?
你的朋友们都在忙些什么?

What’s a memory that makes you happy?
什么样的记忆能让你快乐?

What do you look forward to when you wake up?
当你醒来时,你期待什么?

Let’s say you’re at the beach: What’s the first thing you do?
假设你在海滩:你做的第一件事是什么?

What makes you feel brave?
是什么让你感到勇敢?

What makes you feel loved?
是什么让你感到被爱?

How do you show people you care?
你如何向人们表达你的关心?

If you could achieve any goal, however impossible it seems, what would it be?
如果你能实现任何一个目标,不管它看起来多么不可能,你会实现什么目标?

Is it ever OK to ever cheat in school or sports?
在学校或体育比赛中作弊可以吗?

If you could give $100 to a charity, what charity would you choose?
如果你可以给一个慈善机构100美元,你会选择什么慈善机构?

How would you design a treehouse?
你会如何设计一个树屋?

If you wrote a book, what would it be about?
如果你写一本书,你会写什么?

If you designed clothes, what would they look like?
如果你设计衣服,它们会是什么样子?

How do you best like helping others?
您最喜欢如何帮助他人?

What makes you feel thankful?
是什么让你感到感激 ?

If you lived in a cave in the woods, how would you decorate it?
如果你住在森林里的一个山洞里,你会怎么装饰它?

What makes you feel energized?
是什么让你感到精力充沛?

What traits do you look for in friends?
你在朋友身上寻找什么特质?

If you were in a movie, what character would want to play?
如果你在一部电影里,你想扮演什么角色?

What do you think about clothing styles that are popular today?
你对现在流行的服装款式有什么看法?

What do you think is the most important quality a person can have?
你认为一个人最重要的品质是什么?

What is one thing you want to achieve before you finish school?
在你完成学业之前,你想做的一件事是什么?

What are three things you want to do this summer?
今年夏天你想做的三件事是什么?

If you had friends all over the world, how would you keep in touch?
如果你的朋友遍布世界各地,你会如何保持联系?

If you joined the circus, what would your circus act be?
如果你加入马戏团,你的马戏表演是什么?

Do you think the discipline and consequences in our family are fair?
你认为我们家的纪律和后果公平吗?

If you could make three family rules, what would they be?
如果你可以制定三条家规,那会是什么?

What do you think are the most important qualities of a good parent?
你认为一个好父母最重要的品质是什么?

What is your favorite family tradition?
你最喜欢的家庭传统是什么?

What are some things that you don’t need, but you’re really happy that you have?
有哪些东西是你不需要的,但你真的很高兴你有?

If you were a teacher and could teach your students anything at all, what would you teach them?
如果你是一个老师,可以教你的学生任何东西,你会教他们什么?

If a friend asked you to keep a secret that you don’t feel comfortable keeping, what would you do?
如果一个朋友让你保守一个你觉得不舒服的秘密,你会怎么做?


您可以随时随地向您的孩子提问。然而,选择一个时间和地点,当你的孩子专注,平静,不慌不忙可能会导致更深入的答案。如果他们也能少一些分心的事情会更好。例如开车 、睡觉、排队或等待约会,以及餐桌上都是进行这些讨论的绝佳空间,因为在这些时候你可能会得到孩子的全部注意力。为了方便你随时获得这些话题,我向你推荐「哲学少年」这个 iOS 应用,你可以使用它,每天和孩子选择一个问题来谈论。

明确你的愿景和目标

从“为什么”开始,而非“做什么”

我们常常急于直接开始开发,却很少停下来思考“我为什么要创造这个产品?”如果你每次开始新项目,第一步就是打开 Xcode 创建,不妨先暂停一下。找个本子坐下来,花一两个小时,列出你真正想做的事情。先从“为什么”开始,而不是“做什么”。

你可以问自己以下问题:

  • 你为什么要做自己的产品?
  • 你真正的长期目标是什么?
  • 对你来说,成功是什么样子?

你的具体目标是什么并不重要,重要的是你必须有一个目标。如果没有明确的愿景,你很容易在各种想法和项目之间摇摆不定,难以取得实质性进展。因为没有目标,你就无法朝着它前进。


常见的目标通常包括以下几种:

1. 为了赚钱

如果你的目标是赚钱,那么 iOS 开发有以下优势:

  • 苹果会为你提供开发和测试应用所需的所有工具。
  • 苹果会负责应用的托管和分发。
  • 苹果会统计 App Store 页面的访问数据和应用的使用数据。
  • 苹果能让你接触到超过 15 亿用户,他们只需轻点几下就能为你付费。作为回报,苹果会抽取你收入的 15%。你可能会问:“苹果不是抽成 30% 吗?”确实如此,但只有当你的 App Store 年收入超过 100 万美元时,抽成比例才会提高到 30%。在此之前,你可以参与苹果的小企业计划,享受 15% 的优惠抽成。
  • App Store 是全球最大的软件市场,即使只有万分之一的用户订阅你的应用,你也能取得不错的成绩。
  • 除了每年 99 美元的开发者会员费,你几乎没有其他启动成本。你不需要管理库存,无需处理销售税,即使下载量从 100 次激增到 10 万次,你也不需要做任何额外调整,所有这些都由苹果公司为你完成。

2. 为改变生活方式

开发应用最吸引人的一点是,即使在你睡觉时,苹果也能帮你销售产品。每周有超过 8 亿人访问 App Store,其规模和影响力令人惊叹。如果你能抓住其中十万分之一的用户,就已经非常成功了。而且这一切都是自动进行的,无论你在睡觉、度假还是全职工作,你的产品都能全天候、每周 7 天不间断地销售。

这意味着 App Store 能为你带来极大的生活方式自由。你不再受限于朝九晚五的工作、每天一小时的通勤,也不会只有短短几周的假期,更不用担心因请病假而堆积如山的工作。

3. 为解决自己的问题

iPhone 16 Pro 内部有六个 CPU 核心,每秒可执行约 180 亿次运算。此外,它还配备了一个每秒可执行 38 万亿次操作的神经网络引擎。是的,是“万亿”。这意味着你口袋里的小设备蕴藏着几乎难以想象的强大能量,几乎可以解决任何计算问题。更棒的是,你为自己解决的任何问题,很可能也能帮助成千上万甚至更多的人。没有比审视自己的生活、开发解决自身问题的应用更好的方式了。为你真正关心的事情开发应用——将你的技能和兴趣结合起来,你将见证奇迹的发生。

4. 其他

当然,还有一些常见的学习开发应用的目标,但它们与我们主要关注的“独立开发者”角色相去甚远,因此这里不做深入探讨。例如:为了找工作而开发应用;为了学习或娱乐而开发应用。这些目的本身没有好坏之分。


从目标到战术

明确自己的目标,是为了制定后续的执行策略,也就是所谓的“战术”。拥有一个清晰明确的目标至关重要,这样你做的每一个决定都能以此为依据进行评估,从而帮助你做出正确的选择。例如:

  • 如果你的目标是建立作品集以找到工作,你可能不会每周都发布一个应用来测试市场反应。
  • 如果你的目标是拥有独立的生活方式,那么你应该通过订阅模式来寻求长期且可持续的收入。
  • 如果你的目标只是赚钱,你可能会发现一个简单的 AI 封装应用,只需投入几个小时,就能获得与开发一个更大、更复杂应用一个月相当的收益。

无论你的目标是什么,有几点是普遍适用的:

  • 首先,除了遵守苹果的开发者服务条款外,我们都有道德义务尊重用户。这意味着你只应追踪必要的数据,诚实公开地披露信息,并安全地存储数据。
  • 其次,除非你的目标非常具体,否则你的想法几乎都可以通过现有的用户界面控件来实现。我知道浏览 Dribbble 上那些精美的定制设计很吸引人,但请记住,在 Photoshop 中实现像素级完美的应用设计,远比让它在 iPhone SE 到 iPhone 16 Pro Max 之间(同时还要处理竖屏和横屏)完美适配要容易得多。更何况,你还需要考虑三种不同的 iOS 版本和八种不同的用户语言。
  • 不要害怕尝试。即使你的目标是打造一个“完美应用”作为作品集并发布到 App Store,你也可以提前进行尝试——如果某个应用不合适就直接下架。甚至在开始开发之前,你就可以将其定义为一次性实验。通过尝试和实验,你学到的东西远比坐等观望、犹豫不决要多得多。你永远不知道,也许会偶然发现一个爆款应用。

苹果开发者实现目标主要有两种主流方式:

1. 渐进式增长

第一种是追求渐进式增长,通常称为“基线加法”(baseline plus)。这种方式下,你会说:“我去年赚了(100美元/1000美元/1万美元),所以明年我想赚(150美元/1500美元/1.5万美元)。”它提供安全、稳定的成长,有点像奥运会上的跳高——每成功跳过一次,杠铃就提高几厘米,这便是你的新目标。

2. 倒推法

第二种选择有一个更专业的名称:倒推法(backcasting)。这种方式下,你会为自己设定一个未来的目标,然后从那个目标倒推回现在,规划一条实现路径。这个名称来源于其“反向预测”的特点——例如:“我的目标是明年这个时候每月赚取 5000 美元的经常性收入(MRR),那么倒推计算,9 个月后我需要赚 4000 美元,6 个月后我需要 3000 美元,以此类推。”

此外,作为独立开发者,你没有项目经理来监督。但请不要忽视项目管理的重要性:

  • 为自己制定“冲刺”(sprints),这样你就有明确的短期目标可以为之努力。
  • 制作一个“燃尽图”(burndown chart)——直观地展示距离目标还有多少工作量。
  • 列出需要完成的任务清单,并在完成后保持可见——这是监测进展、了解自己进步的好方法。
  • 将更大、更复杂的目标拆解成小而有趣的目标——你毕竟是普通人,要避免“倦怠”(burn out)。

当你明确了目标后,剩下的就是专注,尽可能地排除外部诱惑和干扰。例如,以 Slopes 应用闻名的 Curtis Herbert 于 2013 年开始开发,但直到 2022 年才因此获得苹果设计奖。从开始开发到赢得这项殊荣,他总共花费了九年时间,而这款应用的总开发时间更是长达 12 年。


一个案例

例如,开发了 Pokémon cards 应用的知名开发者 Adam Lyttle,一直以实现经济独立为目标。他长期以来的做法是开发应用,然后直接将其出售,而不是通过 App Store 赚取持续收入。他的理由是:“一个每月赚 500 美元的应用,根本无法帮我支付房租。后来我意识到,同一个应用可以以其两年收入的总和出售(即一次性套现两年的预期收入)。所以我的商业模式变成了:每月开发一个应用,并努力让它每月至少赚取 500 美元,然后将其出售,套现大约 12000 美元。如果每隔一个月成功一次,财富积累的速度会非常快。”

与孩子有效讨论的注意事项

与孩子开展有价值聊天,除了挑选主题外,还有一些情景 Setting 的建议,如下:

  • 全神贯注地倾听,孩子会把良好的对话和倾听者的时间、信任联系在一起。在良好的对话中,孩子才能感觉到自己是对方关注的中心
  • 聊天过程中不要去看手机,如果孩子在对话中感觉自己不被重视,就会闭口不谈。他们只有在感到被接纳,被重视,被倾听的时候才能建立起信任
  • 如果孩子说出了一些偏离预期的话,不要着急喊停,这样会剥夺自己了解孩子的重要机会
  • 不要给孩子贴标签,标签会对孩子进行归类,限制、制约孩子的可能性
  • 每个话题的讨论时间不用过长,5-10分钟即可,留下点时间可以做一下记录

适合和孩子讨论的启发性话题

父母经常在和孩子散步时,坐地铁时… 会遇到碎片化的无聊时刻,为了避免塞给孩子一个电子设备让他安静的做法,最好最简单的做法是和孩子聊聊天。但是除了经常问一些“今天作业做完没”、“在学校怎么样”… 这类百无聊赖的话题,还可以聊什么呢?有没有什么既有趣,又能启发孩子思考的一些话题?临时那么一问,很多人也说不上有哪些话题可聊。在快节奏的当下,父母需要更多的智慧来做准备。

于是我决定收集一批符合要求的话题,以便未来遇到这些时刻,可以快速地抽取一个。这些问题有助于指导与孩子的日常对话,有助于了解孩子的人格特点。这些话题大概需要具备以下这些特质:

  • 安全无评判:指的是话题应该是开放性的,没有固定答案和绝对对错。在脱离了是非对错的“二元对立”情景,孩子才可以没有负担,更加松弛地表达真实想法。父母用这些提问,可以为孩子创造一个“亲密而安全的岛屿🏝️”
  • 平等可探索:这些话题不只小朋友可以回答,同时也适合成年人。面对这些话题,父母和孩子是平等的,双方可以自由地就某个话题进行讨论,互相提问和激发
  • 有趣有空间:好的问题应该有阐述和解释的空间
  • 不依赖知识背景:这些问题应该和孩子的知识背景、水平没有太大关系,大部分都能回答上几句。因此像科普类的问题就不大合适收集其中

问孩子们一些不需要“是”或“否”回答的问题有巨大的好处。一些优点包括:发展语言,沟通,批判性思维和社交技能;培养创造力、 自尊和信心;了解他们如何思考问题,这可以加深你们的联系。

儿童心理学家米歇尔·博尔巴说,虽然孩子的父母已经习惯了他们的孩子每天问几百个问题,但回答问题实际上会让你的孩子敞开心扉。它还让孩子们知道,想象力和好奇心是受欢迎和鼓励的。此外,Borba 博士补充说,“你正在向孩子示范如何提出一个好问题。”

日后我会把这些问题做成一个 App,每一个问题会有一些小小的补充提示,方便父母在提问后对孩子做引导,做延展讨论。父母可以针对每一个问题做一些记录,记下孩子的想法、思考、感受;或者记下父母自己的感悟,比如和孩子进行一次深入交谈后的启发。这样这个 App 也是一种形式的日记本,非常珍贵。

🍄 HOCC 的周边

从 Spotify 听到 HOCC 的新歌 《Allô! Marie-Claude!》,看到有位网友留言:“每句歌词结尾都能与“威廉”押韵,句句不提威廉,句句都是威廉。 裡面 背面 光源 這邊 某天 信念 惦念 草原 衝前 那邊 蔓延 光線 腳邊 蔓延 碎片 復原 很遠 取暖 相見 這天” 。于是想起要了解一下之前的《威廉》这首歌里的威廉到底指代谁?唱片封面里被划掉脸的人又是谁?

于是上网搜索了一下,看了几篇文章,都没有明确的解释。结果搜到了 HOCC 在 Substack 的频道,看了她自己对MV的一些创作记录,虽然也没有找到我想要的答案。但她的频道倒是又触发了我的网瘾,我顺藤摸瓜地看了很多她之前的文章和过程发现的一些有趣的内容。

HOCC 现在很多收入来源都来自自己网站的会员订阅费,她的根据地有这几个:

发现了一些她用开的 APP,我感兴趣的有以下这些:

还有一些她提到的有趣的内容:

  • 这里提到了对完美无瑕疵作品的一些看法:去年上過一個online course,關於錄音技巧的,那課讓我大開眼界。那位製作人/engineer老師Philip Weinrobe,教的不是如何用科技或者儀器將做到每個錄音都無暇,而是把重點放在如何捕捉到歌手當刻的情感和狀態。無論是錄音前的小散步和準備功夫,讓歌手進入狀態,又或者錄音設備的擺放和用法(例如不用耳機而是用喇叭,直接讓它spill(漏)到其他軌道去)和後期的處理,也都不太過會追求「零瑕疵」,反而把重點放在怎樣讓歌手放鬆表達。到最後選用的takes都是先著重真摯,就算有一點點雜音或者音準問題,也都會優先揀選唱得最有感情的。在現在大家都追求過分完美的autotune世界,這完全是和所謂潮流背道而馳,但我認為這樣才是最能展現歌者特質的做法。
  • 她转发了一条 ID 为 Joel Uili 的动态 ,我发现这个人的简介中写的是:哲学家兼“职业原型”创始人,致力于帮助具有精神追求和创造力的人们在21世纪找到有意义的职业。他有一个线上课程,是帮助人们如何寻找选择自己的职业道路的 。这个是我一直感兴趣的,不知道他是否真的有可操作性的方法。课程是收费的,先 Mark 下来。
  • 喜欢的一张专辑 José Gonzalez 的《Local Valley》

头脑风暴在实践中的问题

头脑风暴是个听起来很现代化的技巧,但它其实是一个百年前的想法,并在 60 多年前就已传播得广为人知。如今大大小小、各行各业的公司也都会在日常使用头脑风暴这个工具,但其实际的效果差别很大,这当中会有各种各样的实操问题。但不管怎样,头脑风暴作为一种脑力练习是值得推崇的,可以帮助我们自己跳出许多思维定式以及鼓励我们打破惯性。

很多人认为开展一场头脑风暴能想到新的好想法,然而等到自己实操的时候发现并不如意。一些最近的认知科学研究也是这么认为的,例如这篇论文《头脑风暴小组的生产力损失:元分析集成》 。他们的研究发现可以简单总结成以下两方面:

大脑的局限

  • 人们对眼前的材料进行思考时,大脑会对那些更容易想到的想法赋予最高优先级,然而这些最容易想到的想法未必是合适的
  • 人们的大脑更容易记起最近遇到、看到的信息,尤其是那些带以感情、生动而具体的信息
  • 人们更倾向于喜欢最初产生的想法,即便它们跟题目不太相关也不愿舍弃

这一部份的问题,主要来自人类大脑的限制,所以最好通过外部系统帮助解决,比如养成记笔记的习惯。这样是把短期有时间限制的头脑风暴,拉长作为长期的行为,让每个想法能得到充分的发酵和评估。

协同的影响

  • 多人头脑风暴时,产生的好想法往往越少,而且参与者往往会不自觉把自己限制在更狭小的想象空间内;
  • 帕金森琐碎定理:人多的时候往往会对琐碎简单的小事花费大量时间讨论,反而对那些重大决议用很少时间,且参会人数越多越明显;

这一部份的问题,主要是来自协同工作的衍生问题。自己独处时产生的想法可能比一群人头脑风暴时产生的想法要好,换句话说就是回避头脑风暴。例如可以通过“让参与者事先准备好自己的头脑风暴,随后把所有人的结果归总整理”来规避;或者可以通过“把大会拆成小会、减少与会人数”来解决。

如何解决

基于以上问题的考虑,我开发了「创意便签」InspireNote 这款应用。首先它是一个轻量级的笔记,可以记录日常的所有想法,按项目进行整理,这种随身的笔记形式让你可以随时翻阅,让每个想法能得到充分的发酵和评估,不断打磨。此外它提供了一些经过验证有效的常用思路卡片,利用这些卡片可以更好地帮助你进行头脑风暴练习。它特别适合创意工作者、设计专业学生等人群。点击下方按钮即可在苹果 App Store 进行下载(暂无安卓版本)。


Problems in brainstorming practice

Many people expect a brainstorming session to yield innovative and valuable ideas. However, when put into practice, the results often fall short of expectations. Recent cognitive science studies support this observation, revealing several underlying issues:

The Brain’s Limitations

  1. Prioritizing the Obvious
    When thinking about available material, our brains tend to prioritize ideas that are easiest to recall. Unfortunately, these readily available ideas are not always the most appropriate.
  2. Recency Bias
    Our minds are more likely to recall recent, emotionally charged, vivid, or concrete information, which can skew our thinking.
  3. Attachment to Initial Ideas
    People often become attached to the first ideas they generate, even if these ideas are only loosely related to the topic, making it hard to let go of them.

These issues stem from the inherent limitations of human cognition. To address them, it’s best to leverage external systems, such as adopting a habit of note-taking. By transforming brainstorming from a time-limited exercise into an ongoing practice, ideas can be revisited, refined, and evaluated more thoroughly over time.

The Pitfalls of Collaboration

  1. Fewer Good Ideas
    Group brainstorming sessions often yield fewer valuable ideas, as participants may unconsciously confine themselves to a narrower range of imagination.
  2. Parkinson’s Triviality Law
    Groups tend to spend disproportionate amounts of time on trivial matters while allocating minimal time to critical decisions. The larger the group, the more pronounced this effect becomes.

These challenges arise from the dynamics of collaborative work. Surprisingly, ideas generated in solitude can sometimes be better than those produced in a group setting. To mitigate these issues, consider alternative approaches, such as:

  • Individual Preparation: Ask participants to brainstorm independently beforehand, then consolidate everyone’s ideas for review.
  • Smaller Groups: Break large meetings into smaller, more focused sessions with fewer attendees.

A Solution: InspireNote

With these challenges in mind, I developed the InspireNote app. It serves as a lightweight note-taking tool to capture and organize ideas by project, making it easy to revisit and refine them over time. This approach ensures that every idea has the opportunity to mature and be thoroughly evaluated.

In addition, InspireNote offers a collection of proven brainstorming prompts and cards designed to stimulate creativity and guide brainstorming exercises effectively. It’s particularly well-suited for creative professionals, design students, and anyone in need of a structured way to cultivate and manage their ideas. Download it now from the Apple App Store (currently iOS only).

如何有效进行头脑风暴

头脑风暴是个听起来很现代化的技巧,但它其实是一个百年前的想法,并在 60 多年前就已传播得广为人知。如今大大小小、各行各业的公司也都会在日常使用头脑风暴这个工具,但其实际的效果差别很大,这当中会有各种各样的实操问题。但不管怎样,头脑风暴作为一种脑力练习是值得推崇的,可以帮助我们自己跳出许多思维定式以及鼓励我们打破惯性。

头脑风暴的七条原则

为了更有效地进行头脑风暴,知名的设计公司 IDEO 曾经提出头脑风暴的 7 条原则。具体如下:

1. Defer Judgment 暂缓评论

不要急于对别人的观点发表是非对错的评论,这样会打击提出点子者的积极性,且把集体思维的联想和延展打断。这也是对提出点子的人的尊重。

2. Encourage Wild Ideas 鼓励大胆想法

许多人日常总是怕说错话,在别人发言时,脑子想的是“我要怎么讲是对的”、“我要怎么讲才能表现我的水准”。这是因为许多人成长经历中就缺乏允许异想天开的环境。只有让异想天开大行其道,才能鼓励每个人真正去敢于思考,而不是纠结在表达的水准和对错上。

3. Build on Ideas of Others 借“题”发挥

有些时候别人会提出来很疯狂的点子,你自己虽然是专家,知道行不通,但在座的很多不是专家,说不定听到这个疯狂的点子会得到启发、获得灵感,在这个疯狂点子的基础上,提出更实际的方案。所以,只有在暂缓评论的环境下,才能让更多的人借异像天开的点子发挥。

以上前三个原则是鼓励出好点子的环境基石。

4. Stay Focused on Topic 不要离题

每一次讨论,要定一个明确的题目,不然的话异想天开的结局是不能收敛。

5. One Conversation at a Time 一次一人

讲话的时候保持同时间只能一个人讲,不要七嘴八舌的。

6. Be Visual 图文并茂

鼓励大家在想点子的时候,把这个点子用图案的方式画出来。不是很会画图也没关系,这是因为,有时收集了很多很多点子张贴在墙壁上,也许有几百个,你过几天再回去看,如果只有文字的话,有的时候会想不起来这到底是什么,画图可以帮助记忆。

7. Go for Quantity 追求数量、非质量

在规定时间内鼓励大家尽量讲,追求数量。IDEO 公司内部一般一个小时可以汇集 100 个点子。IDEO 特别推崇诺贝尔获奖者 Linus Pauling 的一句话就是:“要得到好的点子,首先要获得很多点子。The Best way to get a good idea is to get a lot of ideas.”

IDEO 公司的每一个会议室白板上方,都贴著这样的七项原则。不过,好的流程、规则也并不能完全保证有完美的头脑风暴,因为最终的执行还是靠人。

因此最好每个人在日常都习惯自己做头脑风暴,掌握一些基本的思路和方法,这里推荐我开发的应用 创意便签(InspireNote),它特别适合创意工作者、设计专业学生等作为日常的想法备忘录。点击下方按钮即可在苹果 App Store 进行下载(暂无安卓版本)。


The Seven Principles of Brainstormin

To make brainstorming sessions more effective, the renowned design firm IDEO introduced seven key principles, which are as follows:

  1. Defer Judgment
    Refrain from passing immediate judgment on others’ ideas. Criticizing ideas too soon can discourage participants and disrupt the flow of collective thought. Respecting contributors fosters an open, creative environment.
  2. Encourage Wild Ideas
    Many people hesitate to speak up, worried about saying the “wrong” thing or failing to meet a certain standard. This often stems from a lack of exposure to environments that embrace outlandish ideas. Encouraging wild, unconventional thinking inspires participants to focus on genuine creativity rather than perfection or correctness.
  3. Build on the Ideas of Others
    Sometimes, seemingly outrageous suggestions from others can spark fresh inspiration. Even if an expert knows an idea won’t work, it might lead non-experts to an innovative, practical solution. Creating a space free of premature criticism allows the group to build on each other’s ideas effectively.

The above three principles form the foundational environment for generating great ideas.

  1. Stay Focused on the Topic
    Every session should have a clear, well-defined focus. Without it, the free flow of ideas might veer off course and become unmanageable.
  2. One Conversation at a Time
    Ensure only one person speaks at a time. Avoid chaotic, overlapping discussions that can derail the process.
  3. Be Visual
    Encourage participants to sketch out their ideas, even if they’re not skilled artists. Visual representation helps clarify concepts and aids memory. When reviewing hundreds of ideas later, visual cues can often convey meaning more effectively than words alone.
  4. Go for Quantity Over Quality
    During brainstorming, prioritize quantity. Aim for as many ideas as possible within the allotted time. At IDEO, teams often generate over 100 ideas in just one hour. The company emphasizes Linus Pauling’s famous quote:
    “The best way to get a good idea is to have a lot of ideas.”

However, even with the right process and rules, successful brainstorming ultimately depends on the people involved.That’s why it’s crucial to cultivate the habit of brainstorming independently. By mastering some basic methods and approaches, individuals can enhance their creative thinking daily.

To support this, I’ve developed an app called InspireNote, a perfect tool for creative professionals, design students, and anyone looking for a reliable way to capture and organize their ideas. Download it now from the Apple App Store (currently iOS only).