2026年2月27日下午四点半最后一个学生把作品文档拖进共享盘教室安静了几秒然后有人拍了一下桌子喊了句“终于搞完了”。我站在讲台边上看着这二十来个孩子从两周前的“写代码像挤牙膏”到刚刚走上台对着三位评委把自己的项目讲得清清楚楚——那一刻确实挺有成就感。这篇复盘就是这个时间点的产物记录这次寒假集训从排课到结营的完整经过也把那些踩过的坑、验证过有用的方法一条条摊开。如果你打算在假期带类似的学生训练营或者正在犹豫要不要给孩子报一个编程方向的营这篇内容值得你花十五分钟慢慢看。1. “寒假集训”这件事我是怎么把它定义清楚的1.1 先回答一个最关键的问题集训到底要解决什么很多人一听到“寒假集训”四个字下意识会想到补习班想到提前学下学期内容。但我在设计这次营之前先做了一次减法集训不应该是一个“讲授”场景而应该是一个“生产”场景。学生进营之前大多在学校里接触过编程入门或者Python兴趣课能看懂循环、条件语句、简单的函数但几乎没有一个人独立完成过“从数据到结论”的完整小项目。这是最大的断层。所以这次寒假集训的目标非常清晰让每个学生在12个训练日里亲手交出一个能跑、能看、能讲的作品。不是背下更多的语法不是刷更多的题而是体验一遍真实项目里“提需求、找数据、清洗数据、画图、得出结论、写文档、上台讲”的全链路。这个定位一旦确定后面所有排课、选工具、布置作业都会跟着变不会跑偏。1.2 为什么选在2月27日结营春节后那段特殊的时间窗口2026年的寒假比较特殊2月10日开营中间过了一个春节营期跨年2月27日做结营路演。整个节奏是12个训练日加3天休息春节假期正好卡在中段。把结营日定在2月27日而不是开学后的周末是一个刻意的选择。寒假尾巴是最容易荒废的日子。经历了春节的走亲戚、抢红包、大鱼大肉孩子们处在一种“心玩野了但又知道快开学”的焦躁状态里。这时候如果有一个需要他们连续投入、每天都有产出的集训反而能帮助他们把状态拉回来。更实际的好处是寒假营的作业和成果可以直接带进新学期作为信息科技课的综合作业、综合素质评价材料或者参加一些科创类展示活动的敲门砖。也就是说结营日离得越近作品的“保鲜度”越高孩子们拿去用的动力也越强。1.3 学员画像与分组策略不按年龄分按“能不能独立跑通代码”分这次营最终入营22人年龄从六年级到高一都有。一开始我也纠结要不要按年级分组后来临时改成按“基础摸底测试”分组效果出乎意料地好。摸底测试其实很简单第一节课前发一个只有十个题目的小练习其中最后一题是“读入一个csv文件把其中一列求和并打印”。能独立完成这道题的孩子分到进阶组需要提示才能完成的分到基础组完全动手不了的分到起步组。分组之后三个组课表一样但练习难度和项目选题建议不同。起步组第一周目标是把Python核心语法磨顺进阶组第一周目标是直接上手pandas处理真实数据。这个分层看起来简单却直接决定了后面两周有没有人掉队。如果只看年级分班六年级和初二可能差不多但同一个班上可能既有人写得出完整循环、也有人连缩进都还没搞懂——集训节奏快这个差距不处理第三天就会有人开始玩手指头。2. 从“会语法”到“能交作品”12天三段式训练是怎么排的2.1 第一周2月10日—2月14日把语法收尾变成工具箱第一周的前三个训练日每天上午两小时讲核心知识下午两小时做配套小练习。我刻意没有用传统教材的顺序而是按“马上要用什么就先讲什么”来重排第一天讲变量、类型、列表和字典第二天讲文件读写尤其是CSV的读取第三天讲循环、条件判断和函数封装第四个训练日集中做数据清洗教怎么处理空值、重复值、格式不统一的脏数据第五天上午讲matplotlib的基础绘图下午直接做第一次小组小测。这里有一个很重要的设计不单独把语法拆成十节课。原因是集训只有12天如果把时间花在“for循环的五种写法”这类细究上学生学到第六天就会问“这东西到底有什么用”。反过来语法和数据处理场景绑在一起教比如讲字典就直接用“统计一份班级问卷里最受欢迎的课外活动”来练学生的接受度会高很多。下午的小练习也故意做成“一个下午能跑通一个小结果”的尺度这样学生每天都有正反馈。有一个起步组的孩子第一天下午独立画出了全班同学身高的柱状图那种兴奋感是会传染的第二天上午再来教室的时候他第一个打开电脑继续敲代码。2.2 第二周2月18日—2月21日数据项目周不碰爬虫也能做出好项目第二周进入项目模式。我先解释一下为什么这一周不教爬虫带未成年人做网络数据抓取边界不好把握而且寒假营时间那么短与其花三天讲网页结构和反爬策略不如把精力放在“拿到数据之后怎么做分析”这个更核心的能力上。最终我们的数据来源有三种学生自己收集的问卷数据、公开数据网站上能下载的CSV数据集、以及老师提供给他们的模拟业务数据。第二周的项目任务分成四步走第一天定题目、列问题清单第二天整理数据、画出第一版图第三天补分析、写结论第四天做初步整理和互相提问题。这一步很关键项目周最怕学生拿到数据就开始闷头画图画了十张图没有一张能回答一个具体问题。所以第二天我强制每个人都先回答“你究竟想用数据回答什么”写在一个共享文档里然后才允许开始画图。这周的典型作品包括比较学校周边几家奶茶店在不同时段的排队趋势、分析一个小区快递柜使用高峰与取件时间的相关性、整理某次班级考试各科分数分布并给出复习建议。听起来题材不大但每个项目都完整走了一遍“数据到结论”的链路这比题材宏大但根本跑不通的项目有价值得多。2.3 第三周2月23日—2月27日自由创作周2月27日被用来路演验收第三周的前三天用于打磨项目后两天用来做路演准备。自由创作不是完全放开而是限定了三个方向校园生活数据、社区生活观察、个人兴趣调查。每个方向下面是开放题目可以是“校园午餐受欢迎度分析”也可以是“我喜欢的游戏角色评价值统计”。周四下午先进行了一次内部彩排每组站上台用6分钟讲自己的项目下面的伙伴按一个非常简单的评分表打分。这个环节特别重要因为很多学生可以做出来但完全不会讲。我第一次看到有孩子把“缺失值”说成“数据坏掉了”底下一片笑声但笑完反而没人紧张了。到了周五也就是2月27日上午做设备调试和最后一次试讲下午两点正式开始结营路演。每个项目8分钟展示4分钟答辩三分钟交接二十二个学生一共分成十四组全部结束正好五点半。整场路演下来没有一个学生因为紧张或者项目崩溃而中途放弃这是我事先没想到的。3. 结营日全记录2月27日下午孩子们交出来了什么3.1 从“战战兢兢”到“意犹未尽”的现场氛围2月27日下午的教室布置很简单前排一张长条桌当作答辩席三位评委是我请来的校外观摩老师每人手里一份评分表。评分维度不是代码水平而是五个项目选题是否贴近真实生活、数据是否靠谱、分析过程是否有逻辑、可视化是否清晰、表达是否让人听懂。正式开始之前我其实很担心冷场。因为这些孩子虽然编程学了一段时间但很少站在人前讲自己的代码。第一个上场的是一个初二男生项目是“寒假作业完成速度与当晚睡眠时长的关系”他用了一份手动收集的二十人小样本数据画出了两条折线图。讲的过程中他声音一直在抖但说到“睡得越晚第二天写题越慢”这个结论时台下的同学还是整齐地笑了。那一刻我就知道这个场子稳了。3.2 五份最有代表性的项目答卷下午一共展示了十四个项目。为了避免流水账我挑五个最有代表性的列在这里项目主题数据来源使用的核心技能亮点明显不足学校周边奶茶店排队时长对比三家人工蹲点记录CSV读取、均值对比、柱状图是真的蹲点两小时采的数据样本量偏小只有周末数据寒假作业效率与睡眠时长分析问卷星20份问卷数据清洗、折线图、相关性说明结论能自己解释不硬扯因果忘记去掉一份乱填的问卷小区快递柜取件高峰时间研究连续一周人工记录分组聚合、堆叠柱状图角度生活化可视化好看没有对未来备柜数量做建议零花钱使用结构分析访谈5位同学加自己记录字典统计、饼图访谈法用得规范样本偏少自己也承认了错题本知识点分类统计器期末试卷错题字符串匹配、条件判断、表格输出工具属性强可以继续用分类规则写得太粗略我把这张表直接放进了结营之后的家长沟通文档里比写三行评语要直观得多。很多家长第一次知道自家的孩子不只会“写代码”还能自己设计一个小研究并且把它讲清楚。3.3 现场故障是常态一个学生项目打不开我是怎么救场的结营路演进行到第七组的时候出了一个小故障。一个六年级女生做的是“班级图书借阅热度分析”PPT打开正常但她的Python脚本在另一台电脑上双击运行直接报错——原因是她本机用的数据文件路径是写死的“C:/Users/她的名字/...”换了一台电脑就找不到文件了。她的脸一下子红了站在台上一动不动。我做了三件事先让她深呼吸然后我帮她现场把文件路径改成相对路径改的时候故意没有藏着掖着直接用投屏让全场看着改改完重新运行画面出来后告诉她“这种问题在工程上太常见了代码里写绝对路径本来就是坏习惯你今天给所有人演示了一遍为什么不能这么干”。台下又是一阵笑声气氛反而比之前更松弛。这件事后来成为复盘时讲得最多的案例之一比任何课堂强调都管用——因为它是真实的错误现场。3.4 三位评委给的共性问题路演结束后三位评委分别点评。我总结出三个高频共性问题留着下次办营时改进第一几乎所有小组都在“描述数据”而不是“回答问题”。比如有组画了四张图每一张图都在说“某个东西的数量是多少”但整场没有回答一个“为什么”或“这对谁有什么启发”。第二大部分项目缺少一个“结论之后的行动建议”。数据本身不能改变什么能改变的是基于数据的行动。第三很多学生对自己的图表选择了不合适的类型——分类比较直接用折线图时间趋势反而用饼图。这不能全怪孩子课程里可视化教学这一块给的时间还是太少了。4. 复盘时最想保留的九个执行细节4.1 环境配置一定要提前装三遍而不是一遍寒假营最容易毁掉第一天的不是课程设计是设备。我们这次提前三天把22台笔记本的系统环境全部装好装了不止一遍第一遍用统一的镜像批量装第二遍挨台启动验证运行示例脚本第三遍让学生各自用自己账号登录一次并跑通热身练习。即使这样第一天上午还是有两台电脑出问题一台Pygame安装版与系统冲突一台是学生把python命令输成了python3导致找不到路径。如果只装一遍开营第一节课就会陷入修bug地狱。有一点必须牢记集训营里环境先于内容稳定先于效率。4.2 助教要用“任务卡”巡场不能用“随意逛”这次营一共安排了三位助教每人负责一个小组。第一天我让他们在各组之间自由走动结果发现有的组被反复打扰有的组从头到尾没人管。第二天改成“任务卡制”助教每个小时领一张巡场任务卡卡上写着“去第四组问一次进度去第七组确认绘图库装成功去起步组帮一个人 debug”。巡场变成有目标的巡检而不是无目的地转悠效率完全不一样。任务卡上还写了一条硬规则助教只能提问题、帮学生读报错绝不直接上手改码。一开始有人做不到看到一个孩子卡了十分钟就恨不得拿过键盘替他敲。但这个规则后来证明是必要的因为孩子自己按下回车跑通的那一刻和助教替他跑通的那一刻前者才真正长能力。4.3 每天15分钟的“站起来互相讲问题”每天晚上结束前全班花15分钟围坐在一起每人一句话说出今天卡住的地方和一个今天学到的小技巧别人可以补充。表面上看是分享问题实际上是在训练表达也在帮老师判断第二天要不要做共性纠错。这次有好几个“一个组遇到的坑全班学习了”的时刻比如有一个孩子发现用encodingutf-8读CSV还是会乱码另一个孩子马上接话说他试过加errorsignore也不行最后发现是数据文件本身编码是gbk。这段讨论直接在第二天的课上变成了三分钟的案例。4.4 不给无限自由选题限定三个方向很多老师容易在项目周给学生“完全自由”觉得这样保护创造力。我自己的经验是给太宽的选题空间等于把决策负担扔给学生。12岁到15岁的孩子大多数还不具备“把一个宏大兴趣收敛成可操作问题”的能力就会出现大量抄袭式选题和半途而废。这次限定三个方向之后学生反而能快速感知“哦原来是要在校园生活里找真实问题”表达欲没有被压住方向也不会飘。4.5 文档比代码更能看出他有没有真学会日常检查作业不能只看代码能不能跑还要强迫学生写一个“项目说明文档”。这次第三周每天的最后一个小时我强制所有人写文档模板只有四栏我要解决什么问题、我用了什么数据、我的分析过程是什么、我得到了什么结论。十五分钟硬写不能写空话。这一招非常有用因为孩子可以抄代码但很难抄“用自己的话解释分析思路”。当然也扫出了几个项目进度造假的情况——文档写不清楚代码又是复制来的一问就露馅。这种风险早发现早处理。4.6 上台之前必须至少模拟路演两次模拟路演这个环节我一开始险些省略。开营前规划只留了上午一小时做预演但真正做的时候发现一次预演完全不够第一次预演时有一半人对着屏幕念代码和台下完全没眼神交流第二次预演时开始有人会指图表讲结论了到了正式路演大部分人都能自然面向观众讲。没有这一小时的“丑态百出”就没有下午的“有模有样”。4.7 家长群只发作品和反馈不发批评寒假营拉了一个家长群我定了一条规矩群里只发当天的课程小结、学生作品截图和正面反馈任何批评性内容和助教整理的“问题学生名单”一律走私聊。这样做一方面保护孩子自尊心另一方面避免家长群变成比较群。结营那天把5份代表性作品发进群配了简单说明家长反应比任何广告都好。4.8 不要妄想一个人扛下所有事分工必须写在白板上22个学生的集训营主教练加三位助教人数看起来够但如果分工不清照样一团乱。这次每天上午九点开营前会花五分钟在白板上写清楚谁负责今天的主讲谁负责盯练习谁负责设备巡检谁负责记录学生卡壳案例。白板上的分工下面是当天的核心任务所有人一抬头就知道自己该干什么。别小看这个动作它避免了助教们反复问“我现在要去哪一组”。4.9 结营不是终点而是下一个节点的起点2月27日晚上我自掏腰包给所有孩子拉了一个微信群没让家长进。这个群的定位很简单每个人每周可以在群里分享一条自己写的代码或者和编程相关的发现我会找时间点评。另外我允诺他们下学期开学后的每个月工作室开放两个周末作为免费答疑时段专门接待这批营员来继续做自己的项目。这个“售后动作”的成本不高但会让集训的结束显得不那么陡峭孩子们也更容易把寒假练出来的状态接续到日常学习中。5. 如果我要再办一期类似的寒假集训一定会先改掉这几个设计5.1 预算和硬件上哪些钱真的不能省第一次办营最容易想省钱的地方是电脑和显示器。我的建议是如果必须压缩预算可以把电脑台数减少但每一台都要保证至少13英寸屏幕和8GB内存。为了图便宜用了六年前的老机器matplotlib画图慢一点还能忍最怕内存不足导致程序直接闪退学生做一半白干。这次有一台低配笔记本在渲染一张大数据散点图时直接卡死学生当场心态崩了最后换了一台机器才救回来。另外机房网络冗余一定要有22个人同时更新库无线路由器扛不住就直接瘫痪。5.2 备课量与授课量的比例1比5是底线这次寒假集训每天授课时间4小时但我每天实际花在备课上的时间是8到10个小时。课备的核心内容不是把讲义写得多精美而是把每一个下午的练习自己先完整跑一遍把可能的报错都先犯一遍。比如“读CSV文件出现中文乱码”这个错误如果老师自己没踩过就很难在学生问到时给出清晰的回应。集训营节奏快现场没有时间临时查资料备课的厚度直接决定课堂的稳定度。如果这是一期8天的营我建议至少留出3周的时间做预备课而不是开营前三天才开始准备。5.3 冬季集训的特殊风险身体和情绪都需要预案寒假营时间短但不要低估季节带来的麻烦。这次开营第二周流感让两个助教一个学生先后请假连带一次小组项目进度落后了一整天。之后我准备了一个简易预案每个半天开始前测体温教室每半天开窗通风一次备好口罩和免洗洗手液。另一件容易被忽视的事是情绪管理。连续多天高强度项目到第三周会出现明显倦怠有的孩子甚至会因为一个图反复画不好而哭。我们安排助教在这个阶段多鼓励少催进度允许进度落后的小组在周三晚上加班一小时补齐。集训不是军训效率要但心理安全线也要。5.4 这一次只是“第一级”下一次要把续接路径铺好这次寒假集训定位是“数据启蒙完整项目体验”。但说实话两周时间不可能让每个人都变成编程小高手有的孩子明显处于“刚刚摸到门道”的状态。所以我已经在规划下一期进阶营主题是“让作品变成产品”会加入简单的命令行交互、把逻辑封装成可复用函数、以及用Git做版本备份。这些能力在第一期里只是隐约带了一下如果下一期能接上学生已经做出的错题统计器、图书馆热度分析这些项目都可以继续迭代不至于结营之后就废弃。5.5 如果只剩一句总结我会说这句话2026年2月27日的结营路演结束后我花了一个多小时把所有作品文档归档。归档时发现几乎每个学生都在文档最后一栏写了一句“这个项目让我明白了……”——有一半人写的是“原来编程课真的能解决生活里的问题”。这比什么评价都让我觉得这次集训值得。如果让我对打算办类似训练营的人说一句最想说的话那就是集训的价值不在那12天里“教了什么”而在结营那天之后有多少孩子愿意继续为手里的那半个作品花时间。一个寒假营可以结束但一根主动探索的线头必须被留下来。这才是“寒假集训”这四个字真正该做的事。