<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title><![CDATA[Seaborn's Life]]></title><description><![CDATA[记录 Seaborn 的日常生活]]></description><link>https://life.seabornlee.cn/</link><image><url>https://gw.alipayobjects.com/zos/k/qv/coffee-2-icon.png</url></image><item><title><![CDATA[2015年度总结]]></title><link>https://life.seabornlee.cn/posts/2015%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</link><guid>https://life.seabornlee.cn/posts/2015%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</guid><description><![CDATA[<img src="/_image/2015-10-24/1024 hackathon.png">
<p>一晃又是一年，一年短过一年。该来盘点一下这一年都干了点啥了。</p>
<h2 id="事业">事业</h2>
<p>今年事业上又有大的变动，离开了我最喜欢的公司「ThoughtWorks」，加入了互联网创业公司<a href="http://shenzhenware.com">「深圳湾」</a>。
角色上从「咨询师」变成了「技术合伙人」。用前同事的话说：「别在场边干着急，趁着年轻，上场自己踢才带劲儿」。</p>
<p>在「深圳湾」，对外称 CTO，内部称「主管」，其实我还是每天写代码的程序员。
除了写代码，主要负责产品开发，团队搭建，公司文化建设。</p>
<p>因为行业特性，基本找不到可以借鉴的产品，产品在迷雾中摸索前进。
产品开发团队经过几个月的磨合后，是很棒的一支团队，战斗力会越来越强。
在公司做的演讲俱乐部「湾享会」，已成功举办 20 次，培养起了接班人，不用怎么操心了。</p>
<h2 id="家庭">家庭</h2>
<p>1 月儿子们出生，赶上客户那边走流程，正好休了一个多月假，在他们最需要的时候陪在他们身边。
妈妈也在这边帮忙带孩子，爸爸也偶尔在，这一年算是和父母相处时间比较多的一年了。</p>
<p>8 月前做咨询基本每天都能按时下班，加入「深圳湾」后，事情多，激情也高涨，工作起来不觉得累，常常到晚上 22 点后回家。
白天招聘，讨论需求，解决问题占据了大量的时间，只能在晚上安安静静地写会儿代码。</p>
<p>感谢 Mavis 对我工作的支持，不仅没有因为在家时间少而抱怨，还把家庭照顾的很好，与妈妈相处很融洽，儿子们健康成长。还经常给我做不重样的早餐。</p>
<h2 id="健康">健康</h2>
<p>身体没什么毛病，体重在 68kg 左右。</p>
<h2 id="技术">技术</h2>
<p>上半年主要在搞 Jenkins，Maven，Gradle 搞企业持续集成平台。
下半年主要是 Ruby on Rails，了解了一点 React Native，Vagrant，Docker，微服务。
在 Hackthon 的时候写了两个 Chrome 扩展。</p>
<h2 id="社区">社区</h2>
<p>年初成立了「深圳软件匠艺小组」，在 8 月前，差不多每月一次活动。
12 月建立了<a href="https://codingstyle.cn">「软件匠艺社区」</a>，上线 12 天，原创文章 60+，注册用户 200+。</p>
<p>在社区做的分享有：</p>
<ul>
<li>广州敏捷之旅 - Android 持续集成与自动化测试</li>
<li>深圳软件匠艺小组第一期 - Git 入门</li>
<li>深圳软件匠艺小组第二期 - 玩转 Github</li>
<li>引导 APAC Day of Code Retreat</li>
<li>深圳软件匠艺小组第四期 - 持续集成</li>
<li>Shenzhen Java User Group - 意图式编程</li>
<li>中兴通讯 WXCOP - 高效编程的几个习惯</li>
<li>引导 Global Day of Code Retreat</li>
<li>珠海敏捷之旅 - 打造敏捷文化</li>
</ul>
<p>参加了两次 Hackthon，第二次拿了个优秀奖。</p>
<h2 id="兴趣">兴趣</h2>
<h3 id="读书">读书</h3>
<p>今年看过的书多，看完的少，主要是经营管理类的，产品设计，创业相关的。
比较喜欢的有：
《Google 如何运营》
《精益数据分析》
《系统思考》</p>
<h3 id="写作">写作</h3>
<p>写了博客 30 篇左右。</p>
<h3 id="翻译">翻译</h3>
<p>参与了 <a href="https://book.douban.com/subject/26921107/">《七周七语言 卷二</a> 的翻译，负责 Julia 一章。</p>
<h3 id="演讲">演讲</h3>
<p>加入了深圳最早的 Toastmasters 俱乐部 Shenzhen Toastmasters Club，并担任了半年的 Vice President of Public Relations，officers team 在充满激情的 President - Uncle Eric 的带领下，把俱乐部从趿趿可危做到了全城最火。会员数从 20 人左右增长到 50+ 人。会员出勤率，访问人数，最高到会人数，会员增长速度等都一再被刷新。
现在新的一届官员团队已经上任，相信他们还能做得更好！</p>
<p>对我个人而言，基础演讲做完了第六个，会议角色全都做过了。</p>
<p>1 月 16 号，我将在公司主办的<a href="http://www.shenzhenware.com/events/1047030305">「最硬 500」</a>大会上担任主持，对我而言是一个非常期待的挑战。</p>
<h3 id="运动">运动</h3>
<p>第一次<a href="http://www.seabornlee.cn/post/sheng-huo/first-half-marathon">参加马拉松比赛</a>。
跑步不规律，有时天天跑，有时一个月都不跑一次。</p>
<p>走在极限健身的道路上，练成了「双力臂」，开始练「前水平」。
健腹轮可以趴在地上再起来，臂力棒 40kg 一口气 50 次，扩胸器勉强可以拉 4 根。</p>
<h3 id="旅游">旅游</h3>
<p>这一年好像没出过远门。
借着工作之便去了巽疗湾，惠州，汕头。
借着社区活动去了珠海。</p>
<h3 id="其它">其它</h3>
<p>学会了「杂耍球」，并在珠海演讲时用作开场破冰，在「湾享会」也借此做了一个学习方法的分享。
充分体现了「学以致用」的精神。</p>
<h2 id="总结">总结</h2>
<p>今年做的事情与计划有很大出入，还是那句话：</p>
<blockquote>
<p>Plan is nothing, planning is everything.</p>
</blockquote>
<p>正走在一个非典型程序员的路上，「Make things happen」的能力有很大提高。
回顾到此结束，该做 2016 的计划了。</p>]]></description><pubDate>Thu, 31 Dec 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[2014年度总结]]></title><link>https://life.seabornlee.cn/posts/2014%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</link><guid>https://life.seabornlee.cn/posts/2014%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</guid><description><![CDATA[<img src="/_image/2014 大事.png">
<p>不知道是年纪越大，时间过的越快，还是整个世界正在发生什么，使得时间真的过得更快了。</p>
<p>2014 没有做详细计划，只能从各个方面大概总结一下。</p>
<h2 id="事业">事业</h2>
<p>从进入顺丰工作后，一期是 Developer，二期是 Scrum Master，三期是 PM。
前两个都比较擅长，PM 还是头一次，转换的并不好。</p>
<h3 id="顺手寄">顺手寄</h3>
<p>这个是 PM + Developer。前期几天有 Siri 和客户沟通需求和设计，但很快人天用完了，导致和我沟通的时间不够。 两个月的时间，我和 Hogan 两个人在客户安排的小会议室里开发，每天结对，也让我真正成为 Vimer。
最终这个项目因为各种原因超出了合同人天，最后扯了不少皮，作为 PM，我的干系重大。当然后来通过不断和客户沟通，挽回了大部分损失。
作为 PM 学到的一个教训是：</p>
<blockquote>
<p>一定要先签合同再开工。</p>
</blockquote>
<h3 id="我来贷">我来贷</h3>
<p>前一个项目快要结束的时候，我就在想我下一个项目应该是什么样子，我希望能使用 Ruby 并使用英语沟通。这比较难，好像唯一一个使用 Ruby 的项目是金数据，并不是国外项目。
我和国内交付团队的直接领导沟通后，没过多久，一家公司就出现在了我的面前，让我不得不再一次折服于“吸引力法则”。</p>
<h2 id="家庭">家庭</h2>
<p>老婆怀孕期间平平安安的，心情也比较愉快。</p>
<h2 id="健康">健康</h2>
<p>优秀是男人能把老婆的肚子搞大，而不是自己的。</p>]]></description><pubDate>Wed, 31 Dec 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[2013年度总结]]></title><link>https://life.seabornlee.cn/posts/2013%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</link><guid>https://life.seabornlee.cn/posts/2013%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</guid><description><![CDATA[<img src="/_image/2014-01-01/IMG_3227.JPG">
<p>这一年非常忙碌和充实，先来回顾一下比较有意义或者花时间精力比较多的事情。</p>
<h2 id="2013-大事记">2013 大事记</h2>
<ul>
<li>业余时间参与<a href="http://www.jiwenjida.com">即问即答网</a>开发</li>
<li>参与组织<a href="http://www.scrumgathering.cn/">Scrum Gathering</a></li>
<li>进入ThoughtWorks</li>
<li>业余时间研发移动办公2.0版产品</li>
<li>发起Global Day of Coderetreat2013深圳站</li>
<li>发起<a href="http://seabornlee.com/post/huo-dong/shen-zhen-min-jie-zhi-lu-zu-zhi-zhe-zhao-mu">敏捷之旅2013深圳站</a></li>
<li>决定离开北京</li>
</ul>
<p>再来看看各个方面的达成情况，分为Well，Less Well，Bad三个级别。</p>
<h3 id="事业-well">事业 Well</h3>
<p><img src="/_image/2014-01-01/Screen-Shot-2014-01-01-at-6.47.27-PM.png" alt="事业计划">
进入了梦想的ThoughtWorks
学习了CSM课程
第一次参与正经的Android项目
在新项目上对自动化测试，TDD，CI有了更多的实践和认识
发布移动办公2.0版产品
创业的其它方面了解的不多</p>
<h3 id="家庭-bad">家庭 Bad</h3>
<p><img src="/_image/2014-01-01/Screen-Shot-2014-01-01-at-6.48.53-PM.png" alt="家庭计划">
给家里的电话还是不多，不过发现一个好渠道，通过微信和父母有了更多的互动。
很少下厨房，对不起老婆了。</p>
<h3 id="健康-less-well">健康 Less Well</h3>
<p><img src="/_image/2014-01-01/Screen-Shot-2014-01-01-at-6.49.33-PM.png" alt="健康计划">
除了俯卧撑，其它都做的不好，不过有一个亮点是坚持两个月每天爬24层，没有中断。我的身体力行也影响了team里其他同学，爬楼梯、俯卧撑、平板撑是我们每周必有的项目，希望大家在忙碌的同时不要忽略自己的健康，尤其现在这个阶段基本都属于家里的顶梁柱，不仅是对自己的健康负责，也是对家庭负责。</p>
<h3 id="休闲-well">休闲 Well</h3>
<p><img src="/_image/2014-01-01/Screen-Shot-2014-01-01-at-6.50.11-PM.png" alt="休闲计划">
KTV去过几次，电影也看过几部，桌球打的比较少（没有球友），不过老婆进度很大，不知道是不是偷偷在练。今年因为工作变动和社区活动，去过的地方比前几年都多，苏州的园林、乌镇的夜、上海的热、南戴河的沙滩和欢乐谷、赤水丙安的古镇、深圳东西涌穿越、香港一日游都流下了我们的欢声和笑语。</p>
<h3 id="爱好-less-well">爱好 Less Well</h3>
<p><img src="/_image/2014-01-01/Screen-Shot-2014-01-01-at-6.50.56-PM.png" alt="爱好计划">
钢琴默默躺在北京的家里，跳了一次郑多燕减肥操，还去练了一次瑜珈。
在柴火空间用Mixer做了一个大黄鸭，一摸屁股眼睛就会发亮。
<img src="/_image/2014-01-01/IMG_3227.JPG" alt="大黄鸭">
买了个ukulele在玩。</p>
<h3 id="贡献-less-well">贡献 Less Well</h3>
<p><img src="/_image/2014-01-01/Screen-Shot-2014-01-01-at-6.58.00-PM.png" alt="贡献计划">
给有过一面之缘的“百度第一司机”捐款200元。
<a href="http://seabornlee.com/post/my-first-blood-donation">只献了一次血，还丢人了</a>。</p>
<h3 id="成长-less-well">成长 Less Well</h3>
<p><img src="/_image/2014-01-01/Screen-Shot-2014-01-01-at-6.58.32-PM.png" alt="成长计划"></p>
<h4 id="英语">英语</h4>
<p>英语角参加的不多，华尔街的课程也是被老师赶着走。不过和外国人交流变多了，感觉还是有进步的。这两个group推荐给大家：
<a href="http://www.meetup.com/BeijingSoftwareCraftsmanship/">Beijing Soft Craftsmanship Meetup Group</a>
<a href="http://www.meetup.com/Shenzhen-English-Mandarin-Language-Exchange-Group/">1-on-1 Mandarin and English Language Exchange</a></p>
<h4 id="翻译">翻译</h4>
<p><img src="/_image/2014-01-01/Screen-Shot-2014-01-01-at-5.26.56-PM.png" alt="开源中国我的翻译">
翻译工作一开始在oschina上，就是上图这些。后来发现翻译是门技术活，买了三本书想好好学学，可惜没带到深圳来。推荐这三本书，《翻译的基本知识》，《翻译辨误》，《翻译的技巧》。</p>
<h4 id="当众讲话">当众讲话</h4>
<p>虽然还是没有加入ToastMaster。不过当众讲话的机会也多了起来，在ScrumGathering上拉票，在GDCR2013和深圳敏捷之旅做主持，在客户团队做session，过几天还要在广州敏捷之旅做个《Android团队敏捷实践》的分享。</p>
<h4 id="读书">读书</h4>
<p>4US图书馆还是没做起来，Rails没怎么用，产品方面的能力也没有提高。
读过的书：</p>
<ul>
<li>《Scrum要素》</li>
<li>《Scrum敏捷产品管理:打造用户喜爱的产品》</li>
<li>《Web前端黑客技术揭秘》</li>
<li>《敏捷教练》</li>
<li>《布道之道:引领团队拥抱技术创新》</li>
<li>《小米的尖叫》</li>
<li>《我编程，我快乐》</li>
<li>《敏捷教练》</li>
<li>《Coding Dojo handbook》</li>
<li>《原型设计: 实践者指南》</li>
<li>《卓越程序员密码》</li>
<li>《七周七语言》</li>
<li>《Test-Driven Development By Example》</li>
<li>《Practical Vim》</li>
<li>《演讲达人成长记》</li>
<li>《被劫持的私生活》</li>
<li>《人间是剧场》</li>
</ul>
<h3 id="社交">社交</h3>
<p><img src="/_image/2014-01-01/Screen-Shot-2014-01-01-at-6.59.42-PM.png" alt="社交计划">
今年参与了ScrumGathering和敏捷之旅深圳站的组织，主要认识了上海和深圳敏捷圈的朋友。
除了敏捷社区，还组织了GDCR2013深圳站，参加柴火空间活动，开放麦<a href="http://seabornlee.com/post/huo-dong/2013-09-21-encounter-talk-show">脱口秀</a>，<a href="http://www.meetup.com/Shenzhen-English-Mandarin-Language-Exchange-Group/">1-on-1 Mandarin and English Language Exchange</a></p>
<p>2013就这么过去了，总的来看，整个计划完成情况算是Less Well吧，主要的问题是，没有定期做回顾和调整计划。
终于下定决心离开呆了8年的北京了，但是不管在哪里，成长不能停，希望新的一年能做的更好。</p>
<blockquote>
<p>愿景是什么不重要，重要的是愿景能带来什么。</p>
</blockquote>]]></description><pubDate>Tue, 31 Dec 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[2012年度总结]]></title><link>https://life.seabornlee.cn/posts/2012%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</link><guid>https://life.seabornlee.cn/posts/2012%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</guid><description><![CDATA[<img src="/_image/2013-07-27/1.png?width=480">
<p>2012年1月4日，我做了上面这个全年计划。转眼一年就过去了，说好的末日也没有来，生活还得继续，所以还是要总结一下2012并做一个2013的计划，是吧。</p>
<p>现在看起来，上面的计划是很粗糙的，可能是因为那时还没有了解到“生活方向盘”和时间管理吧。列表中大部分是关于自我修炼和成长的，还有一些重要的方面没有包含，比如情感、财富等。这一年，对家庭的关心少了很多，基本没有陪老婆下过厨房，也没有经常给父母长辈打电话，对你们说声抱歉。</p>
<h3 id="英语口语">英语口语</h3>
<p>4月份报了WSE，5月份开始学习，到现在已经7个月了，听力和词汇量有一定进步，口语还是不流利。</p>
<p>学习顾问建议多上英语角。</p>
<p>所以啊，不要指望报个班就一定能学好，培训机构只是给你提供线上线下的练习环境而已，关键还得发挥主观能动性，多说。</p>
<h3 id="考驾照">考驾照</h3>
<p>这个目标优先级比较低，暂时搁置一下。</p>
<h3 id="保持体型">保持体型</h3>
<p>春夏秋的时候，每天自行车上下班，路上还练习引体向上，经常做俯卧撑。
偶尔爬山，骑行，跑步，游泳，羽毛球，乒乓球，体型保持的还不错。
到了冬天运动几乎全部中断了，体重从69kg到现在稳定在71kg左右，真是功亏一篑。</p>
<h3 id="耐力">耐力</h3>
<p>几个月的跑步，耐力提高还是比较明显的。
下图是用nike plus的跑步记录，还有一些用runkeeper记录或没有记录的。
<a href="/posts/%E8%B7%91%E8%B5%B7%E6%9D%A5">跑步计划</a>在6月的时候就完成了，本以为10公里是很难的事，没想到根本不值一提，还完成了一次半程马拉松。</p>
<p>明年增加频率和距离，挑战马拉松。
<img src="/_image/2013-07-27/11.png" alt="跑步记录"></p>
<h3 id="程序设计能力">程序设计能力</h3>
<p>一直以来都偏关注编码而非设计，渐渐发现当代码复杂到一定程度后就会有hold不住的感觉。
这一年开始关注设计，修改任何代码前先在纸上用图形表达出来，通常是不规范的UML图，ER图和流程图等。
虽然没有完成看完两遍设计模式这个目标，但这个目标本身可能就是不对的。
不管怎样，这一年对于如何写出易维护，易扩展，易测试的代码确实有了更深的认识。</p>
<h3 id="学一门新语言">学一门新语言</h3>
<p>通过<a href="http://rubykoans.com/">Ruby Koans</a>学习了ruby基础，然后使用Bootstrap和Rails搭起了图书共享平台，企图帮助大家<a href="/posts/%E9%80%9A%E8%BF%87%E9%98%85%E8%AF%BB%E6%88%90%E9%95%BF">通过阅读获得成长</a>。</p>
<p><img src="/_image/2013-07-27/12.png" alt="图书共享平台"></p>
<h3 id="公开讲话">公开讲话</h3>
<p>从一次在部门沙龙上的发言感受到，公开讲话能力的欠缺。
所以在公司内发起了4US学习小组，从3月份开始，一共组织了50多场活动，几个月下来，可以看出认真对待参与的同事都有明显的进步。</p>
<p>除了在学习小组分享，还在部门技术沙龙上分享了一次Web应用安全的话题。
<img src="/_image/2013-07-27/13.png" alt="学习小组活动视频"></p>
<p>另外还参与组织了Agiletour2012北京站的活动并担任Track主持人，认识了一群充满激情的朋友。</p>
<p><img src="/_image/2013-07-27/14.png" alt="敏捷之旅2012北京合影">
除了公开讲话，我还臭不要脸的公开唱歌。
<img src="/_image/2013-07-27/15.png" alt="神州数码全唱比赛">
唱歌都还好，居然还走秀，太不符合程序员的身份了。
<img src="/_image/2013-07-27/16.png" alt="神州数码年会走秀"></p>
<p>总之，这一年脸皮确实厚了不少。感谢“神州数码”提供这样的平台，领导给予如此多的机会。</p>
<h3 id="社区活动">社区活动</h3>
<p>数一下2012年参加的沙龙有：
<a href="http://weibo.com/openexpressapp?topnav=1&#x26;wvr=5&#x26;topsug=1">敏捷个人</a>（户外活动两次，室内活动一次），<a href="http://weibo.com/bqconf?topnav=1&#x26;wvr=5&#x26;topsug=1">BQConf</a>，<a href="http://weibo.com/openparty">BeijingOpenParty</a>，<a href="http://e.weibo.com/agilechina?ref=http://weibo.com/openparty">AgileChina</a>，<a href="http://s.weibo.com/weibo/openhouse2012&#x26;Refer=STopic_box#1357003093903">OpenHouse2012</a>，<a href="http://www.meetup.com/agilebeijing/events/91997512/">Agiletour2012</a>，<a href="http://www.meetup.com/BeijingSoftwareCraftsmanship/events/90858762/">Global Coderetreat Day</a></p>
<p>可以看出，关注的重点从2011年的移动（Android，iOS，html5等）转到了敏捷上。</p>
<p>沙龙当然离不开社交，通过这些活动也认识了很多优秀的朋友（<a href="http://weibo.com/openexpressapp?topnav=1&#x26;wvr=5&#x26;topsug=1">@周金根</a>、<a href="http://weibo.com/juvenxu?topnav=1&#x26;wvr=5&#x26;topsug=1">@juvenxu</a>、<a href="http://weibo.com/310653666?topnav=1&#x26;wvr=5&#x26;topsug=1">@姜信宝Bob</a>、<a href="http://weibo.com/hrbendi?from=otherprofile&#x26;wvr=5&#x26;loc=bothfollow">@酸性有毒物质</a>、<a href="http://weibo.com/randswithnn?from=otherprofile&#x26;wvr=5&#x26;loc=bothfollow">@ShiningXYY</a>、<a href="http://weibo.com/wobenguaizhang?from=otherprofile&#x26;wvr=5&#x26;loc=bothfollow">@莪夲乖張</a>、<a href="http://weibo.com/yangfengdi?from=otherprofile&#x26;wvr=5&#x26;loc=myfollowhisfan">@杨锋镝</a>、<a href="http://weibo.com/cxg2011?from=otherprofile&#x26;wvr=5&#x26;loc=bothfollow">@v陈小光v</a>、<a href="http://weibo.com/u/1837028931?from=otherprofile&#x26;wvr=5&#x26;loc=myfollowhisfan">@乔乔的神奇大冒险</a>、<a href="http://weibo.com/201222156?from=otherprofile&#x26;wvr=5&#x26;loc=myfollowhisfan">@Justin麒麟</a>、<a href="http://weibo.com/17376122?topnav=1&#x26;wvr=5&#x26;topsug=1">@徐毅-Kaveri</a>、<a href="http://weibo.com/wubinben28?topnav=1&#x26;wvr=5&#x26;topsug=1">@伍斌_Ben</a>，还有好多，不一一艾特了），感谢你们带给我这么多的正能量。</p>
<h3 id="参与开源">参与开源</h3>
<p>在一些开源项目上做了一些力所能及的事，最大的收获是认识了<a href="http://weibo.com/124565421">@larrycaiyu</a>这位前辈。</p>
<p><img src="/_image/2013-07-27/17.png" alt="参与的开源项目"></p>
<h3 id="还有些计划外的事情">还有些计划外的事情：</h3>
<p>比如工作上，以前只管完成开发任务就好，现在要协调一个开发团队，控制项目质量和进度。
关心团队士气，纪律，每个人的成长。过程中学到了很多，三言两语道不尽，再写一篇博客总结吧。</p>
<p>另一件计划外的事是，真正开始参与创业了。前两天做完总结，经营状况良好，略有盈余，我们都相信能打造出一家小而美的公司。</p>
<p>创业的过程中，从我的伙伴们身上学到了很多东西，感谢你们！</p>
<p>总之，这是比2011更忙更充实的一年，经常同时有几件事要做，周末比工作日更忙，我也经常压力很大，白头发也长了不少。</p>
<p>但慢慢我学会了调节，学会了如何更高效地工作。</p>
<p>** 我不再刻意追求读书的数量，我更在意能更多地汲取别人的经验，提升自己的能力。**
期待2013年能达成更好的目标！</p>]]></description><pubDate>Mon, 31 Dec 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[2011年度总结]]></title><link>https://life.seabornlee.cn/posts/2011%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</link><guid>https://life.seabornlee.cn/posts/2011%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/</guid><description><![CDATA[<img src="/_image/image_2023-11-04-21-17-37.png">
<p>The unexamined life is not worth living.</p>
<ul>
<li>年初的时候有两个大计划“买房”和“结婚”，只完成了一个，婚结了，房没买</li>
<li>做了 4 个月兼职，认识了几个很 nice 的创业前辈，</li>
<li>每周六我会骑着自行车过去开会，吃了无数的烤鱼和羊蝎子。</li>
<li>从年初自己做的两个 android 应用开始，对产品有了兴趣。</li>
<li>拿到了喜欢的公司 wiyun 的 offer，认识了 wiyun 的 CTO Luma（Luma QQ 作者）和 COO 刘琦。</li>
<li>进入了 DC，圆了大公司梦，有了一份稳定的工作。</li>
<li>得到两个创业公司老板的邀请，差点参与创业。</li>
<li>参加了 7 次沙龙活动，开阔眼界，对演讲产生兴趣。</li>
<li>开始在 github 上贡献代码。</li>
<li>读了 30 多本书，主要是自我管理，沟通，技术，项目管理，产品方面的。</li>
</ul>]]></description><pubDate>Sat, 31 Dec 2011 00:00:00 GMT</pubDate></item><item><title><![CDATA[30 天挑战达成，为何还要坚持绘画]]></title><link>https://life.seabornlee.cn/posts/30%20%E5%A4%A9%E6%8C%91%E6%88%98%E8%BE%BE%E6%88%90%EF%BC%8C%E4%B8%BA%E4%BD%95%E8%BF%98%E8%A6%81%E5%9D%9A%E6%8C%81%E7%BB%98%E7%94%BB/</link><guid>https://life.seabornlee.cn/posts/30%20%E5%A4%A9%E6%8C%91%E6%88%98%E8%BE%BE%E6%88%90%EF%BC%8C%E4%B8%BA%E4%BD%95%E8%BF%98%E8%A6%81%E5%9D%9A%E6%8C%81%E7%BB%98%E7%94%BB/</guid><description><![CDATA[<img src="/_image/2017-03-14-22-54-14.jpg">
<p>我会的东西很多：</p>
<ul>
<li>绘画</li>
<li>唱歌</li>
<li>钢琴</li>
<li>吉他</li>
<li>口琴</li>
<li>Ukulele</li>
<li>杂耍球</li>
<li>魔方</li>
<li>桌球</li>
<li>弹弓</li>
<li>乒乓球</li>
<li>羽毛球</li>
<li>极限健身</li>
<li>...
如果一直列下去，这个列表会很长。
遗憾的是，这些技能全都处于入门水平，就好像一个会用 40 种语言写 Hello World 的程序员一样，根本上不了台面。</li>
</ul>
<p>我的爱人 Mavis 也和我一样：样样通，样样松。
我们就在思考，为什么会这样？得出的结论是<strong>从小没有坚持长期学习一项技能</strong>。</p>
<p>其实一门技能入门是很快的，前 20 小时的学习就可以让我们做得不错，比如开车，20 小时你已经可以上路了。
比如游泳，几次课就能游得不错了。</p>
<p>但要精通一项技能，能被称作特长，就得大量的练习。
而每次一开始需要做基础练习的时候，我们就会觉得枯燥，觉得无聊，没有成就感。
于是就学不下去，就放弃了。兴趣马上转移到了新的技能上。</p>
<p>常常看到网上吐槽现在的家长把小孩逼得太辛苦，各种兴趣班把日程排得满满的。
我们分析认为，这些家长可能和我们一样，小时候家里条件不好，没有机会学习自己感兴趣的技能，所以现在一方面不想让孩子长大之后像自己一样遗憾，另一方面也是期望孩子去实现自己未尽的梦想。</p>
<p>在前几年没有孩子的时候，我们都说等以后有了孩子，不要把自己的梦想强加到他们身上。他们愿意学就学，不愿意就算了，有一个开心的童年就好。
现在分析了自己之后，又觉得不能让孩子由着性子来，在学习一项技能过程中一定会经历痛苦，经历放弃边缘的挣扎。如果每次都轻易放弃的话，就什么都学不会，更可怕的是，学不会如何学习一项技能。</p>
<p>现在孩子也两岁多了，看的出来他们也兴趣广泛，无论如何，一定要他们长期学习一项技能，去经历那种疲惫，那种想要放弃的挣扎，然后帮助他们克服困难，取得成果，享受成功带来的喜悦。只有这样，他们才能学会如何学习一项技能，才能在社会上处于有利位置。</p>
<p>所以，本来计划挑战 30 天绘画练习，到今天已经 34 天了。为了避免以后鼓励孩子时，他说出「你行你来啊」时的尴尬，我决定把绘画练习坚持下去！</p>]]></description><pubDate>Tue, 14 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[30 天绘画练习，我经历了这三个阶段]]></title><link>https://life.seabornlee.cn/posts/30%20%E5%A4%A9%E7%BB%98%E7%94%BB%E7%BB%83%E4%B9%A0%EF%BC%8C%E6%88%91%E7%BB%8F%E5%8E%86%E4%BA%86%E8%BF%99%E4%B8%89%E4%B8%AA%E9%98%B6%E6%AE%B5/</link><guid>https://life.seabornlee.cn/posts/30%20%E5%A4%A9%E7%BB%98%E7%94%BB%E7%BB%83%E4%B9%A0%EF%BC%8C%E6%88%91%E7%BB%8F%E5%8E%86%E4%BA%86%E8%BF%99%E4%B8%89%E4%B8%AA%E9%98%B6%E6%AE%B5/</guid><description><![CDATA[<img src="/_image/2017-03-10-09-23-05.jpg">
<p>一转眼，我练习绘画有三十天了，首先祝贺一下自己，完成了又一个三十天挑战，这三十天一天都没有中断过，唯一遗憾的是，最晚的一天，是在十二点之后完成的。
现在回首这三十天呢，我觉得我经历了三个阶段：</p>
<ul>
<li>从应用出发</li>
<li>练习的心态</li>
<li>习惯养成</li>
</ul>
<h2 id="从应用出发">从应用出发</h2>
<p><img src="./_image/2017-03-10-09-18-24.jpg" alt="">
我为什么要开始练习绘画呢？因为我现在是做培训，为了增强培训的呈现效果，我去年 7 月参加了一个线下的视觉引导工作坊，但是后来因为缺少练习，对我的工作没有太大的帮助。
直到一个月以前，有同事在公司内部做一次视觉记录的分享，虽然我没有参加，但我加了她们的群，然后这位同事在群里面分享了一个 PDF，里面有详细的告诉我们应该怎么练习视觉记录，于是我就拿着这个 PDF 开始练。
刚开始我选择要画什么的时候，我去思考我在培训工作中会用到什么？因为我最近经常在讲「习惯的力量」，所以我就去找，这里面需要什么？
首先我需要一个「触发器」，我找到了一个灯泡，然后我需要一个「惯常行为」，很遗憾没找到，然后我需要「奖励」，我又找到了一个百宝箱，很适合做这个奖励。然后我就开始画，第一天我画的是灯泡和百宝箱。
我当时的想法是，<strong>每画一个东西，我要琢磨一下，用几笔画出来，每次用固定的笔划去画，这样才可以形成肌肉记忆，以后再画的时候就可以很快的把它画出来。</strong>
连续这样练了十天之后，我发现我能画的挺多的了：人物，对话，场景，布局等。</p>
<p><img src="./_image/2017-03-10-09-19-25.jpg" alt=""></p>
<h2 id="练习的心态">练习的心态</h2>
<p><img src="./_image/2017-03-10-09-20-37.jpg" alt="">
这时我就想，为什么那些美术专业的人，他们需要每天练几个小时，练十几年？
我去观察我画的东西时，我就发现，我画的线条不够流畅，画的圆也不够圆，方形了也不够方。
哦，原来他们练习的是<strong>基本功</strong>。并且我又注意到，我在画的时候，我的手非常的用力，非常紧张。
这时候，我就开始调整了，画什么样的图形对我来说不重要了，更重要的是：关注我当时的状态，我的心情是不是很轻松的？我的精神是不是很专注的？我的肩膀，手臂，手，是不是放松的。
然后又这样练了十几天，到了第 28 天的时候，当我习惯性地拿出笔记本，我突然不知道该画什么，于是我就画了下图。</p>
<h2 id="习惯养成">习惯养成</h2>
<p><img src="./_image/2017-03-10-09-21-23.jpg" alt="">
我突然发现，我就已经养成了练习绘画的习惯了。分析我这个习惯，它的原理是什么呢？
首先是触发器，我每天晚上会回顾一下我今天的待办，我要做的几件事情有没有做，最近我在做的是：写作，冥想，绘画，幽默素材积累。
当我发现没有绘画的时候，就会进入惯常行为：
从书包里面拿出我的纸质笔记本，笔就夹在当前空白的那一页，然后，打开微信收藏，找到那个 PDF，开始画。画完之后呢，就把图发到群里，这时群里的小伙伴们就开始给我鼓励，有时候我也会发到朋友圈，也有很多朋友来给我点赞，这是外部的奖励，内部的奖励就是每次画完之后，我觉得很有成就感，觉得自己画的很不错，去年线下那个工作坊最大的收获就是学会自我欣赏。</p>
<hr>
<p>Mavis 告诉我说，我们家里有本书，叫《三十天学会绘画》。
现在我开始照着这本书练习，已经练到了第三天，我觉得这本书非常的不错，适合零基础的成年人去学习，所以把这本书推荐给你。</p>
<p><strong>在学习一项技能之前， 先赋予它重大的意义，能对工作和生活带来什么影响。
然后用练习的心态，关注过程而不是产出。
最后，刻意培养习惯，设计你的触发器，惯常行为和奖励。</strong></p>
<p>从现在开始，拿起你的笔，我们一起来练习吧！
让开，我要开始装 B 了~
<img src="./_image/2017-03-10-09-24-19.jpg" alt=""></p>
<p><img src="./_image/2017-03-10-09-25-01.jpg" alt=""></p>]]></description><pubDate>Fri, 10 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[Code Kata - Leap year]]></title><link>https://life.seabornlee.cn/posts/Code%20Kata%20-%20Leap%20year/</link><guid>https://life.seabornlee.cn/posts/Code%20Kata%20-%20Leap%20year/</guid><description><![CDATA[<img src="https://img1.baidu.com/it/u=2853431674,2184016271&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=807&#x26;h=500">
<p>虽然接触TDD已有一段时间，但实践的并不多，所以理解也很浅。在此次活动中，很多同学是第一次接触TDD，也犯了普遍会犯的错误，比如先把所有测试代码全部写完才开始写实现代码，大粒度的测试和忘记重构等。网上也有很多关于TDD的争论，比如：</p>
<ul>
<li><a href="http://coolshell.cn/articles/3649.html">TDD并不是看上去的那么美</a></li>
<li><a href="http://www.blogjava.net/chelsea/archive/2008/07/13/214623.html">敏捷质疑：TDD</a></li>
</ul>
<p>如果没有TDD经验，很难看懂他们在说什么，也没有办法参与讨论。所以我们还是先实践吧。</p>
<h2 id="需求">需求</h2>
<blockquote>
<p>Write a function that returns true or false depending on
whether its input integer is a leap year or not.
A leap year is defined as one that is divisible by 4,
but is not otherwise divisible by 100 unless it is
also divisible by 400.
For example, 2001 is a typical common year and 1996
is a typical leap year, whereas 1900 is an atypical
common year and 2000 is an atypical leap year.</p>
</blockquote>
<h2 id="第一版视频">第一版视频</h2>
<p><embed src="http://www.tudou.com/v/kzZa8L2r1Vg/&#x26;resourceId=0_05_05_99&#x26;bid=05/v.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen wmode="opaque" width="480" height="400"></p>
<h2 id="反馈">反馈</h2>
<p>视频发出后收到了很多的反馈，下面挑一些比较典型的，感谢大家给予的关注的和反馈：
<a href="http://www.danielteng.com/">Daniel Teng</a>：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">多谢Seaborn分享。我来抛一下砖</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">+ 第一次分享</span></span>
<span class="line"><span style="color: #c9d1d9">+ 用IntelliJ</span></span>
<span class="line"><span style="color: #c9d1d9">+ 从失败测试开始</span></span>
<span class="line"><span style="color: #c9d1d9">+ 有一些算法重构</span></span>
<span class="line"><span style="color: #c9d1d9">+ 频繁运行测试</span></span>
<span class="line"><span style="color: #c9d1d9">+ 左右和上下分屏，包括把测试放在左边，代码放在右边</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">- 在视频中加一些文本解释</span></span>
<span class="line"><span style="color: #c9d1d9">- 来电激情的背景音乐，最好是钢琴的。</span></span>
<span class="line"><span style="color: #c9d1d9">- 用了太多的鼠标和菜单，IntelliJ不停地在提示快捷键ctrl+shift+R已经提醒了22遍</span></span>
<span class="line"><span style="color: #c9d1d9">- 使用在IDE中切换、跳转、选择等的快捷键</span></span>
<span class="line"><span style="color: #c9d1d9">- 测试函数的名称。我的习惯是，测试函数的名字沟通的是测试的目的，应该代表抽象概念，然后测试体内是使用具体的例子。举一个例子year_2000_is_an_atypical_leap_year。我可能会直接写atypical_leap_year，因为我不想把例子和抽象概念放在一起。想一下，下一个维护测试的人，看到你的case会想，“这个地方只是测了2000年是一个特殊的闰年，那我还要不要看一下3000。。。”</span></span>
<span class="line"><span style="color: #c9d1d9">- 把year从测试函数名字中去掉，因为你的测试类名已经在沟通这个概念了</span></span>
<span class="line"><span style="color: #c9d1d9">- 不太喜欢calculator这个名字，这不像是一个domain概念。</span></span>
<span class="line"><span style="color: #c9d1d9">- 有些步骤跳跃比较大，有一步直接加了if (i % 4 == 0)，对我来说相当于同时添加了一个条件判断和一个表达式，步骤有可能比较大。如果kata的话，应该练习小步，或者从if+hard code开始？（当然在这个例子上，我也没有想好好的理由，只不过个人习惯）。</span></span>
<span class="line"><span style="color: #c9d1d9">- 修改模板，去掉默认注释，因为那是没用的，source control都会记录这些信息，既然已经有了，而且别人又不会去维护，那为什么不马上去掉？</span></span></code></pre>
<p><a href="http://weibo.com/124565421">Larry Cai</a>：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">还不错，有些跳得太快我来不及看，有些有些冗余。</span></span>
<span class="line"><span style="color: #c9d1d9">不要简单记录你做的，调整一下节奏，试着边讲边练就可以把重要的东西慢下来。</span></span>
<span class="line"><span style="color: #c9d1d9">用快捷键，省得满屏乱窜。</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">这是个技术活,我也不得要领。</span></span></code></pre>
<p><a href="http://weibo.com/yaoruozhou">姚若舟</a></p>
<p>Joseph将我的视频加入到了[kata接力][5]活动中，我们针对一个方法命名进行了一些讨论。<br>
<img src="/_image/2013-07-25/20-51-22.jpg" alt="讨论截图">
[5]: http://qing.blog.sina.com.cn/1887029092/7079c76433002zol.html?rnd=0.4563624414149672</p>
<h4 id="关于视频制作">关于视频制作</h4>
<p>第一次在Mac上录制屏幕，使用的是QuickTime Player，会有一点点卡，影响不大。
另外，视频后期编辑使用了iMovie。
视频一开始上传到youku上，发现不是很清楚，然后传到tudou就清楚多了。</p>
<h4 id="关于bjdp">关于BJDP</h4>
<blockquote>
<p>BJDP全称是（Beijing Design Patterns Study Group），即北京设计模式学习组，专注北京线下结对编程操练。让你通过面对面的分享讨论和肩并肩的结对编程(Coding Dojos编程道场)来领悟编程匠艺(Software Craftsmanship)之道。</p>
</blockquote>
<p><a href="http://www.ituring.com.cn/article/39938">BJDP第一次线下活动报道</a></p>
<ul>
<li>网站：<a href="http://www.bjdp.org/">www.bjdp.org</a></li>
<li>QQ群：235913915</li>
</ul>]]></description><pubDate>Sun, 05 May 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Coding Style]]></title><link>https://life.seabornlee.cn/posts/Coding%20Style/</link><guid>https://life.seabornlee.cn/posts/Coding%20Style/</guid><description><![CDATA[<img src="https://img0.baidu.com/it/u=2463238541,873841351&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=667&#x26;h=500">
<p>Code Style关注最终的代码，而Coding Style关注编码的过程。</p>
<h2 id="什么是coding-style">什么是Coding Style？</h2>
<p>我们提Code Style已经很多年了，大家都已经对代码的质量有了足够的重视，我们也有lint这样的静态分析工具，有代码评审这样的活动来保证我们提交的代码符合规范。
但是，程序员是一个有追求的群体，我们能写出好的代码就够了吗？
达到同样的产出，不同的程序员花费的时间相差10倍以上，写代码的过程是否优雅与舒适、是否高效将是我们下一个追求的目标。</p>
<p>如今，Coding Style已经开始被企业重视，在面试过程中你可能需要与面试官一起完成某个功能。
比如在<a href="http://teahour.fm/2014/05/09/job-interview-at-thoughtworks.html">ThougthWorks的面试</a>中，你需要先通过Homework的Review，这一阶段面试官考察的是你的Code Style；然后你会被邀请到办公室里，与面试官一切结对，对之前的代码进行重构，并完成一个新增的需求。在这个阶段，被考察的是你分析问题、解决问题、编写代码的思路与过程，也就是我所说的Coding Style。</p>
<h2 id="除了代码产出老板有考虑过你编码时的环境与感受么">除了代码产出，老板有考虑过你编码时的环境与感受么？</h2>
<p>招10万年薪的程序员然后给他用2000块钱的电脑的老板比比皆是。
在一些传统行业，连龙头企业都还在给开发人员使用17寸的显示器，2G内存的PC做开发。
还要求我们能快速开发，尽快上线以获取商业价值？
这种糟糕的环境和项目进度压力：</p>
<ul>
<li>导致我们放弃了对代码质量的追求</li>
<li>导致我们在编码时完全享受不到创造的乐趣</li>
<li>导致我们无休止的加班</li>
<li>导致我们没有时间提高自己的技能</li>
<li>导致我们的腰椎和颈椎每况愈下</li>
<li>导致我们年纪轻轻却有一头稀疏的花白头发</li>
</ul>
<p>正是这种对开发人员的不够尊重，导致了很多因为兴趣走上开发道路的程序员不得不转向管理或其它岗位。
他们去卖水果，去卖肉夹馍，他们身体好了，钱挣的更多了，但他们真的快乐吗？</p>
<h2 id="如果自己都不尊重自己别人怎么会尊重你">如果自己都不尊重自己，别人怎么会尊重你？</h2>
<p>但我认识的很多优秀的程序员，他们没有屈服于现状。
他们知道__身体是革命的本钱__，因为他们想一辈子快乐地编程。
而且他们懂得__时间是最重要的成本__，他们知道什么才是回报率最高的投资。
所以他们给自己买：</p>
<ul>
<li>人体工学椅子 - 保护自己的腰椎</li>
<li>高清大显示器 - 使用多显示器或分屏提高开发效率</li>
<li>机械键盘、电容键盘 - 享受代码从指尖流出的感觉</li>
<li>MacBook - 每个程序员都应该使用，一旦拥有、爱不释手</li>
<li>固态硬盘 - 提高文件读写速度，大大提高编译，打包速度</li>
<li>耳机 - 在任何地方旁若无人地工作</li>
<li>效率软件，Alred、Dash等 - 让你把精力放在真正的编程上而不是翻遍整个硬盘找某个文件，用龟速网络在网络上查文档</li>
</ul>
<p>他们利用业余时间：</p>
<ul>
<li>观看编程的视频 - 看高手如何演进代码</li>
<li>刻意练习自己的技能，快捷键、重构、TDD等 - 不断提升自己的硬实力</li>
<li>参加社区活动，Coding Dojo，Code Retreat等 - 与高手当面交流</li>
<li>参与开源，将自己的代码暴露出来 - 接受高手Review</li>
<li>录视频，将自己的编码习惯暴露出来 - 得到高手的指正</li>
</ul>
<p>他们不断追求效率的提升，本质是因为：</p>
<blockquote>
<p>他们真心喜欢并享受Coding带来的乐趣。</p>
</blockquote>
<p><strong>然后他们无一例外，或升职加薪，或创业，或去了更优秀并且更尊重程序员的公司。</strong></p>
<h2 id="如何改进coding-style">如何改进Coding Style？</h2>
<p>在Coding Style社区网站，我们分享并讨论以下内容：</p>
<h3 id="硬件">硬件</h3>
<p>椅子、键盘、MacBook、耳机的购买与使用心得。
我们需要打造一个适合编程的环境，先让身体得到愉悦，才能专心地享受编程的乐趣。</p>
<h3 id="软件">软件</h3>
<p>效率软件、适合编程的音乐、更好地使用编辑器。
除了硬件，我们还需要一个适合编程的软件环境，关掉IM，关掉邮件客户端，使用Dash查文档，使用duckduckgo解决问题，使用Alfred快速在多个程序间进行切换。</p>
<h3 id="视频">视频</h3>
<p>相信很多人都在看高手的视频时有过这样的经历：“哇，原来还可以这样啊！”
观察高手写代码的过程往往比看最终代码更受启发。
另一方面，将你的过程录制下来，接受高手的指点，改变一个习惯，你就有可能受益终身。</p>
<h3 id="活动">活动</h3>
<p>如果能与高手面对面交流甚至结对编程，一定会受益终身。
什么？你的公司里没有高手？或者有高手，但不被允许进行结对编程？
没关系，你可以走出公司，来参加我们组织的程序员线下活动。</p>
<h2 id="我们的使命">我们的使命！</h2>
<p>帮助程序员更好地对自己投资！
尝试改变企业对程序员不够重视的现状！
让优秀的程序员去优秀的企业！</p>
<p><strong>这是一个只属于程序员的社区，需要我们共同来建设，欢迎大家提出建议。</strong></p>]]></description><pubDate>Sun, 03 Jan 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[FizzBuzz 全键盘操作]]></title><link>https://life.seabornlee.cn/posts/FizzBuzz%20%E5%85%A8%E9%94%AE%E7%9B%98%E6%93%8D%E4%BD%9C/</link><guid>https://life.seabornlee.cn/posts/FizzBuzz%20%E5%85%A8%E9%94%AE%E7%9B%98%E6%93%8D%E4%BD%9C/</guid><description><![CDATA[<img src="https://img2.baidu.com/it/u=147386698,3468113149&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=362&#x26;h=270">
<p>用 IntelliJ TDD FizzBuzz 的详细步骤：</p>
<ol>
<li>Alt + Insert 新建测试类</li>
<li>Alt + Insert 创建测试方法</li>
<li>输入测试用名称，回车</li>
<li>输入1，Ctrl + Alt + V 提取变量 number</li>
<li>String result = FizzBuzz.of(number)，按 Ctrl + Shift + Enter 自动补全行尾分号，回车</li>
<li>assertThat(result).isEqualTo("1")，Ctrl + Shift + Enter 自动化补全行尾分号</li>
<li>F2 定位到 FizzBuzz 类名上，Alt +  Shift + Enter 创建类</li>
<li>Ctrl + Shift +  T 切换回测试类</li>
<li>F2 跳转到 of 方法上，Alt + Shift + Enter 创建方法</li>
<li>3次 回车</li>
<li>Ctrl + Shift + T 切换回测试类</li>
<li>F2 定位到 assertThat 上，Alt + Shift + Enter 导入方法</li>
<li>Ctrl + Shift + F10 运行当前测试方法</li>
<li>Ctrl + Shift + T 切换到 FizzBuzz 类</li>
<li>return "" + number;</li>
<li>Shift + F10 运行测试，测试应该通过</li>
<li>光标移动到方法结尾，按 Ctrl +  W  直到选中整个测试方法</li>
<li>Ctrl + D 复制当前选中的代码</li>
<li>按一次左键，定位到方法签名行，修改方法名称</li>
<li>......</li>
</ol>]]></description><pubDate>Mon, 04 Jan 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to benefit from stand-up meeting continuously]]></title><link>https://life.seabornlee.cn/posts/How%20to%20benefit%20from%20stand-up%20meeting%20continuously/</link><guid>https://life.seabornlee.cn/posts/How%20to%20benefit%20from%20stand-up%20meeting%20continuously/</guid><description><![CDATA[<img src="/_image/2016-11-24-14-35-39.jpg">
<p>When talking about stand-up meeting, people probablely remember the 3 classic questions:</p>
<ul>
<li>What I have done yesterday</li>
<li>What I am going to do today</li>
<li>What stoped me
Do you think it is too rigid to answer the questions every day?
Is the stand-up meeting necessary after the team having the habit of communication anytime anywhere?
Do you realize people always be late to join the meeting, having breakfast in the meeting, or playing cellphone in the meeting?</li>
</ul>
<p>The are tons of article talked about the purpose, form and tips of stand-up meeting. But, people still can't get value from the meeting continuously after reading all of them.</p>
<p>Stand-up meeting is a team level practice, so we should dive into the team before starting any research of the form and techniques.
I will not talk about any methods and techniques in this article, but try to analyze the value of stand-up meeting in different phases of the a team.</p>
<p>These is no team which is born to marvelous. A team always experience several phases in its lifecycle:</p>
<ul>
<li>Forming</li>
<li>Storming</li>
<li>Norming</li>
<li>Performing</li>
<li>Ending
In the late performing phase, the team may get into platform phase, it behaviors as every thing follows the prescribed order，no improvement, people lost passion.
Problems are changing as the phase changed, so the value of stand-up meeting changes.</li>
</ul>
<hr>
<h2 id="forming-phase-storming-phase---confidence-building">Forming phase, Storming phase - Confidence building</h2>
<p><img src="./_image/2016-11-24-15-54-53.jpg" alt="">
At the beginning of a team, or just join a team as a new member, the value of stand-up meeting is building confidence.
Reliable team member must have:</p>
<ul>
<li>Professional ability of getting things done</li>
<li>Proactive attitude of taking tasks</li>
<li>Cooperative sense</li>
</ul>
<p>The classic 3 questions can present the above 3 characteristics:</p>
<ul>
<li>What I have done yesterday - I have professional skills to get some kind of things done</li>
<li>What I am going to do today - I think positively and take tasks proactively</li>
<li>What stoped me - I am not All-powerful, I expose problems because I trust my team</li>
</ul>
<h2 id="norming-phase-performing-phase---focus-on-value">Norming phase, Performing phase - Focus on value</h2>
<p><img src="./_image/2016-11-24-15-55-36.jpg" alt=""></p>
<p>In software development, features start produce value only after user start using it.
So for a feature, we should reduce the waiting time to make the period of analyzing, coding, testing, deploying shortest.</p>
<p>As team members get to know each other better and better, the team get into norming and performing phase. The focus should transfer from people to things, or pay attention to baton but not the athletes.</p>
<h2 id="performing-phase---ceremonial-sense">Performing phase - Ceremonial sense</h2>
<p><img src="./_image/2016-11-24-15-56-20.jpg" alt="">
In the late part of a project, both business and technique get not challenging. Things going on step by step, passion is losing, the team tends to get into platform phase.
At this moment, stand-up meeting is more like a ceremony, let every team member remember we are working as a team, not alone.
Product manager should share positive feedback from customer, or the growing of user scale or revenue. Let team member know their work is valuable, get sense of achievement continuously.</p>
<p>In addition, stand-up meeting could be the watershed of life and work.
We load work context into brain, start an effective day from stand-up meeting.</p>
<hr>
<p>We adapt practice to sovle problems, so we can not discuss the practice out of the problem context.
We should always think:</p>
<ul>
<li>What problem the practice can sovle?</li>
<li>Are the problem still exists?</li>
<li>Is there any better solutions?</li>
</ul>
<p>Being agile is not follow best practices, figure out what problem we are facing, then pick and cut practices properly to keep agility!</p>]]></description><pubDate>Thu, 24 Nov 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[MVP]]></title><link>https://life.seabornlee.cn/posts/MVP/</link><guid>https://life.seabornlee.cn/posts/MVP/</guid><description><![CDATA[<img src="https://img1.baidu.com/it/u=2618903475,994617117&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPG?w=750&#x26;h=404">
<h2 id="为什么要做mvp">为什么要做MVP？</h2>
<p>创造新产品时，有很多的不确定因素，如果没有端到端跑通业务模式，对用户痛点和解决方案的理解并不深刻，对功能的价值和优先级的判定缺少依据，导致需求蔓延，常常超出研发预算和研发周期，等好不容易产品做出来之后，已经没有经费做市场推广和运营。</p>
<p>得益于这个时代完善的基础设施，完全可以通过微信，微商城，在线表单工具，物流等服务，完成商业模式验证。</p>]]></description><pubDate>Mon, 20 Jun 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[Nginx Http Basic Auth]]></title><link>https://life.seabornlee.cn/posts/Nginx%20Http%20Basic%20Auth/</link><guid>https://life.seabornlee.cn/posts/Nginx%20Http%20Basic%20Auth/</guid><description><![CDATA[<img src="https://img2.baidu.com/it/u=4004905786,133766336&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=PNG?w=800&#x26;h=492">
<p>用如下命令：</p>
<p><code>yum install -y htpasswd</code></p>
<p><code>htpasswd -c pass.db username</code></p>
<p>Nginx 配置中添加：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">auth_basic '用户登录';</span></span>
<span class="line"><span style="color: #c9d1d9">auth_basic_user_file pass.db</span></span></code></pre>
<p>重启 Nginx</p>]]></description><pubDate>Mon, 20 Nov 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[TED - 如何在6个月内学会一门语言]]></title><link>https://life.seabornlee.cn/posts/TED%20-%20%E5%A6%82%E4%BD%95%E5%9C%A86%E4%B8%AA%E6%9C%88%E5%86%85%E5%AD%A6%E4%BC%9A%E4%B8%80%E9%97%A8%E8%AF%AD%E8%A8%80/</link><guid>https://life.seabornlee.cn/posts/TED%20-%20%E5%A6%82%E4%BD%95%E5%9C%A86%E4%B8%AA%E6%9C%88%E5%86%85%E5%AD%A6%E4%BC%9A%E4%B8%80%E9%97%A8%E8%AF%AD%E8%A8%80/</guid><description><![CDATA[<img src="https://img0.baidu.com/it/u=1394958055,2215599385&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=500&#x26;h=667">
<p>非常有影响力的一个 TED 演讲：
<a href="https://www.youtube.com/watch?v=d0yGdNEWdn0">https://www.youtube.com/watch?v=d0yGdNEWdn0</a></p>
<h2 id="5-个原则">5 个原则：</h2>
<ul>
<li>聚焦对自己成长有价值的内容</li>
<li>从第一天开始就把新语言作为工具来使用</li>
<li>从开始理解部分信息时，就能进行无意识的学习</li>
<li>语言获取不是学习知识，而是生理训练，听说大于读写</li>
<li>身心状态很重要</li>
</ul>
<h2 id="7-个行动">7 个行动：</h2>
<ul>
<li>大量地听</li>
<li>结合肢体语言，理解意思最重要</li>
<li>组合：名字，动词，形容词</li>
<li>聚焦最常用的部分
<ul>
<li>第一周：工具箱
<ul>
<li>这是什么？</li>
<li>这个怎么说？</li>
<li>我不明白，可以重说一下吗？</li>
</ul>
</li>
<li>第二三周：简单的代词，常用动词，形容词</li>
<li>第四周：连词</li>
</ul>
</li>
<li>找一个语言家长</li>
<li>复制表情</li>
<li>直接与图像建立关联</li>
</ul>
<h2 id="家长的规则">家长的规则：</h2>
<ul>
<li>努力理解学习者的意思</li>
<li>不纠正错误</li>
<li>用正确的语言确认理解</li>
<li>用学习者理解的词语</li>
</ul>]]></description><pubDate>Sat, 06 Jun 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[ThoughtWorks 求职信]]></title><link>https://life.seabornlee.cn/posts/ThoughtWorks%20%E6%B1%82%E8%81%8C%E4%BF%A1/</link><guid>https://life.seabornlee.cn/posts/ThoughtWorks%20%E6%B1%82%E8%81%8C%E4%BF%A1/</guid><description><![CDATA[<p>通过面试后，hr给出面试反馈并告诉我进入thoughtworks后需要面对很大的压力-技术，工作方式，英语都需要持续地学习，让我好好想想第二天再答复，于是我当天中午就写了这封邮件给hr。不知道算不算求职信。
原文如下：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">焱炜好，</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">感谢大家对我的肯定和提出非常具体的反馈！</span></span>
<span class="line"><span style="color: #c9d1d9">毕竟短短一个下午，不太可能了解到一个人的全部，所以我还有一些信息要补充：</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">一是技术：</span></span>
<span class="line"><span style="color: #c9d1d9">    我对技术有很大热情，我业余也会花很多时间去学习技术，并写一些自己的程序，因为我非常enjoy写代码的过程。</span></span>
<span class="line"><span style="color: #c9d1d9">    我自学android开发，做了自己的应用，第一个月就ٝ几K的收益，后来也做了一些外包项目，并且和几个朋友研发了一套移动办公解决方案，目前已实施了近10个项目；</span></span>
<span class="line"><span style="color: #c9d1d9">    我也会花很多时间去扩展知识面，HTML5，iOS，CoffeeScript，AngularJS，Maven，Git，MongoDB，Rails，网络安全等，这些我都在业余时间研究过，只不过研究不深，不敢班门弄斧。</span></span>
<span class="line"><span style="color: #c9d1d9">    而且我也在试着总结学新技术的方法。</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">二是英语：</span></span>
<span class="line"><span style="color: #c9d1d9">    我认为英语是非常重要且是一项基本技能，我目前在“华尔街英语”学习。古话说：“拳不离手，曲不离口”。我正是看中tw有使用英语的环境。</span></span>
<span class="line"><span style="color: #c9d1d9">    我目前口语不流利，但在Scrum Gathering活动期间，我和国外嘉宾接触很多（接待，吃饭，逛街），基本的交流没有问题。</span></span>
<span class="line"><span style="color: #c9d1d9">    我每天也会阅读一些英语Blog，并尝试去翻译。我相信只要有环境，我能快速地提高。</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">我明白，其它企业的优秀员工可能才勉强够的着tw的门槛。刚进tw压力肯定大，但我就是喜欢和优秀的人一起做事，我现在有充分的时间去学习。而且我相信我身上也还有一些可以让大家欣赏的东西。</span></span>
<span class="line"><span style="color: #c9d1d9">我知道tw是扁平组织结构，需要自己去建立影响力和Leadership，这正是我喜欢的方式！</span></span>
<span class="line"><span style="color: #c9d1d9">另外，我认识很多前twer，从他们那里了解到的信息，包括网络上的一些争论，这些我都有认真考虑过。</span></span>
<span class="line"><span style="color: #c9d1d9">I'm ready！</span></span></code></pre>]]></description><pubDate>Tue, 16 Jul 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[ThoughtWorks，你等着！]]></title><link>https://life.seabornlee.cn/posts/ThoughtWorks%EF%BC%8C%E4%BD%A0%E7%AD%89%E7%9D%80%EF%BC%81/</link><guid>https://life.seabornlee.cn/posts/ThoughtWorks%EF%BC%8C%E4%BD%A0%E7%AD%89%E7%9D%80%EF%BC%81/</guid><description><![CDATA[<img src="https://img0.baidu.com/it/u=2125285055,3831921968&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=750&#x26;h=500">
<p>小波，咱们的流程今天就告一段落了，你先回去，等过半年或者一年，觉得自己有比较大的进步后咱们再继续好吧。</p>
<p>我承认，当我听到ThoughtWorks的HR讲出这句话的时候，我的脑子宕机了２秒钟。
我是真的没有心理准备，我甚至没意识到刚刚经历了生死攸关的时刻，我的脑子里还想着代码如何重构。
也许是我太轻敌了，或者说难听点是没有自知之明。</p>
<p>一直以来，我都觉得自己是身边人群中最勤奋，最有激情的人。
我从来不惧怕走出舒适区去迎接新的挑战，我也不时地参加各种社区活动，参与开源项目，在扩充知识面的同时也让自己增加一点危机感。
我已经有太久没有遭遇过如此的失败了。以至于我觉得有必要将这次的失败记录下来，好好反思总结，
因为我和ThoughtWorks的缘分绝不会止步于此，套用姜文在《让子弹飞》里的一句台词：“我怎么觉得才刚刚开始呢？”</p>
<p>“越得不到的就越想要”，男人往往都是这样，我也毫不例外。
“找工作就像谈恋爱”，我觉得这话一点没错：“谁更认真就会被伤的更深”。
一开始，我只是抱着试试看的心态，如果第一关就被拒绝，我绝不会被“伤”的这么深（以至于我进了地铁站又后又鬼使神差的从另一个口出去了），
但从简历筛选到电面，再到笔试，再到Homework，到Office Interview，我越来越认真，越来越投入，正当我觉得梦想触手可及的时候，迎接我的却是当头棒喝。</p>
<p>春梅姐临别给我几个建议：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">- 多看书</span></span>
<span class="line"><span style="color: #c9d1d9">- 多实践</span></span>
<span class="line"><span style="color: #c9d1d9">- 多参加社交活动</span></span></code></pre>
<p>当时我真的觉得很冤，这不就是我一直在做的事吗？
2011年是我开始关注成长的一年，这一年：</p>
<p>我读了30几本书，很多都是Twer推荐的。也参加了多次社区沙龙活动：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">- CSDN组织的Ruby1次</span></span>
<span class="line"><span style="color: #c9d1d9">- CMDN移动开发者1次</span></span>
<span class="line"><span style="color: #c9d1d9">- 百度技术沙龙前端开发1次</span></span>
<span class="line"><span style="color: #c9d1d9">- HTML5技术沙龙1次</span></span>
<span class="line"><span style="color: #c9d1d9">- 车库咖啡Android果合1次</span></span>
<span class="line"><span style="color: #c9d1d9">- 敏捷个人1次</span></span></code></pre>
<p>还有公司内部就更多了，什么时间管理啊，协同2.0啊，私有云啊等等。
我也面对几十个客户做过系统演示，也在几十人的沙龙上发过言，在几百人的晚会上表演过节目。</p>
<p>我也有在GitHub上做一些力所能及的事：</p>
<ul>
<li><a href="https://github.com/Jinjiang/rich-game">Jinjiang/rich-game</a></li>
<li><a href="https://github.com/gigix/ohfy">gigix/ohfy</a></li>
<li><a href="https://github.com/larrycai/sdcamp">larrycai/sdcamp</a></li>
<li><a href="https://github.com/dreamhead/1step">dreamhead/1step</a></li>
</ul>
<p>虽然我很努力，但痛定思痛，却又觉得春梅姐说的不无道理：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">- 书虽然读了很多，但思考太少，没有成功地将其纳入自己的知识框架；</span></span>
<span class="line"><span style="color: #c9d1d9">- 没有用理论来指导实践，也没有用实践来检验理论，所以无法形成自己的观点和见解;</span></span>
<span class="line"><span style="color: #c9d1d9">- 活动参与的多，但以获取信息为主，输出的少；</span></span>
<span class="line"><span style="color: #c9d1d9">- 开源项目我也只能修修简单的Bug和一些文档问题。</span></span></code></pre>
<p>另外，在面试过程中我也发现了自己的一些薄弱环节：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">- 词汇量</span></span>
<span class="line"><span style="color: #c9d1d9">- 设计能力</span></span>
<span class="line"><span style="color: #c9d1d9">- OO思想</span></span>
<span class="line"><span style="color: #c9d1d9">- 任务切分</span></span>
<span class="line"><span style="color: #c9d1d9">- TDD</span></span>
<span class="line"><span style="color: #c9d1d9">- 总结能力</span></span></code></pre>
<p>同样，一些客观因素也不能忽略：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">- 前一天没睡好，加上面试的时间是我平时午休的时间，思维不活跃，可能给人反应迟钝的印象；</span></span>
<span class="line"><span style="color: #c9d1d9">- 准备不充分，第一次去的时候都很顺利，第二次居然鬼使神差的出错了地铁口，差点迟到；</span></span>
<span class="line"><span style="color: #c9d1d9">- 因为怕出糗而主动放弃了一些考核点（当时没意识到那是考核点）；</span></span>
<span class="line"><span style="color: #c9d1d9">- Pair时使用Windows机器，快捷键不适应，我平时是用Mac的啊。</span></span></code></pre>
<p>发现问题之后，接下来就该制定能力提升计划了，然后再将其转换为每天的Todo List，坚定不移地执行。
我想不出半年，我会以崭新的面貌出现在ThoughtWorks的面前。</p>
<p>经历过这次面试之后，对ThoughtWorks有了更多的接触和了解，也更加坚定地想要成为TWer。
因为这里真的只有优秀的人，和优秀的人一起工作，才会让我变得更优秀。</p>
<p>总之，<strong>ThoughtWorks！我跟你没完！</strong></p>]]></description><pubDate>Mon, 06 Feb 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[ThoughtWorks，我来了]]></title><link>https://life.seabornlee.cn/posts/ThoughtWorks%EF%BC%8C%E6%88%91%E6%9D%A5%E4%BA%86/</link><guid>https://life.seabornlee.cn/posts/ThoughtWorks%EF%BC%8C%E6%88%91%E6%9D%A5%E4%BA%86/</guid><description><![CDATA[<img src="https://img0.baidu.com/it/u=2966508752,2646955792&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=652&#x26;h=315">
<p>谨以此文记录我进入ThoughtWorks的全过程,包括心理活动。</p>
<p>去年曾经参加过ThoughtWorks的面试并且以失败告终，详情见：<a href="/posts/ThoughtWorks%EF%BC%8C%E4%BD%A0%E7%AD%89%E7%9D%80%EF%BC%81">ThoughtWorks，你等着！</a></p>
<p>我一直坚信：失败只是在为成功做铺垫。</p>
<p>6月19日 周三 苏州旅行前夜
发邮件给<a href="http://www.niufish.com/">王宇老师</a>（我们都是“Scrum Gathering 2013 北京站”的组织者），以下是邮件内容：</p>
<blockquote>
<p>上次去ThoughtWorks面试后，我写了一篇博客来总结：
<a href="http://seabornlee.com/2012/02/06/thoughtworks-interview-experience/">ThoughtWorks，你等着！</a></p>
</blockquote>
<blockquote>
<p>这一年半我的变化，可以在下面两篇文章中看到：
<a href="http://seabornlee.com/2013/01/01/brief-conclusion-of-2012/">2012年终总结</a>
<a href="http://seabornlee.com/2013/03/11/agile-is-changing-me/">敏捷正在改变我</a></p>
</blockquote>
<blockquote>
<p>您作为一个曾经的twer，希望您能给一些建议，让我更早成为twer，感激不尽！</p>
</blockquote>
<p>6月20日 周四
王宇将简历推荐给春梅并写了推荐信，原文如下：</p>
<blockquote>
<p>Hi <a href="http://weibo.com/u/2248545250">春梅</a>，</p>
</blockquote>
<blockquote>
<p>希望我这封信找到你的时候，你正期待着一些精彩内容。</p>
</blockquote>
<blockquote>
<p>小波是我们社区活动认识的朋友，比较熟悉，积极且热情，他对TW的热情我相信你可以从他的博客中强烈感受到。我想关注成长的我们应该给他一个次经历TW面试过程的机会。因为距离上次面试时间很长了，所以我现在正式推荐小波再次进入面试流程。希望这次的经历会让他再次的认识他自己，并学到更多。</p>
</blockquote>
<p>6月21日 周五 在苏州旅游
春梅给我电话，但没接到，回拨过去她同事说她在开会</p>
<p>6月25日 周二
终于接到电话，简单聊了几句，收到homework，因为ScrumGathering即将开始，我申请将时间推迟，春梅说没关系，提交完告诉她就行。</p>
<p>7月9日 周二
提交homework，春梅告知我的case移交给另一同事<a href="http://weibo.com/u/1741490827">焱炜</a>跟进。</p>
<p>7月12日 周五
接到通知homework通过，约定office interview时间</p>
<p>7月15日 周一
office interview，走完流程，说讨论一下第二天给结果</p>
<p>7月16日 周二
HR说他们比较纠结给不给offer，给出了具体的反馈和建议，让我再认真考虑一下，第二天再答复他们。下午我就写了一封邮件给hr，表明我的决心。</p>
<p>7月17日 周三
HR说给offer了，细节第二天再聊。</p>
<p>7月18日 周四
之前HR问我的期待工资，我说了现在的收入情况，希望比现在好。
等了一天没等到电话。之前有听说ThoughtWorks待遇不高，不过就算不如现在的收入我也要去。</p>
<p>7月19日 周五 高兴一整天
一到公司发现一个未接电话，赶紧拨HR的手机。开始谈offer细节，很满意，比较现在还好一些。约定了签offer的时间。
挂上电话，还很激动，迫不及待要跟大家分享我的喜悦。
先是老婆，然后是老爸，老爸在外面，要不是听老爸说老妈的手机在洗衣机里游泳之后感冒还有点没恢复，我还要给老妈打一个。
然后是QQ群，微信，微博私信。我都恨不得立马把微博名称从DC_李小波改成TW_李小波。
晚上下了馆子，看了电影，庆祝。</p>
<p>7月23日 周二
签offer，不过持公章的同事在开会，没拿走。</p>
<p>7月25日 周四 忐忑
收到邮件，告知入职需要的材料。我回邮件告知暂无学历和学位，担心会不会有问题。
没收到回复。</p>
<p>7月26日 周五 心情复杂
焦急地等待，没收到回复，于是给HR发了微信。
微信上沟通之后，我又给他写了一封邮件，解释<a href="/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%8F%AA%E6%9C%89%E9%AB%98%E4%B8%AD%E5%AD%A6%E5%8E%86">为什么我只有高中学历？</a>。</p>
<p>7月29日 周一 石头落地了
中午收到通知，HR让我正常入职，希望不要让ThoughtWorks失望。
我回答“谢谢！一定的！”，其实我想说的是：“今天我以成为ThoughtWorker而骄傲，明天ThoughtWorks将以我为傲。”
终于放下了心里的石头，好好完成手上的工作，期待着8月19日入职吧。</p>
<p>总结：<strong>当你真的想做成一件事，并且努力去做的时候，整个世界的正能量都会来帮你。</strong></p>]]></description><pubDate>Tue, 30 Jul 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Thoughtwork 咨询团队]]></title><link>https://life.seabornlee.cn/posts/Thoughtwork%20%E5%92%A8%E8%AF%A2%E5%9B%A2%E9%98%9F/</link><guid>https://life.seabornlee.cn/posts/Thoughtwork%20%E5%92%A8%E8%AF%A2%E5%9B%A2%E9%98%9F/</guid><description><![CDATA[<img src="/_image/2014-03-27/photo-2.JPG">
<p>小波是我们的特邀嘉宾，为什么邀请他呢？因为公司内有一句关于他的名言：“如果公司不提供支持，我就自己掏钱办这个活动“。而且我跟乔梁和路宁打过电话，他们都认识小波。小波虽然年轻，但能在社区中让这些人认识，我认为这也是一种才能。</p>
<p>ThoughtWorks咨询团队负责人肖然在CCQG上如是介绍我。说实话，很荣幸能参加咨询团队在2014年的第一次Quarterly Gathering，尤其是在名额非常有限的情况下。对大多数twer而言，咨询团队是神秘的，他们常年奋战在客户现场，为客户解决实际的问题，却和其他同事没有太多交集。虽然同在一个公司，我只认识他们中的两个，我在社区活动中认识很多的内部教练，独立咨询师，却从来没有看到过他们的名字和面孔，所以我非常好奇，他们究竟是怎么样的一群人。</p>
<p>昨天早上在酒店门口，看到一群背着ThoughtWorks定制背包的年轻人，我一猜他们就是神秘的咨询团队。表明身份后，立即加入他们的队伍前往办公室，而令我颇感意外的是这一群常年东奔西走的人，居然几乎都是路痴，当然后来见到他们的Leader后我就知道原因了。
到了office，每个人作了自我介绍，写了名字贴在胸前。他们来自不同的办公室，都是昨天晚上从不同城市的客户现场赶过来，他们几乎都是独自作战，独当一面。</p>
<p>大家从财务、客户、项目、团队等几个方面做了季度回顾，各方面情况都不错。作为咨询师也有成长的压力，需要读更多的书，需要通过写文章、演讲
、翻译、写书等方式来提升影响力，建立自己的品牌。大家纷纷表示要在<a href="http://www.agilechina.org.cn/">Agile China</a>，<a href="http://www.top100summit.com/">Top100 Summit</a>，<a href="http://www.scrumgathering.cn/">Scrum Gathering</a>参与活动组织或提交话题，在ThoughtWorks公众账号^1思特沃克ThoughtWorks 上发表文章分享经验。</p>
<h2 id="quick-win">Quick Win</h2>
<p>Quick Win讨论是最实用的一个环节，大家分别写了一些自己进入项目后快速获得客户认同（东北同事注：“就是让客户觉得你靠谱儿”）的方法。每个人都有自己的风格，没有统一的套路。</p>
<h2 id="傲慢与专业">傲慢与专业</h2>
<p>肖然分享了一个故事，客户在下午17点的时候找到我们国外的一位同事请教问题，咨询师微笑地回到：“现在是下班时间，我要做一点自己的事情，如果你不着急的话我们明天再聊好吗？”。在客户面前如此傲慢，这种事情在国内看起来是根本不可能发生的。但我觉得这正是职业精神的一种体现，咨询师通常都是按时间收费，这种表现就是告诉你，我在上班时间绝对不会处理私人的事情。</p>
<h2 id="gossip-geek">Gossip Geek</h2>
<p>晚上我们去了英国首相光顾过的火锅店，但显然他们服务过首相之后再服务我们这样的平民有相当大的心理落差。吃完火锅又找了个地方，大家喝着啤酒，聊公司和各自项目上的八卦，其乐融融，也让我看到了他们最真实的一面，来自东北的同事说了一句最经典的话：“在俺们那儿，干仗不是这样儿的。直接开干，话说多了就是一种侮辱知道吧。”</p>
<h2 id="security">Security</h2>
<p>在2005-2008这几年，我曾混迹看雪、一蓑烟雨等论坛，在软件加解密，网络安全方面投入了不少时间，从工具党到脚本小子，最后发现编程能力是自己的瓶颈。后来专注于开发，却忘记了自己的初心。在上一家公司内部分享安全知识的时候，引起了不小的震动。作为<a href="http://voice.thoughtworkers.org/">ThoughtWorks好声音</a>的编辑，我读到有人在写安全方面的文章，但一直没见过。没想到这次就偶然遇到了，他是QA，正在准备一套面向QA的Web安全课程，理论练习相结合，帮助QA提高安全意识。</p>
<p>短短两天下来收获非常大，少数的分享引导出更多的讨论，大家各抒己见。这群人里，有人长于组织转型，有人长于工程实践，有人长于运维，有人长于需求管理，有人长于测试架构。所以很多时候需要对症下药，针对客户的问题，提供不同的资源。虽然客户对我们期望都很高，但没有人是万能的，就像没有什么过程或工具是万能的一样。</p>
<p>这两天大家也交流读书心得，互相推荐了一些书：</p>
<ul>
<li>《精益和敏捷开发大型应用指南》</li>
<li>《大规模敏捷开发实践》</li>
<li>《布道之道-引领团队拥抱技术创新》</li>
<li>《餐巾纸的背面》</li>
<li>《视觉会议》</li>
<li>《Fun Retrospectives》</li>
</ul>
<blockquote>
<p>写于去往厦门参加敏捷之旅全国组织者聚会的飞机上。</p>
</blockquote>]]></description><pubDate>Thu, 27 Mar 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Thoughtworks 第一周]]></title><link>https://life.seabornlee.cn/posts/Thoughtworks%20%E7%AC%AC%E4%B8%80%E5%91%A8/</link><guid>https://life.seabornlee.cn/posts/Thoughtworks%20%E7%AC%AC%E4%B8%80%E5%91%A8/</guid><description><![CDATA[<img src="https://img2.baidu.com/it/u=3532739319,2862388475&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=PNG?w=1493&#x26;h=500">
<p>上周和老同事饯行吃坏了肚子，一直拉了一周，而且从北京拉到了深圳。
刚和初次见面的同事吃完饭，一路上聊天，了解了一些公司的情况，以及客户和项目的情况。
现在坐在酒店里，是时候总结ThoughtWorks的这一周了。</p>
<h2 id="第一天">第一天</h2>
<p>第一天总是充满新鲜和刺激的，所以印象也比较深刻。
周一去tw报道，计算过从家到office要一小时，所以我平时9点出门的改成了8点出门，一到地铁就傻眼了，老长的队排着，前一分钟我以为是地铁故障了。
9点前准时到了office，发现除了ceo之外，稀稀拉拉的只有几个人。HR给我介绍了一位同事，我就在他旁边坐下。我早就知道，twer是没有固定工位的，包括CEO。
工位按项目来组织，一个项目组围着一张桌子，一天显示器放的很高，显示着CI的状态，还有几台显示器用来pair，旁边一面白板墙。
9点半左右，我所在的桌子人基本到齐了，然后开始站会，本来我不属于这个项目，为了更快适应工作方式，我也申请参与了站会。
大家对着白板墙围成半圆，轮流分享自己的进度，计划和遇到的问题，站会后，几个Dev聚在一起讨论技术问题。
后来其它桌子的同事也慢慢到齐了，开始各自的站会，旁边桌还和印度人walawala视频会议，洋气。
问了同事才知道，tw是不打卡的，上班时间由团队自己协定，主要是定站会时间，有的团队是9:30，有的是10点，有的为了协调其他时区的团队，在家里开完站会才去公司。</p>
<p>找IT领完办公电脑，果然是我选择的15' MBP，晚上拿回家一对比，原来那个13的就相形见绌了。
有了邮件账号，收到了我所在项目Leader发来的邮件，开始配置环境和技术储备。
午饭是和我的HR一起吃去买的，他给我介绍了公司周边的环境，我们买完饭带回公司边看乒乓球边吃，吃完也加入了战斗，同事们技术挺不错的。
下午就开始学习项目要用到的技术，没什么特别的事情发生。
时间过得很快，一晃就到了6点，保洁阿姨就开始吸地了，来得早的同事们都开始陆续撤离。</p>
<h2 id="学习成长">学习成长</h2>
<p>office有一面墙是推拉们，里边其实是书柜，各方面的书都有。
中午见到有同事热完饭就去了会议室听session，我还没有参加过。
最意外的是，公司有一个外教，会给每位同事测试定级，帮大家提高英语水平，有一次看见外教带着大家在会议室看动画片来着。
周五中午，组织了一次针对新入职员工的答疑活动，两位“老“同事对大家的问题进行了一一解答，包括出差，技能，职业规划，企业文化等等。而且他们说公司的培训会非常多，包括硬技能和软技能。
而所谓的考核，就是由这一年和你一起工作过得同事给你写feedback，看你的技能矩阵是否满足升级的要求。
HR告诉我，每个新人在试用期会自己选择一个人做你的buddy，旨在帮你解答各方面的疑问，帮助你更好地度过试用期。
因为我马上要去项目上，所以最好到项目上尽快找一个buddy。而且每个月会有一些费用，让你和buddy一起进行buddy lunch。
试用期结束后选择一个sponser，和buddy有什么区别我现在还不是很清楚。</p>
<h2 id="工作氛围">工作氛围</h2>
<p>tw开放式的办公环境，一切活动都在众目睽睽之下，可能有些人会不适应。<br>
而有些人却特别喜欢和别人亲密合作，有两位senior的同事每天pair总是很欢乐，他们互相激励（吹捧），showcase，挪卡，开新卡，看得我心痒难耐。
每天早上和下午都有水果时间，大家会聚在一起吃吃水果聊聊天，大概10分钟左右。
感觉这个活动性价比很高，大家起来活动一下，换换脑子，思路会更清晰，还可以增加不同项目团队之间的交流。<br>
除了乒乓球，中午还有同事在活动室打扑克，我还收到过组织游泳和篮球的邮件，还有女同事们下班后在乒乓球室上瑜伽课。</p>
<h2 id="open-house">Open House</h2>
<p>周五赶上一年一度的Open House了，主持人说，不要再翻译成“开房”了好吗。
去年我就参加过Open House，非常轻松有趣，这次我还加入了一个track做志愿者，玩的非常开心，还得了一个外号叫“大葱”。</p>
<p>刚入职一周就飞到了深圳，而且要在这边至少两个月，第一次出差就这么给力。
每月有两次homeflight，也就是所谓的探亲，公司会报销来回机票。
这边酒店也不错，窗外是高尔夫球场，离海边很近，以后可以去海边跑步，想老婆了就把老婆接过来，还可以自己做饭吃。
最后，非常期待明天去客户现场，期待周末去成都参加Away Day。</p>]]></description><pubDate>Sun, 25 Aug 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Vim 宏]]></title><link>https://life.seabornlee.cn/posts/Vim%20%E5%AE%8F/</link><guid>https://life.seabornlee.cn/posts/Vim%20%E5%AE%8F/</guid><description><![CDATA[<img src="/_image/2014-05-11/14-54-46.jpg">
<p>VIM用户可以使用宏来录制编辑动作过程，然后再播放以减少重复操作。
具体命令如下：</p>
<ol>
<li>qa：开始录制宏，并将宏保存到寄存器a中（你也可以把“a”想象成宏的名称），开始后会在状态栏显示“recording”</li>
<li>q：停止录制</li>
<li>@a：播放寄存器a中的宏</li>
</ol>
<h2 id="练习一">练习一</h2>
<h3 id="编辑前">编辑前</h3>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9"># Appending text:</span></span>
<span class="line"><span style="color: #c9d1d9">The name "Vim" is an acronym for "Vi IMproved"</span></span>
<span class="line"><span style="color: #c9d1d9">The name "Vim" is an acronym for</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9"># Editing text:</span></span>
<span class="line"><span style="color: #c9d1d9">Vim is a text editor originally released by Bram Moolenaar in 1991 for the Amiga</span></span>
<span class="line"><span style="color: #c9d1d9">Trivia: Vim is a text editor released by Bram Moolenaar in 1991 for the Amiga</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9"># Deleting text:</span></span>
<span class="line"><span style="color: #c9d1d9">Vim has a vi compatibility mode</span></span>
<span class="line"><span style="color: #c9d1d9">Vim has a vi compatibility mode but when not in this mode Vim has many enhancements over vi</span></span></code></pre>
<h3 id="编辑后">编辑后</h3>
<p>将文件中的三对文本中的第二行都变得跟第一行一样。结果如下：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9"># Appending text:</span></span>
<span class="line"><span style="color: #c9d1d9">The name "Vim" is an acronym for "Vi IMproved"</span></span>
<span class="line"><span style="color: #c9d1d9">The name "Vim" is an acronym for "Vi IMproved"</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9"># Editing text:</span></span>
<span class="line"><span style="color: #c9d1d9">Vim is a text editor originally released by Bram Moolenaar in 1991 for the Amiga</span></span>
<span class="line"><span style="color: #c9d1d9">Vim is a text editor originally released by Bram Moolenaar in 1991 for the Amiga</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9"># Deleting text:</span></span>
<span class="line"><span style="color: #c9d1d9">Vim has a vi compatibility mode</span></span>
<span class="line"><span style="color: #c9d1d9">Vim has a vi compatibility mode</span></span></code></pre>
<h3 id="操作解释">操作解释</h3>
<blockquote>
<p><strong>qa 开始录制宏</strong>
j 下移一行
yy 复制一行
p 粘贴
j 下移一行
dd 删除一行
<strong>q 停止录制</strong>
<strong>2@a 播放两次</strong></p>
</blockquote>
<p>如果你这个比较简单，也没有什么实用价值，那就看下面这个吧。</p>
<hr>
<h2 id="练习二">练习二</h2>
<h3 id="编辑前-1">编辑前</h3>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">Annette</span></span>
<span class="line"><span style="color: #c9d1d9">Warren</span></span>
<span class="line"><span style="color: #c9d1d9">Anthony</span></span>
<span class="line"><span style="color: #c9d1d9">Preston</span></span>
<span class="line"><span style="color: #c9d1d9">Kelly</span></span>
<span class="line"><span style="color: #c9d1d9">Taylor</span></span>
<span class="line"><span style="color: #c9d1d9">Stiller</span></span>
<span class="line"><span style="color: #c9d1d9">Dennis</span></span>
<span class="line"><span style="color: #c9d1d9">Schwartz</span></span></code></pre>
<h3 id="编辑后-1">编辑后</h3>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">ALTER USER Annette IDENTIFIED BY 'Annette';</span></span>
<span class="line"><span style="color: #c9d1d9">ALTER USER Warren IDENTIFIED BY 'Warren';</span></span>
<span class="line"><span style="color: #c9d1d9">ALTER USER Anthony IDENTIFIED BY 'Anthony ';</span></span>
<span class="line"><span style="color: #c9d1d9">ALTER USER Preston IDENTIFIED BY 'Preston';</span></span>
<span class="line"><span style="color: #c9d1d9">ALTER USER Kelly IDENTIFIED BY 'Kelly ';</span></span>
<span class="line"><span style="color: #c9d1d9">ALTER USER Taylor IDENTIFIED BY 'Taylor';</span></span>
<span class="line"><span style="color: #c9d1d9">ALTER USER Stiller IDENTIFIED BY 'Stiller';</span></span>
<span class="line"><span style="color: #c9d1d9">ALTER USER Dennis IDENTIFIED BY 'Dennis';</span></span>
<span class="line"><span style="color: #c9d1d9">ALTER USER Schwart IDENTIFIED BY 'Schwart';</span></span></code></pre>
<h3 id="操作解释-1">操作解释</h3>
<blockquote>
<p>q a: 开始录制宏，存储到寄存器a中
I “ALTER USER ”: 在行首插入“ALERT USER ”
Esc w yw：复制光标后的用户名
A “IDENTIFIED BY '”：到行尾输入IDENTIFIED BY ‘
Esc p：粘贴之前复制的用户名
A “';”：在行尾关闭引号
Esc j q：下移一行并结束录制
8@a：播放宏8次</p>
</blockquote>
<hr>
<p>参考资料：<a href="http://www.thegeekstuff.com/2009/01/vi-and-vim-macro-tutorial-how-to-record-and-play/">Vi and Vim Macro Tutorial: How To Record and Play</a></p>]]></description><pubDate>Sun, 11 May 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Yes，and]]></title><link>https://life.seabornlee.cn/posts/Yes%EF%BC%8Cand/</link><guid>https://life.seabornlee.cn/posts/Yes%EF%BC%8Cand/</guid><description><![CDATA[<img src="https://img0.baidu.com/it/u=2480503354,1559577148&#x26;fm=253&#x26;fmt=auto&#x26;app=120&#x26;f=JPEG?w=750&#x26;h=500">
<p>看板上缺少一个「障碍」区，SM 开始找胶带，准备在最下方拉出一个区域来。
一位成员说：放在下面不容易看到吧？
SM：这个，只有 SM 看。</p>
<p>请问这位成员在做什么？
SM 在做什么？</p>
<p>前者在贡献想法，期待共创，体现了拥有感。
SM 不经意间打击了一个少年贡献的心。</p>
<p>Yes，And 是即兴表演的一个原则，也是领导力培训的一种新潮流。
看到对方的意图，肯定对方的贡献，再一次完善具体的做法。</p>
<p>「对哦，那要怎么才够醒目呢？」这时对方会感受到被接纳，被需要，会更有拥有感和责任感。
是你会怎么回应呢？欢迎用 Yes，And 造句。</p>]]></description><pubDate>Mon, 21 Dec 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[sqlite数据库迁移的几种办法]]></title><link>https://life.seabornlee.cn/posts/sqlite%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%81%E7%A7%BB%E7%9A%84%E5%87%A0%E7%A7%8D%E5%8A%9E%E6%B3%95/</link><guid>https://life.seabornlee.cn/posts/sqlite%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%81%E7%A7%BB%E7%9A%84%E5%87%A0%E7%A7%8D%E5%8A%9E%E6%B3%95/</guid><description><![CDATA[<img src="https://img1.baidu.com/it/u=2204828420,4130025472&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=PNG?w=960&#x26;h=480">
<p>把数据库中除指定的表外的其它表数据清掉，但要保留表结构。</p>
<h2 id="手工">手工</h2>
<p>50多个表，一个一执行<code>delete from table_name</code>，作为一个ThoughtWorker，这样做且不说会被同事鄙视，连自己那关都过不了。</p>
<h2 id="文本处理--shell">文本处理 + shell</h2>
<p>通过<code>.tables</code>命令得到所有表名，<em>手工去掉要保留的表名</em>，
再用vim或其它文本编辑器把表名处理成<code>"tbl1" "tbl2" "tbl3"</code>这样的形式，再写一个shell脚本，用for循环来执行。</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">#!/bin/bash</span></span>
<span class="line"><span style="color: #c9d1d9">for tableName in "tbl1" "tbl2" "tbl3"</span></span>
<span class="line"><span style="color: #c9d1d9">do</span></span>
<span class="line"><span style="color: #c9d1d9">    sqlite3 services.db "delete from ${tableName};"</span></span>
<span class="line"><span style="color: #c9d1d9">done</span></span></code></pre>
<p>这个属于半自动，也是我一开始想到的方式。</p>
<h2 id="shell-only">shell only</h2>
<p>在查找shell资料的过程中发现，可以在shell脚本中得到一个命令的执行结果作为变量，这样就可以不用手工处理表名了，代码如下：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">#!/bin/bash</span></span>
<span class="line"><span style="color: #c9d1d9">tables=`sqlite3 services.db ".tables"`</span></span>
<span class="line"><span style="color: #c9d1d9">for tableName in $tables</span></span>
<span class="line"><span style="color: #c9d1d9">do</span></span>
<span class="line"><span style="color: #c9d1d9">  if [[ "$tableName" != "tableWhichShouldReserve" ]]; then</span></span>
<span class="line"><span style="color: #c9d1d9">    sqlite3 services.db "delete from ${tableName};"</span></span>
<span class="line"><span style="color: #c9d1d9">  fi</span></span>
<span class="line"><span style="color: #c9d1d9">done</span></span></code></pre>
<p>注意，第一条命令的等号两边都不能有空格</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">tables=`sqlite3 services.db ".tables"`</span></span></code></pre>
<hr>
<p>如果不需要保留其它表的结构的话，还有两种方式：</p>
<h2 id="attach-as">attach as</h2>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">$> sqlite3 1.db</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">sqlite> attach '2.db' as db2;</span></span></code></pre>
<p>需要注意'2.db'一定要有引号，这时你可以通过.databases命令查看到：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">sqlite> .databases</span></span>
<span class="line"><span style="color: #c9d1d9">seq  name             file</span></span>
<span class="line"><span style="color: #c9d1d9">---  ---------------  ----------------------------------------------------------</span></span>
<span class="line"><span style="color: #c9d1d9">0    main             /Users/twer/Desktop/1.db</span></span>
<span class="line"><span style="color: #c9d1d9">2    db2              /Users/twer/Desktop/2.db</span></span></code></pre>
<p>然后执行如下命令：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">sqlite> create table db2.table_name as select * from main.table_name;</span></span></code></pre>
<p><em>table_name是你要迁移的表名</em></p>
<h2 id="dump--read">dump + read</h2>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">sqlite3 1.db '.dump table_name' > 2.sql</span></span>
<span class="line"><span style="color: #c9d1d9">touch 2.db</span></span>
<span class="line"><span style="color: #c9d1d9">sqlite3 2.db '.read 2.sql'</span></span></code></pre>
<h2 id="总结">总结</h2>
<p>有句话说：如果你手里只有一把锤子，你会看什么都像钉子。
如果时间允许的话，找到尽量多的解决方案并记录下来，下次再处理类似问题的时候就会轻松很多。</p>]]></description><pubDate>Thu, 07 Nov 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[sqlldr用法]]></title><link>https://life.seabornlee.cn/posts/sqlldr%E7%94%A8%E6%B3%95/</link><guid>https://life.seabornlee.cn/posts/sqlldr%E7%94%A8%E6%B3%95/</guid><description><![CDATA[<img src="https://img1.baidu.com/it/u=3504749565,1557117143&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=382&#x26;h=236">
<p><code>sqlldr user/pwd@serviceName control=load.ctl</code></p>
<p>load.ctl内容如下：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #FF7B72">load</span><span style="color: #C9D1D9"> </span><span style="color: #FF7B72">data</span></span>
<span class="line"><span style="color: #C9D1D9">infile </span><span style="color: #A5D6FF">'C:\Documents and Settings\Administrator\桌面\数据文件.txt'</span></span>
<span class="line"><span style="color: #FF7B72">append</span><span style="color: #C9D1D9"> </span><span style="color: #FF7B72">into</span><span style="color: #C9D1D9"> </span><span style="color: #FF7B72">table</span><span style="color: #C9D1D9"> tableName </span><span style="color: #FF7B72">//append</span><span style="color: #C9D1D9"> 或者 </span><span style="color: #79C0FF">replace</span></span>
<span class="line"><span style="color: #C9D1D9">fields terminated </span><span style="color: #FF7B72">by</span><span style="color: #C9D1D9"> </span><span style="color: #A5D6FF">';'</span><span style="color: #C9D1D9"> </span><span style="color: #FF7B72">//</span><span style="color: #C9D1D9">分隔符</span></span>
<span class="line"><span style="color: #C9D1D9">(</span></span>
<span class="line"><span style="color: #C9D1D9">	EMAIL </span><span style="color: #FF7B72">CHAR</span><span style="color: #C9D1D9">,</span></span>
<span class="line"><span style="color: #C9D1D9">	GENDER </span><span style="color: #FF7B72">CHAR</span><span style="color: #C9D1D9">,</span></span>
<span class="line"><span style="color: #C9D1D9">	AGE </span><span style="color: #FF7B72">CHAR</span></span>
<span class="line"><span style="color: #C9D1D9">)</span></span></code></pre>]]></description><pubDate>Wed, 11 Feb 2009 00:00:00 GMT</pubDate></item><item><title><![CDATA[《卓有成效的工程师》领读]]></title><link>https://life.seabornlee.cn/posts/%E3%80%8A%E5%8D%93%E6%9C%89%E6%88%90%E6%95%88%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%B8%88%E3%80%8B%E9%A2%86%E8%AF%BB/</link><guid>https://life.seabornlee.cn/posts/%E3%80%8A%E5%8D%93%E6%9C%89%E6%88%90%E6%95%88%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%B8%88%E3%80%8B%E9%A2%86%E8%AF%BB/</guid><description><![CDATA[<img src="https://img0.baidu.com/it/u=2768479630,3113806761&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=PNG?w=500&#x26;h=500">
<p>以下是领读活动准备的大纲：</p>
<ul>
<li>2008 年，参加培训班，成为Java 程序员，月薪 3500</li>
<li>2010 年，公司经营不善欠薪离职，外派神州数码，月薪 6k
collapsed:: true
<ul>
<li>向上沟通</li>
</ul>
</li>
<li>2011 年，自学 Android，神码转正成技术 Leader，开始关注工程实践
collapsed:: true
<ul>
<li>遗留系统，人员流动，如何保证质量和效率</li>
<li>初识极限编程</li>
</ul>
</li>
<li>2012 年，面试 Thoughtworks 被拒，加入敏捷社区
collapsed:: true
<ul>
<li>多读书，多分享，多参与社区</li>
<li>敏捷之旅，敏捷个人</li>
</ul>
</li>
<li>2013 年，二战 Thoughtworks 成功，年薪 18w + 出差补助，交付转咨询
<ul>
<li>安全度过试用期</li>
<li>SM -> PM</li>
<li>WeLab 拒绝加班</li>
<li>新员工入职培训</li>
<li>转入咨询团队</li>
</ul>
</li>
<li>2015 年，“深圳湾创客创业社区” CTO 技术合伙人，年薪 48w
<ul>
<li>聪明地工作 vs 努力地工作 <img src="/_image/image_1662637265460_0.png" alt="image.png"></li>
</ul>
</li>
<li>2016 年，回炉 Thoughtworks 成都，刻意练习培训，降薪近半
<ul>
<li>第一次接商业培训</li>
<li>高校实验室，认识周冰教练</li>
<li>新员工培训</li>
<li>客户内训</li>
<li>TTT</li>
</ul>
</li>
<li>2018 年，拒绝 90w Offer，成为敏捷咨询师/培训师，年入过百万
<ul>
<li>拒了 Offer，雇主变客户</li>
<li>优普丰咨询</li>
</ul>
</li>
<li>2019 年，拒绝 120w Offer
<ul>
<li>无缘阿里</li>
<li>参加教练技术培训</li>
</ul>
</li>
<li>2022 年，加入 Smart Token Labs，远程工作
<ul>
<li>远程 + 异步 = 真香</li>
<li></li>
</ul>
</li>
<li><strong>最好的投资，是投自己</strong>
<ul>
<li>华尔街英语</li>
<li>培训
<ul>
<li>CIPMT(培训师课程)</li>
<li>GTD</li>
<li>发声课</li>
<li>视觉课</li>
</ul>
</li>
<li>创业创新
<ul>
<li>混沌创商课</li>
<li>海创汇</li>
<li>腾讯产品课</li>
</ul>
</li>
<li>敏捷
<ul>
<li>CSM / CSPO / CSD  -> CSP</li>
<li>IIAM，DOM，Scrum@Scale</li>
</ul>
</li>
<li>软技能
<ul>
<li>DISC</li>
<li>CCSTC</li>
<li>认知写作学</li>
<li></li>
</ul>
</li>
<li></li>
</ul>
</li>
<li><strong>刻意练习</strong>
<ul>
<li>数据结构和算法</li>
<li>Dvorak 打字布局，双拼</li>
<li>视觉</li>
<li>演讲俱乐部 <img src="/_image/image_1662636965821_0.png" alt="image.png"></li>
<li>培训</li>
</ul>
</li>
<li></li>
<li><strong>影响力</strong>
<ul>
<li>敏捷之旅 <img src="/_image/image_1662636508734_0.png" alt="image.png"></li>
<li>学习俱乐部(4us) <img src="/_image/image_1662635997726_0.png" alt="image.png"></li>
<li>软件匠艺小组 codingstyle.cn <img src="/_image/image_1662636722588_0.png" alt="image.png"></li>
<li>公众号：小波老西 <img src="/_image/image_1662636384568_0.png" alt="image.png"></li>
<li>知识星球：成为百万年薪敏捷教练</li>
</ul>
</li>
<li></li>
<li><strong>生命中的贵人</strong>
<ul>
<li>壮志，美玲</li>
<li>Shinning</li>
<li>王宇</li>
<li>Bob Jiang</li>
<li>王仲涛</li>
<li>申导@优普丰</li>
<li>韵涛，肖然，仝键</li>
<li>周冰教练</li>
</ul>
</li>
<li>不抱怨，思考做什么来改善现状
小步前行，每一步都在之前的积累上提升
努力分享，积累人脉
直接向有经验的人学习，不断成长
最终成为成为“卓有成效的工程师</li>
</ul>]]></description><pubDate>Thu, 01 Sep 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[「给建议」和「提问题」的区别，记一次教练对话练习]]></title><link>https://life.seabornlee.cn/posts/%E3%80%8C%E7%BB%99%E5%BB%BA%E8%AE%AE%E3%80%8D%E5%92%8C%E3%80%8C%E6%8F%90%E9%97%AE%E9%A2%98%E3%80%8D%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%8C%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%95%99%E7%BB%83%E5%AF%B9%E8%AF%9D%E7%BB%83%E4%B9%A0/</link><guid>https://life.seabornlee.cn/posts/%E3%80%8C%E7%BB%99%E5%BB%BA%E8%AE%AE%E3%80%8D%E5%92%8C%E3%80%8C%E6%8F%90%E9%97%AE%E9%A2%98%E3%80%8D%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%8C%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%95%99%E7%BB%83%E5%AF%B9%E8%AF%9D%E7%BB%83%E4%B9%A0/</guid><description><![CDATA[<img src="/_image/image_2023-11-04-21-13-00.png">
<p>周一晚，小伙伴们相约在「灵感咖啡」，进行了一次教练对话练习。
我在练习中扮演教练角色，体验了「给建议」和「提问题」两种方式巨大的差别。</p>
<p>对于教练技术，我读过几本书，也实践过几次，心里一直存在一个疑惑：
之前的几次教练对话都是我心里有一个答案，然后通过发问引导客户找到我心里预设的那个答案。
与其说是「引导」，不如叫做「诱导」，被客户发现后，会产生抵触的心理。</p>
<p>我带着这个疑惑参与了这次练习。</p>
<h2 id="练习">练习</h2>
<p>这次活动一共 8 人参与，一人扮演客户，一人扮演教练，其他人作为观察者。
我深知教练技术是实践的艺术，所以积极地争取到了扮演教练练习的机会。</p>
<p>一共做了两轮练习，每轮 5 分钟。感谢扮演客户的同学，允许我公开这次练习过程。
第一轮练习是：给建议。</p>
<h3 id="给建议">给建议</h3>
<p>客户：</p>
<blockquote>
<p>我团队里有几位 90 后的小朋友，他们工作成果总是不让人满意，我给他们建议他们又很抵触。哪怕是让他们去碰壁过后再来讲，他们也不接受，依旧我行我素。</p>
</blockquote>
<p>我：</p>
<blockquote>
<p>既然他们工作能力不行，态度也不行。为什么不把他们开掉呢？</p>
</blockquote>
<p>客户：</p>
<blockquote>
<p>虽然他们经验不足，但真的很能吃苦，比如上次，他们搞砸了，一直加班到早上 6 点，然后 9 点钟又准时回来上班，我看到其中一位眼睛肿肿的，问了一下，另两人瞪了她一眼，她支支吾吾地说，可能是没睡好。我是后来听保安说有人通宵，需要报备，才知道这件事情的。所以我真的不想放弃他们，想努力去帮助他们成长。</p>
</blockquote>
<p>我：</p>
<blockquote>
<p>嗯。你知道「德雷福斯模型」吗？人在学习某个领域时会经历几个阶段：新手 -> 高级新手 -> 胜任者 -> 精通者 -> 专家。听起来他们应该处于「高级新手」阶段，这个阶段的特点是有自己的做事方式，不需要特别具体的指令。不过高级新手经常会误以为自己是精通者或专家。建议你让专家来演示一下怎么做事，以打开他们的眼界。</p>
</blockquote>
<p>客户：</p>
<blockquote>
<p>有试过。比如有个小朋友，我找了一个他也比较钦佩的人来跟他沟通，但他还是只管挑对方的毛病，不接受建议...</p>
</blockquote>
<p>差不多到这里的时候，5 分钟时间到了。</p>
<h3 id="反馈">反馈</h3>
<p>客户分享感受：</p>
<blockquote>
<p>你说的很有道理，但我们的情况比较特殊...</p>
</blockquote>
<p>在这个练习中可以看到，不管是教练给客户建议，还是客户给下属建议，效果都不好。
那么为什么给建议不容易被接受呢？
因为给建议隐含的假设是：<strong>你做的有问题</strong>。</p>
<p>观察者反馈：</p>
<blockquote>
<p>教练没有收集到足够的信息，客户遇到了很多问题，应该先定义问题。</p>
</blockquote>
<h3 id="提问">提问</h3>
<p>接着我们进行第二轮练习，这一次不能给建议，只能问问题，套路是：</p>
<ul>
<li>你想要的是什么？</li>
<li>你准备从哪里开始？</li>
<li>这个真的那么重要吗？</li>
<li>怎么验证目标达到了呢？</li>
</ul>
<p>我：</p>
<blockquote>
<p>你好，虽然我刚开始接触教练技术，但我会尽我的最大努力，你愿意跟我一起尝试一次吗？</p>
</blockquote>
<p>客户：</p>
<blockquote>
<p>好的。</p>
</blockquote>
<p>我：</p>
<blockquote>
<p>谢谢！你现在遇到了什么挑战呢？</p>
</blockquote>
<p>客户：</p>
<blockquote>
<p>我团队里有几位 90 后的小朋友，他们工作成果总是不让人满意，我给他们建议他们又很抵触。后来我就让他们去碰壁，过后再来复盘，他们也不接受，依旧我行我素。我也给他们做过培训，都没有什么改观。</p>
</blockquote>
<p>我：</p>
<blockquote>
<p>从你刚才的描述，我听到了两个问题，一是团队成员的工作不能让人满意，二是团队成员不听你的建议。你想先解决哪个问题呢？</p>
</blockquote>
<p>客户思考了片刻：</p>
<blockquote>
<p>我想先解决第一个，只要工作能让人满意，听不听建议倒不重要。</p>
</blockquote>
<p>我：</p>
<blockquote>
<p>好的。那你期望的他们把工作做好的画面是怎么样的呢？能举个例子吗？</p>
</blockquote>
<p>客户：</p>
<blockquote>
<p>我们是做行政工作的，我给你举个例子，本来计划接待 5 个客户，他们就准备了 5 个杯子，结果客户来了 8 个人，他们也不知道再去找三个杯子来，补救一下...</p>
</blockquote>
<p>我：</p>
<blockquote>
<p>我从这个案例里听到两点：一个他们不会提前推演可能出现的变化；二是出现问题后不会去补救。</p>
</blockquote>
<p>这时 5 分钟时间到了。</p>
<h3 id="反馈-1">反馈</h3>
<p>客户反馈：</p>
<blockquote>
<p>这次好像真的有把问题理清楚了一些，我之前都是给他们做一些技能的培训，现在我觉得可以尝试做一下思维上的培训。</p>
</blockquote>
<p>观察者反馈：</p>
<blockquote>
<p>首先教练很认真在听客户说，每次都等客户说完才开始说话，亲和力很强。每次客户说完，教练会用非常简短的话总结出重点。</p>
</blockquote>
<p>我的感受：</p>
<blockquote>
<p>这一次练习，我完全不知道客户最后会去到哪里，心里也没有一个预设的答案，只能尽量认真地倾听，帮助客户理清思路。
如果时间再长一点，我相信会有不错的效果。</p>
</blockquote>
<h2 id="经验总结">经验总结</h2>
<ul>
<li>教练和客户不要正面的面对面坐，稍微有一点角度，会感觉更舒适和安全</li>
<li>在开始教练之前要征得客户的同意，如何建立信任是另一个话题</li>
<li>教练在做记录的时候让客户看到，不要偷偷摸摸地写</li>
</ul>
<hr>
<p><img src="/_image/2017-02-15-14-01-23.jpg" alt="">
组织者张莹还介绍了两本书：前者是教练内功，后者是招式。</p>
<p>每周一晚上，我们都在「灵感咖啡」（天府软件园 D 区）交流，这次一共有三个主题：Growth Hacking，内观，教练对话练习。
有兴趣的小伙伴欢迎过来，一起学习，共同成长！</p>]]></description><pubDate>Wed, 15 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[为什么我只有高中学历？]]></title><link>https://life.seabornlee.cn/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%8F%AA%E6%9C%89%E9%AB%98%E4%B8%AD%E5%AD%A6%E5%8E%86%EF%BC%9F/</link><guid>https://life.seabornlee.cn/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%8F%AA%E6%9C%89%E9%AB%98%E4%B8%AD%E5%AD%A6%E5%8E%86%EF%BC%9F/</guid><description><![CDATA[<img src="https://img2.baidu.com/it/u=671831421,3662754164&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPG?w=640&#x26;h=401">
<p>注：这是我写给ThougthWorks HR的邮件，也是第一次这么完整地总结自己的过去，觉得很有意义，纪念一下。以下是邮件内容：</p>
<p>得知我目前还是高中学历，你一定很觉得意外吧。
你问我“为什么”的时候，我一时无法回答，因为我也没有仔细地想过。
我决定和你一起来回忆，谢谢你提了个好问题：</p>
<p>为什么？</p>
<h3 id="小学">小学</h3>
<p>我87年出生，5岁进入小学，直到小学毕业，没考过第三名，但这根本不值得骄傲，因为小学毕业时，我们班仅有17个人。
那时老师和村里的长辈都说我将来有出息，我信了。</p>
<h3 id="初中">初中</h3>
<p>升初中时，我的成绩是镇第二，但遗憾的是我被分到了一个“最烂”的班，成绩直线下滑。
感谢我明智的父亲，初二的时候把我转到了邻省四川的一个封闭式学校。
我在新学校的第一次考试是班级20几名，初二期末的时候我考了全级第一，老师给的评语是：“让人刮目相看”。我觉得他的意思是：“我和我的小伙伴们都惊呆了。”
初三下半年我回到了原来的学校，中考时我是我们班考上高中的两个人之一。</p>
<h3 id="高中">高中</h3>
<p>进入高中后，我住到了市里小姨家，你可以想象一个农村孩子从封闭学校到市里的感觉吗？
我突然发现很多有趣的东西，于是我在高一的时候迷恋上了桌球和乒乓球，放在学习上的精力明显减少，但成绩还过得去，这恰恰是最危险的，因为我当时的想法是：“高中的难度不过如此嘛”。
高二的时候，我又开始学吉它。曾经因为母亲不给我买吉它，终日抱着封面有吉他图案的磁带以泪洗面。
像大多数年轻人一样，我们爱Beyond，爱黄家驹，玩了一年所谓的摇滚乐队。</p>
<p>高三那年，我17岁，那是一个“还不抓紧谈恋爱，连早恋的资格都没有了”的年纪。
那一年，分文理科，我到了一个新的班级，碰到一个喜欢听我弹吉它的女孩（<a href="http://v.youku.com/v_show/id_XNDQwODA3MTgw.html">一直听到现在</a>）。
那时，父母和老师都建议我把精力放在学习上，不然就考不上大学了，我问他们为什么要上大学，他们没能说服我（估计那时候九头牛都拉不回来）。</p>
<p>高考后，女孩去了北京，我也想去，但我不敢告诉父亲。
于是父亲故伎重施，我又去了四川的一所高中复读，当时我们宿舍有6个学美术的同学。
于是我发现除了音乐，我还有<a href="http://www.douban.com/photos/album/104849286/">美术细胞</a>。那一年，桌球和乒乓球技术也精进了不少，吉它也得到了很好的推广。
当然，我还是没能考上二本，主要是物理化学，这两科我连50分都拿不到。
父亲问我有何打算，我试探性地说：“要不去北京吧，大城市机会多。”</p>
<h3 id="大学">“大学”</h3>
<p>于是，我就来了北京，去了和我老婆同一个学校《北京圆明园学院》，读的是《计算机网络》专业（<a href="/posts/%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AD%A6%E7%BC%96%E7%A8%8B">为什么选计算机专业？</a>），老师说民办学校毕业证社会承认，但国家不承认，国家承认自考。
06，07两年考过大部分专业课后，我觉得给学校交钱拿一个国家不承认的毕业证完全是在浪费父母的钱。自考全称“自学考试”，自己学，参加考试就好了，我相信自己的学习能力。
于是我就退学了，自学了一段时间，考的差不多了（其间还考了Cisco的CCNA认证），我就开始找工作。</p>
<h3 id="工作">工作</h3>
<p>没有那一纸文凭做敲门砖，找工作谈何容易。
为了快速获得社会经验，我做过服装销售和电话销售。时间很短，但确实很锻炼人。
想找编程的工作，我连面试的机会都很少，最终我去了一家好像随时有可能倒闭的小公司。
第二年，公司经营不善，拖欠几个月工资后，最终倒闭。
这件事对我的打击很大，我反复问自己：“难道一辈子只能在这样的公司工作吗？”，我可再也不想被拖欠工资了。
但无论如何，这一年的工作让我成长了许多。于是我很快就找到了第二份工作，虽然也是一家小公司，但除了薪水满足我的期望外，还有保险和公积金，让我感觉公司正规了不少。
但最重要的是它会把我外派到<a href="http://baike.baidu.com/view/24717.htm">神州数码</a>，之间也听说过外包的种种负面评价，甚至有“珍惜生命，远离外包”这样的口号。我想就算我不是正式员工，能在大公司学习一下也是极好的。我作好了极坏的打算，但事实证明我的担心完全是多余的。这里没有无休止的加班，也不会让你“没有归属感”，在这里我能感受到尊重，我完全把自己当成了神码人。</p>
<p>在神码工作的业余时间，我在移动市场小试牛刀，惊呆了。非常看好移动开发的前景，于是我拿到了<a href="http://wiyun.com/">微云公司</a>的offer。
但这时，因为表现好，领导要破格把我转正。我想这可能是我这一辈子唯一一次可以进大公司的机会了，于是经过总裁室特批，我就成了神码“特聘”的员工。感谢我的领导ZZ和ML。
在神码工作的这三年多里，你们给了我足够的空间，我也学到了很多。还因为打造学习型团队被评为<a href="/_image/2013-04-28%2015.02.42.jpg">“优秀员工”</a>，这给了我极大的信心去迎接未来的工作和生活。</p>
<h3 id="追梦">追梦</h3>
<p>在导入敏捷的过程中，关注到ThoughtWorks，读了很多微博和博客之后，才知道那就是我做梦都想去的地方，因为那里有一群如此吸引我的人。
而且不是做梦，其实ThougthWorks早就在我心里埋下了一粒种子，好像是还在学校的时候，那时我还不知道敏捷，ThoughtWorks也没现在这么有名。
但我确实看到过ThoughtWorks的招聘广告，记得其中一条是“无学历要求”，这对我来说是极具诱惑力的，不过我也不记得当时有没有提交过简历。我报着试一试的态度，经历了<a href="/posts/ThoughtWorks%EF%BC%8C%E4%BD%A0%E7%AD%89%E7%9D%80%EF%BC%81">ThoughtWorks第一次面试失败</a>，更加坚定地想要成为ThoughtWorker，现在第二次面试终于成功拿到offer，就在一切俨然板上钉钉的时候，不可避免地，又谈到了学历问题。</p>
<h3 id="总结">总结</h3>
<p>究竟是为什么？7年了，为什么我还没有考完自考？</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">第一，我的潜意识里可能根本不认同自考，之所以参加完全是在没找到方向前以考促学；</span></span>
<span class="line"><span style="color: #c9d1d9">第二，软件行业总有学不完的东西，找到方向后总有比自考更重要的东西要学；</span></span>
<span class="line"><span style="color: #c9d1d9">第三，可能我太追求完美，宁缺勿滥，我希望有一个更好的学历，如果需要以自考为基础，我也会继续自考。</span></span></code></pre>
<p>我相信Steve所说的Connect the dots，我相信人生每一段经历都有其独特的价值。
如果将来有一天我以成功者身份讲述我的故事，我希望能讲一个屌丝逆袭的故事。
从“差班成绩下滑到转校全级第一”可以看出，我容易受环境影响，这也是为什么我如此想要进入ThoughtWorks的一个重要原因。
而且，没有什么比 <strong>“一个高中生如何进入全球最难面试的科技公司”</strong>  更励志和更能体现企业文化的了。</p>]]></description><pubDate>Tue, 30 Jul 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[为什么要写博客]]></title><link>https://life.seabornlee.cn/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E5%86%99%E5%8D%9A%E5%AE%A2/</link><guid>https://life.seabornlee.cn/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E5%86%99%E5%8D%9A%E5%AE%A2/</guid><description><![CDATA[<img src="https://img0.baidu.com/it/u=3607132106,857495577&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=634&#x26;h=420">
<p>其实早就准备好了域名和空间，直到今天才将Blog搭起来，并不是没东西可写（我的Evernote里也有259条笔记了），主要是觉得自己还不成熟，写的东西对别人没有价值。</p>
<p>今天终于想通了，主要还是因为这两天在看的一本书<a href="http://book.douban.com/subject/5263615/">《五天学会绘画》</a>。如果没有记录，你不会感觉到今天的你和之前的你相比有多大的进步。</p>
<p>所以，我写博客的目的，主要是：</p>
<h2 id="一督促自己思考">一、督促自己思考</h2>
<p>我觉得，如果只把大脑当一个存储设备使的话，是极大的浪费。我看了很多书，除了知道的比以前多以外，并没有感觉到自己变的更聪明，理解能力变更强，我将原因归结为缺少主动思考，所以我要经常写一点东西，督促自己养成积极思考的习惯。</p>
<h2 id="二锻炼文字能力">二、锻炼文字能力</h2>
<p>文字是一种表达的手段，是一种沟通的方式，而驾驭文字的能力并不是与生俱来的。勤能补拙，熟能生巧，只要坚持下去，我相信总有一天我也能写出对别人有价值的东西。</p>
<h2 id="三分享知识">三、分享知识</h2>
<p>出来混 ，迟早是要还的。看了别人那么多的博文，到了一定时候，总得想想怎么还吧。如果大家都默默做看客，只进不出，后来者就无法站在前人的肩上，就会做很多无用功。文化就无法得到积累和发展。说具体一点就是我对知识有新的理解我会告诉你，看会不会对你有启发，我犯了什么错我会告诉你，让你避免犯同样的错。</p>
<h2 id="四结交朋友">四、结交朋友</h2>
<p>最近两年除了读很多书外， 也读了很多博客，看一个人的博客能了解到他的思想，而从读者的讨论中也能发现一些志同道合的人。
曾经为了锻炼意志，我每天早上5点起床，坚持了大半年时间，后来没继续主要是因为我不能养成早睡的习惯，以至于长期睡眠不足。而且养成习惯后早起并不是什么难事，起不到锻炼意志的作用，或许我该用早睡来锻炼？咳，我只是想说，就写博客这件事，我应该能坚持下去。</p>
<p>另外，关于写博客的好处和存在的问题，<a href="http://mindhacks.cn/2009/02/15/why-you-should-start-blogging-now/">这篇文章</a>讲的很清楚。</p>]]></description><pubDate>Wed, 04 Jan 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[为什么要成立一个学习小组]]></title><link>https://life.seabornlee.cn/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E6%88%90%E7%AB%8B%E4%B8%80%E4%B8%AA%E5%AD%A6%E4%B9%A0%E5%B0%8F%E7%BB%84/</link><guid>https://life.seabornlee.cn/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E6%88%90%E7%AB%8B%E4%B8%80%E4%B8%AA%E5%AD%A6%E4%B9%A0%E5%B0%8F%E7%BB%84/</guid><description><![CDATA[<img src="https://img2.baidu.com/it/u=2589997169,212552347&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=500&#x26;h=504">
<p>本文是在公司内成立学习小组的动员信，原文如下：</p>
<p>同志们好：
最近我有一些思考，想和大家一起探讨一下。
不管我们是热爱软件开发，还是只为养家糊口。我们都有共同的目标，那就是拿更高的工资，得到更高的职位，甚至创业当老板，开名车，住别墅，打飞机到伦敦喂鸽子。
然而，我们扪心自问一下，我们真的是合格的工程师吗？</p>
<ul>
<li>算法和数据结构精通了吗？</li>
<li>大数据量，高并发处理过吗？</li>
<li>Linux熟悉了吗？</li>
<li>Oracle优化过吗？</li>
<li>面向对象分析与设计都掌握了吗？</li>
<li>设计模式都看过吗？</li>
<li>有关注最新的技术趋势吗？（Android，iOS，NoSQL，DSL，Hadoop，HTML5＆CSS3，Ruby…）</li>
<li>熟悉敏捷开发方法吗？（TDD，结对编程，CI…）</li>
</ul>
<p>我想大多数人和我一样，并不能很有底气的回答这些问题吧，然而那些该死的老板，就要我们会这些东西，谁让我们是苦逼的程序猿呢？程序员不学习就是死路一条啊，会被更年轻更便宜的小猿取代啊，工作不是熬年头，只有不断提高我们的核心竞争力，增加取代成本，才能坐得稳，才有可能寻求发展。可能你会说，再干两年老子就转型做管理，不行老子就创业自己当老板，OK，但你真的准备好了吗？</p>
<ul>
<li>你懂项目管理的知识吗？</li>
<li>你熟悉企业架构和业务吗？</li>
<li>你知道怎么跟客户沟通吗？</li>
<li>你知道怎么培训用户吗？</li>
<li>你知道手下的家伙都在想什么吗？</li>
<li>你知道怎么激励你的团队吗？</li>
<li>你知道如何成立公司吗？</li>
<li>你知道怎么招揽人才吗？</li>
<li>你知道怎么和投资人打交道吗？</li>
</ul>
<p>我相信很多人都有这样的经历，每到想换工作时就会觉得自己哪哪都不行，恨为什么平时不努力。可一旦在新的工作岗位上稳定下来，却又安于现状，坐以待毙。我们不是公务员，我们是苦逼的北漂族，不论你想生根发芽，还是衣锦还乡，都必须为以后做打算。</p>
<p>我今天想和大家探讨一下成立一个兴趣小组的可能性，小组做什么呢？就是分享，知识分享。其实我们平时一起说说笑笑也是在分享，但多数是无营养的内容，对听者无甚益处，说者也没有什么帮助。看完一本书，一篇文章，你只是知道的东西多了一点，并没有增加你的理解能力，我们只有将知识进行总结，提炼，纳入自己的知识框架，和已有的知识关联起来，才是真正的掌握了知识，才能在需要用到的时候信手拈来。</p>
<p>那我所说的分享有什么好处呢？我总结一下，有以下几点：</p>
<h3 id="一促进思考">一、促进思考</h3>
<p>在这个信息爆炸的时代，我们更多时候在接收信息，但我们往往缺少思考。要想建立起影响立，我们需要独立思考的能力，要能形成自己的观点和见解；</p>
<h3 id="二持续学习">二、持续学习</h3>
<p>在IT这个圈子里，真的是“逆水行舟，不进则退”，我们只有不断更新自己的知识库，才能赶上行业的发展变化，才不至于被淘汰；</p>
<h3 id="三演讲口才">三、演讲口才</h3>
<p>不管你的目标是高级工程师，架构师，还是项目经理，老板，口才都是必须的。同样，只有能把自己的观点清楚地表达出来，才能建立影响力；</p>
<h3 id="四扩大知识面">四、扩大知识面</h3>
<p>三人行必有我师，IT行业知识更新很快，不开放学习的人必然被淘汰。
可能大家会觉得自己的技术深度不够，没有信心，也觉得自己不会演讲，怕被笑话。但既然我们有诸多的不足，为什么还要对它视而不见呢？逃避不是办法，我们的敌人就是自己，战胜了自己，你也就战胜了别人。别人不会的你会了，别人害怕的你不怕了，那我们的竞争力是不是更高了呢？我们同病相怜，我们是亲密的战友，既然大家抱着同样的目的来做这件事，在你遇到困难的时候，大家都会鼓励你，帮助你，没有人会笑话你。</p>
<p>那么，我们分享什么内容呢？大家成长经历，兴趣爱好各不相同，必然有自己擅长的领域，所以我们不限话题，畅所欲言，天文地理大象蚂蚁四书五经蜡笔小新，会什么就讲什么。比如三国杀，比如DOTA，比如找对象的技巧，比如我可以给大家分享Android开发，小明可以分享iOS的学习成果。只要我们的topic有人愿意听，那就是有用的，就有分享的价值。</p>
<p>怎么样？大家看看是否可行，是否有兴趣？最后我想借用某牛人的一句话：</p>
<blockquote>
<p>别人比你牛并不可怕，可怕的是比你牛的人还比你更努力。</p>
</blockquote>]]></description><pubDate>Sat, 21 Jan 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[从成都搬到大理的首要原因：孩子教育]]></title><link>https://life.seabornlee.cn/posts/%E4%BB%8E%E6%88%90%E9%83%BD%E6%90%AC%E5%88%B0%E5%A4%A7%E7%90%86%E7%9A%84%E9%A6%96%E8%A6%81%E5%8E%9F%E5%9B%A0%EF%BC%9A%E5%AD%A9%E5%AD%90%E6%95%99%E8%82%B2/</link><guid>https://life.seabornlee.cn/posts/%E4%BB%8E%E6%88%90%E9%83%BD%E6%90%AC%E5%88%B0%E5%A4%A7%E7%90%86%E7%9A%84%E9%A6%96%E8%A6%81%E5%8E%9F%E5%9B%A0%EF%BC%9A%E5%AD%A9%E5%AD%90%E6%95%99%E8%82%B2/</guid><description><![CDATA[<img src="/_image/2023-10-29/1.jpg">
<p>本文已发布到公众号，阅读体验更好。
<a href="https://mp.weixin.qq.com/s/pp-hbd9m8JJ3UyUqLLfrZw">点此前往</a></p>
<p>来大理三个月了，很多朋友在微信上问为什么来大理，孩子教育怎么办？
实际上，来大理的主要原因就是孩子教育。</p>
<p>之前在成都家门口就是一所小学和中学，两公里内也有一所蒙特梭利幼儿园。刚开始我和老婆都觉得很好。</p>
<p>哥哥们上一年级的时候正好怀着妹妹，对教育的关注少一些，觉得都挺好。
二年级突然感觉作业量大了很多，常常为了完成阅读，手抄报等任务鸡飞狗跳。
而且为了安全，课间不让去操场活动，只能待在教室里，而这个年龄段的孩子正正需要玩耍和锻炼身体。</p>
<p>妹妹读的蒙特梭利硬件和理念很好，但每天早上总要磨蹭很久才能送出去。
加之家长群里总之弥漫着焦虑和卷的气息，让我觉得不是一路人。
换个环境成了迫在眉睫的事情。</p>
<p>最先知道的是一土，一土在北京和广州有学校，但是我们在北京和深圳都待过，不打算再回一线城市。</p>
<p>然后了解到海南海口的 iSchool，这所学校是软件园为了吸引高端人才而投资建设的，请来了北京十一学校早期参与教育改革试点的秦建云担任校长，高薪高福利聘请名校毕业的老师，学校硬件设施遥遥领先，有各种兴趣社团，比如攀岩，射箭等。但是这所学校的面试也不容易，一个孩子一年只有一次机会，除了基本的语言和逻辑能力，还要考察倾听能力，解决困难的勇气等偏领导力的素养。主打一个精英教育，而且因为政府和软件园补贴，一年学费大概 8 万。</p>
<p>还了解到巴厘岛的为数字游民孩子建立的 Empathy School 和老牌的 Green School。相比于动辄二三十万一年的私立学校和国际学校，得益于汇率差，性价比很高，基本在 5 万左右一年。
因为巴厘岛凶案，加上印尼曾发生排华事件，感到很没有安全感，遂暂时放弃。</p>
<p>后来又了解到四川汉源的问渠社，进入兴趣群一段时间，觉得创办人太愤青了，经常对时事发表观点，我不希望孩子过早被某种价值观引导。于是退群了，最近得知问渠社也在大理开了学校。</p>
<p>继续寻觅，得知老家遵义的另一个县，吉他之乡正安县居然有一所全国闻名的公办创新学校，是由上海田字格公益机构主办，早期教师主要是新东方支教老师，主打乡土人文教育，结合乡土环境开发课程，让农村孩子了解和热爱当地环境和文化。</p>
<img src="/_image/2023-10-29/2.jpg">
我们也有幸去试读了三天，发现还有几位从上海来就读的。孩子们也蛮喜欢学校的课程，槽点是厕所味道太大和饭前要念诵感恩文。
<img src="/_image/2023-10-29/3.jpg">
这所学校在山上，风景秀丽的同时，离县城开车要 20 分钟左右，试读那两天赶上暴雨，我们都很担心发生滑坡什么的 😱
<p>而且学校附近的路边坟头很多，常常一转弯就对着一个坟头，感觉有冒犯到 😷。</p>
<p>不过田字格学校在风景秀丽的万峰林新建了一所学校，硬件和交通都非常好。遗憾的是暂时只对本地学生开放，因为他们探索的就是让农村孩子在家门口享受到有特色的优质教育。</p>
<p>读过创办人肖诗坚女士的著作，了解创办田字格公益机构和的初心和兴隆田小的坎坷，万分钦佩，也开始通过月捐的方式参与到这份有意义的事业中。
<img src="/_image/2023-10-29/4.jpg"></p>
<p>最早是通过灰爸的视频，找到了我最理想的教育环境。
然后报了猫猫果的夏令营，孩子很喜欢，我们就打算来大理读猫猫果。来了大理后，群友郝哥非常热情地邀请去他家里做客，给我分享了他带着两个孩子全国探索创新教育的历程。才得知大理是中国创新教育最繁荣的地方，有几十家小微学校可供选择，自然教育，PBL 是标配。
得益于苍山洱海的自然条件，几乎所有学校都会每周或每两周有一整天的户外活动。</p>
<p>郝哥的两个孩子在蔬菜社区学校就读，我们也去申请试读了一个月，每两周去洱海边骑行几十公里或者苍山溯溪。上学期期末游学三天，第二天徒步 25 公里。两个儿子都坚定地要留在这里，不愿意回到成都的学校了。
蔬菜社区的创办人菜妈是学霸，同时又热爱体育，符合我身体锻炼可以提高学习效率的理念。</p>
<p>妹妹也在菜地读了一周，因为菜地没有午睡的习惯，妹妹每天放学都在路上就昏睡过去，晚上就迟迟不愿上床，于是我们又找到了华德福幼儿园，目前一个多月过去了，妹妹也每天都很开心地去幼儿园，每周三苍山或洱海徒步，感觉运动能力强了很多。</p>
<img src="/_image/2023-10-29/5.jpg">
<p>每一所学校的理念都因创办人对教育的理解不同而不同，有的学校三年级以前不太注重文化课的学习，更在意孩子的自驱力，好奇心，对情绪的接纳，满足玩耍的天性。</p>
<p>有的学校，致力于培养世界公民，早早地把第二外语都给你安排上。
多元化的教育环境，满足不同家长的期待。
关于各种学校的特色和探校记录，可以看这个公众号：阿小笨大步走。
最近有一位旅居大理的妈妈创办了一个微信小程序：良时好在，方便想要来短期游学的家长。</p>
<p>除了各种特色学校，还有一部分家长选择在家上学 Home Schooling，抱团取暖，形成了各种各样的学习社区。
也总有朋友问，孩子教育后面怎么规划的，其实没有规划。大理最丰富的是幼儿园和小学，相信孩子们可以在这里度过一个美好的童年。</p>
<p>至于初中，就算回到公立体系，相信他们从身体和头脑上都做好了充足的准备。不过我们多半要么出国，要么继续在大理。大理有一所我非常喜欢的学校叫加贝村，采用候鸟式的学习模式，比如学习儒家文化就跑到孔子老家去呆一段时间。除此以外，经常带着孩子们上山下海，滑翔伞，探洞，登雪山，徒步。像极了一个青少年版的商学院。唯一的缺点就是贵，目前一年好像大概要三十万的样子。加贝村的孩子基本都是找到热情，培养特长，申请国外的学校，妥妥的精英教育。</p>
<p>以上是我们家的教育探索之路，如果对你有所帮助，万分荣幸 ❤️</p>]]></description><pubDate>Sun, 29 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[从普通人到培训师的八本书]]></title><link>https://life.seabornlee.cn/posts/%E4%BB%8E%E6%99%AE%E9%80%9A%E4%BA%BA%E5%88%B0%E5%9F%B9%E8%AE%AD%E5%B8%88%E7%9A%84%E5%85%AB%E6%9C%AC%E4%B9%A6/</link><guid>https://life.seabornlee.cn/posts/%E4%BB%8E%E6%99%AE%E9%80%9A%E4%BA%BA%E5%88%B0%E5%9F%B9%E8%AE%AD%E5%B8%88%E7%9A%84%E5%85%AB%E6%9C%AC%E4%B9%A6/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-15-48-00.png">
<p>培训是最值得投资的技能，掌握培训技术后，你可以把所有的特长都变成课程，帮助别人成长的同时还能获取不错的财务回报。
我并不是说每个人都应该成为整天飞来飞去的职业培训师。在职场中，很多做得好的人教不好，教得好的人做不好，如果你有一定的专业技能，那么学习一些培训技术，对个人的职业发展是很有帮助的。你将会比其他领导更擅长发展他人，影响他人。
最近在 ThoughtWorks 全国六个办公室轮番开启 TTT 课程，激发了许多同事对于培训的热情，为了帮助大家更快地走入培训的世界，推荐几本对我帮助很大，又很容易读的书。</p>
<p><img src="/_image/2018-05-25-10-45-49.jpg" alt=""></p>
<h2 id="演讲达人成长记">《演讲达人成长记》</h2>
<p>演而优则培，很多人都是先做演讲开始获得正向反馈和信心，才开始走上培训道路的。可以说演讲是培训的基础，在演讲中我们会学会处理紧张情绪，吸引听众注意力，运用肢体语言等技巧。
在 2013 有幸参与过这本书作者龙兄的演讲培训，立即被其人格魅力所吸引，马上找来这本书一口气读完，畅快淋漓。这本小说讲述一名不善言辞的小职员通过加入 ToastMasters 国际演讲俱乐部练习演讲，升职加薪，迎娶白富美，走上人生巅峰的故事。后来我也在深圳加入了 SZTM 俱乐部，头马大家庭给我的感受非常好，在一次次例会中，演讲和主持的能力也得到了极大的提升，为后面转型培训奠定了基础。</p>
<p><img src="/_image/2018-05-25-10-48-42.jpg" alt=""></p>
<h2 id="培训师">《培训师》</h2>
<p>这本书也是一本小说，与前一本类似，书中有三条线，明线是一名项目经理转型内训师，最终走上独立培训师道路的经历；暗线是书中穿插大量的培训相关知识；辅线是主人公与几位女主的爱恨情仇。这本书给我的最大收获是三条线的创作方式，从此我在文章、演讲或培训中都会思考能不能设置三条线，让受众有更立体的体验。
后来才知道这本书的作者是微博红人「琢磨先生」，还是知名的脱口秀玩家和培训师，真名郭城，他的其他书也很棒。</p>
<p><img src="/_image/2018-05-25-10-49-31.jpg" alt=""></p>
<h2 id="学习的本质">《学习的本质》</h2>
<p>培训师应具备一个心态，一种帮助学员学习的心态。所以在研究怎么教之前，应该先研究人是怎么学习的。这本书可以帮助你建立起系统的学习观。学习的三个根本要素：动机，内容和交互。
在培训中，用什么语言和活动激发学员的学习动机，让学员自动自发地参与而不是呆若木鸡地被灌输。如何了解学员对于学习主题的掌握水平，选择合适的学习内容，合理地编排学习材料的顺序，优化各个模块之间的逻辑。在学习过程中，如何持续抓住学员的注意力，通过眼神沟通，获取反馈等。有了这样一个框架后，你会发现所有培训中的事情都可以放到这三个方面。这边书里还提到了学习的几种障碍，也是我们在教学设计时应避免的。</p>
<p><img src="/_image/2018-05-25-10-50-26.jpg" alt=""></p>
<h2 id="刻意练习">《刻意练习》</h2>
<p>这本书告诉我们要把一项技能掌握到很高的水平，需要大量的刻意练习，刻意练习是将目标进行分解，通过大量重复且专注的练习，在练习后还要得到即时的反馈，才能算是有效的练习。培训师要掌握很多技能，开场提问互动，回答问题，扭转异议，讲解，演示，引导，点评，包括板书和视角引导，都需要大量的刻意练习。仅仅知道是不够的，要成为专业的培训师，必须把这些技能练习到毫不费力的地步。</p>
<blockquote>
<p>普通人练习到做对为止，专家练习到不会做错为止。</p>
</blockquote>
<p><img src="/_image/2018-05-25-10-51-43.jpg" alt=""></p>
<h2 id="关键-20-小时---快速学会任何技能">《关键 20 小时 - 快速学会任何技能》</h2>
<p>对培训师来说，掌握一些小众的技能在培训中会很有用，我在培训中常常用杂耍球，BBox，极限健身等来获取学员的注意力，调节学习气氛。
很多人都被「一万小时天才理论」给吓着了，天哪，要成为专家，必须要经过一万小时的练习才行啊。然而现实中，我们并不需要成为每个领域的专家，大部分的技能应该当作辅助技能，差不多就行了。
而要达到差不多的水平，所需的时间比你想象的要短得多。在这本书里，作者用学习新的键盘布局，瑜伽，Ukulele，帆船和网页编程演示了 20 小时的刻意练习能达到的效果。震撼过后，细细想来也确实如此，你看看游泳班，羽毛球班，驾校等是不是都学习不到 20 小时，就算掌握了这项技能了，20 小时专业学习过后，甚至比一些玩过几年的人玩的更好。但需要注意的是，这 20 小时不是随意玩玩的，必须是不断反思、改进、不断提高练习效率的 20 小时。
<img src="/_image/2018-05-25-10-52-53.jpg" alt=""></p>
<h2 id="4c-法颠覆培训课堂65-种反转培训策略">《4C 法颠覆培训课堂：65 种反转培训策略》</h2>
<p>在做课程开发时，我们很容易就能罗列出要讲的知识点，但用什么样的教学活动让学员掌握这些知识点，一直没有很好的办法，如果给你推荐《学习心理学》，《教学设计原理》，大多数人会立即摔门而出。有了这本书，课堂立即变得生机勃勃了呢。
4C 是 Connection - Concept - Concrete Practice - Conclusion 的缩写，是符合认知心理学的一个教学闭环。首先要调取与主题有关的经验，与学习主题建立关联，然后引入新的概念，通过实用练习体验新的概念和技能，最后回顾总结所学。
在这本书里，共罗列了 65 种教学活动，分别对应「关联」、「概念」、「实用练习」和「总结」四个环节，在设计课程的时候，只需要从各个环节挑出一个活动，就完成了一堂课的设计。课程设计，从未如此轻松。</p>
<p><img src="/_image/2018-05-25-10-53-27.jpg" alt=""></p>
<h2 id="习惯的力量">《习惯的力量》</h2>
<p>卓越的培训师要幽默，充满激情，得体，自信。我一直是个很内向的人，但为了培训效果，我逼着自己在讲台上要变成阳光热情的人。去年有位学员在培训结束聚餐时对我说：我怎么感觉你和白天不是同一个人，白天的你热情活泼，现在的你如此安静。当时另一位培训师说，小波老师很专业。
现在我发现，一名卓越的培训师应该是表里如一的。因为学员不会记住你说了什么，而会记住你做了什么。在不同的场合表现大相径庭可能会让学员的认知产生偏差。所以我开始要求自己人前人后表里如一，我所教的东西，都应该是我能做到的，并且要培养成习惯，在什么场合都能保证行为的高度一致性。
这本书讲述了习惯的原理，包括「触发器」、「惯常行为」和「奖励」。懂得习惯的原理，对于养成好习惯，纠正坏习惯都有很好的指导作用。</p>
<p><img src="/_image/2018-05-25-10-54-09.jpg" alt=""> ##《平衡的智慧》
培训师常年飞来飞去，远离家人，会面临很多的诱惑和挑战。这本书是英特尔的 CTO 写的，分享了他如何在工作、家庭和信仰之间取得平衡的技巧。通过阅读这本书，我开始重新思考我的优先顺序，可视化自己的原则，依据原则行事，省却了很多纠结。</p>
<p>我在去年的一次公开课上被一位学员给了一个非常低的评价，大概意思是说，小波老师这样的口才，就别讲课了，顶多做个班主任。
当时我表面上镇定，其实内心受到了一万点伤害，郁闷了好一阵子，甚至怀疑自己是否真的适合做培训师。想起帮我点燃蜡烛的 James 老师，想起「身体力行地影响他人做出积极性的改变」，翻看之前学员给我的正向反馈，我就又满血复活。反思过后，我在后续的培训中努力记住每一位学员的名字，加强与学员的连接，关心每一位学员的状态。可能我的口才还是那样，但课堂氛围和学员的学习体验已经不可同日而语了。
我想说的是，没有什么事情像表面上看起来那么轻松，每个人都会经历挫败，希望你不要因此而气馁。
<strong>不忘初心，砥砺前行！</strong></p>]]></description><pubDate>Fri, 25 May 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[企业为什么需要一支技术教练团队]]></title><link>https://life.seabornlee.cn/posts/%E4%BC%81%E4%B8%9A%E4%B8%BA%E4%BB%80%E4%B9%88%E9%9C%80%E8%A6%81%E4%B8%80%E6%94%AF%E6%8A%80%E6%9C%AF%E6%95%99%E7%BB%83%E5%9B%A2%E9%98%9F/</link><guid>https://life.seabornlee.cn/posts/%E4%BC%81%E4%B8%9A%E4%B8%BA%E4%BB%80%E4%B9%88%E9%9C%80%E8%A6%81%E4%B8%80%E6%94%AF%E6%8A%80%E6%9C%AF%E6%95%99%E7%BB%83%E5%9B%A2%E9%98%9F/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-15-44-59.png">
<p>企业会想要建设一支内部技术教练团队，通常是为了满足数字化转型的需要。
数字化转型中，持续交付的能力是核心能力。要实现持续交付，需要 CI/CD 流水线，微服务架构，容器化等新的技能。其次必须把质量工作前移，从检测变成预防，让开发人员对质量负责。传统的开发负责功能开发，测试人员负责质量保障的模式，几个弊端：</p>
<ol>
<li>发现问题相对较晚，修复成本更高，还有开发人员与测试人员之间的沟通成本和开发人员在开发新功能和修复缺陷之间的多任务切换导致的效率损失。</li>
<li>测试周期长，不能频繁执行回归测试，不能随时有信心重构代码，以保持灵活性。</li>
<li>测试团队膨胀，导致沟通管理成本变高。</li>
</ol>
<p>相对而言，CI/CD，微服务，容器化属于基础设施，只需要部分人掌握即可，业务开发工程师只要学会使用，成本不高。但业务开发工程师必须学会的是编写测试代码和重构代码的技术。
基于行业普遍缺乏基本功的现实，需要培养的人数众多，通过引入外部技术教练可以缩短培养周期，更快看到效果，但外部技术教练本身也很稀缺，在数字化转型的大潮中，价格也水涨船高，并且因为市场需求大，导致优秀的教练难以长期高投入度地服务于同一家企业。
另外，由于行业特殊性，尤其金融行业的业务复杂度较高，外部教练也需要花时间熟悉业务才能指导业务开发，否则只能隔靴搔痒。</p>
<p>除了支持数字化转型，内部教练队伍还有两个好处。</p>
<p><strong>1、降低选人门槛，缓解招聘压力</strong><br>
毕业生招聘市场压力大，优质学生被大厂高年薪争夺。
就算招进来了，技术人才培养一直也是 HR 的难题。基于内部教练团队发展出技术人才的胜任力模型，课程体系和导师池，建立师傅带徒弟的培养模式，可以有效降低人才招聘的门槛，加速技术人员的成长。
另外，有内部教练团队，本身也能体现企业对技术人才的重视，对于雇主品牌也有加分效果。</p>
<p><strong>2、经验沉淀</strong><br>
企业内部的资深工程师，要想往上发展，往往只能转架构，技术管理，业务管理。多年积累的丰富经验，不能得到很好的传承，并且上层的岗位数量也有限，导致资深工程师不得不另寻良木，企业流失了一名经验丰富的人才。
而有了教练团队，对于资深人才，也是另一条上升通道。
那些资深开发人员，很多对业务和管理都不感兴趣，但对技术充满热情，也热爱培养他人，这时就有了施展的舞台，也能够获得价值上的认可。对于企业，就留住这些经验丰富的资深人才，并且将他们的经验在一线传承下来。</p>]]></description><pubDate>Sat, 07 Mar 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[你不是意志力差，只是不懂习惯的力量]]></title><link>https://life.seabornlee.cn/posts/%E4%BD%A0%E4%B8%8D%E6%98%AF%E6%84%8F%E5%BF%97%E5%8A%9B%E5%B7%AE%EF%BC%8C%E5%8F%AA%E6%98%AF%E4%B8%8D%E6%87%82%E4%B9%A0%E6%83%AF%E7%9A%84%E5%8A%9B%E9%87%8F/</link><guid>https://life.seabornlee.cn/posts/%E4%BD%A0%E4%B8%8D%E6%98%AF%E6%84%8F%E5%BF%97%E5%8A%9B%E5%B7%AE%EF%BC%8C%E5%8F%AA%E6%98%AF%E4%B8%8D%E6%87%82%E4%B9%A0%E6%83%AF%E7%9A%84%E5%8A%9B%E9%87%8F/</guid><description><![CDATA[<img src="/_image/2017-02-18-22-18-09.jpg">
<p>我想要健康的身体，和谐的家庭，充满激情的工作，有效的社交。每天早睡早起，读书，写作，锻炼，不喝酒，不喝含糖饮料，不吃夜宵，掌握多种技能...</p>
<p>我曾坚持半年每天 5 点起床，现在回想，那是我人生中最低效的半年，因为我无法在午夜之前入睡，每天睡眠不足 5 小时，整天都浑浑噩噩。
我曾因为肾结石痛得滚来滚去，辗转难眠，发下毒誓一定要坚持锻炼，办了健身卡，去健身房的次数却一只手都数的过来。</p>
<p>我一度责怪自己意志力太差，连自己都控制不了。
直到去年，我读了《习惯的力量》才知道，借助科学的方法，并不需要很强的意志，就可以改变行为习惯。
开始培养习惯半年后，我实现了最初的那些目标。养成了一些好的习惯，也改掉了一些不好的。
<img src="/_image/2017-02-18-21-03-03.jpg" alt=""></p>
<hr>
<p>有人说，一个人每天的行为，有 40% 是出于习惯，而不是思考的结果。
也有人说，怎么可能，应该是 90%。</p>
<p>你可能会有点吃惊，我第一次看到的时候，嘴巴张得比你还大。
后来我回顾一下：</p>
<blockquote>
<p>闹钟一响，习惯性地按下「稍后再响」；睁开眼睛，习惯性地拿起手机刷朋友圈；开始刷牙，习惯性地掏出手机看看微信群；坐上马桶，习惯性地打开新闻 App；出门，习惯性地走每天走的那条路；到公司，习惯性地检查邮件；开会，习惯性地迟到几分钟；午饭，习惯性地去常去的饭馆儿；饭后，习惯性地小睡一会儿；下午，习惯性地喝一杯咖啡；去菜市场，习惯性地去常去的摊子，买那几样常吃的菜；踏进家门，习惯性地换拖鞋；吃完饭，习惯性地开电视，拿零食，躺进沙发；广告时间，习惯性地拿起手机...</p>
</blockquote>
<p>可不就是这样吗，我们一天的行为，大部分都不是理性思考之后做出的选择。
为什么呢？后来我在脑科学的书上找到了答案，因为<strong>做选择非常消耗精力</strong>，大脑会尽量避免做选择，而且新的选择还会带来风险。
不管我们愿不愿意，我们的大脑会把重复的简单行为变成习惯，交给下层脑去处理，从而把精力放在更复杂的事情上。
你想想，如果每次吃饭，都像第一次拿筷子那样需要深思熟虑，是多么的可怕。
如果我们不去注意，就会不小心养成坏习惯，不去设计，也很难养成好习惯。</p>
<h2 id="习惯的原理">习惯的原理</h2>
<p><img src="/_image/20170218-1.png" alt=""></p>
<p>习惯由三部分组成：「提示」、「惯常行为」和「奖励」。
举个例子，早上闹铃一响，习惯性地按「稍后再响」。闹铃响就是<strong>提示</strong>，按稍后再响就是<strong>惯常行为</strong>，多睡 10 分钟的满足感就是<strong>奖励</strong>。</p>
<p><strong>提示（Cue）</strong><br>
提示通常有以下几类：</p>
<ul>
<li>时间：一到周末就赖床；一到半夜就吃夜宵。</li>
<li>地点：一到公司就看邮件；一到家就换衣服。</li>
<li>情绪：一生气就买买买；一开心，还是买买买。</li>
<li>事件：一感受到手机震动，就掏出手机。</li>
</ul>
<p><strong>惯常行为（Routine）</strong><br>
惯常行为是身体自动完成的，几乎不需要思考的，所以我们可以一边刷牙一边看手机，一边开车一边聊天。
你可能也会走在路上，完全回忆不起出门时有没有锁门，因为这个动作也是自发的，完全没有经过思考。</p>
<p><strong>奖励（Reward）</strong><br>
奖励包括内部的和外部的，内部的如成就感、收获感、满足感、安全感等，外部的如朋友的点赞，礼物，看一部电影，一次旅行等。</p>
<h2 id="怎么设计习惯">怎么设计习惯？</h2>
<p>首先选定一个有益的惯常行为，然后想想它能带来什么奖励，这个奖励要足以让你产生动机，最后设计一个稳定的提示。
然后不断地重复，重复，重复。</p>
<h3 id="标准化惯常行为">标准化惯常行为</h3>
<p>惯常行为一定要<strong>标准化</strong>，比如跑步，我会前一天晚上把衣服，裤子，袜子，鞋，腰包，导汗带都准备好，放在固定的地方，每天跑固定的路线。
每次变化越少，身体就越容易记住这个惯常行为。</p>
<h3 id="从外到内的奖励">从外到内的奖励</h3>
<p>如果一个惯常行为没有奖励，我们就没有足够的动机去执行。刚开始可能外部奖励更有效，但一定要转变为内部奖励。
很多人坚持做一件事情很久，却无法养成习惯，就是因为没有把「坚持」变成「享受」。
我原来看到冬泳的人，会说：这么冷还在坚持锻炼，真有毅力。现在我才知道那根本不需要毅力，人家在做自己喜欢的事情，很享受呢。
<strong>「坚持」的背后往往透露着无奈</strong>。</p>
<blockquote>
<p>再坚持一下，救护车马上就到了。</p>
</blockquote>
<p>刚开始培养一个习惯时，可能不会有直接的内部奖励，甚至还可能出现「惩罚」。
比如培养锻炼的习惯时，奖励可能是健康的身体，但身体不会马上就有明显的变化，运动完还多半会出现肌肉酸痛的惩罚。
这时就需要外部奖励加上一点点的「坚持」，比如跑完 5km 就奖励自己看一部电影。<br>
但是，外部奖励的效果是不长久的，惯常行为本身应该带给我们内部奖励。
我起初认为跑步的奖励是健康的身体，后来发现更棒的是，跑步时大脑会进入发散模式，变得非常活跃，总能迸发出灵感（感兴趣可以读《学习之道》）。
如果跑步一个月，身体不仅没有变得更健康，反而因为吸了更多的 PM 2.5 变得更差，跑步这个习惯就没有必要了。</p>
<h3 id="稳定的提示">稳定的提示</h3>
<p>去年出差时，我每天打车上班，一上车就开始写日记，下车刚好写完。我觉得这个习惯挺不错，结果到了周末，不用上班，我的提示就没有出现，习惯也就崩塌了。</p>
<p>以上就是习惯的原理，懂得这个原理之后，并不需要多强大的意志力，就可以养成好的习惯。
关于有哪些习惯值得培养，以及如何改掉不好的习惯，近期会陆续分享，请期待~</p>]]></description><pubDate>Sat, 18 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[你看到的就是你想看到的]]></title><link>https://life.seabornlee.cn/posts/%E4%BD%A0%E7%9C%8B%E5%88%B0%E7%9A%84%E5%B0%B1%E6%98%AF%E4%BD%A0%E6%83%B3%E7%9C%8B%E5%88%B0%E7%9A%84/</link><guid>https://life.seabornlee.cn/posts/%E4%BD%A0%E7%9C%8B%E5%88%B0%E7%9A%84%E5%B0%B1%E6%98%AF%E4%BD%A0%E6%83%B3%E7%9C%8B%E5%88%B0%E7%9A%84/</guid><description><![CDATA[<p>4月16日，我在上海参加一个培训。下午培训结束，准备离开时，我实然发现我的钱包不见了。通常我的钱包要么在身上，要么在背包里。但就是遍寻不着。我并不是一个丢三落四的人，我开始回忆，最近一次使用钱包是吃早餐时付钱，之后就没再使用过。我相信有很大可能是落在吃早餐的面馆了。</p>
<p>于是我匆匆来到面馆收银台前。<br>
我：“您好，我早上在这里吃面，你们有看到我的钱包落在桌上吗？”<br>
老板娘：“你什么时候吃的啊，我一点印象都没有。是什么样的钱包？”<br>
我：“早上8点半左右，我吃的麻辣鸡米线啊，就是你帮我点的。”<br>
“一个这么长的钱包，我有可能放桌上了。”我一边比划一边说。<br>
我心里想着，昨天晚上也是你帮我点的，还说一点印象也没有，很可疑啊。</p>
<p>“我们真的没有看到什么钱包，要是看到，肯定会帮你收好的，之前也有客人丢过衣服什么的，我们都给收好了。”一个服务员附和道。<br>
我越看越觉得有问题。</p>
<p>“早上也没几个人啊，我拖着箱子，麻辣鸡米线，16块，你真的没印象吗？”
老板娘好像努力地回忆了一下，说道：“哦，好像想起来。对，我帮你点的米线，不过真的没有看到钱包。”<br>
我更加怀疑了，加重了语气问道：“你们这里有监控吗？”<br>
“我们没有监控的。”老板娘和服务员异口同声地答道。</p>
<p>我已经极度怀疑我的钱包真的丢在这里了，但没有监控也没有办法。<br>
“那我再找一下吧。”我退到一边，不抱任何希望地在书包里随意翻着，忽然在一个不常用的小内包里，发现了我的钱包。<br>
我不知道该哭还是该笑，只是为自己刚刚内心的想法感到羞愧万分。我甚至因为怕她们骂我是傻叉，没有勇气告诉她们钱包找着了。只能拖着箱子灰溜溜地离开了，嘴里说着我再去别的地方找找吧。</p>
<p><strong>事实，推测和假设</strong><br>
现在反思这件事时，让我想起了上次NLP沙龙里学习到的“事实，推测和假设”。</p>
<ul>
<li>事实：我找不到我的钱包。</li>
<li>推测：我的钱包掉在面馆里了。</li>
<li>假设：她们不想把钱包还给我。</li>
</ul>
<p>当脑海中出现各种信息时，一定要停下来思考一下，哪些是事实，哪些是推测，哪些是你的假设。<br>
这件事也印证了  <strong>“你看到的世界就是你想看到的世界”</strong>  这一观点。</p>
<p>凡事都往积极的方向去想，你看到的世界就会更美好。</p>]]></description><pubDate>Sun, 19 Apr 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[修辞学]]></title><link>https://life.seabornlee.cn/posts/%E4%BF%AE%E8%BE%9E%E5%AD%A6/</link><guid>https://life.seabornlee.cn/posts/%E4%BF%AE%E8%BE%9E%E5%AD%A6/</guid><description><![CDATA[<img src="https://static.openmindclub.com/FjQCEIH7X_DMAQJ2rJDR2C6lRU9O">
<ul>
<li>孔子 - 言辞之本：情真意切，增进美德，积蓄功业</li>
<li>《文则》</li>
<li>《修辞格》</li>
<li>《修辞学发凡》</li>
<li>《汉语修辞学》</li>
<li>三条路径：
<ul>
<li>中国：修辞以立其诚</li>
<li>西方：修辞以立其真</li>
<li>日本：修辞以立其感
<ul>
<li>直喻</li>
<li>隐喻</li>
<li>换喻</li>
<li>提喻</li>
<li>夸张</li>
<li>列叙</li>
<li>缓叙</li>
</ul>
</li>
</ul>
</li>
<li>修辞三书
<ul>
<li>论语</li>
<li>摩西五经</li>
<li>共产党宣言</li>
</ul>
</li>
<li>修辞五艺
<ul>
<li>觅材取材</li>
<li>布局谋篇</li>
<li>文体风格</li>
<li>记忆</li>
<li>呈现</li>
</ul>
</li>
<li>修辞感觉
<ul>
<li>比喻</li>
<li>隐喻/换喻/提喻</li>
<li>列叙</li>
<li>夸张</li>
</ul>
</li>
<li>修辞认识</li>
</ul>
<h2 id="练习">练习</h2>
<ul>
<li>风像镰刀，雨像炮弹，停在太阳下的车，像便宜坊的焖炉</li>
<li>小蚂蚁像玩具，摔不坏</li>
<li>苍蝇像侦察机，两个大眼睛像是摄像头</li>
</ul>]]></description><pubDate>Tue, 06 Sep 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[做了这几件事，我不再感到焦虑了]]></title><link>https://life.seabornlee.cn/posts/%E5%81%9A%E4%BA%86%E8%BF%99%E5%87%A0%E4%BB%B6%E4%BA%8B%EF%BC%8C%E6%88%91%E4%B8%8D%E5%86%8D%E6%84%9F%E5%88%B0%E7%84%A6%E8%99%91%E4%BA%86/</link><guid>https://life.seabornlee.cn/posts/%E5%81%9A%E4%BA%86%E8%BF%99%E5%87%A0%E4%BB%B6%E4%BA%8B%EF%BC%8C%E6%88%91%E4%B8%8D%E5%86%8D%E6%84%9F%E5%88%B0%E7%84%A6%E8%99%91%E4%BA%86/</guid><description><![CDATA[<p>在读下面这段文字之前，请脑补 Rap 节奏，嗯嗯...哟...</p>
<blockquote>
<p>嗯嗯... 早上被闹钟吵醒，哟...
恋恋不舍地从床上爬起来，急匆匆地出门...哟...
嗯嗯... 工资涨不过房价，哟... 还听说... 哟... 人工智能会取代很多工种... 啊~~~
信息过载，各种 10w+ 文章... 哟... 不停消耗我，所剩无几的注意力... 哟...
嗯嗯... 每天晚上... 不甘心睡去，总想再干点儿啥... 哟...
却躺在床上，死死抱着个手机... 哟...</p>
</blockquote>
<p>这就是以前的我... 嗯...
现在的我早睡早起，生活规律... 哟</p>
<h2 id="找到自己的使命">找到自己的使命</h2>
<p>以前我制定年度目标时，哟... 音乐停！开始说正事儿了。
会从事业、家庭、社交、健康、贡献等多个方面去思考，什么都想做，就什么都做不好。</p>
<p><img src="/_image/2017-03-01-08-40-37.jpg" alt=""></p>
<p>后来，我慢慢地找到了自己的使命：</p>
<blockquote>
<p>成为专业培养者，灵活运用培训、咨询、教练、引导、辅导等技术，身体力行，影响他人做出积极的改变。</p>
</blockquote>
<p>有了这个使命，我就会思考我做的每一件事是否有助于达成它：</p>
<ul>
<li>参加培训师课程</li>
<li>学习咨询课程</li>
<li>教练技术练习</li>
<li>培养写作习惯</li>
<li>视觉引导技术</li>
<li>即兴幽默</li>
<li>组织社区活动</li>
</ul>
<p>那要如何找到自己的使命呢？说来话长，改天再分享吧。</p>
<h2 id="最重要的事只有一件">最重要的事只有一件</h2>
<p><img src="/_image/2017-03-01-08-44-27.jpg" alt="">
每年，每月，每周，每天，找到一件最重要的事，他是必须由我完成的，完成后我会觉得今天就没白过的，然后，Just do it！
去年的我，每天忙于应对各种事务，一天都很忙，加班到 22 点，还是觉得没有成就感，也不甘心一天就这样结束了，就迟迟不睡。
但经过白天的高强度工作，晚上其实精力已经很差了，再要工作或学习，效率都很低。
而且这个时候意志力也很薄弱，很容易拿起手机不停地刷朋友圈，等反应过来已经很晚了。</p>
<p>如果你找不出最重要的事情是什么，多半是因为没有找到自己的使命，还在「响应式」地工作，在帮别人完成使命。</p>
<h2 id="每天最重要的两小时">每天最重要的两小时</h2>
<p><img src="/_image/2017-03-01-08-45-34.jpg" alt=""></p>
<p>这本书告诉我们，每天只要有两个小时的高质量时间，就会有不错的产出。
重点是识别出，哪个时间对你而言是最重要的。
对我而言，只有早上这段时间是完全无打扰的，老婆孩子都在睡觉。那我就好好利用这段时间，读书，写作，练习。
找到这段时间后，要保护好它，所以如果你早上给我发微信，我不会回复，我的手机也处于勿扰模式。</p>
<p>通过不断练习，慢慢地我可以把 2 小时拓展到更长。
比如，我会把最重要的工作放到上午做，不查邮件，不在上午安排会议，也不回微信消息。
把最好的精力留给最重要的工作。</p>
<h2 id="可视化交付物">可视化交付物</h2>
<p>去年，我从同事身上学到一点，将所做的事情可视化出来，一方面可以得到更多的认可，更重要的是这样会有更大的成就感。
比如，做完一场培训，写一篇文章总结一下收获了哪些技巧，经验。
边读书，边做笔记，做思维导图。
说白了，就是要多输出，写作、演讲、聊天都是可视化手段。</p>
<h2 id="每周清空">每周清空</h2>
<p>原来我的收件箱里总有几百封未读邮件，微信群里总有未读消息，桌面上各种临时文件。
收藏一大堆文章，等有时间再看，却从来不去看，而是把时间花在收藏更多文章，这是人类本能的囤积欲。
以前我是一年做一次回顾，然后把微博，微信收藏的东西该读的读，该删的删。
现在，我每周都会做下面几件事：</p>
<ul>
<li>清空邮件收件箱</li>
<li>清空电脑桌面</li>
<li>清空电脑 Downloads 目录</li>
<li>清空微信收藏</li>
<li>审视微信订阅号，最多 5 个</li>
</ul>
<p>以上经验是我不断摸索不断调整才得到的，就算你很认同，也不要逼自己一次就做到全部。
那样只会让自己更加焦虑。</p>
<p>总结一下：
<strong>找到自己的使命，每天思考今天最重要的一件事是什么，把这件事放在最重要的时间去做，把成果可视化出来，每周清空各种信息。</strong></p>
<p>如果你能做到这几点，一定可以摆脱焦虑，然而 90% 的人看完这篇文章并不会采取行动，你会是那 10% 吗？</p>]]></description><pubDate>Wed, 01 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[健身的目的是让身体不要成为做事的阻碍]]></title><link>https://life.seabornlee.cn/posts/%E5%81%A5%E8%BA%AB%E7%9A%84%E7%9B%AE%E7%9A%84%E6%98%AF%E8%AE%A9%E8%BA%AB%E4%BD%93%E4%B8%8D%E8%A6%81%E6%88%90%E4%B8%BA%E5%81%9A%E4%BA%8B%E7%9A%84%E9%98%BB%E7%A2%8D/</link><guid>https://life.seabornlee.cn/posts/%E5%81%A5%E8%BA%AB%E7%9A%84%E7%9B%AE%E7%9A%84%E6%98%AF%E8%AE%A9%E8%BA%AB%E4%BD%93%E4%B8%8D%E8%A6%81%E6%88%90%E4%B8%BA%E5%81%9A%E4%BA%8B%E7%9A%84%E9%98%BB%E7%A2%8D/</guid><description><![CDATA[<img src="https://img0.baidu.com/it/u=3428303789,1842841758&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=751&#x26;h=500">
<p>有一张趣图：读书是为了能跟别人好好说话，健身是为了让别人能好好跟你说话。</p>
<p>以前，我健身想要强壮，热衷于「囚徒健身」，「极限健身」等。
后来，常常挂在嘴边的是：健身不就是为了吃好吃的吗？
带着这样的理念，体重也起起伏伏，低的时候 125 斤，高的时候 145 斤。
体重其实还好，最主要的是有一段时间，每天起床后都觉得肩背很难受，我怀疑是因为工作原因久坐，然后力量训练后也没有充分拉伸，导致肌肉僵硬，看了一些文章，买了泡沫滚筒，每天早上起来滚一滚，也没太好的效果。</p>
<p>直到今年三月， 看了一个视频，从此我的健身观念转变了，肩背也不再困扰我。
他说：</p>
<blockquote>
<p>锻炼身体，不是为了秀肌肉，而是要让身体不为成为你做事的阻碍。</p>
</blockquote>
<p>试想一下，如果每天起床就腰酸背痛，就算是神出现在你面前，可以满足你一个愿望，你只会祈愿腰不酸背不痛，而不是名车豪宅财富自由。
一旦身体出现问题，就会对达成目标造成干扰。身体应该为达成目标助力，而不是成为阻碍，不是吗？</p>
<p>作为一名程序员和技术教练，常常久坐写代码，腰会酸，背会痛，脖子会难受。
作为一名培训师，常常要连续站几天，脚痛，腿痛，腰酸背痛。
作为三个孩子的父亲，常常要陪孩子追逐打闹，会气喘吁吁。</p>
<p>看了这个视频后，我就开始在网上找资料，跟着练习一套叫做「安伽玛达那」的古典哈他瑜伽，从三月初开始，每天练习半小时左右，感受到了好处。
后来报了线下课程，才发现网上的视频不完整，也没有细节讲解和常见错误纠正。
学完线下课后，开始 48 天习惯养成的练习，但是我没坚持下来。
在我看来，这套瑜伽更像是体操，包含站姿，蹲姿，坐姿和躺姿几十个动作，刚学完的时候，整套练下来要 70 分钟左右。常常觉得时间不够，但大多数时候还是坚持每天练习，哪怕只练其中一部分。</p>
<p>直到 7 月 12 号，我决定要每天练全套，练完至少 48 天，到今天刚好达成了一半 24 天。其中也有飞机晚点到酒店 3 点多才睡觉，早上也会在 7 点前起来练习。也有一两次早上没练，拖到晚上，尽管没有达到空腹 4 小时的练习条件，也逼着自己做完了练习；没有瑜伽垫，在硬地板上完成练习；飞机晚点，在候机室完成练习。
这几个月，除了瑜伽，没有做任何的力量训练，也大大减少了跑步频率，一个月跑两次， 每次 10 公里左右。</p>
<p>练习的同时，也读了一些关于瑜伽的书，什么脉轮，能量之类的。
看了很多的视频，瑜伽文化不仅是身体的锻炼，还包含饮食，睡眠等。</p>
<p>两周前在青岛冲浪，浪比较大，我们要往外划水到起浪区，大浪一个接一个的，教练教我用「乌龟翻」越浪，一趟下来，就感觉到胳膊无力，气喘吁吁。两个小时课程结束，已经感到体力不支了。
所以要想玩好冲浪，光练瑜伽，强度就不够了，所以最近又增加了肌肉力量和耐力的训练。</p>
<blockquote>
<p>健身的目的，是为了让身体成为做事的助力，而不是阻碍。</p>
</blockquote>
<p>如果你对古典哈他瑜伽感兴趣，微信搜索 isha 小程序，全国很多城市每个月都有课程。</p>]]></description><pubDate>Wed, 04 Aug 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[别问为什么]]></title><link>https://life.seabornlee.cn/posts/%E5%88%AB%E9%97%AE%E4%B8%BA%E4%BB%80%E4%B9%88/</link><guid>https://life.seabornlee.cn/posts/%E5%88%AB%E9%97%AE%E4%B8%BA%E4%BB%80%E4%B9%88/</guid><description><![CDATA[<img src="https://img1.baidu.com/it/u=313854387,2511269055&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=JPEG?w=320&#x26;h=319">
<p>站会时，SM 问：为什么这三张卡还在这儿？
这时，相关的几个人一顿解释，但怎么听起来都像辩解，没有人去挪动卡片。
结束后，我问：刚刚说这三张卡跟实际状态不一致，怎么才能让看板反应真实的状态呢？
大家开始挪卡。</p>
<p>问「为什么」，带着质疑，对方会无意识地抵触，找理由合理化，并且为了维持言行一致性，不会行动。
问「怎么才能」，会激发思考，促进行动。
前者指向过去，后者指向当下。
过去是无法改变的，作为教练，我们始终要引导对方把注意力放在当下，激发行动。</p>]]></description><pubDate>Fri, 20 Nov 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[前后端分离]]></title><link>https://life.seabornlee.cn/posts/%E5%89%8D%E5%90%8E%E7%AB%AF%E5%88%86%E7%A6%BB/</link><guid>https://life.seabornlee.cn/posts/%E5%89%8D%E5%90%8E%E7%AB%AF%E5%88%86%E7%A6%BB/</guid><description><![CDATA[<img src="https://img0.baidu.com/it/u=4225480104,2315663338&#x26;fm=253&#x26;fmt=auto&#x26;app=138&#x26;f=PNG?w=420&#x26;h=257">
<p>你们团队的前后端工程师
是不是互相鄙视
是不是联调经常需要等待
是不是数据接口总需要返工
…...</p>
<p>以前我们写 ASP，JSP，PHP 的时候
页面是在服务器端渲染的</p>
<p>后来为了满足多端（手机，平板，网页，桌面）需求，就做了前后端分离;
后端提供数据，前端负责展示
于是
有了前端工程师和后端工程师</p>
<p>其实
在框架层
已经做了前后端的分工
前端专家写前端框架
后端专家写后端框架
目的是降低应用开发的难度
和提高应用开发的效率</p>
<p>程序员都是聪明的
在应用层
写前端和写后端需要的编程思维是一致的
不存在什么学不会的问题</p>
<p>在不确定的环境下
理想的团队是
少量的前端专家
少量后端专家
和大量的全栈工程师</p>
<p>我们认为
前后端分离
是技术上的分离
不是角色上的分离</p>
<p>by 李小波 &#x26; 章立</p>]]></description><pubDate>Sun, 22 Jul 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[升级Yosemite的常见问题]]></title><link>https://life.seabornlee.cn/posts/%E5%8D%87%E7%BA%A7Yosemite%E7%9A%84%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/</link><guid>https://life.seabornlee.cn/posts/%E5%8D%87%E7%BA%A7Yosemite%E7%9A%84%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/</guid><description><![CDATA[<img src="/_image/Screen Shot 2014-10-19 at 13.35.15.png">	
<p>前两天Apple终于发布了稳定版的Yosemite，相信大家等了这么久，都第一时间开始升级了吧。
最近总看到有朋友在问一些升级的问题，因为我早在Beta版的时候就已经升级，经历过一些问题，写出来希望能对大家有些帮助。</p>
<h3 id="耐心等待最后x分钟">耐心等待“最后x分钟”</h3>
<p>我在第一次升级的时候，一路都很顺畅，直到最后显示还需要“2分钟”，然后我等了超过1小时，于是我认为升级已经失败，便强行重启了，导致系统无法正常启动，只能重新来过。花了很多时间后，最后终于知道问题在哪里，在升级过程中，可以按<code>CMD+L</code>打开Log窗口，你能看到其实升级程序一直在运行，只不过在处理HomeBrew安装的程序，因为我是Home Brew重度用户，这块需要很长时间，唯一能做的就是耐心等待，出去跑一个半程马拉松再回来也许是个好选择。</p>
<h3 id="修改plist文件才能运行java应用">修改plist文件才能运行Java应用</h3>
<p>升级后你会发现Eclipse，IntelliJ等应用都不能启动了，你会看到如下的错误。</p>
<blockquote>
<p>To open "IntelliJ IDEA" you need to install the legacy Java SE 6 runtime.</p>
</blockquote>
<p>![](/_image/Screen Shot 2014-10-19 at 10.47.20.png)
这是因为系统升级后JVM升级到了<code>1.7</code>，而应用指定了依赖<code>1.6*</code>的版本。
这时你有两种选择：
1 下载安装JDK6并指定JAVA_HOME
2 修改plist文件，指定依赖的JVM为1.7*</p>
<p>第一种的好处是一次就能解决全部应用的问题，第二种需要逐个应用去修改。
这里重点说一下第二种办法，以IntelliJ IDEA为例：
1 用文本编辑器打开<code>/Applications/IntelliJ IDEA 13.app/Contents/Info.plist</code>
2 搜索<code>JVMVersion</code>，将其值改为<code>1.7*</code>
3 再次运行应用即可看到应用成功运行</p>
<h3 id="hax-is-not-working">HAX is not working</h3>
<p>如果你使用Android Emulator，你可能会发现，启动时显示："HAX is not working...."
这时你只需在Terminal中执行：<code>sudo nvram boot-args="kext-dev-mode=1"</code> ，然后重启即可。</p>
<h3 id="postgresql无法连接">Postgresql无法连接</h3>
<p>升级后你可能会发现无法连接Postgresql始终无法连接，重新安装也能解决。经过试验，将数据目录删除重建即可。
<code>initdb -D /usr/local/pgsql/data</code>。</p>
<h3 id="设置handoff功能">设置Handoff功能</h3>
<p>升级完后第一时间就开始尝试Handoff，结果却让人非常失望，但经过一番研究之后终于成功启用了此功能。
首先除了Mac OS要是Yosemite外，手机必须是iOS8。
然后需要以下几步：
1 Yosemite和iOS上的iCloud登录同一个Apple ID；
2 Mac和iOS上都要打开蓝牙，无需配对；
3 打开Yosemite的<code>System Preferences->General</code>，勾选“Allow Handoff between this Mac and your iCloud devices”
4 打开iOS的<code>Settings->General->Handoff &#x26; Suggested App</code>，启用Handoff。</p>
<p>完毕，这时你在手机上打开Safari，你的Mac的Dock最左边就会多出一个浏览器图标，你在Mac上的Safari打开一个网页，手机的锁屏界面也会显示一个Safari图标。更多有趣的功能请自行搜索。</p>
<h3 id="在mac上打电话">在Mac上打电话</h3>
<p>相信大家都对发布会上演示的使用Mac打电话期待已久，这个也不是升完级就能直接使用的。需要进行简单的设置：
1 打开iOS的<code>Settings->FaceTime</code>，启用<code>iPhone Cellular Calls</code>；
2 打开Yosemite上的FaceTime的设置，勾选<code>iPhone Cellular Calls</code>。</p>
<p>一开始我错误地认为这个功能是Handoff中的一部分，但其实它们没有半毛钱关系，而且也无需蓝牙连接，无需3G，只要手机与电脑在同一Wifi下即可。另外，收发短信的功能据说要等升了iOS 8.1后才能用。</p>
<p>就这么多，不用谢，请叫我雷锋。</p>]]></description><pubDate>Sun, 19 Oct 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[去年给老婆的生日歌]]></title><link>https://life.seabornlee.cn/posts/%E5%8E%BB%E5%B9%B4%E7%BB%99%E8%80%81%E5%A9%86%E7%9A%84%E7%94%9F%E6%97%A5%E6%AD%8C/</link><guid>https://life.seabornlee.cn/posts/%E5%8E%BB%E5%B9%B4%E7%BB%99%E8%80%81%E5%A9%86%E7%9A%84%E7%94%9F%E6%97%A5%E6%AD%8C/</guid><description><![CDATA[<p>一晃又快到老婆生日了，想起去年给老婆唱的生日歌。
<a href="http://v.youku.com/v_show/id_XNDQwODA3MTgw.html">http://v.youku.com/v_show/id_XNDQwODA3MTgw.html</a></p>
<p>今年给老婆什么样的祝福呢？帮我出出主意呗。</p>]]></description><pubDate>Tue, 30 Jul 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[只要 30 天，用幽默增加魅力值]]></title><link>https://life.seabornlee.cn/posts/%E5%8F%AA%E8%A6%81%2030%20%E5%A4%A9%EF%BC%8C%E7%94%A8%E5%B9%BD%E9%BB%98%E5%A2%9E%E5%8A%A0%E9%AD%85%E5%8A%9B%E5%80%BC/</link><guid>https://life.seabornlee.cn/posts/%E5%8F%AA%E8%A6%81%2030%20%E5%A4%A9%EF%BC%8C%E7%94%A8%E5%B9%BD%E9%BB%98%E5%A2%9E%E5%8A%A0%E9%AD%85%E5%8A%9B%E5%80%BC/</guid><description><![CDATA[<p>一直写干货文章，第一次写软文，我的手指都在微微发抖，生怕被人看出来，偷摸儿的早上起来悄悄写。
是什么样的人，让我这样的硬汉甘愿为他软一次呢？
他是我的偶像，我的老师。与其说是帮他推广今晚的幽默表达公开课，不如说是给我的朋友传递一个信息，让大家有机会了解幽默的奥义。
如果你今晚和周六都没空，没关系，继续看，看完还是没空算我输。</p>
<blockquote>
<p>生活中，偶尔会尴尬和冲突，如果你懂得幽默，你就可以轻易化解，并给自己加分。
在工作中，尤其是演讲，培训等与人沟通的工作，幽默可以拉近人与人之间的距离，增加你的亲和力。</p>
</blockquote>
<p><img src="/_image/2017-04-25-12-11-22.jpg" alt="">
上面这个，马云和姚晨的结合体，是我认识的人中，最懂幽默的人。</p>
<blockquote>
<p>他在头马（ToastMasters）多年，擅长幽默演讲，拿过奖。
他创立了大陆第一家脱口秀俱乐部，为中国脱口秀圈培养了很多演员和段子供稿人。
2017 年，他重新走到前台，做个人脱口秀演出和幽默表达培训，传递自己对幽默的理解。</p>
</blockquote>
<p><strong>我和 Kevin 的交集</strong>
小时候，大家都说我是一个木讷的人，话很少，除了老师之外。我最喜欢的是在课堂上接老师的话茬，把全班同学逗得前仰后合，觉得自己特幽默。后来 Kevin 告诉我，那是逗比，不是幽默。<a href="http://www.jianshu.com/p/37302d312000">《幽默是智慧溢出，逗逼是情商欠费》</a></p>
<p>2013 年，我在深圳出差，周末没事想找个活动放松一下，不知什么原因，脑子里突然冒出了「脱口秀」这个词，于是我在豆瓣上找到了深圳的一家脱口秀俱乐部，叫「Farsome 开放麦」。于是，2013 年的中秋之夜，我和二三十名单身狗聚集在华侨城的一个小房间里，听另外几只单身狗讲段子，和别人不一样的是，我带了老婆。
我当时的感觉就是两点：这是假的脱口秀；当观众真累。
为什么是假的呢？我在网上也看过很多脱口秀，大部分是国外的，满口的 fxxxck，动不动拿宗教，性和种族开玩笑，笑果特别好。而这里，一点儿荤的也没有。
为什么说当观众累呢？明明不好笑，还要假装笑的前仰后合，因为前后左右的人都在笑，我不笑就感觉自己很傻啊。人家就会怀疑我的智商啊。
中场休息的时候，Kevin 告诉我，俱乐部是大家练习的平台，不是剧场。Kevin 把头马的三大禁忌带到了自己的俱乐部，不谈宗教，政治和性。</p>
<p>后来我就没再去，去另外的一家在地王大厦顶楼的脱口秀俱乐部听了两次，他们的风格和国外的比较像，好玩多了。</p>
<p>2014 年的中秋之夜，我又去了 Farsome，想看看他们有没有进步。他们依旧保持不好笑的风格，观众依旧保持配合，不过人数好像没有那么多了。所以我发现，只要你坚持持续地做一件事，慢慢地，就没人跟你玩儿了。</p>
<p>2015 年，我参加了 Kevin 的「幽默表达」的课程。在这个课程上，我学会了洒脱，接纳自己的紧张情绪，接纳自己一切的表现，在舞台上做自己。同时 Kevin 告诉我，在公共场合讲荤段子的时候，人们发笑并不是因为你的笑话好，只是因为你在公共场合讲出来。
我突然就理解了，初中时班上有个同学，总喜欢在上课的时候放响屁，特别响，每次全班同学都会大笑。大家笑的是这种行为，而不是因为他的幽默，放个屁能有多幽默嘛。
2016 年，我参加了一个 Kevin 组织的「笑话创作」课程。学会了笑话的基本结构，工业化生产笑话的「笑话树」，「笑话地图」等方法。
2017 年，在成都重遇 Kevin，我参加了他一天的工作坊，晚上和他一家一起吃饭，对他的家庭和心路历程了解了更多，更加佩服他的坚持和坚定。
这一次对我帮助特别大的是，Kevin 组织大家在群里打卡，每天收集素材。最终，我完成了 30 天挑战，一天也没有中断，取得了第一名的好成绩。而且我领悟到：<strong>每天的素材积累并不是为了素材，而是培养认真观察的态度和幽默的思维习惯。有了这个，段子随手就来</strong>。
效果在我的工作中体现了出来，那一期的内部培训，大家对我的印象就是幽默，而这些段子都是临时冒出来的。
<img src="/_image/2017-04-25-12-39-42.jpg" alt=""></p>
<p>我通过自己的经历想告诉大家的是：</p>
<ul>
<li>你对幽默的理解可能是错的</li>
<li>幽默是可以学习的，有老师指路可能会少走弯路</li>
<li>幽默是需要刻意练习的，一群人一起打卡会更容易坚持</li>
</ul>
<p>如果你希望自己是一个幽默睿智的人，欢迎报名周六一整天的工作坊。或者今天晚上去听一个公开课，见证 Kevin 老师的风采，再做决定。我只能帮你到这里了！</p>
<ul>
<li>25 日晚上：<a href="http://www.huodongxing.com/event/3384316752900?qd=%E8%BD%AF%E6%96%87">幽默公开课 - 来做一个好玩有趣的人</a></li>
</ul>
<p><img src="/_image/2017-04-25-12-54-33.jpg" alt=""></p>
<ul>
<li>29 日一整天：<a href="http://www.huodongxing.com/event/3384323534200?qd=%E8%BD%AF%E6%96%87">遇见更幽默的自己 - 幽默表达工作坊</a></li>
</ul>
<p><img src="/_image/2017-04-25-12-55-05.jpg" alt=""></p>]]></description><pubDate>Tue, 25 Apr 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[告别低效会议，教你设计工作坊]]></title><link>https://life.seabornlee.cn/posts/%E5%91%8A%E5%88%AB%E4%BD%8E%E6%95%88%E4%BC%9A%E8%AE%AE%EF%BC%8C%E6%95%99%E4%BD%A0%E8%AE%BE%E8%AE%A1%E5%B7%A5%E4%BD%9C%E5%9D%8A/</link><guid>https://life.seabornlee.cn/posts/%E5%91%8A%E5%88%AB%E4%BD%8E%E6%95%88%E4%BC%9A%E8%AE%AE%EF%BC%8C%E6%95%99%E4%BD%A0%E8%AE%BE%E8%AE%A1%E5%B7%A5%E4%BD%9C%E5%9D%8A/</guid><description><![CDATA[<p>我们常常抱怨，低效的会议浪费了大量的时间，导致不得不加班才能完成工作。
在开会的时候，有人躲在角落玩手机，有人在窃窃私语，有人争得面红耳赤，有人拍完桌子愤然离场。
无效的会议是极大的浪费，我们迫切需要，一种更好的会议方式。</p>
<p>什么是高效的会议呢？它具备什么特点呢？</p>
<blockquote>
<p>所有参会者都积极参与，贡献自己的想法，提出自己的不同意见。有清晰的流程，节奏紧凑，有专门的人负责引导。</p>
</blockquote>
<p>一些勇于创新的人，开始去尝试，他们发现了很多的工具，方法和流程。提炼出来了一个高效会议的共同准则：</p>
<blockquote>
<p>相信群体智慧，创造最佳方案；相信均等参与，产生最佳执行力。</p>
</blockquote>
<p>Workshop，中文叫「工作坊」或「研讨会」，它是一种会议形式。
相较于传统会议形式，它具有参与度高，节奏紧凑的特点，用于技能传授，达成共识，促进决策，制定行动计划等。</p>
<h2 id="引导者facilitator">引导者（Facilitator）</h2>
<p>工作坊通常有一到多名引导者，引导者是流程专家，不必是业务专家。
他保持中立的态度，使用倾听、总结、提问等技术，激发参会者的参与热情，妥善处理会议中的各种破坏性行为，把控时间，让工作坊高效有序地进行。</p>
<h2 id="怎么设计">怎么设计</h2>
<p>如何设计一个工作坊呢？站在引导者的角度，分前中后三个阶段来看。</p>
<h3 id="前">前</h3>
<p>通常会有一个会议发起人，他找到引导者，邀请他来设计一个工作坊以解决某个问题。</p>
<p>引导者可以从五个方面来思考，怎么设计这个工作坊，为方便记忆，可以记成「五个屁（P）」：</p>
<p><strong>Purpose</strong>
工作坊要达到什么样的目的？</p>
<p><strong>Product</strong>
交付物是什么？以什么形式交付？</p>
<p><strong>Participants</strong>
需要哪些人参与？可以通过会议发起人找到关键利益干系人，通常是需要提供关键输入的人会受到影响的人，包括决策层和执行者等。</p>
<p><strong>Process</strong>
要通过什么样的流程，去达到期望的产出？
这里的流程呢，通常是多轮的发散和收敛的过程，可以使用非常多的工具。
比如，头脑风暴，鱼骨图，心情曲线，用户体验地图等。</p>
<p><img src="./_image/2017-03-12-09-03-57.jpg" alt=""></p>
<p>除了这些工具呢，引导者本身就是一个最重要的工具，可以使用声音，动作等来引导。
比如有人开小会时，降低自己的音量，让对方的声音变得明显，从而主动停止谈话。
比如需要停止讨论时，让大家将双手举过头顶，并注视还在讨论的人。
比如鼓励分享时，身体前倾，目光注视发言人，发言结束后带头鼓掌。</p>
<p>还可借助视觉引导，或者一些有趣的道具：
比如惨叫鸡，物理计时器，碰钟等。</p>
<p><strong>Possible Issues/Pitfall</strong>
最后，思考工作坊过程中可能会出现的意外，提前做好积极的应对。</p>
<p>除了以上这些，还要准备好所需的工具，比如说投影，白板纸，白板笔，胶泥，便利贴等工具。
提前到达会场，测试设备是否可以工作，布置好会场，并调试好自己的情绪和状态。
抱持「每个人都是出发点都是好的，一定能够共同得到有效产出」的信念，然后，把自己点燃！</p>
<h3 id="中">中</h3>
<h4 id="开场">开场</h4>
<p>工作坊开场非常重要，好的开场就成功了一半。我们可以遵循四只小猪原则：</p>
<ul>
<li>Participants 欢迎并介绍参会者都有哪些人。</li>
<li>Purpose 告诉参会者，本次工作坊的目的是什么。</li>
<li>Process 介绍流程。</li>
<li>Ice Breaker 破冰游戏。</li>
<li>Ground Rules 讨论在工作坊中，需要共同遵守的准则。</li>
<li>Parking Lot 介绍停车场使用规则。</li>
</ul>
<h4 id="中间">中间</h4>
<p>为了促进大家的参与，引导者可使用三种技术：</p>
<p><strong>倾听</strong><br>
推荐阅读：<a href="http://www.jianshu.com/p/9d7e561af218">怎么听，对方才肯说？- 积极聆听技术简介</a></p>
<p><strong>总结</strong><br>
通过总结，把对方一段冗长的发言总结成简短的几个字，不仅可以让对方感到被理解，也可以让其他参会者，更好地理解发言者的意思。</p>
<p><strong>提问</strong><br>
引导者不应该发表长篇大论，应该使用提问技术，让参会者多说。
我们有几类问题可以参考：</p>
<ul>
<li>询问事实</li>
<li>询问感受</li>
<li>量化感受</li>
<li>切换视角</li>
<li>魔法棒（假如...）</li>
<li>最好和最坏</li>
<li>挤牙膏（追问）</li>
</ul>
<p><img src="/_image/20170312-1.png" alt=""></p>
<h4 id="结尾">结尾</h4>
<p>结尾时，引导者要收敛，以便达成共识，促进决策，产生行动计划。</p>
<h3 id="后">后</h3>
<p>结束之后，引导者要收拾好场地，将过程中拍摄的照片，整理分享给大家，收集大家对于此次工作坊的反馈，和关键角色复盘回顾等。</p>
<p>以上是我昨天参加工作坊设计培训的总结，希望对你有用~</p>]]></description><pubDate>Sun, 12 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[回顾会议]]></title><link>https://life.seabornlee.cn/posts/%E5%9B%9E%E9%A1%BE%E4%BC%9A%E8%AE%AE/</link><guid>https://life.seabornlee.cn/posts/%E5%9B%9E%E9%A1%BE%E4%BC%9A%E8%AE%AE/</guid><description><![CDATA[<img src="/_image/2014-03-20/photo.JPG">
<p>记得一个朋友说过，如果只允许做Scrum框架中的一件事，那就做回顾会议。只要持续改进，任何团队都可以越来越好。回顾会议可以有效地识别问题，找到改进方法，只要经常回顾，每次改进一点点，团队就会越来越好。</p>
<p>最近太忙，又做PM又做Tech Lead，上班和客户搞验收，搞SOW，下班还要写代码，修CI。我一忙起来就容易失掉激情，回想我刚加入这个项目组的时候，真叫激情四射，经常讲session，组织大家学习和运动，现在团队气氛也大不如前了。还好最近又来了一个同事，<strong>新人总是能发现一些我们视而不见的问题，提出一些对团队的看法，但随着新人慢慢变成老人，也会对这些问题视而不见</strong>。</p>
<h3 id="环境">环境</h3>
<p>借着这个机会，召集大家进行一次回顾。当然，下午荼是不可或缺的，先让大家放松下来，才有可能说出最真实的想法。这次我还特意把会议地点放到了阳台上，考虑到两点：</p>
<ul>
<li>一是因为屋里人多，除了团队成员外，还有硬件供应商和stakeholder；</li>
<li>二是阳台上空间开放，而且只能站着，能让大家更聚焦，更高效。</li>
</ul>
<h3 id="过程">过程</h3>
<h4 id="peaks-and-valleys-timeline">Peaks and Valleys Timeline</h4>
<p>由于很长时间没做回顾，这次采用心情曲线的方式，先回顾一下年后这一个多月的重大事件以及导致了心情怎样的变化。每个人画出一条线，一边画一边讲解因为什么事件而导致心情发生了什么样的变化。经过这一轮，大家都回想起了最近发生的事情，开始放松和投入。</p>
<h4 id="speed-car---abyss">Speed Car - Abyss</h4>
<p>这是一个回顾和前瞻相结合的游戏，重点是回答下面几个问题：</p>
<ul>
<li>有什么东西阻碍团队前进？</li>
<li>有什么东西推动团队前进？</li>
<li>前面会有什么样的坑（风险）？</li>
<li>我们能做什么来避免掉进坑里？</li>
</ul>
<h3 id="心得">心得</h3>
<p>有时候，虽然本质都是一样的，但外在形式却很重要。做回顾也是，不能每次都用同一种方式，因为大多数人都是喜新厌旧的。感谢我的同事写了<a href="https://leanpub.com/funretrospectives">《FUN RETROSPECTIVES》</a>这本书，让我们的工具箱更加丰富。</p>]]></description><pubDate>Thu, 20 Mar 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[在 Code Mentor 挣美元咯]]></title><link>https://life.seabornlee.cn/posts/%E5%9C%A8%20Code%20Mentor%20%E6%8C%A3%E7%BE%8E%E5%85%83%E5%92%AF/</link><guid>https://life.seabornlee.cn/posts/%E5%9C%A8%20Code%20Mentor%20%E6%8C%A3%E7%BE%8E%E5%85%83%E5%92%AF/</guid><description><![CDATA[<img src="/_image/Capture-2022-11-20-212249.png">
<p>去年不知道什么时候知道的 <a href="https://www.codementor.io">code mentor</a> 这个平台，从邮件落款看好像是一个华人做的。
它的 Slogan 是「Instant 1:1 help from expert developers」。</p>
<p>在休陪产假期间，实在闲不住，我就上去体验了一下，收获很大。</p>
<h2 id="挣外快">挣外快</h2>
<p>你可以明码标价，按分钟出售自己的时间，通常是 <code>$15/15mins</code>。也有一个小时几百刀的难题。
通过远程桌面视频语音的方式提供帮助。我通常比较信任对方，先解决问题，对方会选择「Pay for offline help」。
提现好像有两种途径，我的量也不大，就提到 Paypal 里边，用来买国外的各种电子书，视频和在线课程。
不过相比金钱回报外，其它的收获可能更有价值。</p>
<h2 id="练口语">练口语</h2>
<p>作为一个口语不是很好程序员，当然需要一个环境持续地练习，与其花钱去找别人陪练，不如在这里练习，不仅不用花钱，还能挣钱，练的还是专业英语。
这是一个国际化的平台，我服务的客户有各种肤色，各个国家，所以能接触到各种口音的英语。经常在连接上视频的一刻我都忍不住 Wow 一声。</p>
<h2 id="开阔眼界">开阔眼界</h2>
<p>这平台上有各种问题，各种技术栈。
每次接到感兴趣的问题我都会先研究他们的需求，通过这样了解到了国外流行的工具，框架或技术。
比如电商平台怎么与店家分成，怎么测试 EDM 邮件在不同设备上的显示效果等等。</p>
<p>也有一些是大学生找代写作业的，找人帮忙 Code Review 的，找人结对编程学习的。</p>
<h2 id="交朋友">交朋友</h2>
<p>每次帮助客户解决问题后，他们都会不遗余力地表达感激，特别会夸人，也会加 Skype，Facebook 之类的：</p>
<p>相比国内的各种众包平台，首先它更国际化，让你的技术不会落后。客户也很 Nice。
它的玩法也很多，你可以成为某家公司的短期远程员工，也可以接小项目，也可以只解决具体问题，还可以录视频教程，做在线直播，还有每个月固定几个小时咨询的等。
它鼓励你多接客户，接的越多，平台抽取分成的比例越低。
这样一个平台为程序员提供了多样化的工作方式。如果有一天我要自由职业的话，我会选择在这上面获取收入。</p>
<p>当然，如果你问我有没有失败案例，也有：有一次给一个刚毕业的小哥讲 TDD 就把他讲的落荒而逃了。
<a href="https://www.codementor.io/seabornlee?utm_source=github&#x26;utm_medium=button&#x26;utm_term=seabornlee&#x26;utm_campaign=github">Contact me on Codementor</a></p>]]></description><pubDate>Thu, 23 Jun 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[在公司办一个演讲俱乐部]]></title><link>https://life.seabornlee.cn/posts/%E5%9C%A8%E5%85%AC%E5%8F%B8%E5%8A%9E%E4%B8%80%E4%B8%AA%E6%BC%94%E8%AE%B2%E4%BF%B1%E4%B9%90%E9%83%A8/</link><guid>https://life.seabornlee.cn/posts/%E5%9C%A8%E5%85%AC%E5%8F%B8%E5%8A%9E%E4%B8%80%E4%B8%AA%E6%BC%94%E8%AE%B2%E4%BF%B1%E4%B9%90%E9%83%A8/</guid><description><![CDATA[<img src="/_image/2016-03-13 21-50-48.jpg">	
<p>我从去年 8 月开始成为创业狗， 渐渐地参加俱乐部常规会议的次数越来越少。
因为我在公司成立了一个演讲俱乐部，名字叫「湾享会」。
我们从去年 8 月开始，每周三中午举办活动，到年前一共 22 次，从来没有中断过。
但是，过完年回到工作中时，我突然失去了激情，连再组织一次的勇气都没有。
有一位同事问了一句：我们什么时候还有「湾享会」啊？
我觉得是时候停下来回顾一下了，到底哪里走错了。</p>
<h2 id="初心">初心</h2>
<p>当初我为什么要搞这个「湾享会」？
原因有三点：</p>
<ul>
<li>公司在南山，SZTM 在科学馆，路上要花上一个小时，回家还要花接近一个小时</li>
<li>每周二晚上 6 点， 同事们都在加班，我却要离开公司去参加 SZTM 的会议</li>
<li>公司需要一些好玩的东西，让我们看起来更有文化，这对于吸引人才是非常有用的</li>
</ul>
<h2 id="好的一面">好的一面</h2>
<h3 id="成长">成长</h3>
<p>通过锻炼，很多同事对舞台不再感到陌生，我们市场部的同事从一开始上台讲话赘言多，站姿无气场，到现在能 Hold 住几百人的大会。我也成功主持了公司的超过 500 人的大会。并且在其它会议上的演讲也能取得比以前更好的效果。
其他平时少有机会在外面演讲或主持的同学，也间接地提高了日常的沟通效率，比如开会。</p>
<h3 id="氛围">氛围</h3>
<p>每次会议中大家都很享受，每次有外部嘉宾过来，都会由衷地夸一句：你们团队好棒，公司氛围真不错！</p>
<h2 id="不好的一面">不好的一面</h2>
<h3 id="并不是所有人都热爱演讲">并不是所有人都热爱演讲</h3>
<p>在公司里，并不是每个人都对公众演讲充满激情，尤其是一些程序员，可能觉得我不会讲话很酷啊，很符合 Geek 气质啊。
在不到 20 人的公司，感兴趣的寥寥无几，甚至可能无法凑齐举办一次会议所需的角色。
所以一开始我运用了「影响力法则」，让一些并不是发自内心热爱演讲的同事都会参加。
比如利用权威原则 - 邀请 CEO 积极参加，互惠原则 - 公司提供午餐，稀缺原则 - 制造哄抢角色的现象。</p>
<h3 id="成长速度不够快">成长速度不够快</h3>
<p>人数不够，没有资质注册 ToastMasters，无法按照手册去锻炼。
由于新人不多，重复做角色也很无聊，甚至有人提议取消三个角色。</p>
<p>没有非常厉害的人来做点评，也没有人会去其它俱乐部看看厉害的人。
我也邀请同事去过俱乐部，去过的开放日。
对于热爱演讲的我们来说，我们很喜欢这种氛围，但对于外面的人来说：TM 这个群体看越来真的会有点奇怪。</p>
<h3 id="经理们总是不小心扯上工作">经理们总是不小心扯上工作</h3>
<p>一不小心，经理就会把演讲会变成工作的一部分。
比如在会议上给大家打鸡血。
表彰贡献突出的员工。
欢迎新员工等等。
甚至计划把在会议上分享作为 KPI 的一部分。</p>
<p>以上是我对「在公司运行演讲俱乐部」的思考。
如果你也想这么做，我建议你一定要先想好一个问题：</p>
<blockquote>
<p>它是<strong>民间的</strong>还是<strong>官方的</strong>？
谨防把本来是<strong>兴趣</strong>的事情变成了<strong>工作</strong>，激情投入也变成了<strong>完成任务</strong>。</p>
</blockquote>]]></description><pubDate>Sun, 13 Mar 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[培养习惯，我的三条心得]]></title><link>https://life.seabornlee.cn/posts/%E5%9F%B9%E5%85%BB%E4%B9%A0%E6%83%AF%EF%BC%8C%E6%88%91%E7%9A%84%E4%B8%89%E6%9D%A1%E5%BF%83%E5%BE%97/</link><guid>https://life.seabornlee.cn/posts/%E5%9F%B9%E5%85%BB%E4%B9%A0%E6%83%AF%EF%BC%8C%E6%88%91%E7%9A%84%E4%B8%89%E6%9D%A1%E5%BF%83%E5%BE%97/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-16-53-58.png">
<p>昨天跟大家分享了<a href="http://www.jianshu.com/p/3525376f7a92">习惯的原理</a>，有朋友留言说希望分享更详细的习惯培养过程。
如果着手培养习惯，我推荐阅读《如何改变习惯》这本书，书里非常详细地说明了，如何用 30 天挑战的方式进行习惯培养。
我今天想分享一下培养习惯的心得。</p>
<h2 id="选择习惯">选择习惯</h2>
<p>首先要知道有哪些好习惯是值得培养的，为此我读了两本书：</p>
<ul>
<li>《高效能人士的七个习惯》</li>
<li>《麦肯锡精英的 48 个工作习惯》</li>
</ul>
<p>我推荐先培养「元」习惯，比如早睡早起，跑步，学习，专注，读书等。
有了这些习惯后，工作和学习的效率都能得到提升。
我还发现，晨跑这个习惯可以带动一系列的其他习惯。为了晨跑，就得早起，为了早起，就得早睡，为了早睡，就不能加班，为了不加班，工作就得更专注。这种能带动其他习惯养成的习惯，叫做「核心」习惯。
同样，应该优先培养核心习惯。</p>
<h2 id="培养周期">培养周期</h2>
<p>对一个习惯的精力投入，在培养阶段的投入要占 99%，习惯一旦养成，几乎就毫不费力了。
<strong>那么培养一个习惯需要多长时间呢？</strong>
有人说 7 天能养成一个习惯，有人说 21 天，有人说平均要 63 天。
还有一种说法是，培养行为习惯至少需要 3 个月，培养思维习惯至少需要 6 个月。
我认为，单纯用天数来衡量是不可靠的。
习惯的三个要素都会影响培养习惯的周期：<strong>提示出现的频率</strong>，<strong>惯常行为执行难度</strong>和<strong>奖励的吸引力</strong>。
我举个例子你就明白了。
健身的习惯，每周一、三、五，每次健身一小时。
喝水的习惯，整点提醒，每次喝一杯，一天喝八杯。
你相信这两个习惯会有同样的培养周期吗？</p>
<p>所以，培养习惯到底要多久，我觉得是：<strong>因人而异，因事而异</strong>。</p>
<h3 id="30-天挑战">30 天挑战</h3>
<p>虽然无法预估要多久才能培养一个习惯，但经过我的实际经验，对于每天一次的习惯，30 天挑战是个不错的方式。
在这 30 天里，通常会经历几个阶段：</p>
<ul>
<li>全速起跑期</li>
<li>疲惫放缓期</li>
<li>过渡期</li>
<li>颠簸期</li>
<li>稳定期
虽然我并未清晰地体会到每一个阶段的不同，但我认为知道它是有意义的。
它让我在遇到困难的时候，知道这是每个人都会遇到的，而不是让「意志力」来背这个锅。</li>
</ul>
<p>我曾经尝试过同时培养六个习惯，现实证明一个习惯都没养成。
所以我建议一次只培养一个习惯，等有一定经验之后再尝试同时培养多个习惯。</p>
<p>30 天不长不短，如果 30 天都没有得到行为本身带来的奖励，那就果断放弃，进行下一个习惯的培养吧。</p>
<p>这就是我的一点心得，希望对你有用。你会尝试一下吗？欢迎留言告诉我~</p>]]></description><pubDate>Sun, 19 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[复盘，三倍成长速度]]></title><link>https://life.seabornlee.cn/posts/%E5%A4%8D%E7%9B%98%EF%BC%8C%E4%B8%89%E5%80%8D%E6%88%90%E9%95%BF%E9%80%9F%E5%BA%A6/</link><guid>https://life.seabornlee.cn/posts/%E5%A4%8D%E7%9B%98%EF%BC%8C%E4%B8%89%E5%80%8D%E6%88%90%E9%95%BF%E9%80%9F%E5%BA%A6/</guid><description><![CDATA[<p>有些人工作时间不长，却经验丰富，做事老练。
有些人工作十年，却只是把一年的经验重复用了十年。
今天来说说，如何从经历中提取经验，倍速成长。</p>
<p><strong>什么是经验？</strong></p>
<blockquote>
<p>经验是从多次实践中得到的知识或技能。</p>
</blockquote>
<p>我们原来做事呢，不怎么思考，直接就去做了，做完了就结束。
做好了，也不思考为什么就做成了，有哪些做得好的，下次可以继续使用。
做烂了，也不思考为什么没成功，哪些地方下次要避免。</p>
<p>去年受周老师总结技术启发，又读了复盘相关的几本书，我开始实践三倍速成长的做事方式：</p>
<h2 id="推演-做-复盘">推演-做-复盘</h2>
<p>做事之前先推演，然后去做，做完后复盘。相当于一件事情做了三遍，不就三倍速成长了吗？</p>
<p><strong>推演</strong>
做这这件事的目标是什么？
怎么一步一步去完成？</p>
<p><strong>做</strong>
做的时候要保持觉察，不要把推演时订的目标和计划扔到一边。</p>
<p><strong>复盘</strong>
做完后来复盘，结果达成了哪些目标，哪些是计划内的，哪些是计划外的。
过程有没有按计划的推进？为什么？
有哪些做得好的地方，有哪些可以改进的地方。
更新了哪些认知，更新做这类事情的流程。</p>
<p>你可能发现了，这不就是 PDCA 吗？这个嘛... 差不多。</p>
<blockquote>
<p>PDCA的中文含义为：计划（Plan）——实施（Do）——检查（Check）——行动（Act）。</p>
</blockquote>
<h2 id="怎么做">怎么做</h2>
<p>我做了一个模板：
<img src="/_image/2017-03-02-07-52-15.jpg" alt="">
因为我用 Mac 电脑，用 Day One 记录，用 Alfred 代码片段功能，只需要敲一个缩写，就自动把模板插入进来，总共只要几秒钟。
每次做事之前，先把推演部分填进去。第二天早上起来，记录实际的经历并进行反思。</p>
<h2 id="示例">示例</h2>
<p>下面我举几个工作和生活中应用的例子。</p>
<h3 id="推演">推演</h3>
<p>先看看推演的例子，工作中，带装修供应商看场地：
<img src="/_image/2017-03-02-08-17-18.jpg" alt="">
和线上教育潜在合作伙伴沟通：
<img src="/_image/2017-03-02-08-16-41.jpg" alt=""></p>
<h3 id="经历">经历</h3>
<p>在西安出差时，和团队一位 3 个月没见的同事吃饭的经历：
<img src="/_image/2017-03-02-08-12-25.jpg" alt="">
上次和周老师吃饭，我记录的经历：</p>
<p><img src="/_image/2017-03-02-08-15-54.jpg" alt=""></p>
<h3 id="反思">反思</h3>
<p>见网友的反思：
<img src="/_image/2017-03-02-08-24-20.jpg" alt="">
帮助同事做培训设计的反思：
<img src="/_image/2017-03-02-08-25-50.jpg" alt=""></p>
<h3 id="更新">更新</h3>
<p>跟同事见面，我复盘出来一个和熟人聊天的问题列表：</p>
<ul>
<li>最近工作怎么样？</li>
<li>最近家里怎么样？</li>
<li>最近研究什么有趣的东西？</li>
<li>最近身体健康怎么样？</li>
</ul>
<p>网友约见，我复盘出来的流程：</p>
<ul>
<li>假设和确认对方的诉求</li>
<li>告知对方自己的诉求</li>
<li>准备对方想要的信息</li>
<li>设计问题列表</li>
<li>约时间，地点</li>
</ul>
<p>上周日在北京约见社区的朋友，我就用上了这个流程，先在微信上确认我们要聊的话题，大家都有所准备，最后聊得很开心，都觉得有很多收获。</p>
<h2 id="帮助同事做培训设计的更新">帮助同事做培训设计的更新：
<img src="/_image/2017-03-02-08-27-56.jpg" alt=""></h2>
<p>每次我和朋友聊这种做事方式的时候，他们总会问：
<strong>任何事情都要这么做吗？</strong>
我认为不管大事小事，都应该提前推演，事后复盘。只不过可能不用落到文字上，比如我要上台给学生讲一句什么话，我都要提前在脑子里过一下：</p>
<ul>
<li>我要达到什么目标</li>
<li>要传递什么信息</li>
<li>要怎么说</li>
<li>期望学生会有什么反应</li>
</ul>
<p>等我说完下来后，马上思考一下目标有没有达到，学生的反应是否符合预期，刚刚自己有没有什么小动作。</p>
<p><strong>和朋友吃个饭聊个天儿都这么设计，会不会太功利啊？</strong>
我觉得不会，如果没有什么功利目的，只是单纯的加深感情，那我也要思考一下如何聊才能加深感情。
只有这样做，才能避免大家都没有准备，聊到哪儿算哪儿。避免无效的讨论，无效的社交。</p>
<p>以上就是我在实践的做事方式，我认为做任何事都是有章可循的，如果每次都随意做，就永远也做不好。
每次提炼一点经验，完善一下流程，逐步我们就可以积累很多的流程的经验，才能养成习惯，做事的质量和效率就会好很多。</p>
<p>复盘在美国叫做 AAR（After Action Review 行动后反思），联想的柳传志把它视为重要工具，在全球推广，国外员工都会说「Fu pan」。关于复盘技术也有几本书，我推荐这本：<a href="https://book.douban.com/subject/25702395/">复盘：对过去的事情做思维演练</a></p>]]></description><pubDate>Thu, 02 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何不停向自己学习]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E4%B8%8D%E5%81%9C%E5%90%91%E8%87%AA%E5%B7%B1%E5%AD%A6%E4%B9%A0/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E4%B8%8D%E5%81%9C%E5%90%91%E8%87%AA%E5%B7%B1%E5%AD%A6%E4%B9%A0/</guid><description><![CDATA[<p>人是经验动物，经验从哪里来？可以向别人学习，也可以向自己学习。
看书、听课，就是学习别人的经验。向自己学习，是自然而然发生的，比如被火烫过一次，就知道离火远一点。
反思，是刻意地向自己学习，最大化地从经历中提取经验。</p>
<p>之前一直在应用复盘技术，也跟大家分享过 <a href="http://www.jianshu.com/p/3be0964d3f40">如何通过「复盘」把成长速度提高两倍（附实例）</a>，在上周的 TTT 培训中，学到了一个「Learning by Doing - 做中学」的模型。我将二者进行了整合优化。</p>
<p><img src="/_image/20170301-1.png" alt="模型"></p>
<h1 id="模型">模型</h1>
<p><strong>目标</strong>
除了 SMART 原则，我想提的是目标要全面。
大部分人与人沟通时只会考虑信息传递的目标，没有考虑关系和情感。
另外要思考一个问题是，如何验证目标是否达到？</p>
<p><strong>计划</strong>
做任何事情之前，就算是第一次做，都要进行任务分解，拟定一个行动计划，在脑子里边推演。
这样就可以在未行动前，对做事的套路进行优化。</p>
<p><strong>执行</strong>
按计划去执行，根据实际情况灵活调整。</p>
<p><strong>产出</strong>
得到产出。</p>
<p><strong>反思</strong>
评估产出是否符合目标期望。
评估行动过程中，哪些做得好，哪些可以做的更好。</p>
<p><strong>改进</strong>
改进的是做事方法流程，大部分人常犯的错误是，反思后觉得自己一点儿没问题，都是外部环境的问题，于是不断改变目标。
哦，目标订的太高了，降一点，还是没完成，再降一点。最后方法一点儿没改进，也就没有任何成长。</p>
<h1 id="如何应用">如何应用？</h1>
<p>基于此模型，可以用任何一款笔记应用来落地，我以 Evernote 为例。
在准备阶段，建立一条笔记。
写下三个问题：</p>
<ul>
<li>期望达到什么目标（信息，情感，关系）？</li>
<li>如何验证目标已到达？</li>
<li>行动计划是什么？</li>
</ul>
<p>如果这件事是第一次做，在 Evernote 中创建行动计划，如果不是第一次做，找出已有的行动计划，看看是否需要调整。
去执行，记录实际的产出和过程：</p>
<ul>
<li>实际达到的目标？</li>
<li>实际的过程是（包括情绪、心理变化）？</li>
</ul>
<p>反思，回答如下问题：</p>
<ul>
<li>哪些地方做得好？</li>
<li>哪些地方还可以提升？</li>
</ul>
<p>最后，改进行动计划。
据此，在几次演讲之后，我总结出了一个演讲的流程：</p>
<p><img src="/_image/20170307-2.png" alt="演讲套路"></p>
<p>有一些是从书上学的，比如提前看场地的照片，做到心中有数。
有一些是血和泪的教训，比如 PPT 里的视频一播放就卡死，翻页器没电了，麦克风没声音等。</p>
<p>在我的 Evernote 中有一个叫「套路」的笔记本，记录了我提炼的各种流程。</p>
<p><img src="/_image/20170307-3.png" alt="我的套路"></p>
<p>当然，套路是用来保底的，只能保证做的不会比上次差，如果想要取得突破，可能需要一些创新，所以套路只要列出大体的框架即可。</p>
<p>你做事有套路吗？还是每次凭感觉做？
如果有，欢迎留言分享~</p>]]></description><pubDate>Wed, 01 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何交付一场内部培训]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E4%BA%A4%E4%BB%98%E4%B8%80%E5%9C%BA%E5%86%85%E9%83%A8%E5%9F%B9%E8%AE%AD/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E4%BA%A4%E4%BB%98%E4%B8%80%E5%9C%BA%E5%86%85%E9%83%A8%E5%9F%B9%E8%AE%AD/</guid><description><![CDATA[<p>回成都后，银大伟看到我发的《如何交付一场企业内训 - 某客户 OO BootCamp 总结》 ，希望我和 Suncorp Health 团队 Tech Lead 尤青松一起，完成对其团队的培训。
最近在学习课程开发，借博客大赛，总结分享给大家。</p>
<h2 id="fast-课程开发">FAST 课程开发</h2>
<p><img src="/_image/2016-11-18-18-50-00.jpg" alt="">
上图是 FAST 课程开发方法流程，FAST 是四句话的首字母缩写:</p>
<ul>
<li>Focus on problems</li>
<li>Aggregate Methods</li>
<li>Select Instructions</li>
<li>Transfigure outcomes</li>
</ul>
<h3 id="focus-on-problems---聚焦问题">Focus on problems - 聚焦问题</h3>
<p>培训课程必须与企业业务紧密结合，解决绩效问题，不然业务部门就会觉得培训浪费时间，指派一些初级员工去走个过场，而培训团队也会觉得自己这么辛苦业务部门居然不配合。</p>
<p><img src="/_image/2016-11-18-18-47-34.jpg" alt="">
在收集问题的过程中，可能会说一些很感性的描述，比如没有 Sense，这时需要问问题挖掘背后的原因。</p>
<h3 id="aggregate-methods---整合方法">Aggregate Methods - 整合方法</h3>
<p>人的精力是有限的，培训师很难同时成为技术和培训的专家，那就需要和技术专家一起来开发课程。
我采取萃取经验的方法，邀请团队的 Tech Lead 青松每堂课前列出主要的知识点，并一起讨论整合到课程中。</p>
<p><img src="/_image/2016-11-18-18-54-02.jpg" alt=""></p>
<p><img src="/_image/2016-11-18-18-51-11.jpg" alt=""></p>
<h3 id="select-instructions---精选教法">Select Instructions - 精选教法</h3>
<p>培训的内容需要通过培训手法传递到学员身上，培训内容以培训师为中心，但培训手法应以学员为中心，以提高转化率。
提到分享，我们熟知的有 Session 和 Workshop 两种形式。而培训手法则丰富得多，大致可分为以下十类:</p>
<ul>
<li>阅读材料</li>
<li>听讲和观看</li>
<li>提问和发言</li>
<li>大组讨论</li>
<li>小组讨论</li>
<li>案例分析</li>
<li>角色扮演</li>
<li>自我评测</li>
<li>学员练习</li>
<li>情景模拟</li>
</ul>
<p>有这么多教学方法，我们应该如何选择呢？
首先要知道，每一种教学方法，学员的参与度是不一样的。
我们要设计「课程心电图」，各种手法搭配使用，让学员体验过山车一样的跌宕起伏。</p>
<p><img src="/_image/UNADJUSTEDNONRAW_thumb_182d.jpg" alt=""></p>
<p><img src="/_image/2016-11-18-18-41-02.jpg" alt=""></p>
<p><img src="/_image/2016-11-18-18-41-25.jpg" alt=""></p>
<h3 id="transfigure-outcomes---优化成果">Transfigure outcomes - 优化成果</h3>
<p>虽然提前有设计，但培训过程中总有意料之外的事情，比如第二天突然加入了 QA 正荷，为了形象的解释什么是 Stub 和 Mock，我们采用了角色扮演的方式。在重构的 Coding Dojo 中，QA 的参与感较弱，我邀请她帮我做引导，问操作电脑的 Pair两个问题:</p>
<ul>
<li>你发现了什么 Smell？</li>
<li>你准备用什么手法来消除它？</li>
</ul>
<p>经过这次培训，我从 OO Bootcamp 中提取出了 <a href="https://www.jianguoyun.com/p/DT0Rjc8QiuaHBhj_tiA">TDD Bootcamp</a>(将持续优化)。</p>
<p><img src="/_image/2016-11-18-18-45-42.jpg" alt=""></p>
<h2 id="柯氏四级培训评估模式">柯氏四级培训评估模式</h2>
<p>培训的效果评估是个难题，<a href="http://wiki.mbalib.com/wiki/%E6%9F%AF%E6%B0%8F%E5%9B%9B%E7%BA%A7%E5%9F%B9%E8%AE%AD%E8%AF%84%E4%BC%B0%E6%A8%A1%E5%BC%8F">柯氏四级培训评估模式</a>(Kirkpatrick Model)给了个大的方向，它由国际著名学者威斯康辛大学（Wisconsin University）教授唐纳德.L.柯克帕特里克（Donald.L.Kirkpatrick）于1959年提出，是世界上应用最广泛的培训评估工具，在培训评估领域具有难以撼动的地位。
四级分别为:</p>
<ul>
<li>反应</li>
<li>效果</li>
<li>行为</li>
<li>成果</li>
</ul>
<h3 id="反应---评估被培训者的满意程度">反应 - 评估被培训者的满意程度</h3>
<p><img src="/_image/2016-11-18-17-59-25.jpg" alt=""></p>
<p><strong>改进建议</strong></p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">内容和形式都非常不错。TDD那部分，也许可以加个录制好的视频（就像重构的那个视频一样）。时间安排很合理。</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">非常好，非常好，是我参加过最有干货的培训</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">时间安排希望可以有间隔，这样可以有更多的时间去消化巩固所学的东西 :)</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">连续的培训，中间虽然有homework，但是因为上班，所以自我实践得时间不太够，如果能够中间间隔一天，或者前2天后中间过了几天在来，让我们在工作中实践一下然后回来课堂印证应该不错</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">[内容]：可能时间不充裕，内容不够详细，但内容很完整，很连贯，课程间的逻辑也很清晰，</span></span>
<span class="line"><span style="color: #c9d1d9">[形式]：以实践为主的形式使氛围非常活跃，学得很快乐。</span></span>
<span class="line"><span style="color: #c9d1d9">[时间安排]：很好</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">形式：讲课过程中，有好几次讲着讲着就暂停了，感觉是进入了自己的思考，其实有任何新的想法可以说出来大家一起讨论，也会让大家get到讲师的思考</span></span>
<span class="line"><span style="color: #c9d1d9">形式：也许可以再开放一点，更加激情一些，可以带动学员的积极性</span></span>
<span class="line"><span style="color: #c9d1d9">内容：布置了作业，需要大家一起code review，不然学员写了作业没有提升，不知道自己写的怎么样（可以总结下大家的公共问题，然后一起解决，这次可能也有很多人没做作业，以后的培训如果大家都做了作业可以这样run一次）</span></span></code></pre>
<h3 id="学习效果---测定被培训者的学习获得程度">学习效果 - 测定被培训者的学习获得程度</h3>
<p>在课程开始时，收集了大家关于 TDD 的问题，如下:
<img src="/_image/2016-11-18-17-42-20.jpg" alt="">
课程结束时，邀请大家尝试回答以上问题， 以测试大家的知识获取程度。
并邀请大家在金数据填写自己的感想:</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">第一天的Tasking：知道了做任务拆分时可以遵循的一些原则，如MECE。以前都是凭直觉在拆分任务。最令我感受最深的还是用画图的形式将问题域和解决方案域可视化出来，这样既可以作为pair之前或团队内部的沟通工具，同时又可以避免让自己陷入深度优先的思考方式从而减少遗漏。同时，启发式的互动教学是我在以后的培训过程当中可以练习。</span></span>
<span class="line"><span style="color: #c9d1d9">第二天的单元测试：虽然写单元测试知道测什么怎么测，也能熟练运用。但是却不能一句话概括单元测试，以及单元测试原则，这是自己应该要思考的地方。通过这堂课加深了对单元测试的理解，以及First原则和Right-BICEP原则，这样以后给新人讲解单元测试的时候可以用上。感受最深的就是最后关于Mock和Stub的角色扮演，十分恰当的例子，让大家对这两种测试替身有了更深的理解。</span></span>
<span class="line"><span style="color: #c9d1d9">第三天重构：对我来说，以前记住的那些坏味道名字和重构手法已经快忘记了。。主要还是因为平时没有怎么用到，即便是用到的时候也不会去管这个手法叫什么名字，或者说消除的是什么坏味道，总是凭直觉觉得就该这么重构。通过这堂课以后觉得自己平时的练习比较少难免会有生疏。另外，codedojo的形式可以很好的暴露每个人的编程习惯，pair或团队的默契程度，以及如何让团队达成一致等等问题。</span></span>
<span class="line"><span style="color: #c9d1d9">第四天TDD：我之前给别人做TDD培训的时候基本上是自己的灌输TDD，缺少对受众进行启发式引导，互动性不强，所以效果可能没那么好，通过这几次的课程让我深刻体会了这种方式的好处。通过对codedojo过程中发现的各种问题及时进行针对性解答，既解答了大家在实践TDD过程中的一些困惑，同时也让大家知道应该怎么做才算是好的TDD实践。</span></span>
<span class="line"><span style="color: #c9d1d9">最后的juggling ball的例子太完美了。服。。</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">对我个人而言，以前觉得TDD会让开发变慢，在工作中有时候会采用，但是如果是自己的业余项目的话，可能就根本不会，也感受到后期时候代码的难以维护性，以后应该会主动去使用TDD，在自己的业余项目中也是</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">1，只重构代码可读性差，然后需求变动快的代码</span></span>
<span class="line"><span style="color: #c9d1d9">2，不重构代码丑，但是完全没bug的代码</span></span>
<span class="line"><span style="color: #c9d1d9">3，不重构代码丑，但是完全没用到的代码</span></span>
<span class="line"><span style="color: #c9d1d9">4，重构过程是同先解决命名，明确代码逻辑；其次解决代码重复的问题；以此为基础才逐渐抽象出设计模式</span></span>
<span class="line"><span style="color: #c9d1d9">5，重构不一定全部都要套设计模式，觉得代码思路清晰即可</span></span>
<span class="line"><span style="color: #c9d1d9">6，适当重构，只解决当前需要的重构，也就是说如果很多类型确定了一定不会再变了，就不需要增加类型扩展等功能（其他模式同样适用）</span></span>
<span class="line"><span style="color: #c9d1d9">7，一定记住，从最简单的开始做，不要一开就动大手脚重构</span></span>
<span class="line"><span style="color: #c9d1d9">8，TDD依赖tasking，UT，implement，refactor：</span></span>
<span class="line"><span style="color: #c9d1d9">首先tasking要把需求明确，通过穷举输入输出，确定功能的边界；还要穷举所有的处理过程，确定实现思路；要满足不重不漏的原则MEMC</span></span>
<span class="line"><span style="color: #c9d1d9">其次开始单元测试代码，测试用例来自于tasking中的输入输出，并且以输入输出驱动出处理过程；测试需要满足FIRST, Right-BICEP原则</span></span>
<span class="line"><span style="color: #c9d1d9">再次实现具体的逻辑，使测试通过；遵循baby step（fake it，obvious impl，triangle）</span></span>
<span class="line"><span style="color: #c9d1d9">最后进行重构，需要多使用快捷键，看懂code smell，并用对应的tech skill消除code smell（问题的关键，否则重构就是在乱重构）</span></span>
<span class="line"><span style="color: #c9d1d9">9，TDD时，直接针对tasking分解出的最外层需求开始做，逐步驱动出自己的解决方案（避免从最里层做产生的多余测试）</span></span>
<span class="line"><span style="color: #c9d1d9">10，遇到不知道如何实现时，从最外层抽象的解决方法开始逐步细化到具体的实现中</span></span>
<span class="line"><span style="color: #c9d1d9">11，每个tasking在实现时一定要有抽象层次，每层只做每层的事情，逐步细化</span></span>
<span class="line"><span style="color: #c9d1d9">12，重构的时候，一定要小步，确保重构的小步（不能改变测试，同时需要保证测试在每个步骤后是通过的）</span></span>
<span class="line"><span style="color: #c9d1d9">13，TDD过程中，时刻保持代码的语义明确</span></span>
<span class="line"><span style="color: #c9d1d9">14，测试代码和实现代码的重复也是code smell</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">收获和感受：以前只是听过TDD的大名， 并没有从心底认可它，这次参加了小波老师的培训，收获颇丰，从理论到实践，完全体会了TDD的好处，比如：通过Tasking加深对需求的理解，在编码前分析画图；分离关注点，减小实现的压力；得到更迅速的反馈，一切尽在把握之中；测试驱动开发，反推实现逻辑，从Red到Green；有单元测试反馈，再也不担心重构代码会引起各种未知结果。</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">[收获]：这次完整的学习和实践了一遍TDD，更新了我对于写代码的认识，更深刻地理解了TDD的好处以及如何实践TDD。也帮我看到了更多思考问题的方法，比如：复杂问题拆解成更小的问题，从特殊到一般的归纳推理等。还有看到idea快捷键在重构方面的强大</span></span>
<span class="line"><span style="color: #c9d1d9">[感受]：感觉收获挺大的，但也担心回到工作中，又会回到自己习惯的开发方法。</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">感觉自己进步很大，自己的编程习惯和编程思维受到了应该说有点颠覆影响，非常高兴公司和波哥能给提供我这样的机会</span></span></code></pre>
<h3 id="行为---考察被培训者的知识运用程度">行为 - 考察被培训者的知识运用程度</h3>
<p>根据影响力原则中的承诺与一致原则，我邀请大家在金数据填写接下来会采取的行动:</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">接下来的Actions：</span></span>
<span class="line"><span style="color: #c9d1d9">1. 跟团队每个人过一下OO bootcamp的感受，跟踪大家的Action，同时评估下一步可能引入的培训</span></span>
<span class="line"><span style="color: #c9d1d9">2. 本月内在团队内部再搞一次TDD的codedojo</span></span>
<span class="line"><span style="color: #c9d1d9">3. 用6周时间复习6大类重构手法。每周一个大类。刻意练习小步重构</span></span>
<span class="line"><span style="color: #c9d1d9">4. 将遇到的Story卡进行可视化的任务拆分。去影响团队所有人养成这种习惯</span></span>
<span class="line"><span style="color: #c9d1d9">5. 希望有机会能和小波老师一起pair主持codedojo或code retreat等活动。锻炼自己同时给社区做贡献。</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">接下来（学习和练习计划）</span></span>
<span class="line"><span style="color: #c9d1d9">首先会把Refactor网站上的code smell和tech skill 总结提炼一遍（目前正在做，每过一个都形成了一篇博文，就是一些简单的说明和总结，有点类似笔记）</span></span>
<span class="line"><span style="color: #c9d1d9">其次会把Design pattern过一遍（目前也在做，通过强制自己使用设计模式练习设计模式，一遍理解什么问题可以用到设计模式，使用哪种设计模式）</span></span>
<span class="line"><span style="color: #c9d1d9">最后会通过网上的kata练习所有TDD相关的知识点，把上述一点的内容窜起来，熟练掌握TDD的思想和做法，并应用到项目中去</span></span>
<span class="line"><span style="color: #c9d1d9">在项目中会直接练习TDD，虽然现在是半桶水</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">[接下来的行动]：要拿出更多的时间练习TDD，让练习中不自觉的改变自己的习惯。趁热把收获到的东西用文学整理出来。</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">后面纠正自己的不良编程习惯和编程思维，再自己的项目中多多实践，不要将就，要先理清思路，再coding</span></span></code></pre>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">接下来的行动：</span></span>
<span class="line"><span style="color: #c9d1d9">通过这次培训深刻体会到了TDD的好处，以后要落实到工作中！</span></span>
<span class="line"><span style="color: #c9d1d9">1. 写总结，加深对所学的理解；</span></span>
<span class="line"><span style="color: #c9d1d9">2. 有意识的去加强锻炼重构快捷键度使用；</span></span>
<span class="line"><span style="color: #c9d1d9">3. 运用TDD在工作中，增加实践；</span></span>
<span class="line"><span style="color: #c9d1d9">4. 借鉴TDD中的模式(将大的、难的拆分成简单的、易实现的，分离关注点)，运用在新技术学习中；</span></span></code></pre>
<hr>
<p>并持续提醒大家执行:</p>
<p><img src="/_image/2016-11-18-18-22-09.jpg" alt=""></p>
<h3 id="成果---计算培训创造的经济效益">成果 - 计算培训创造的经济效益</h3>
<p>理论上可以对比培训前后迭代速率大概计算培训效益。
不过真实项目中可变因素太多，以我现在的能力和经验，还无法准确量化。</p>
<h2 id="培训师-vs-讲师">培训师 VS 讲师</h2>
<p>一直搞不清楚培训师和讲师到底有啥区别，刚刚体会到一点：课程开发能力是讲师和培训师的主要区别。
讲师通常有现成的课程，甚至 PPT，只需根据 PPT 进行讲解，形式以讲为主。
培训师需要调研绩效问题、发现培训需求、开发培训课程、布置作业、定期检查成果、分阶段进行深化训练，根据员工情况量身打造所授内容和授课方法。</p>
<p>感谢 尤青松，杨倚，张鑫，林晨，杨岳彤，高诗意，余正荷!</p>]]></description><pubDate>Fri, 18 Nov 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何从「程序员」成长为「培养者」]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E4%BB%8E%E3%80%8C%E7%A8%8B%E5%BA%8F%E5%91%98%E3%80%8D%E6%88%90%E9%95%BF%E4%B8%BA%E3%80%8C%E5%9F%B9%E5%85%BB%E8%80%85%E3%80%8D/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E4%BB%8E%E3%80%8C%E7%A8%8B%E5%BA%8F%E5%91%98%E3%80%8D%E6%88%90%E9%95%BF%E4%B8%BA%E3%80%8C%E5%9F%B9%E5%85%BB%E8%80%85%E3%80%8D/</guid><description><![CDATA[<img src="/_image/20170405-1.png">
<p>最近，看到越来越多当初一起写代码的程序员朋友，成为了 Team Lead，Tech Lead，Manager，Buddy，Sponsor，Coach，Trainer，Mentor。我一方面为他们感到骄傲，骄傲他们走出了舒适区，从一名单纯的程序员，走进了培养者的行列！另一方面也为他们感到担心，担心他们会和我刚开始那样 - 手足无措。</p>
<p>去年 6 月，在工作的第 8 个年头，我加入了思特沃克学院，从程序员变成了培训师。
我还清楚地记得那时我满脑子的困惑：</p>
<ul>
<li>讲一天课嗓子会不会哑啊？哑了第二天怎么办？</li>
<li>学员觉得我的课很无趣怎么办？我会不会像高中的政治老师一样，成为催眠师？</li>
<li>学员在课堂上提出刁钻的问题挑战我，我该如何应对？</li>
<li>...</li>
</ul>
<p>我还清楚地记得我做的第一次培训，与其说是培训，不如说是演讲。一个人干巴巴地讲了一天，学员在下面不断地点头，偶尔一下点过了碰到桌面才被惊醒，擦掉嘴角的口水继续点头。不过，从那次以后，我就再也不担心嗓子会哑了。
为了增强自信心，我参加了「视觉引导工作坊」，「发声训练」，「幽默训练营」。
甚至在做了 10 个月培训后，还自掏腰包参加最贵的 TTT 培训。</p>
<p>我看到我的程序员朋友们，在成为培养者后，同样感到迷茫和困惑，我想把我的一点心得分享给大家，期望能帮大家少走一些弯路。
本文不谈为什么要成为培养者，只谈<strong>培养者应该具备的心态</strong>，<strong>培养者可以使用的技术</strong>和一些<strong>实用的技巧</strong>。</p>
<hr>
<p><img src="/_image/2017-05-18-17-47-24.jpg" alt=""></p>
<p>成为培养者之后，在学员们一次一次的正向反馈中，我更加热爱这个角色。并逐渐找到了使命：</p>
<blockquote>
<p>成为一名专业的培养者，灵活运用培训，咨询，教练，引导，辅导等技术，身体力行地，影响他人做出积极的改变！</p>
</blockquote>
<p>如何解读呢？
首先，培训、咨询、教练等<strong>都是技术</strong>，作为一名培养者，不应该限定自己使用什么技术，就好比程序员不应该限定自己是「Java 程序员」，「Ruby 程序员」一样。只要是可以发展他人的技术，都应该为我所用。
其次，我认为培养者必须<strong>身体力行</strong>。作为培养者，如果我自己都没做过，就教给别人，那是不负责任；我做过了却不持续做，说明我不是真的认同。有特别信奉一句话：</p>
<blockquote>
<p>The day you stop learning, the day you should stop training.</p>
</blockquote>
<p>如果我自己都不学习不成长，怎么能要求别人学习成长呢？
再次，人只能自己改变，没有人可以改变别人，我只能改变自己，从而<strong>影响别人</strong>。
最后，<strong>积极的</strong>改变。不能仅仅限定为教技术，心态的变化，习惯的养成比学会具体的技术要有价值的多。</p>
<p>培养别人的过程就像是把水从一个瓶子倒入另一个瓶子。首先需要打开对方的瓶盖，打开瓶盖就是建立信任，安全感。让学员知道凭什么要跟我学，能学到什么，学了有什么用，我会如何教，他需要如何配合等等。
其次，如果直接对着对方瓶口就倒，大部分水会流出去，因为对方的瓶子有瓶颈，那就是学员过去的经历和经验。我们需要借助一些工具，才能把水又快又多地倒进对方的瓶子。
所以，我们要调整好自己的心态，运用发展他人的技术，才能影响他人做出积极的改变。</p>
<h1 id="心态篇">心态篇</h1>
<blockquote>
<p>不必等自己成为专家，才开始培养别人。</p>
</blockquote>
<p>培养者应该放低自己，不是「教」什么，而是抱着一种「分享」的心态。大海之所以能纳百川，就是因为它把自己放得足够低。</p>
<blockquote>
<p>如果总觉得问题在别人身上，就永远无法提高自己。</p>
</blockquote>
<p>刚刚开始做培训时，有个问题让我夜不能寐：学员不跟我互动。我提出一个问题，没有人回答，我想请学员做个分享，没人愿意站起来。于是我抱怨学员不够积极主动。时间长了，我就发现，根本不可能遇到一班积极主动的学员。我应该从自己身上找原因，于是我带着这个问题请教一位前辈，他的答案是：从始至终都要建立相互信任，轻松的学习氛围。当我自己做出了改变后，再也没有冷过场。（详情见后面的技巧篇）</p>
<blockquote>
<p>程序员善于发现问题，而培养者需要善于发现亮点。</p>
</blockquote>
<p>比起批评、指出不足、提出建议，更加重要的是：赞美、指出亮点、鼓励保持优点。
一旦学员的积极变化得到鼓励，他就会更有提升自己的动力，也就自然而然会去关注自己需要提升的地方。</p>
<blockquote>
<p>比起我说了什么，我做了什么更重要。</p>
</blockquote>
<p>为了给学员传递可视化实践的价值，我会把可视化融入到整个培训中，而不是通过言语来告诉他们。</p>
<blockquote>
<p>比起学员说了什么，他做了什么更重要。</p>
</blockquote>
<p>我们需要根据学员的反馈优化教学方法，培养者需要培养一种「全景式沟通」的能力。大部分人在沟通时只关注信息的传递，而培养者需要时刻关注对方的状态，以及沟通双方的关系和情感。</p>
<h1 id="技术篇">技术篇</h1>
<p>如果不知道知识对自己有什么用，很难提起学习的兴趣，也难有决心克服学习中遇到的困难。
知识是用进废退的，我们应该极其功利地学习，甚至忘了学习这件事，专注解决实际问题，学习只是解决问题过程中的一环。
培养者有一个很大的责任，是为学习赋予意义。
比如学习编程语言，并不是为了以后用它找工作，或者在脑子里留下印象，以便以后要用的时候能更快地捡起来。而是学会如何学习一门编程语言，只有这样，才能应对五花八门，层出不穷的语言。
培养者要会<strong>讲故事</strong>，描绘学成后的场景，激发学员的学习意愿。</p>
<p>在学习过程中：
运用<strong>教练技术</strong>，用提问的方式，让学生自己找到解决方案；
在进行团队讨论时，运用<strong>引导技术</strong>，帮助他们从同伴那里学习；
在学员遇到问题时，运用<strong>辅导技术</strong>，循循善诱，用提问的方式激发学生自己找到答案；
在学员掉坑里时，运用<strong>咨询技术</strong>，用丰富的经验帮学生少走弯路。</p>
<p>每一门技术都是一个很大的领域，但我们并不需要成为专家才能应用这些技术，推荐几本入门书：</p>
<ul>
<li><a href="https://www.amazon.cn/%E5%9F%B9%E8%AE%AD%E5%B8%88-%E9%83%AD%E5%9F%8E/dp/B004GLIX62/ref=sr_1_2?s=books&#x26;ie=UTF8&#x26;qid=1490845922&#x26;sr=1-2&#x26;keywords=%E5%9F%B9%E8%AE%AD%E5%B8%88">《培训师》</a></li>
<li><a href="https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00K9NAZ08/ref=sr_1_7?ie=UTF8&#x26;qid=1490845892&#x26;sr=8-7&#x26;keywords=%E5%94%A4%E9%86%92">《唤醒沉睡的天才》</a></li>
<li><a href="https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B01FIEVAQA/ref=sr_1_1?s=books&#x26;ie=UTF8&#x26;qid=1490845941&#x26;sr=1-1&#x26;keywords=%E5%BC%95%E5%AF%BC">《引导:团队群策群力的实践指南》</a></li>
<li><a href="https://www.amazon.cn/%E5%80%BE%E5%90%AC%E6%9C%AF-%E8%BD%BB%E6%9D%BE%E5%AE%9E%E7%8E%B0%E9%AB%98%E6%95%88%E8%83%BD%E6%B2%9F%E9%80%9A%E7%9A%84%E7%A7%98%E5%AF%86-%E6%97%A5-%E6%9D%BE%E6%A1%A5%E8%89%AF%E7%BA%AA/dp/B00HCA3MOM/ref=sr_1_1?s=books&#x26;ie=UTF8&#x26;qid=1490845977&#x26;sr=1-1&#x26;keywords=%E5%80%BE%E5%90%AC%E6%9C%AF">《倾听术：轻松实现高效能沟通的秘密》</a></li>
</ul>
<h1 id="技巧篇">技巧篇</h1>
<p><strong>如何建立信任？</strong></p>
<ul>
<li>提前和学员单独认识</li>
<li>每次互动时叫出学员的名字</li>
<li>鼓励每一次提问和发言</li>
</ul>
<p><strong>如何邀请学员提问？</strong>
提问的时候尽量避免使用「问题」这个字眼，因为问题可以是 Problem，也可以是 Trouble。当这么说时，提问就是在给别人制造麻烦。我会说：「有没有什么疑惑或者任何想法跟大家分享一下？」
提问后，面带微笑环视全场，看到谁有意向，就给他一个鼓励的眼神。
一旦有人提问，先认同，消除提问者害怕自己问了一个傻问题的担心。
「这是一个很好的问题」，当这样说的时候，也为自己争取到了一点思考的时间。
回答结束后，确认一下：「有回答到你的问题吗？」
感谢对方的提问。</p>
<p><strong>使用积极的词汇</strong></p>
<ul>
<li>用「提升空间」代替「缺点」</li>
<li>用「宵夜」代替「作业」</li>
<li>用「困惑」代替「问题」</li>
</ul>
<p>如果迫不得已必须要说消极的词汇，也尽量让它们从学员的口中说出来。比如：</p>
<blockquote>
<p>最快完成的小组将获得一份神秘的奖励，没有在规定时间内完成的小组将接受严厉的~~~</p>
</blockquote>
<p>配合一个邀请的手势，学员们一定会异口同声地说「惩罚」。然后我就说，是你们自己说的，不关我的事哦，甩锅成功。
这里我避免说出「失败」的小组和「惩罚」这两个不够积极的词汇。</p>
<p><strong>只和过去的自己比较</strong>
学员过去的经历不同，理解能力不同，切忌拿他们互相比较，那样领先的学员会很爽，他甚至会鼓励我举行更多的竞赛游戏，但对于进度较慢的学员却是一次又一次的打击，只会让 TA 失去学习的乐趣。
只让学员和昨天的自己，上个星期的自己比较，肯定他们任何一点点的进步，他们就会越来越有信心，越来越享受学习。</p>
<p><strong>偶尔使用同伴压力</strong>
有的学员可能会觉得自己是最优秀的，这时我也不需要告诉他什么，只需要将更优秀的学员可视化出来，让他感受到同伴压力。比如让他们分到一组做练习。</p>
<p><strong>让每个学员都有挑战</strong>
有的学员确实能力较强，可以给他们设立更高的挑战，比如缩短他们做练习的时间，增加题目的难度，确保每个人都有收获。</p>
<p><strong>上课时间到了，人没齐，怎么办？</strong>
通常的做法是等，但我要说这是<strong>大错特错</strong>的，因为这是在<strong>惩罚守规则的人</strong>。
对按时到位的人而言：既然准时到还要等，不如我下次也晚点到，避免浪费我的时间。
对迟到的人而言：迟到了没有惩罚，也没错过什么，下次还这么干。所以这么做的结果就是，越来越不齐。
我的做法是，准时开始，并且跟大家强调一下我们<strong>不能惩罚守规则的人</strong>。
通常开场都是破冰或自我介绍之类的，小部分人错过了也没大碍。如果课程开始的内容就非常重要，那我也会准时开始，讲点别的有价值的东西，作为对准时到的人的奖励。</p>
<p><strong>用手做引导，整只手</strong>
在引导学员发言时，一定要用整只手，而不是手指，或手里握着的任何东西。这是对学员的尊重。</p>
<p><strong>用词精准</strong>
避免说「可能」，「大概」之类的词语，听起来没有底气。
课间休息时，不要说<strong>我们大约休息 10 分钟</strong>。而是<strong>我们休息 X 分钟， AA 点 BB 分正式开始下一堂课</strong>。</p>
<p><strong>根据学生的能量安排教学活动</strong>
时刻关注学员的能量水平，调整课程的先后顺序，甚至同一门课，也可以用不同的形式。
<img src="/_image/UNADJUSTEDNONRAW_thumb_182d.jpg" alt=""></p>
<hr>
<p>以上是我的一点心得，如果对朋友有点帮助，我将感到十分开心~</p>]]></description><pubDate>Wed, 05 Apr 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何优雅地称赞和被称赞]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E5%9C%B0%E7%A7%B0%E8%B5%9E%E5%92%8C%E8%A2%AB%E7%A7%B0%E8%B5%9E/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E5%9C%B0%E7%A7%B0%E8%B5%9E%E5%92%8C%E8%A2%AB%E7%A7%B0%E8%B5%9E/</guid><description><![CDATA[<p>有一次参加一位同事在办公室做的分享，觉得收获很大，结束后专门跑过去感谢这位同事。
「你今天这个分享很棒哦！」我说。
同事说：「谢谢小波老师夸奖，在小波老师面前班门弄斧了。」
我当时就感觉气氛有点尴尬，本来是去感谢同事的，但给人感觉是上级对下级的表扬和肯定，同事心里可能会有点不舒服。
哎，想赞美一下人，咋这么难呢？</p>
<p>不仅如此，有时候我也收到别人的赞美，比如身材好啦，颜值高啦，有一个好妻子啦，有一对可爱的儿子啦，人生赢家啊什么的。
每每收到这样的赞美时，我都不知道该如何回应，只能尴尬地脸一红，挂上王宝强式的傻笑，迅速转移话题。</p>
<p>我有位亦师亦友的前辈，我跟他交往后学到了很多培训、教练方面的技术，他也常常夸我进步快，每当他夸我时，我总是说：都是您教的好啊。
终于有一天，他忍不住了说，每次都是这句话，让我感觉好不走心哦。</p>
<p>到底该怎么优雅地赞美他人和回应他人的赞美呢？
我最近终于找到了答案，竟是如此简单。</p>
<h2 id="认真观察是赞美的前提">认真观察，是赞美的前提</h2>
<p>在研究如何赞美之前，首先要知道你为什么要赞美别人，赞美是手段，而目的是什么呢？
目的当然是让对方开心，照顾对方的情感需求，拉近彼此的关系。具体来说是要让对方感受到「被关注」和「被肯定」。
所以赞美的时候，一定要言之有物，虚实结合，既要拔高，又要有细节支撑，不然会适得其反。
所以赞美的前提是认真观察，要真的把心放在对方身上，发现对方的变化，这样对方才会觉得走心。</p>
<p>假设一名男性，每天都夸妻子或女友：亲爱的你今天真漂亮！
刚开始几次可能对方还会很开心，不出一个星期，对方一定会问，具体哪里漂亮啊？
这时你要是支支吾吾说不出来，就等着跪键盘吧。
如果这时你说：「哪里都漂亮！」，没准儿也能蒙混过关，但也撑不过三天。
**没有细节支撑的赞美是苍白无力的。**对方不仅不会开心，还会觉得你在糊弄她。</p>
<p>赞美时一定要加上细节：
「亲爱的，你今天真漂亮！让我看看，你今天用了新的眼影吧，和你的肤色很搭哦。」
「亲爱的，你今天看起来好有活力，是因为这个可爱的发卡吗？」</p>
<h2 id="表达你的心情就是最好的回应">表达你的心情就是最好的回应</h2>
<p>同样，在讨论如何回应赞美前，也要用 TA 视角分析一下，为什么对方要赞美你呢？
对方赞美你，当然是为了让你开心咯，同时也表达了对方在认真关注你，那我们在回应时，就要让对方知道我们在接受 TA 的赞美时的开心和感谢 TA 对你的关注。
接着用上面的例子：「亲爱的，你今天真漂亮！让我看看，你今天用了新的眼影哦，和你的肤色很搭哦。」
「你这样夸我，我好开心呀，你对我这么用心，我感觉好幸福。谢谢亲爱的！」</p>
<p>怎么样，是不是很简单？请大胆尝试哦，当然，有任何不良反应，欢迎留言交流。
对了，不要问我是怎么从木头理工男变成暖男的，这是一个秘密，如果你答应会为我保守秘密，并且告诉身边的朋友，让大家一起来保守秘密，我就告诉你，因为我订阅了《融核影响力》专栏，它是我的亦师亦友的周老师十几年咨询培训经验中的经验总结，基于认知心理学，并且通过 108 本沟通类书籍的验证，很多小伙伴都认为这是最棒的沟通技术哦，只要学一套技术，职场、家庭、社交如鱼得水，欢迎一起来学习交流~</p>]]></description><pubDate>Wed, 04 Jul 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何制定辅导计划]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%88%B6%E5%AE%9A%E8%BE%85%E5%AF%BC%E8%AE%A1%E5%88%92/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%88%B6%E5%AE%9A%E8%BE%85%E5%AF%BC%E8%AE%A1%E5%88%92/</guid><description><![CDATA[<img src="/_image/image_2023-11-04-21-40-48.png">
<h2 id="新的团队推敏捷的时候作为敏捷教练应如何提前做好计划呢-大概要考虑哪些维度呢">新的团队推敏捷的时候，作为敏捷教练，应如何提前做好计划呢？ 大概要考虑哪些维度呢？</h2>
<p>通常的步骤是：摸清现状，确定目标，找出差距，制定策略，度量调整。</p>
<p>现状可以从需求管理，团队协作，配置管理，质量保障四个维度去调研，各家公司都有自己都工具，比如 TW 的 「AMM」，优普丰的「精益敏捷平衡轮」；</p>
<p>和团队的领导，关键角色，业务方以及重要的干系人成立转型小组，一起共创要达到的目标；
用目标减去现状就是差距；</p>
<p>根据差距制定辅导的计划，比如提升透明度，加强流动，需求价值排序，需求拆解，单元测试等，落实到具体的时间阶段，引入外部专家资源等；</p>
<p>制定周期性回顾计划，转型小组一起回顾计划执行情况，调整改进。</p>
<p>到团队里后，从「人-事-果」三个维度关注。
人，关注人的状态，情绪，团队士气，帮助团队破冰，建议信任与尊重；
事，不断细分工作项，提升透明度，加速流动；
果，引导团队关注用户价值，商业价值，不要做更多，而是创造更大的价值。</p>
<h2 id="来到一个新的团队之后作为敏捷教练可能会遇到哪些挑战性的问题呢以及如何应对这些挑战呢">来到一个新的团队之后，作为敏捷教练，可能会遇到哪些挑战性的问题呢？以及如何应对这些挑战呢？</h2>
<p>保持真诚、开放、透明、中立，就没有挑战性问题。
知道答案就贡献想法，不知道就用引导的方式帮助团队，决定权始终在团队手里。</p>]]></description><pubDate>Sun, 11 Oct 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何可视化需求状态和团队状态？]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%8F%AF%E8%A7%86%E5%8C%96%E9%9C%80%E6%B1%82%E7%8A%B6%E6%80%81%E5%92%8C%E5%9B%A2%E9%98%9F%E7%8A%B6%E6%80%81%EF%BC%9F/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%8F%AF%E8%A7%86%E5%8C%96%E9%9C%80%E6%B1%82%E7%8A%B6%E6%80%81%E5%92%8C%E5%9B%A2%E9%98%9F%E7%8A%B6%E6%80%81%EF%BC%9F/</guid><description><![CDATA[<h2 id="问">问</h2>
<p>我们团队在实践 Scrum，每两周一个 Sprint，一个 Sprint 有 100 多个需求。
我们把几十名技术人员，按前端、测试等不同职能，划分为多个3-10人的小团队。然后围绕业务，按职能矩阵的方式，组成了几个 Scrum 团队。每个 Scrum 团队同时负责多款产品。
现在遇到的困难是，需求管理、团队管理的成本都很高，整个大团队的进展没办法直观、及时获取到。
去年年初尝试过使用精益看板，但是大家不愿意抄写那么多用户故事，也为了统计方便，就改为使用 JIRA 来管理，但又引入了更新 issue 状态不及时问题。现在完全无法直观看到全局进展，仅靠 Sprint 结束之后的数据统计，来判断这个 Sprint 是否有进步。我也想尝试 Scrum of Scrums 的方式，但是能获取到的资料有限。这些问题不解决，就会制约团队扩大规模。我也经常在想是不是我们哪里做错了，小波有什么建议吗？</p>
<h2 id="答">答</h2>
<blockquote>
<p><strong>如何及时直观地了解需求状态和团队状态？</strong>
需求状态包括：什么时间交付哪些特性，哪些已经完成了，哪些正在开发中，哪些被阻塞了等。
团队状态包括：谁在做什么事，哪个环节是瓶颈，谁被卡住了需要帮助等。</p>
</blockquote>
<p>这个话题涉及 Scrum 的五个价值观之一「开放」，开放包括组织层面的开放和个人层面的开放。
组织层面，将所有的信息可视化出来，包括用户需求，干系人期望，交付计划，项目进度，用户反馈等。打造一个「信息化工作场所」，任何人走入这个场所都可以快速获取到想要的信息。
个人层面，开放地学习新的实践，接纳他人的反馈等。</p>
<p><strong>如何可视化需求状态？</strong>
在实施 Scrum 时我们通常会用「用户故事 User Story」来描述产品需求，用「产品待办列表 Product Backlog」来组织「用户故事」。可是，在一个个迭代中，不断地完成一些需求，又新增一些需求，日复一日，好像没有尽头。
另外由于产品待办列表是个一维的列表，也难以直观地呈现产品的全局状态。</p>
<p><img src="/_image/2018-03-17-18-21-34.jpg" alt="">
Jeff Patton 提出了一个实践：用户故事地图 User Story Mapping。它可以很好地在需求拆分的过程中保持需求的全景，并且用二维地图的形式呈现多样的信息。比如通过贴绿色的便签表示已完成，贴红色的便签表示被阻塞。</p>
<p><strong>如何可视化团队状态？</strong>
我们可以用状态墙可视化项目状态，物理的或电子的都可以。
<img src="/_image/2018-03-17-18-25-40.jpg" alt="">
通过在需求卡片上贴头像的方式，可以直观地显示谁在做什么事。通过设置 WIP Limit，可以直观地显示出团队的瓶颈。想知道谁被阻塞了，可以增加一个 Block 的状态来表示。总之，你可以通过自定义来扩展状态墙呈现的信息。
但是，不管用物理墙还是电子墙，都可能会遇到状态更新不及时的问题。怎么解决呢？
从机制上，在站会前或站会中更新状态墙，起码可以保证状态墙能按天的节奏更新。
但更重要的是要找出为什么大家不愿更新状态？是不是没有动机？为什么不能坚持更新？是不是没有动力？
换位思考一下，做了这个事对我没什么好处，不做这个事对我没什么坏处，那我为什么要做呢？
我们帮助团队养成一个新的习性，就要去给他们安上动机和动力，减少执行中的障碍。对及时更新的成员给予正向反馈，对不及时更新的成员给予负向的反馈。</p>
<p>说完了组织层面的开放，来说说个人层面的开放。
作为敏捷的导入者，要以身作则地展示自己的开放。倾听，接纳，换位思考，不要把团队成员当成一个整体，而是真正去关心每一个独特的「人」。通过一对一教练，引导，辅导帮助成员理解、认同、适应新的习惯。</p>
<h2 id="总结">总结</h2>
<p>我们可以用「用户故事地图」和「项目状态墙」来可视化需求状态和团队状态。
引入一个实践时，给团队讲清楚这个实践的价值，达成团队共识，约定不执行的惩罚措施（比如请所有人喝酸奶），在回顾会议中讨论是保留，改进还是放弃。
人有「从众心理」，都希望自己是合群的，因为做大多数更有安全感，所以达成团队共识很重要。达成共识后，要注意「破窗理论」，一旦有人执行不力，要立即严肃处理，不然其他人就会效仿。如果个别人总是出现问题，那就要跟他单独沟通，尝试去理解他，帮助他理解实践的价值，如果实在不行，恩威并施，争取让他在行为上与团队保持一致。</p>]]></description><pubDate>Sat, 17 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何回答学员问题]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%9B%9E%E7%AD%94%E5%AD%A6%E5%91%98%E9%97%AE%E9%A2%98/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%9B%9E%E7%AD%94%E5%AD%A6%E5%91%98%E9%97%AE%E9%A2%98/</guid><description><![CDATA[<img src="/_image/IMG_1195.JPG">
<p>作为讲师，为什么你想跟学员互动的时候，学员不愿意提问呢？</p>
<blockquote>
<p>因为学员可能担心自己的问题太「傻」，怕会被讲师评判，被同学嘲笑。</p>
</blockquote>
<p>不专业的培训师会在学员还没有描述完问题时就开始回答，回答完后不管学员，继续下一个问题。</p>
<p>专业的培训师在回答学员问题时，通常会遵循五步回应法：</p>
<ul>
<li>聆听</li>
<li>认可</li>
<li>阐明</li>
<li>回答</li>
<li>确认</li>
</ul>
<h2 id="聆听">聆听</h2>
<p>耐心倾听，不打断学员，待学员说完后，精准地提炼问题：</p>
<blockquote>
<p>您想问的是不是...</p>
</blockquote>
<p>通过用精简的语言描述，可以确认问题理解是否准确。</p>
<h2 id="认可">认可</h2>
<p>鼓励学员：</p>
<blockquote>
<p>谢谢您，这是一个很有价值的问题？</p>
</blockquote>
<p>这样做的同时，也让其他学员看到，这是一个没有评判的安全的环境，后续才有更多的人愿意参与互动。</p>
<h2 id="阐明">阐明</h2>
<p>转向所有人：</p>
<blockquote>
<p>刚刚这位同学提了一个很好的问题，他的疑惑是...</p>
</blockquote>
<p>因为提问者的语言表达能力可能没有那么强，也可能声音比较小，导致其他人并不清楚他问的是什么问题，贸然回答容易形成提问者和讲师的私人对话，导致其他人没有参与感。</p>
<h2 id="回答">回答</h2>
<blockquote>
<p>关于这个问题，我的看法是... 因为...</p>
</blockquote>
<p>以一种平等分享的态度，有理有据地，准确地回答学员问题。</p>
<h2 id="确认">确认</h2>
<blockquote>
<p>我这样回答可以吗？有解答到您的疑惑吗？</p>
</blockquote>
<p>确认解答了提问者的疑惑，避免带着问题无法专心学习后面的内容。</p>]]></description><pubDate>Tue, 20 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何在公司内实施敏捷？]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%85%AC%E5%8F%B8%E5%86%85%E5%AE%9E%E6%96%BD%E6%95%8F%E6%8D%B7%EF%BC%9F/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%85%AC%E5%8F%B8%E5%86%85%E5%AE%9E%E6%96%BD%E6%95%8F%E6%8D%B7%EF%BC%9F/</guid><description><![CDATA[<p>问：公司最近尝试敏捷开发和管理，但是没什么收效，实行了一个多月了，感觉和以前一样，该完成的完成不了，开发没有成就感，都没有一点的积极性了，难道是项目比较大不适合敏捷吗？是新项目，项目比较大，做了几个月后刚开始实行敏捷，每天早上组织 Team Leader 开会半小时，主要回顾昨天的工作中遇到的问题，是否需要决策，以及今天要完成的事情，需要什么支持，开发任务是按照周为单位布置的，每个开发和 Leader 细化，周五开会时间长一点，超过30分钟不能解决的问题就一起讨论。Leader 会在开会前收集各个成员的问题和事情。团队构成：PM->CTO 1 位 ->架构师 1 位 -Team Leaders（兼开发）6 位->Developers，开发和测设人员接近 30 人。</p>
<h2 id="答">答</h2>
<p>从「感觉和以前一样，该完成的完成不了」，我推测你们想用敏捷解决效率的问题，而敏捷并不是为解决效率问题而生的。
敏捷盛行的大背景是，基础设施（操作系统，高级语言，开发框架等）不断完善，开源组件日趋成熟，市场竞争愈加激烈，软件开发团队可以把大部分的时间都花在「业务需求」上，而不是相对确定的基础设施开发上。而「需求都是待验证的假设」，所以我们要快速迭代来消除不确定性，避免把精力浪费到没有价值的需求上。从而达到做的更少，却更有价值，降低成本，快速响应市场变化。</p>
<p>把敏捷实践当成一个工具来使用的时候，需要思考我们团队当前遇到了什么问题，哪个工具可以解决。</p>
<p><img src="/_image/2018-03-16-08-16-56.jpg" alt=""></p>
<p>以站会为例，它解决的是什么问题呢？
团队成员间的互相认可和信任是团队协作的前提，<strong>团队成立初期，我们可以用站会这个工具来解决信任问题</strong>。
经典的三问「昨天做了什么，今天准备做什么，遇到了什么问题」就可以起到作用，「昨天做了什么」表明我的能力，我对团队的贡献，「今天准备做什么」表示我的主动性，我会主动思考什么是对团队最重要的事情，「遇到了什么问题」表示我不会隐瞒，我愿意暴露自己的不足，我信任团队成员可以帮助我。这三个问题表面上是更新项目进度信息，实际上背后的情感价值更大。</p>
<p><img src="/_image/2018-03-16-08-09-11.jpg" alt="">
当项目进展了几个月，团队成员间的信任已经建立，我们的焦点可以<strong>从「人」转移到「事」上</strong>。我们之前说「需求都是待验证的假设」，那么我们就应该让它得到验证，而许多时候我们分析好的需求长时间等待开发，开发完的需求长时间等待测试，你会发现每个人都很忙，效率都很高，但「事」却没有很好地流动。这时我们可以采用「精益看板」的管理方式，把项目流程可视化出来，只关心一个指标，就是需求流入到流出的时间间隔，我们不再关注谁做了什么，在做什么，而是这个需求还需要做什么才能流入下个环节？谁适合来做？什么时候可以做完？
<strong>事物都是发展变化的，随着时间推移，团队在变，产品也在变，问题也可能在变，有可能之前的问题已经消失了，有可能出现了新的问题，动态地调整我们所使用的实践，解决当前的问题，就是敏捷性的体现。站会只是一个框框，站着开可以缩短时间，具体怎么开，却是需要自己往里装的。</strong>
<img src="/_image/2018-03-16-08-31-21.jpg" alt="">
团队实施敏捷不见成效，有很多表现，比如发现大家<strong>参与站会的积极性不高</strong>，听了别人的发言也没有反馈。这可能和分工有关，开发人员在想：我一个星期的任务都提前确定了，我的任务都没做完，哪有心思去关心「别人」的任务啊，「别人」的任务反正我也不参与，听来又有什么用呢？
<strong>参与计划会议的热情不高</strong>，开发人员可能在想：反正开不开会，该做的需求都要做，我干嘛还要去浪费时间开这个会？
我们为什么要迭代？是我们期望做了一个迭代后，我们知道哪些是对用户更有价值的需求，哪些是对用户没有价值的需求，从而根据反馈改变我们的产品需求。那你需求压根儿不变，客户说啥就是啥，产品经理说啥就是啥，迭代又有什么价值呢？
实施敏捷是对组织和个人导入新的习惯，新习惯导入有学习成本，需要提供环境支持，比如培训，比如绩效评定的方式，是否允许短期的效率掉落等。</p>
<p><strong>说了这么多，总结一下，就是要用逻辑思维，辨证思维，系统思维，用户思维（作为想导入敏捷的管理者，团队成员就是你的用户）来思考，发现并解决问题，至于你用的是什么方法工具，叫不叫敏捷，那都不重要。小平爷爷老早就讲过「管它黑猫白猫，能抓耗子就是好猫」。</strong></p>
<p><img src="/_image/2018-03-16-08-08-02.jpg" alt=""></p>]]></description><pubDate>Fri, 16 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何培养终身学习者]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%9F%B9%E5%85%BB%E7%BB%88%E8%BA%AB%E5%AD%A6%E4%B9%A0%E8%80%85/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%9F%B9%E5%85%BB%E7%BB%88%E8%BA%AB%E5%AD%A6%E4%B9%A0%E8%80%85/</guid><description><![CDATA[<p>ThoughtWorks 在 2013 年被评为最难面试的科技公司，可见我们对人才的期望是很高的。随时业务的快速增长，招聘也成为了企业发展的制约因素。ThoughtWorks 把「积极提倡社会和经济公正」作为公司的第三大支柱。为了提升技术女性的就业竞争力，我们与一些具有创新精神的高校合作进行「卓越女生计划」，打造创新实验室，探索创新的人才培养模式。
去年 6 月，我加入了 ThoughtWorks 思沃学院团队，参与了很多教学工作。我想通过本文谈谈，在数字化时代背景下，企业对人才提出了什么样的能力期望，以及我们对人才培养模式的一些探索。</p>
<p>工业化时代，企业需要各种岗位的专门人才，人才就像螺丝钉，一个萝卜一个坑。每个人都是一个标准化的资源，可以随时被替换。
信息时代，也叫数字化时代，比起具备某项专业能力，企业更需要的是有学习能力的人才，可以快速学习任何领域，这样才能帮助企业在快速变化的时代保持竞争力。</p>
<h1 id="数字化时代对知识工作者提出了什么能力要求">数字化时代，对知识工作者提出了什么能力要求？</h1>
<h2 id="学习能力">学习能力</h2>
<p>研究显示，企业的生命周期越来越短，很多企业都举起了打造学习型组织的旗帜。因为只有持续学习，才能保持组织活力，保持创新能力，保持持续竞争力。在这样的大环境下，组织中的每一个个体都必须成为终身学习者，才能保持个人的持续竞争力。</p>
<p>ThoughtWorks 在帮助众多客户进行数字化转型的过程中，常常为客户「人力资源建设的全生命周期」提供支持。在数字化的时代，ThoughtWorks 提出了「Digital Talent」的数字化人才观：
<img src="/_image/2017-03-22-12-09-54.jpg" alt=""></p>
<blockquote>
<p>数字化人才既具备工程实现的能力，又有商业嗅觉，了解用户和市场，还有设计思维，知道如何一步步做出用户满意的产品。以敏捷的心态为基础：快速试错、持续改进。</p>
</blockquote>
<p>这就对人才能力提出了更高的要求，难道我们还要学生在学校里多呆几年，学会了这么多技能再出来吗？
其实我们期望的是，学生在大学里学会如何学习，进入公司后能快速学习各个领域的知识，解决跨领域的问题。</p>
<blockquote>
<p>只有成为终身学习者，才能保持持续竞争力！</p>
</blockquote>
<h2 id="自我管理能力">自我管理能力</h2>
<p>管理大师彼得德鲁克在 《21 世纪的管理挑战》中提出，知识工作者的管理是一个巨大的挑战。没有那个领导喜欢管理成本太高的下属，知识工作者必须进行自我管理。
高速网络和团队协作软件日趋成熟，让远程办公成为了一种新的趋势。大公司如 Google，Amazon，IBM 都支持一定时间的 Work From Home，小公司如 Basecamp（原 37Signals），国内的彩程科技更是支持全员远程办公。远程办公，连办公室都不去，领导连你的人都见不到，这种形式更是对自我管理提出了更高的要求。</p>
<p>自我管理包括如下几个方面：
<strong>时间管理</strong>
合理地安排工作的优先级，要事先行。
知道自己一天当中什么时间高效专注，把重要的工作放在高效的时间处理。
主动规划工作而不是被动响应。</p>
<p><strong>知识管理</strong>
在信息过载的时代，必须形成自己的学习方法和习惯。
知道什么时候该学什么，如何学。善于寻找和利用各种学习资源和工具，高效地把知识内化成能力。</p>
<p><strong>自我发展</strong>
清楚自己的优势和天赋，不断提升自己的优势，补足自己的短板。挑战自己，走出舒适区，拓展能力圈。通过持续学习和刻意练习，提升自己的能力。</p>
<h2 id="输出能力">输出能力</h2>
<p>去中心化，扁平化和开放是现代企业的趋势。在完成一件工作的过程中，职位能赋予你的权力会越来越少，非职权影响力将发挥更大的作用。
你很有能力，你还必须让别人知道。历史上有很多伟大的发明，是被不同的人在不同的地方发明的，但后人只会记住影响力最大的那一个。
做出卓越的产品，写作，演讲，是提高影响力的有效手段。</p>
<h1 id="我们的探索">我们的探索</h1>
<p>目前很多高校都有实验室，配备了很好的硬件和软件。但普遍存在师资不足，或教师经验与行业实践脱节的现象。
我们找到具备创新思维的高校管理者，他们愿意将实验室资源开放出来，让有能力的企业进入学校，把企业的工作实践变成课程，把资深的企业员工变成教练，联合打造真正的第二课堂。
ThoughtWorks 通常会对实验室进行重新装修，打造成更加开放、更利于沟通和协作的环境。比如没有隔板的桌子，可以随意移动的椅子，无线网络，大量的白板等。</p>
<p><img src="/_image/2017-03-22-11-16-59.jpg" alt=""></p>
<p>除了固定的教练外，还会经常邀请公司里的同事到实验室分享，也鼓励同学们多参与面向社会的实践活动，比如黑客马拉松，Code Retreat 等。让学生通过团队协作的形式解决实际的问题，尽可能多地接触企业员工，了解未来的真实工作场景。</p>
<p>学生通过实验室的实践活动也可以得到学分，从而不会和学生的学习目标产生冲突。对学生的考察更倾向于灵活地解决问题，而不是背诵理论知识。信息时代，海量知识可以通过即时网络，考察整合和运用知识的能力，更符合实际的企业工作环境。</p>
<p>传统的课堂灌输式学习被诟病已久，以学习者为中心的学习方式被证明为更加有效的学习方式。以学习者为中心的学习，对教师和学生都提出了更高的要求。</p>
<h3 id="成为培养者">成为培养者</h3>
<p>在以学习者为中心的学习中，教师的角色从传授者变成了促进者，观察者，支持者。
这个世界上有教师，培训师，教练，咨询师，引导者，辅导员等各种角色。在我们看来，这是过时的划分方式，我能把自己叫作培养者。作为一名培养者，应该灵活运用教学，培训，咨询，教练，引导，辅导等发展他人的技术。</p>
<ul>
<li>在学生迷茫时，运用教练技术，跟学生一起找到目标，激发学习意愿</li>
<li>在进行团队学习时，运用引导技术，促进他们更好地从同伴那里学习</li>
<li>在学生遇到问题时，运用辅导技术，循循善诱，用提问的方式激发学生自己找到答案</li>
<li>在学生掉坑里时，运用咨询技术，用丰富的经验帮学生少走弯路</li>
<li>...</li>
</ul>
<h3 id="培养者赋予学习的意义">培养者赋予学习的意义</h3>
<p>如果不知道知识对自己有什么用，任何人都很难提起学习的兴趣，也难有决心克服学习中遇到的困难。
所以培养者有一个很大的责任是：<strong>为学习赋予意义</strong>。
当学生问到：学这个对我们有什么用？我们不会说是为了通过考试，拿到文凭。
比如学习编程语言，最重要的目的并不是为了以后用它找工作，或者在脑子里留下印象，以便以后要用的时候能更快地捡起来。而是学会如何学习一门编程语言，只有这样，待学生进入软件行业后，才能应对五花八门，层出不穷的编程语言。</p>
<h3 id="培养者身体力行地影响他人">培养者身体力行地影响他人</h3>
<blockquote>
<p>The day you stop learning, the day you stop teaching.</p>
</blockquote>
<p>作为培养者，不能要求别人做一些自己都做不到的事。培养者应该身体力行地，影响他人做出积极的改变！
我们身体力行地，带领学生进行刻意练习，读书，写作。</p>
<hr>
<p>在以学习者为中心的学习中，学生应该成为学习的主导者，而不是被动参与。在学习知识的过程中，更重要的是学会学习方法，养成学习习惯。</p>
<h3 id="学习学习再学习">学习学习再学习</h3>
<p>「学习学习再学习」是李笑来老师的公众号名字，他是什么意思呢？很多人以为是要我们不停地学习。
其实他的意思是先学会学习，再去学习。
我们从小学到大学毕业，在学校里学习了十六年，遗憾的是，大部分人都没有研究过如何学习。</p>
<p>有一本书叫《好好学习》，作者提出，我们经历了比拼知识量的时代，到比拼知识获取速度的时代，再到比拼认知深度的时代。
短暂的一生学不完无限的知识，我们应当把 80% 的精力用在，学习那 20% 能解决 80% 问题的知识上。
作者还提出提升学习能力的三个底层方法：反思，以教为学和刻意练习。</p>
<p>这两年有门在线课程非常火爆，叫「Learning How to Learn」，后来出了一本中文书叫做《学习之道》。
这本书教我们什么是专注模式和发散模式，为什么要劳逸结合。记忆形成的原理以及如何增强记忆，如何处理拖延等。</p>
<p>我们在实验室学习中，引入和创造了很多学习工具和方法，比如概念图，组件关系图，思维导图提问学习法，可视化任务分解等。
引导学生组织公开课，应用以教为学，锻炼输出能力。</p>
<h3 id="刻意练习">刻意练习</h3>
<p>人们倾向于不停地获得新的知识，想尽办法逃避练习。
而且我们从小仿佛就接受了一种价值观：聪明光荣，勤奋可耻。你想想学霸们，努力学习从来不让人看见，一定要装得我都没怎么使劲儿就成功了的样子。而人们也倾向于把别人的成功归因与天赋，为自己的懒惰找一个完美的借口。</p>
<blockquote>
<p>刻意练习，是学习一项技能的捷径。</p>
</blockquote>
<p>所有的技能的掌握，都离不开刻意练习，所学的知识，只是为了帮助我们制定练习计划和在练习中进行自我纠正。
作家不会等灵感来了才写作，我们耳熟能详的小说家村上春树先生，也是每天趁家人还在熟睡之时，一个人在餐桌上写下十页纸。</p>
<p>有效的练习具备几个特点：
<strong>在学习区练习</strong><br>
要了解训练的体系，循序渐进地练习。</p>
<p><strong>专注</strong><br>
练习时一心一意，关注练习的目标，自己的状态，而不是具体的产出物。</p>
<p><strong>反馈</strong><br>
有效的练习需要反馈，如果找不到人给反馈，通过回放录像，自己给自己反馈也是不错的。
反馈速度决定了学习速度。拿编程来说，我们让学生先练打字和快捷键，这样本来要一个小时写完的代码，十分钟就能写完马上得到反馈，进行修改。一个小时可以练习五遍，学习速度不就提高了五倍？</p>
<p><strong>重复</strong><br>
大量地重复。</p>
<p>在实验室里，我们让学生从练习打字开始，练习命令行，练习快捷键，练习测试驱动开发。</p>
<h3 id="培养习惯">培养习惯</h3>
<p>习惯代表稳定性，有稳定的习惯，才能有稳定的产出。
所以我们应该尽早学习习惯的原理，养成好习惯，改正不好的习惯。
我们影响学生培养刻意练习习惯，读书习惯，每日反思习惯，写文章总结的习惯。</p>
<p>综上所述，学习在学习期间应该学会学习方法，养成学习习惯，进行自我管理，锻炼写作、演讲等输出能力。做好成为终身学习者的准备，进入企业后才能快速并持续地学习，才能保持持续竞争力！</p>
<p>扩展阅读：
书籍：</p>
<ul>
<li><a href="https://www.amazon.cn/%E5%9F%B9%E8%AE%AD%E5%B8%88-%E9%83%AD%E5%9F%8E/dp/B004GLIX62/ref=sr_1_2?s=books&#x26;ie=UTF8&#x26;qid=1490845922&#x26;sr=1-2&#x26;keywords=%E5%9F%B9%E8%AE%AD%E5%B8%88">《培训师》</a></li>
<li><a href="https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00K9NAZ08/ref=sr_1_7?ie=UTF8&#x26;qid=1490845892&#x26;sr=8-7&#x26;keywords=%E5%94%A4%E9%86%92">《唤醒沉睡的天才》</a></li>
<li><a href="https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B01FIEVAQA/ref=sr_1_1?s=books&#x26;ie=UTF8&#x26;qid=1490845941&#x26;sr=1-1&#x26;keywords=%E5%BC%95%E5%AF%BC">《引导:团队群策群力的实践指南》</a></li>
<li><a href="https://www.amazon.cn/%E5%80%BE%E5%90%AC%E6%9C%AF-%E8%BD%BB%E6%9D%BE%E5%AE%9E%E7%8E%B0%E9%AB%98%E6%95%88%E8%83%BD%E6%B2%9F%E9%80%9A%E7%9A%84%E7%A7%98%E5%AF%86-%E6%97%A5-%E6%9D%BE%E6%A1%A5%E8%89%AF%E7%BA%AA/dp/B00HCA3MOM/ref=sr_1_1?s=books&#x26;ie=UTF8&#x26;qid=1490845977&#x26;sr=1-1&#x26;keywords=%E5%80%BE%E5%90%AC%E6%9C%AF">《倾听术：轻松实现高效能沟通的秘密》</a></li>
<li><a href="https://www.amazon.cn/%E5%A5%BD%E5%A5%BD%E5%AD%A6%E4%B9%A0-%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%B2%BE%E8%BF%9B%E6%8C%87%E5%8D%97-%E6%88%90%E7%94%B2/dp/B01MZ6L4JS/ref=sr_1_1?ie=UTF8&#x26;qid=1491979652&#x26;sr=8-1&#x26;keywords=%E5%A5%BD%E5%A5%BD%E5%AD%A6%E4%B9%A0">《好好学习》</a></li>
<li><a href="https://www.amazon.cn/%E5%AD%A6%E4%B9%A0%E4%B9%8B%E9%81%93-%E8%8A%AD%E8%8A%AD%E6%8B%89-%E5%A5%A5%E5%85%8B%E5%88%A9/dp/B01MDOUCWE/ref=sr_1_1?ie=UTF8&#x26;qid=1491979678&#x26;sr=8-1&#x26;keywords=%E5%AD%A6%E4%B9%A0%E4%B9%8B%E9%81%93">《学习之道》</a></li>
<li><a href="https://www.amazon.cn/%E5%88%BB%E6%84%8F%E7%BB%83%E4%B9%A0-%E5%A6%82%E4%BD%95%E4%BB%8E%E6%96%B0%E6%89%8B%E5%88%B0%E5%A4%A7%E5%B8%88-%E5%AE%89%E5%BE%B7%E6%96%AF-%E8%89%BE%E5%88%A9%E5%85%8B%E6%A3%AE/dp/B01M6ZBZY3/ref=sr_1_1?ie=UTF8&#x26;qid=1491979693&#x26;sr=8-1&#x26;keywords=%E5%88%BB%E6%84%8F%E7%BB%83%E4%B9%A0">《刻意练习》</a></li>
<li><a href="https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B01MSJP4SQ/ref=sr_1_1?ie=UTF8&#x26;qid=1491979710&#x26;sr=8-1&#x26;keywords=%E7%BB%83%E4%B9%A0%E7%9A%84%E5%BF%83%E6%80%81">《练习的心态》</a></li>
<li><a href="https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00B2HMNRS/ref=sr_1_1?ie=UTF8&#x26;qid=1491979730&#x26;sr=8-1&#x26;keywords=%E4%B9%A0%E6%83%AF%E7%9A%84%E5%8A%9B%E9%87%8F">《习惯的力量》</a></li>
</ul>]]></description><pubDate>Wed, 22 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何完成认知升级和知识变现]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%AE%8C%E6%88%90%E8%AE%A4%E7%9F%A5%E5%8D%87%E7%BA%A7%E5%92%8C%E7%9F%A5%E8%AF%86%E5%8F%98%E7%8E%B0/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%AE%8C%E6%88%90%E8%AE%A4%E7%9F%A5%E5%8D%87%E7%BA%A7%E5%92%8C%E7%9F%A5%E8%AF%86%E5%8F%98%E7%8E%B0/</guid><description><![CDATA[<p>昨天晚上听了一个知乎 Live 分享，价格是 10.24 元，非常极客范儿的一个数字，大概因为分享者姜志辉老师曾经也是一名程序员吧。
他自称「跨界疯人院院长」，运营着一个公众号和私密群。
他公众号的介绍非常有意思：</p>
<blockquote>
<p>在这里，我只关注两件事：第一，如何帮助个人成长；第二，如何通过成长赚到钱。</p>
</blockquote>
<p>作为一名培养者，这正是我想做的事情。
显然，他已经领先了好几步。
他用三年半时间将自己的收入提高了十倍，算一算，我好像也是三四年前知道他的吧，那时他好像在搞 JavaScript 培训。
他这次分享的主题是「如何完成认知升级和知识变现」，我将其整理并分享给你，希望对你也有所启发。</p>
<h2 id="认知升级">认知升级</h2>
<p>成功，需要<strong>平台</strong>，<strong>机遇</strong>和<strong>选择</strong>。</p>
<p>首先，我们要自我诊断一下，我们是属于哪一类人：</p>
<ul>
<li>资源提供者</li>
<li>资源整合者</li>
<li>资金运作者</li>
</ul>
<p>有的人一出生就是资源整合者，也有人一出生就是资金运作者，这个跟父辈的积累是有关系的。
掉落在哪个新手村我们没得选，那我们可以做什么呢？
我们可以<strong>了解趋势</strong>，<strong>提升格局</strong>，<strong>打造人脉</strong>，准备好自己，以免机遇来临时失之交臂。
我们可以通过「在行」约到厉害的人，跟他们聊一个小时，可能比跟身边的朋友聊一年的收获还要大。
他们站得更高，当然尿得，不，是看得更远。跟他们聊天，可以帮助我们更快地升级认知。
如果不喜欢找人聊呢，还可以去读书，读经典，而不是读畅销书。</p>
<p>作为资源提供者，我们都在靠出卖时间和技能来赚取金钱。
首先，要学会区分技能和能力，<strong>技能是外功，能力是内功</strong>。
我喜欢演讲、引导、主持和脱口秀。它们是不同的技能，但它们背后的公开讲话能力，观察能力，倾听能力却是通用的。
编程是一项技能，它背后依赖的是解决问题的能力。
演讲、写作是技能，它们背后依赖的是结构化思考的能力。</p>
<p>然后要明白：</p>
<blockquote>
<p>技能只能让我们生存，能力才能给我们生活。</p>
</blockquote>
<h2 id="知识变现">知识变现</h2>
<p>很多人问，我没有知识，怎么变现啊？知识变现的前提是知识，不仅要有知识，还要有自己的知识体系。
通过持续输入和输出，实际上是在<strong>打造自己从输入到输出的管道</strong>，不停地输入，经过我们的知识体系的加工，再输出。这样无论下一个趋势是什么，我们都可以快速学习，占得先机，从而获得红利。</p>
<p>知识变现，就是把你的知识变成产品或服务。所以在出去卖之前，先要有一款可以复制的产品，我们可以借助个人商业画布来思考：
<img src="/_image/2017-03-07-10-24-12.jpg" alt="">
认真思考如下问题，你就能找到属于自己的独特的路：</p>
<ol>
<li>你有哪些突出的能力？</li>
<li>别人经常向你请教什么问题？</li>
<li>和其他人比，你有哪些核心优势？</li>
<li>你可以给别人提供哪些方面的价值？</li>
<li>谁会需要这些价值？</li>
<li>他们为什么需要？</li>
<li>目前都有什么方法让他们知道你？</li>
<li>有谁可以帮助到你？</li>
<li>为此你需要做出哪些努力？</li>
<li>这会给你带来哪些收益？</li>
</ol>
<p>有了产品之后，再来思考怎么卖。</p>
<h3 id="如何卖的更贵">如何卖的更贵</h3>
<blockquote>
<p>你的收入 = 自身价值 + 外部溢价</p>
</blockquote>
<p>自身价值，就是你的能力技能给客户带来的直接价值，比如我的主技能是培训，那我的外部溢价是什么呢？
我去学习发声，让自己的声音更好听，学习表演，让自己的肢体更具表现力，学习幽默，让课堂充满欢笑。那我的用户体验更好，大家更喜欢我的课程，也就愿意掏更多的钱来参加我的课程。
我们经常听到1万小时天才理论，说任何一项技能，都需要练习1万小时才能够成为顶尖专家。
但实际上呢，我们并不需要成为每项技能的顶尖专家。
更重要的是找到自己的天赋，然后，用 100 个小时去刻意练习，就能带来很大的外部溢价。
比如我为了逗孩子学的杂耍球，可能也就练习了 20 个小时，但我在演讲和培训中已经使用了很多次，效果也很好，这就是非常划算的投资。</p>
<h3 id="如何卖的更多">如何卖的更多</h3>
<blockquote>
<p>你的收入 = 客单价 X 客户数量</p>
</blockquote>
<p>如果我们在线下卖，单价可能很高，但每次只能服务一个客户，一个月只有 30 天，哪天生病了，不能去讲课，就赚不到钱。
但如果把它放到线上渠道去卖，比如说「分答小讲」，「知乎 Live」。就算卖的很便宜，但用户基数大啊。
而且只需要一次的时间投入，就能持续带来回报。这就是「睡后收入」，就是睡着了，你的产品还在帮你赚钱。</p>
<h3 id="如何卖的更酷">如何卖的更酷</h3>
<p>最后，你要学一些市场营销、消费者心理学之类的东西。
比如：</p>
<ul>
<li>利用互惠心理，先提供免费的东西，用户得了几次好处，就会找机会回报你，等你推出付费要来支持你。</li>
<li>不断提供超出用户预期的内容，用户就会爱上你，成为你的义务宣传员。</li>
<li>通过早鸟价，老带新等手段去吸引更多的用户。</li>
</ul>
<p>以上就是昨天分享的主要内容，当然也经过了我的知识结构的加工处理。
亲爱的朋友，谢谢花时间阅读并读到了最后。
如果我不小心帮你完成了<strong>认知升级</strong>，你会帮我<strong>知识变现</strong>吗？</p>]]></description><pubDate>Tue, 07 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何快速入门新技术]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8%E6%96%B0%E6%8A%80%E6%9C%AF/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8%E6%96%B0%E6%8A%80%E6%9C%AF/</guid><description><![CDATA[<img src="/_image/2014-05-27/Screen-Shot-2014-05-27-at-21.56.09.png">
<p>前几天fork了Ruby China的源码，面对陌生的Ruby技术栈，一头雾水。
我fork它并不单为了学习，而是要在最短的时间搭建起我脑海中的社区网站。所以我不可能针对每一门新技术都去买一本书来读上半个月。</p>
<p>我在本机运行起Ruby China，新注册一个用户，发现不能发帖，提示说要注册一个月以上才可以。于是我去找相关代码：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">  # 是否能发帖</span></span>
<span class="line"><span style="color: #c9d1d9">  def newbie?</span></span>
<span class="line"><span style="color: #c9d1d9">    return false if self.verified == true</span></span>
<span class="line"><span style="color: #c9d1d9">    self.created_at > 1.week.ago</span></span>
<span class="line"><span style="color: #c9d1d9">  end</span></span></code></pre>
<p>明明是一星期嘛，代码是不会说谎的。于是把文字改掉，顺便提个<a href="https://github.com/ruby-china/ruby-china/pull/309">pull request</a>。
扯远了，代码说如果是<code>self.verified</code>就不是新手了，我先去管理后台看了一下，没有修改这个字段的界面。于是我不得不去数据库里更新这个字段。我大概知道mongodb是数据库，但我不知道该怎么操作。</p>
<h3 id="从宏观出发">从宏观出发</h3>
<p>当我了解到一个新的技术名词，不会直接陷入细节，而是从宏观上把握它。了解它的背景，为何出现，解决什么问题，有什么同类技术，没有它之前我们如何工作。因为有了宏观的了解，我就能很容易把它和我熟悉的技术去建立关联，从而更快地理解它。
<img src="/_image/2014-05-27/Screen-Shot-2014-05-27-at-22.23.42.png" alt="Mongodb是什么？"></p>
<h3 id="实践出真知">实践出真知</h3>
<p>打开官网，发现有个非常棒的<a href="http://try.mongodb.org/">Try it out</a>，先花10分钟玩一下，对其玩法有个大概了解，然后再来解决实际的问题。</p>
<p>从前面的Try it out中我知道了<code>help</code>命令，于是便通过<code>help</code>知道了<code>show dbs</code>，<code>use ruby_china_dev</code>。根据使用SQL的经验，我想当然地认为更新一条记录的一个字段应该是这样：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">db.users.update({"_id":3}, {verified: true})</span></span></code></pre>
<p>但我悲剧地发现，整条记录被替换了，好吧，这就是文档型数据库。于是放狗搜索：<code>How to update specific field in mongodb</code>，很快便找到了答案。</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">db.myCollection.update({condField: 'condValue'}, { $set: { dateField: new Date(2011, 0, 1)}}, false, true); </span></span></code></pre>
<p>对应我这里的需求就是：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">db.users.update({_id:3}, {$set:{verified:true}}, false, true)</span></span></code></pre>
<p>问题解决了。</p>
<p>随着接触的越来越深，遇到的问题就会越来越多。我会把每一个解决掉的问题放到我的Evernote里，这样下次再遇到就能很快找到答案。当我发现<a href="http://postach.io">postach.io</a>这个可以和Evernote同步的博客系统后，就开通了这样一个<a href="http://seabornlee.postach.io/">博客</a>，其他人遇到同样的问题时也更容易找到答案了。</p>
<p>当我真正对一门技术感兴趣并且有足够的时间去学习时，我通常会按照下面的步骤去学习。
<img src="/_image/2014-05-28/Screen-Shot-2014-05-27-at-22.26.15.png" alt="Mongodb实战"></p>
<h3 id="教是最好的学">教是最好的学</h3>
<p>实践足够多后时，我可能觉得已经掌握这门技术了。但当我尝试去表达的时候，会惊讶地发现还有很多概念是似懂非懂的。于是我会去查资料，完善自己的体系。只有当我把学到的东西用自己的语言表达出来，并且能让听众明白的时候，才是真正掌握了该技术。</p>
<p>学会分享是很重要的，把在该技术上的经验总结出来，写成博客，集结成书出版，再到行业会议上分享实践经验。这样才能成为该领域公认的专家。
<img src="/_image/2014-05-28/Screen-Shot-2014-05-28-at-9.01.22.png" alt="分享"></p>
<h3 id="推迟学习">推迟学习</h3>
<p>一位<a href="http://www.douban.com/people/lazurey/">一年读100多本书的同事</a>说：</p>
<blockquote>
<p>你一年才能读几十本书，就不要什么书都看了，多花点时间挑书吧。</p>
</blockquote>
<p>现在新技术层出不穷，我们没有那么多时间去深入学习每一门。对于大多数技术，我们只需要搞懂概念部分，从宏观上了解一下，决定我们要不要深入地去学习它。有了这些了解，就能轻松地与别人聊天了，也可以为以后<a href="http://www.thoughtworks.com/cn/radar/#/">技术选型</a>做一些储备。当面对真正的需求时，或者你有足够的时间做技术储备时，才去进入实践部分。</p>
<p>编程是一个知识更新很快的行业，只有真正有热情并掌握了好的学的方法的人，才能走的长久。</p>]]></description><pubDate>Tue, 27 May 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何成为快乐高产的程序员]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E6%88%90%E4%B8%BA%E5%BF%AB%E4%B9%90%E9%AB%98%E4%BA%A7%E7%9A%84%E7%A8%8B%E5%BA%8F%E5%91%98/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E6%88%90%E4%B8%BA%E5%BF%AB%E4%B9%90%E9%AB%98%E4%BA%A7%E7%9A%84%E7%A8%8B%E5%BA%8F%E5%91%98/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-16-44-56.png">
<p>阅读提示：本文篇幅较长，接近 1 万字，且有大量的链接，为了保证思维的连贯性，建议先通读一遍，再读链接的文章。</p>
<h2 id="前言">前言</h2>
<p>身为 IT 中人，我和我身边的朋友们有以下这些痛点：</p>
<ul>
<li>书上说的那些好习惯：早起、冥想、瑜伽、读书，总是坚持不下来。</li>
<li>每天总会有乱七八糟的事情打乱规划，而这些乱入的工作由于涉及上层的诉求，优先级都挺高，更可怕的是，自己也逐渐习惯或适应了这种工作习惯。</li>
<li>工作中越来越发现欠缺的知识太多，所以潜意识里面压力很大。</li>
<li>有时候经常调整优先级，最终多头并发而普遍进展不大。</li>
<li>工作与生活失衡，公司的工作量是按 200%~300% 来规划的，每天 15 个小时在公司，更少时间在家，回到家已经累成狗了。</li>
<li>容易被其它事情分散注意力，特别是受情绪影响。</li>
<li>计划的多且要求高，执行的时候觉得困难容易放弃。</li>
<li>工作变化比较快，工作计划无法做定。比如突发会议，突发问题，突发需求，有时候还要突然要和同事谈心…</li>
<li>宠物或孩子生病了要照顾。要上班还要健身，感觉一天没做什么事情就过去了。</li>
<li>以前跟别人学过时间管理，也实践过，但是断了之后就没有办法继续坚持。</li>
</ul>
<p>如果你也存在这些痛点，期望本文对你有所启发。</p>
<hr>
<h2 id="我的经历">我的经历</h2>
<p>大约从上大学时起，我开始关注时间管理，这些年读过许多时间管理类书籍比如《搞定》系列，《小强升职记》，《奇特的一生》，《晨间日记的奇迹》，《高效能人士的七个习惯》，《暗时间》等等；尝试过许多方法：重要紧急四象限法，GTD，ZTD，番茄工作法，连续分段时间管理法（莫法特休息法），个人看板等；用过许多的工具：比如 Doit.im，Any.do，Things，滴答清单，CLEAR，Wunderlist，Omni Focus 等。道理懂得很多，却还是过不好自己这一生。
在实践多年后，我才发现，时间管理不是一个独立的模块，它和目标管理，效率管理，能量管理，注意力管理，情绪管理等紧密关联，形成一套「个人管理」的完整体系。网络上也有很多时间管理的原则，方法和技巧。而这篇文章挂时间管理之名，行个人管理之实，如果能让您跳出传统时间管理的限制，对个人管理有一个宏观的认识，甚至，如果本文分享的一些实践，能在您实现丰盈人生的过程中起到一些作用，我将感到十分荣幸。</p>
<h3 id="我之前的状态">我之前的状态</h3>
<p>2015 - 2016 年，我在创业公司做技术合伙人，刚开始充满新鲜刺激，后面更多的是压力和焦虑，不知不觉就掉入了时间管理的陷阱，最糟糕的时候的状态是：</p>
<blockquote>
<p>早上 8 点起床，跑步，吃早餐，9：30 出门，10：30 到公司，午饭时间不固定，也不一定休息，下午什么时候困了就趴一会儿，晚上 18：00 - 19：00 在公司附近吃晚饭，由于白天有太多「杂」事，晚上团队都回去了，正好继续写代码或学习，到 22：00 左右离开公司，22：30 到家，老婆通常会买好周黑鸭等我，到家孩子已经睡了，和老婆分享一下工作的趣事和糟心事，老婆分享一下带孩子的趣事和糟心事，收拾好差不多凌晨 1 点多入睡。</p>
</blockquote>
<p>现在回头看简直是瞎忙，用忙碌来逃避思考。那 9 个月，长了好多白头发，后来体检下来，阳性结果和异常情况多了 6 项。</p>
<h3 id="现在的状态">现在的状态</h3>
<p>我现在理想的一天是这样的：</p>
<blockquote>
<p>5 点起床，唤醒身体，写晨间日记，冥想，工作和学习到 8 点。和爱人一起准备早餐，和孩子们一起用餐，收拾洗漱，9 点出门。9 点半到公司，专注地工作到 12 点。午餐和午休，14：00 开始工作和学习，到 18：30 离开公司。18：30 到家，吃晚饭。19：00 带孩子去公园玩，顺便锻炼身体。21：00 点回家，跟孩子们一起洗澡，讲故事，22：00 上床睡觉。</p>
</blockquote>
<p>现在几乎实现了，通常误差在半小时左右。</p>
<h3 id="我的改变之路">我的改变之路</h3>
<p>回头来看，我的时间管理大概经历了几个阶段：
<strong>时间记录</strong>
首先要知道我的时间都花到了哪里，记录时间一段时间后，我发现除了用于分析外，还提高了我对时间的感知能力。不看表都能把时间猜的八九不离十。我当时使用的是一个付费 APP 「时间块」。</p>
<p><img src="/_image/2017-06-26-15-18-16.jpg" alt=""></p>
<p><strong>规划时间</strong>
记录一个月之后，对自己的时间花费就有了基本的认知，我就开始主动规划时间，哪个时间段干什么事情。我用 Excel 画了一个时间规划。按最理想的状态去规划。然后每天早上起来念一遍，暗示自己。</p>
<p><img src="/_image/2017-06-26-15-23-44.jpg" alt="">
<strong>培养习惯</strong>
如果您想更多地了解习惯培养，可以先读一下我之前写的文章：</p>
<ul>
<li><a href="http://mp.weixin.qq.com/s/7rdmXeaSsZbf6cmFoHG5vw">你不是意志力差，只是不懂习惯的力量</a></li>
<li><a href="http://mp.weixin.qq.com/s/DiYLv2ONOnO8eJ8dim2X-Q">培养习惯，我有三条心得</a></li>
<li><a href="http://mp.weixin.qq.com/s/1DWtxRwHF9pTIs9I7R-cQw">如何改掉你的坏毛病</a></li>
</ul>
<p>最近，又有一点新体会，要培养拥抱变化的习惯。过去的 30 年，我一直用错误的方式在拿筷子，就是那种会用食指指着对面的人的拿法，我的家人曾经提醒过我很多次，我都不以为然，因为我认为只有老家才会在意这个，而我又很少回老家。直到上一次，西安的一位同事给我提反馈说我吃饭的时候指着他，我才意识到这可能是一个全球性的用餐礼仪，估计只要用筷子的地方都会在意这个，于是我决定要改变 - 学会正确的用筷子的姿势。我买来花生，开始刻意练习，把筷子放桌上，拿起，夹一颗花生放嘴里，放下筷子。一直重复这个动作，超出我期望的是，大约 15 天以后，我就可以熟练地用正确的姿势使用筷子了。这让我感到十分惊讶，30 年的习惯居然可以半个月说改就改了。于是，我冒出了一个想法，改变的能力是不是也可以刻意练习呢？于是我开始尝试用左手拿筷子，没想到 3 天以后我就可以正常进食了，现在我又开始用左手写字了，这是培养拥抱变化的习惯呢。</p>
<p>有人说 21 天养成一个习惯，有人说平均要 60 天。其实这里面存在两个误区，第一个是习惯是有几种分类的，它们养成的时间差别巨大，据统计「行为习惯」大约需要 30 天，「身体习惯」大约需要 60 天，「思维习惯」大约需要 180 天。行为习惯比如拿筷子的姿势，用左手写字等。身体习惯，比如早睡早起，健康饮食。思维习惯比如结构化思考，正向思考等。
在培养习惯的过程中，我发现 30 天挑战是一个很有效的方式，30 天专注于一个目标。
这一年来，我完成了如下的 30 天挑战：</p>
<ul>
<li><a href="http://mp.weixin.qq.com/s/wC2ze51CxF-Diq0GaDSc1g">早睡早起</a></li>
<li>跑步 5 公里</li>
<li>读书 2 小时</li>
<li>记录时间</li>
<li>晨间仪式（<a href="http://mp.weixin.qq.com/s/1esgc6vbFF6m6c2dtDpmjA">晨间日记</a>，唤醒身体，自我暗示，复盘等）</li>
<li>冥想</li>
<li>懂你英语口语练习</li>
<li>薄荷阅读英文读物</li>
<li>积累幽默素材</li>
<li>视觉元素练习</li>
<li>写一篇文章</li>
</ul>
<p>当然也有一些没有完成的：</p>
<ul>
<li>瑜伽</li>
<li>Sharp Eyes（一种训练眼睛以提高阅读速度的方法）</li>
<li>Photo Reading - 影像阅读</li>
<li>零秒思考</li>
<li>结构化思考</li>
</ul>
<p>通过 30 天挑战，培养习惯变得容易了，小伙伴们互相激励，遇到困难一起解决。也让我更能体会到哪些东西对我更有用，更有价值，哪些对我无用，应该放弃而不觉得可惜。</p>
<p><strong>刻意练习</strong>
养成了早睡早起的习惯后，时间就多了起来，如果不能有效利用，白白浪费多可惜了，所以我用这些时间来学一些实用的技能。比如，视觉引导，幽默，写作等。</p>
<ul>
<li><a href="http://mp.weixin.qq.com/s/KaoU81IWUJH_kMaIB2UVLw">是时候停止找捷径了，开始练习吧</a></li>
<li><a href="http://mp.weixin.qq.com/s/xi-SYWekIcrJ1VuYCGHwiA">30 天绘画练习，我经历了这三个阶段</a></li>
</ul>
<p><strong>学以致用</strong>
学了东西一定要尽快投入使用，一方面可以检验是否有实用价值，值不值得继续学习，另一方面也可以通过使用获得成就感，强化学习动机。我学的各种技能都会立马用起来，比如杂耍球，我应用到演讲开场讲需求变化的本质，在培训中用来讲刻意练习，在家里用来活跃气氛。还有幽默技能和视觉技能也在工作和生活中频繁使用。</p>
<p><img src="/_image/2017-06-26-15-33-40.jpg" alt=""></p>
<p><img src="/_image/2017-06-26-15-34-08.jpg" alt=""></p>
<h2 id="认知升级">认知升级</h2>
<h3 id="从时间管理上升到个人管理">从时间管理上升到个人管理</h3>
<p>重要紧急四象限的一个重要基础 - 有清晰的目标。没有目标，怎么判断哪个任务更重要？所以就无法尽早处理好重要的事情，直到所有事情都变成紧急的事情，陷入不停救火的境地。
你可能会早上起来了，时间多起来，但不知道干什么，又用无聊的事情来填充，或者被更多低价值的工作填满，虽然能做更多了，但并没有让你对生活更满意，慢慢便放弃了早起的习惯。如果没有对目标的一个全景图，很容易迷失在每天繁琐的事务上。</p>
<p>个人管理和企业管理非常相似，也需要有自己的使命，愿景和价值观。</p>
<h4 id="使命">使命</h4>
<blockquote>
<p>身体力行地影响他人做出积极性的改变。</p>
</blockquote>
<p>我非常幸运，浑浑噩噩或了 30 年，在而立之年找到了我的使命。说说我是如何找到的，希望对您有所启发。
首先我用《优势识别器》识别出我的五大优势主题，然后从程序员转换跑道成了创业者；几个月后我又做了优势职业测试，结果是教师和激励师，于是又换道到培养者（培训师、教练）。在外界的反馈中，不断强化对我所做工作的认同。</p>
<p><img src="/_image/2017-06-26-15-40-36.jpg" alt=""></p>
<p>后来去参加培训师培训，看到一句话：影响他人作出积极性的改变。我就把它修给了一下，加上「身体力行地」，把它当成我的使命，每天早上通过书写暗示潜意识，不断强化。现在，连我自己都信了~
如果你认为学了编程就要一辈子写代码，就大错特错了。编程只是一项技能，一项人人都可以学会的技能，我热爱编程，我想一辈子写代码，但我并不想一辈子只写代码。</p>
<p>上海的耳东陈同学就是这样一个例子：</p>
<blockquote>
<p>我在做完【优势利用度】的测评之后得知自己的优势是 creator &#x26; teacher ,于是开始思考如何发挥自己的优势，我开始尝试做公司新员工和实习生的培养工作，设计了一系列相关的分享，做了一个公司内部的有价值资料导航，在做这些事情的时候会发现自己很投入，很快乐，能够充分利用自己的优势，与别人建立连接，得到了大家的认可，很有成就感。</p>
</blockquote>
<p>除了在公司做一名职业程序员，你有没有想过你还可以做咨询，培训，教练，售前，独立开发者，创业家等等...
在一个领域做到顶尖是极难的，但在两个领域做到不错就要有趣且容易的多。比如 GitChat 里有一位爱发红包的听众，曾经是一名程序员，现在是一名创业者，做电商工具，不仅给自己用，还做服务，据说自己的店铺月营业额两三百万。<a href="https://laravel-china.org/topics/3748/hangzhou13k-25k-taobao-sellers-recruit-php-full-siege-lion-2-apprentice">More...</a>
还有程序员去做跨境电商，也是做得风生水起~</p>
<h4 id="价值观原则">价值观/原则</h4>
<p>我们每天都会面临大量的决策，原则可以帮助我们极大提高效率。我讲一个故事：</p>
<blockquote>
<p>在一次公司的毕业生培训上，领导要做一个演讲，但时间快到了，领导堵车了还在路上，大约需要 10 几分钟，这时负责组织的两位小伙伴就在商量，是等呢还是等呢？两个人拿不定注意，征求我的意见是，我说做这个决策很简单，我有两个原则：一是不要惩罚守规则的人；二是培训应当以学员为中心。惩罚守规则的人？听起来很荒唐，但我保证你的公司里每天都在发生，比如开会，早到的要等着迟到的，人到齐了才开始，是不是？第二天原则是说以学员为重，将领导的的演讲和下一个演讲调换一下，哪怕领导来了得多等半小时。当然，如果你的原则是：领导高于一切，因为领导单位时间内创造的价值更大。那就让大家等者，牺牲学员的时间，节省领导的时间。</p>
</blockquote>
<p>价值观本身就没有高低对错，但只有拥有价值观和原则，才能更好更快地做出决策。</p>
<h4 id="愿景">愿景</h4>
<blockquote>
<p>我是一名专业的培养者，我灵活运用培训，教练，咨询，引导，辅导等技术，身体力行地影响他人做出积极的改变！
我生活高效，规律且健康！
我打通了输入输出，持续地成长和变现！</p>
</blockquote>
<p>这个是我的愿景，同样每天早上通过书写暗示自己。用第一人称一般现在时，更加容易被潜意识接收到。还有一个技巧是：假装是，直到真的是。标签对人的行为有很大的影响，曾有个实验对比了两组人，一组直接让捐赠骨髓，大部分人不愿意，另一组先献血，再邀请捐赠骨髓，大部分人都同意了，解释是因为献血后就有了「捐赠者」这个标签，就应该做捐赠的事。我没有考证实验是否严谨，据我个人经验，当我假装自己是一个自律的人，表现得自律，身边的人都认为我是自律的人时，我确实更加自律了。</p>
<h4 id="目标">目标</h4>
<p>对应愿景，我订立了三年目标：</p>
<ul>
<li>成为专业的培养者，可以教授培训，教练，引导课程</li>
<li>保持身体健康，体重 125 斤，体脂 10%，能做二级的街头健身动作</li>
<li>年入百万，其中 50% 来自睡后收入</li>
</ul>
<p>所以我现在学习和实践培训，教练，引导等技术，运动，写作都是为了这几个目标服务的。
我不要做燃烧自己点亮别人的蜡烛，我认为做一个文化商人并不可耻，我们作为知识工作者，值得拥有更好的生活，不是吗？
同时，作为一名培养者，「有钱」也能增加非职权影响力。想想同样一句话，从乞丐嘴里说出来，和从马云嘴里说出来，哪个更能让人信服？</p>
<h4 id="项目">项目</h4>
<p>为了实现这些目标，我要在一段时间内专注在一件事情上，这就是项目。围绕这些目标，我建立了暑期特训营，公开课，企业内训，公众号，社区等项目。在建立项目时我会认真思考这个项目实现什么目标，以及项目之间的优先级关系。</p>
<h4 id="任务">任务</h4>
<p>任务是我每天处理的具体的事务，有可能是领导安排的紧急的工作，可能是陌生人的请求，可能是老婆让我取快递。在建立任务时我会看它属于哪个项目，这样就能保证做是每一件事都是为目标服务的。</p>
<p>###什么是成功？###
什么样的人生是成功的人生？我把这个问题转换为：什么样的一天是成功的一天？</p>
<blockquote>
<p>怀着对新的一天的期待愉快地起床，怀着对一天工作满满的成就感心满意足地上床，就是成功的一天。</p>
</blockquote>
<p>而我相信「你怎样过一天，就怎样过一生」，只要生命中大部分的每一天都是成功的，那我就认为这一生也是成功的了。</p>
<h3 id="工作是人生最幸福的事">工作是人生最幸福的事</h3>
<p>稻盛和夫在《干法》里提到：「工作是人生最幸福的事」。当初我读到的时候，我心里是拒绝的，当时我心里想的是，万恶的资本家当然希望我们都心甘情愿地为他们工作。直到后来我意识到：<strong>工作不等于上班</strong>。工作除了能带给我们稳定的收入，更重要的是给我们极大的成就感。我清晰地记得在休陪产假的那段时间多么的空虚无聊，多么想回到工作岗位上创造价值。而现在，我所有的工作都是围绕使命「影响他人做出积极性的改变」，这让我对每一天都充满期待。</p>
<h3 id="工作和生活的平衡">工作和生活的平衡</h3>
<p>所谓工作和生活平衡，往往让人进入一个误区，就是在生活和工作中间找到一个平衡点，然后就可以万事大吉。其实在每一刻，确实存在这样一个点，但在生命长河中，这个点却是动态变化的，如果生活在左，工作在右，那中间不是一条直线，而是一条左右波动的曲线。家里刚有孩子的时候，当然将更多精力投入到家庭中；刚换了新的工作后，当然要把更多精力投入到工作中。如果一直在纠结要保持所谓的平衡，就会平添很多痛苦。</p>
<h2 id="原则">原则</h2>
<p>我在这里想分享我认为最重要的三条个人管理原则，我在每日反思时，重新审视前一天所做的一切是不是符合这些原则。</p>
<h3 id="主动而不是响应">主动而不是响应</h3>
<p>我们每天被很多事情打乱原本的计划，响应各种邮件和消息。
通过时间记录，很容易发现，我们一天可能会响应老板，同事，家人，网友，快递员等。原本计划的美好的一天，被各种事情切割成了碎片时间。
为什么要响应呢？
一是高估了自己的重要性，当我像孙连城一样认识到宇宙之浩大，自己之渺小，在人类数百万年的长河中，我这一生的短短几十年就像一粒沙子一样渺小时。我认识到自己并没有那么重要，于是我开始「懒政」，我在工作时不开即时消息，不开邮件通知，手机进入免打扰模式。事实证明，一年下来，并没有什么了不起的事情发生。当然，为了以防万一，我将老婆和老板的电话加入了手机通讯录的收藏夹，这样他们是可以直接打通我的电话的，其他人打的话会自动提示「通话中」，然后显示一个未接来电。
二是对产出不够自信，其实最难的是过自己这一关，所以才会想要更快地响应外界的请求。当我应用了一系列工作实践后（你将在后面看到它们），我才拥有了这样的信心。</p>
<p>响应式工作的可怕之处在于，它会带来虚假的成就感，在「触发器 - 惯常行为 - 奖励」的习惯回路中，很快就会变成一个习惯。而且我们的这种习惯也会影响外界与我们的交互方式，因为在他们的习惯回路中：有一件事情要处理，联系你，你马上处理了，减少了他们的压力。这也会给他们养成有任何事情立即找你的习惯。从而老板、同事、家人、网友甚至快递员都会在每时每刻毫不内疚地打扰你。
当我采取了主动工作的原则后，我不再在第一时间回复邮件和消息，也不会在第一时间回复同事的请求，这些事情对他们来说优先级很高（然而并没有他们声称的那么高），在我这里的优先级却佷低，我会用自己固定的节奏去处理这些请求。久而久之，他们找我得不到立即处理，于是就换找别人了。
你可能会想，那这样的话，你的老板和同事甚至家人，会不会觉得你不可靠呢？确实，目标感强的人有时候会让身边的人不舒服，没关系，因为我的目标并不是让别人舒服。而且因为采取了一系列的实践（你将在后面看到它们），他们最终会认识到，这种交互模式实际上是双赢的。</p>
<h3 id="二八原则">二八原则</h3>
<p>专注在 20% 能创造 80% 价值的工作，我会注意以下几点：</p>
<ul>
<li>优先做价值更大的工作</li>
<li>耗时的工作并不等同于重要的工作</li>
<li>不重要的工作做得再好，也不会变得重要</li>
<li>做团队所有人都不愿意做，但又必须要完成的工作</li>
</ul>
<p>在家庭中，<a href="http://mp.weixin.qq.com/s/gWaAP4UAGxJgA3EbcwCdxw">爱的五种语言</a>就是对二八原则的应用，用对方喜欢而不是自己喜欢的方式来爱对方，才能事半功倍。</p>
<h3 id="复利">复利</h3>
<p>尽量做能产生复利的工作，就是那些一次投入，长期受益的工作。写文章，录视频，创建在线系统，写自动化脚本等。就拿写代码来说，我也要优先写被更多人使用到的功能，或者能提升团队效率的基础设施。</p>
<h3 id="合理地专注和多任务">合理地专注和多任务</h3>
<p>网上有大量关于专注和多任务的讨论，这些讨论就像豆腐脑应该吃甜的还是咸的一样毫无意义 - 当然是吃咸的~ 开个玩笑。我认为，脱离具体情境谈方法都是不科学的，对于需要占用大量认知资源的工作，一次只做一件。比如阅读，听书（如果我一边走路一边听书，就跟没听过一样）。对于不需要占用大量认知资源的工作，可以并行处理，比如推着孩子在公园里散步，一边走一边和老婆聊天。</p>
<h3 id="拖延是朋友">拖延是朋友</h3>
<p>很多人多年以来一直奋战在战拖一线。而我认为，存在即是合理。比如说懒惰，如果人不懒惰的话，就不会发明汽车和电梯，对吧？
那么，人为什么会拖延呢？我觉得拖延是一个信号，说明显性意识和潜意识的目标是不一致的，所以我通过冥想和书写暗示的方式去对齐目标。
我一直拖延的事，可能就是我不感兴趣的，不为我的目标服务的事。我大可放弃它不做，比如去年我一时冲动接了一个翻译的项目，后来实在痛苦，不断拖延，我干脆就坦诚地和编辑沟通，换了另一位译者。这起码为我节省了几百个小时的时间，难道不应该谢谢我的拖延这位朋友吗？</p>
<h2 id="实践">实践</h2>
<p>有了以上原则，可以帮我快速做出决策，但真正要落地执行，还需要很多具体的实践。</p>
<h3 id="工作">工作</h3>
<h4 id="可视化工作成果">可视化工作成果</h4>
<p>将工作成果可视化出来，不仅可以给自己更大的成就感，也会给团队，给领导增加对你的信任。开发了多少故事点，有多少用户使用，客户的表扬信，培训的学员反馈，培训的现场报道等都可以可视化工作成果。注意要可视化的是成果，而不是有多么努力，加了多少班。</p>
<h4 id="专注">专注</h4>
<p>频繁的任务切换会导致大量的信息加载到工作记忆中，不仅对效率有极大的影响，而且两个做到一半的任务都没有对外交付价值，造成等待的浪费（所有的半成品都是浪费）。为了保持专注，我有如下实践：</p>
<ul>
<li>关闭各种通知</li>
<li>保持桌面整洁</li>
<li>使用降噪耳机</li>
</ul>
<p>冥想练习被证明是有效的提升专注度的方法，我的体会是，冥想并不是减少走神的次数，而是提升觉察力，让我更快地意识到自己走神了，从而迅速回到主题上。</p>
<p>利用 Deadline 的压力，也是提高专注程度的方法。在临近截止日期的时候心无旁骛，进入心流状态，效率暴涨，成就感满满。相信你一定有过类似的体验，我现在就是用这种状态在写这篇文章~</p>
<p>每天开始工作之前，我有一个仪式，通过完成这个仪式，消除潜在的干扰源，更快地进入专注状态：</p>
<p><img src="/_image/2017-06-26-13-38-26.jpg" alt=""></p>
<p>番茄工作法也是有效提升专注度的手段，我用了很长时间，现在没有用任何软件，凭身体的感觉，差不多 1 个小时一个休息一次。</p>
<h4 id="零秒思考">零秒思考</h4>
<p>我们的大脑其实思考的速度非常快，很多时候我们说要思考一下，其实只是先放着不管，等快到了截止日期才真正去思考。零秒思考的方法是利用潜意识进行快速思考，做法很简单，就是写好一个问题，给自己倒计时一分钟来思考，列出关键点。第一次看到时我是抱着怀疑态度的，但试了几个问题我就发现答案很靠谱，因为最重要的东西都会在第一时间跳出来。我在工作和生活大量使用这个方法，比如做计划，准备演讲，列文章提纲等。</p>
<p><img src="/_image/2017-06-26-13-38-45.jpg" alt=""></p>
<h4 id="莫法特休息法">莫法特休息法</h4>
<p>同一项工作做的时间长了，效率就会降低，一两个小时之后，做另外一项工作，给大脑一些新鲜的刺激。据说莫法特的书房里有三张书桌，分别是三个不同的项目，在一张上工作累了，休息一下，就进入另一张开始工作。脑力工作者需要的休息并不是睡很多觉，而是换脑子，体力工作者每天消耗了大量体力，才需要用睡觉的方式来补充体力。
我会把写作，沟通，写代码，课程设计，填报销，处理邮件等工作穿插进行。</p>
<h3 id="健康">健康</h3>
<p><img src="/_image/2017-06-26-14-42-59.jpg" alt=""></p>
<p>一直以为从《21 天精通 C++》到《颈椎康复指南》是个玩笑，直到去年团队的一位同事因为颈椎问题严重到必须休假治疗，我也感觉到久坐后后背和脖子特别难受，一度影响到工作状态。于是我增加了跑步、瑜伽等运动的时间。几个月下来，基本不影响工作了。如何在繁忙的工作和生活中保持身体健康呢？我有如下实践：</p>
<h4 id="亲子即健身">亲子即健身</h4>
<p>在去公园遛娃的时候，顺带做引体向上，俯卧撑，仰卧起坐等动作。在家里我会让儿子们坐到我的背上做负重平板撑。</p>
<h4 id="社交即健身">社交即健身</h4>
<p>和朋友约跑是我的一大爱好，找到志同道合的小伙伴，一边跑步一边交流跑步经验，工作生活的近况。</p>
<p><img src="/_image/2017-06-26-13-39-27.jpg" alt=""></p>
<h4 id="工作即健身">工作即健身</h4>
<p>大部分公司都有简易的健身器材，工作累了就去锻炼一下，既能醒脑有能强身。当然，因为做了前面提到的那些工作实践，所以不怕被人说不务正业，工作量不饱和等。</p>
<p><img src="/_image/2017-06-26-13-39-51.jpg" alt=""></p>
<h4 id="通勤即健身">通勤即健身</h4>
<p>我家离公司步行在 30 分钟左右，我基本是用快走的方式健身，在路上不带耳机，减少输入，还经常会冒出很好的想法。
公司在 7 楼，我一般都是走楼梯上去，有时甚至跑上去，有一次七楼刚出来被同事叫住，说电梯关门的时候看到我，没想到一开门又看到我~</p>
<h3 id="饮食">饮食</h3>
<p>如何保持高的睡眠质量，同时我对吃肉和蔬菜是毫不留情的。</p>
<h4 id="吃好早餐">吃好早餐</h4>
<p>人在肚子饿的状态，身体会自动降低对热量的消耗。而相对于脂肪而言，肌肉消耗的热量更多，所以身体会优先分解肌肉，而这就进入了恶性循环，更加降低了基础代谢率。所以如果你想减脂增肌，一定不能饿肚子。丰富的早餐可以除了可以带来极大的幸福感，还能减少午餐的摄入量，让下午更清醒，更有效率。</p>
<h4 id="晚餐清淡不吃夜宵">晚餐清淡，不吃夜宵</h4>
<p>吃夜宵会增加肠胃蠕动，影响睡眠质量。</p>
<h4 id="不喝酒和饮料">不喝酒和饮料</h4>
<p>酒精和刺激性饮料都会影响睡眠质量，我连普通饮料都不喝，因为不利于嗓子保护。虽然有时候在社交场合只吃肉不喝酒显得有点另类，但我相信人们是因为我的价值而欣赏我，而不是我的酒量。</p>
<h3 id="家庭">家庭</h3>
<h4 id="融入彼此的圈子">融入彼此的圈子</h4>
<p>和爱人培养更多的共同语言，让交流变得更有效，比如一起读一本书，交流心得。一起做手工皂，一起做早餐，一起买菜，甚至一起洗漱。两个人的共同经历越多，共同会议和共同语言也越多。我们一起约朋友吃饭，一起参加大会演讲，一起参加视觉引导，一起参加黑客马拉松，一起顶着寒风去静滩… 这样做，无形中就增加了很多彼此陪伴的时间，从而节省出需要单独陪伴做感情交流的时间？你 Get 到了吗？</p>
<p><img src="/_image/2017-06-26-13-41-39.jpg" alt=""></p>
<h4 id="事务即亲子">事务即亲子</h4>
<p>除了爱人，还有对孩子的陪伴和教育。我将其融入到生活中的每一件事里，比如洗澡的时候，我会用两个手指模拟外星生物走独木桥，不小心掉水里，培养他们的想象力。让他们参与调奶，培养精心动作，带着他们去取快递，进门出门就培养了礼貌的习惯。</p>
<h3 id="学习">学习</h3>
<h4 id="无动机不学习">无动机不学习</h4>
<p>学习包含三个维度，动机、内容和交互。我认为最重要的是动机，信息时代海量信息可以即刻获取，各种先进的技术也增强了学习的体验和便利性。唯有动机是最难的，大部分人不是因为兴趣，而是因为焦虑而学习，为了学习而学习，学完记不住，记住了做不到，不能学以致用。我的方式是输出倒逼输入，先找个目标，比如承诺一个演讲，培训，文章等，再去学习，这样效率和效果都会好很多。那种走在路上有事没事就用「得到」听本书刷虚拟的成就感的方式并不适合我。</p>
<p>更多的学习方法可以看这篇文章：</p>
<ul>
<li><a href="http://mp.weixin.qq.com/s/KBoi0O5gRoxeSSPL29_bcQ">如何培养终身学习者</a></li>
<li><a href="http://mp.weixin.qq.com/s/O9CcPOi1n9kCipT6bBj5sQ">离开了老师，我是这样高效学习的</a></li>
<li><a href="http://mp.weixin.qq.com/s/p0PqTUItqG5QeXYm8CfAEg">如何不停向自己学习</a></li>
</ul>
<h2 id="走过的弯路">走过的弯路</h2>
<p>现在回顾，在我实践时间管理的过程中，也走了很多的弯路，在此与您分享。</p>
<h3 id="过多地关注工具">过多地关注工具</h3>
<p>我相信很多人和我一样是工具控，对工具关注太多就是只见树木不见森林，所以我要提醒您不要跟我一样捡了芝麻丢了西瓜。</p>
<h3 id="对工作时间的分析太晚">对工作时间的分析太晚</h3>
<p>之前做时间记录，工作的内容只记了「工作」这个分类，没有具体到做的事情，大部分的精力放到了业余时间的优化上。直到最近我才开始用柳比歇夫的「时间记录法」，对工作花费的时间进行分析，让我看到了巨大的提升空间。
德鲁克在《二十一世纪的管理挑战》中提出知识工作者最难以管理，很多企业采用结果到导向的方式进行宏观管理，但作为知识工作者，我们自己应该对自己进行微观管理，才能提高生产力。</p>
<h3 id="高估了网络学习的价值">高估了网络学习的价值</h3>
<p>我曾参加过一些「名人」的私密群，因为信息量太大很快就退掉了。付费订阅的「樊登读书会」，「五分钟商学院」，「通往财富自由之路」，包括「速度训练营」，「时间管理训练营」等都没什么用，几百人的大群，每天上千条信息，平添许多焦虑。
对我而言，大部分有用的知识还是来自书本。</p>
<h3 id="忽视了个人助理的作用">忽视了个人助理的作用</h3>
<p>曾在去年 10 月尝试过了解到个人助理服务，当时觉得真人个人助理还挺新奇的，不过当时浅尝辄止。直到最近重读《每周工作 4 小时》，里边提到一个节省时间的技巧是外包。我才又开始尝试，昨天让助理帮我预订了出差的机票和酒店，还有想吃的水果，刚开始用需要输入一些信息，久了有了默契，就可以一键完成很多事情：比如「给家里买 50 元的时令水果」，给「我和老婆各充值 100 元话费」等。还有之前大量写文章的时候，一大痛点就是要发布到公众号，简书，知乎专栏，头条号等多个平台，这些事情都是重复且耗时的，我准备找解决方案，将其外包出去。最近在尝试的有 VAhut，助理来也。通过分析自己的时间使用情况，将最好的精力放在 20% 最有价值的工作上，另外的 80% 进行精简或外包。将会极大地提供价值创造的速度。</p>
<h2 id="推荐书籍">推荐书籍</h2>
<p>这一年多在学习和实践个人管理的过程中，读了几十本相关的书籍，挑选我认为最有帮助的一部分分享给大家：
<strong>学习类</strong></p>
<ul>
<li>好好学习</li>
<li>学习之道</li>
<li>这样读书就够了</li>
</ul>
<p><strong>时间管理类</strong></p>
<ul>
<li>每周工作 4 小时</li>
<li>每天最重要的两小时</li>
<li>最重要的事情只有一件</li>
</ul>
<p><strong>习惯培养</strong></p>
<ul>
<li>习惯的力量</li>
<li>刻意练习</li>
<li>练习的心态</li>
</ul>
<p>** 家庭 **</p>
<ul>
<li>爱的五种语言</li>
<li>斯托纳夫人的自然教育</li>
<li>非暴力沟通</li>
</ul>
<p>** 励志类 **</p>
<ul>
<li>富兰克林自传</li>
<li>奇特的一生</li>
<li>书都不会读，你还想成功</li>
</ul>
<hr>
<h2 id="后记">后记</h2>
<p>本文较长，感谢您耐心读到最后。我先分享了我从糟糕的状态转变到良好状态的经历，然后是对时间管理的认识要上升到个人管理。之后是我认为很重要的一些原则，以及这些原则在工作，生活中应用的一些实践。最后是我走过的一些弯路以及推荐的基本书籍。
我没有直接回答文章开头的痛点该如何解决，因为每个人的具体情况不一样，我希望您看完本文，能够有所启发，找到自己的答案。如果还是很困惑，我感到非常抱歉，期望您能留言与我交流。</p>]]></description><pubDate>Mon, 26 Jun 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何改变习惯]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E6%94%B9%E5%8F%98%E4%B9%A0%E6%83%AF/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E6%94%B9%E5%8F%98%E4%B9%A0%E6%83%AF/</guid><description><![CDATA[<p>良好的习惯是人在其神经系统中存放的道德资本，这个资本不断增值，而人在整个一生中就享受着它的利息。</p>
<p>今天我想跟你探讨的是：怎么处理不好的习惯。</p>
<p><strong>习惯是不能被彻底消除的</strong>
不管你愿不愿意，习惯会在不知不觉中自动养成，一旦养成，就不能被彻底根除。
改变习惯的方法是：<strong>保留提示和奖励，替换惯常行为</strong>。
比如，我要改变起床就刷朋友圈的习惯，想想刷朋友圈得到的奖励是什么？是收获感？
那我想想能不能从其他行为里得到收获感呢？
比如读书，那我就换成起床先读一会儿书。</p>
<h2 id="如何改变习惯">如何改变习惯</h2>
<p>从习惯的原理已经知道了，习惯包含：提示、惯常行为和奖励三部分。
那改变习惯也得从这三方面入手。</p>
<h3 id="避免提示出现">避免提示出现</h3>
<p>如果感到无聊的时候就刷朋友圈，那就让自己一直做有趣的事，避免无聊。
如果一看到肯德基就忍不住要走进去，那就换一条路，不要让自己看见它。
如果手机一震动，就会习惯性地拿出手机，那就让手机不要震动。</p>
<h3 id="增加旧行为的成本">增加旧行为的成本</h3>
<p>每次解锁手机，就会习惯性地打开微信，试试把微信 APP 的图标换一个位置。
每次打开微信，就习惯性地进入朋友圈，试试关闭朋友圈。
想养成使用快捷键的习惯，试试在键盘和鼠标之间放一个障碍物，比如仙人球。</p>
<h3 id="放大新行为的奖励">放大新行为的奖励</h3>
<p>假设旧习惯是一无聊就玩网络游戏，它的奖励是成就感，那么就可以，用另一项能获得更大成就感的行为，来替换玩游戏这个行为，比如运动。</p>
<h3 id="信念">信念</h3>
<p>对于改变一些根深蒂固的习惯，则需要拥有信念，并且不断强化。可以加入到社群里，互相鼓励，成功的几率更大。</p>
<h3 id="把不要变成要">把不要变成要</h3>
<p>与其说不要什么习惯，不如说要什么习惯。
比如，我不要吃夜宵的习惯，不如说，我要早睡的习惯。
我不要不讲卫生的习惯，不如说，我要每天洗澡的习惯。</p>
<h2 id="最不能要的两个习惯">最不能要的两个习惯</h2>
<p>叶圣陶先生提出有两个习惯是一定要避免的，我非常认同。</p>
<h3 id="不养成习惯的习惯">不养成习惯的习惯</h3>
<p>不养成习惯的习惯，就是做事很随意，每次都即兴发挥。
只有把每一件事情流程化，每次做完都复盘，看看哪些地方能改进，不断完善流程。才能把一件事越做越好。
定目标的时候，也应该从培养习惯的角度出发，习惯养成后，达成目标是自然而然的结果。
比如，与其定今年要读 50 本书的目标，不如说我每天要读 30 分钟书。
与其订每星期要写一篇文章，不如说我每天要写 30 分钟。
与其说我要减 10 斤，不如说我要养成健康的饮食习惯。</p>
<h3 id="妨碍他人的习惯">妨碍他人的习惯</h3>
<p>前段时间看服务设计的书，茶山提到，国人的服务意识决定了我们能享受到什么样的服务。
如果每个人都不给下一个人添麻烦，那每个人都能享受到很好的服务。
拿冲厕所来说，如果每个人方便完后都不冲，那每个人都要在方便之前冲，工作量并没有减少，却极大地影响了如厕体验。
随手关门，不大声喧哗，不迟到等等都是不妨碍他人的习惯。
每个人都能做到的话，每个人都会享受到更好的服务。</p>]]></description><pubDate>Sat, 25 Nov 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何爱上结对编程]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E7%88%B1%E4%B8%8A%E7%BB%93%E5%AF%B9%E7%BC%96%E7%A8%8B/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E7%88%B1%E4%B8%8A%E7%BB%93%E5%AF%B9%E7%BC%96%E7%A8%8B/</guid><description><![CDATA[<img src="/_image/20170714-1.png">
<p>第一次听说结对编程的时候，我觉得太反直觉了，两个人用一台电脑写代码，效率不就下降了一半吗？后来我在团队里去尝试引入结对编程，也没感觉有多好，而且小伙伴们的反馈也觉得不好，还是一个人写代码更自在，也就做了一周就放弃了。
直到 2012 年，第一次参加 Code Retreat 活动的时候，一天之内和日本人，德国人，英国人，美国人结对编程，不停地发出类似「哇哦，这道题目还能有这样的思路啊；哇哦，代码还能这么写啊；哇哦，原来 Vim 是这么用的啊」之类的感叹，让我对结对编程有了一点新的认识。
后来加入 ThoughtWorks 以后，结对编程变成了日常的工作方式，入职第一天，我就看到对面有两位一看发际线就知道很有经验的人在结对编程，充满了欢声笑语，一起去领取故事卡，一起去上厕所，一起去挪动物理墙上的故事卡。让我看得好生羡慕。后来在工作中，通过结对编程，我终于学会了如何做测试驱动开发，如何用 Vim，如何写 Rails 等等等等。到后来，我通过结对编程让别人学会测试驱动开发，学会 Vim，学会 Rails。
这些年，和形形色色的人进行过结对编程，有内向不说话的，也有外向霸着键盘的，有几十年编程经验的老手，甚至也有从未写过一行代码的新手。遇到过很多问题，也慢慢摸索出了一些门道，彻彻底底地爱上了结对编程。
我想分享一下我对结对编程的理解，消除对结对编程的一些普遍误解，影响更多的程序员朋友爱上结对编程，享受它带来的好处。我将从「是什么」，「为什么」和「怎么做」三个方面来展开。</p>
<h1 id="是什么">是什么</h1>
<p>结对编程是「极限编程（eXtreme Programming）」里的一个实践。</p>
<p><img src="/_image/20170714-2.png" alt="极限编程"></p>
<blockquote>
<p>结对编程技术是指两位程序员坐在同一工作台前开发软件。</p>
</blockquote>
<p>对于企业老板而言，结对编程太过反直觉。两个人用一台电脑，不是浪费了一个人吗？效率不是降低了一半？</p>
<h1 id="为什么">为什么</h1>
<p>接下来就说说为什么要结对编程，我认为它主要有五个方面的好处。</p>
<h2 id="更专注">更专注</h2>
<p>对于大多数 996（早九晚九，每周六天）程序员而言，一天 12 小时的工作时间中，有多少时间在看新闻，看技术博客，查邮件，刷朋友圈？有没有统计过一天真正高效编程的时间？我敢打赌， 90% 的人每天真正高效编程的时间，不超过 3 小时。</p>
<p>好的结对编程，注意，我说的是好的，可以让两个人更专注，会让人觉得时间过得特别快，而到了 8 个小时后，一定会觉得没有精力再继续工作了。这就是为什么极限编程里还有一个实践强调每周只工作 40 小时，也就是每天 8 小时，每周 5 天。</p>
<h2 id="提高解决问题的效率">提高解决问题的效率</h2>
<p>编程中，也符合「二八原则」，80 % 的时间花费在 20% 的工作上。一帆风顺时，不会消耗太多的精力，但一旦被一个问题卡住，就要花大量的时间和精力去解决。随着对精力的消耗加剧，自控力急剧下降，于是掏出手机刷起朋友圈。等反应过来的时候，又到了下班时间了，工作没干完，只能无奈继续加班了，加班时萎靡的精神状态和不甘愿的心态，导致效率和质量都不会太高。</p>
<p>结对编程可以集合两个人的聪明才智，让编程变得更顺畅，减少被问题卡住而浪费的时间。</p>
<h2 id="减少错误">减少错误</h2>
<blockquote>
<p>错误发现的越早，修复成本越低。</p>
</blockquote>
<p>我们在解决程序错误的过程中，80% 的时间是用在定位问题上，一旦定位到问题，多数时候可能只需要修改一行代码就能解决。
举个例子，用户报了一个线上错误，我们需要去定位是哪个子系统的问题，是前端还是后端的问题，是表现层还是逻辑层或者数据层的问题。
如果能在编写代码过程中就及时发现错误，就能节省大量的定位问题的时间。</p>
<p>极限编程的信条是：如果一个实践有价值，我们就把它做到极致。
思考一下，结对编程是将哪个实践做到了极致？对了，就是 Code Review（代码评审）。</p>
<h2 id="知识传递">知识传递</h2>
<p>在软件项目中，有很多的知识，包括业务知识和技术知识。很多团队习惯用文档来沟通，来了新人，先扔一堆文档自己看一个星期，这样的带人方式通常上手很慢，新人也因为没有产出而感到焦虑。文档也可能疏于维护，导致与现实不符，看了也白看。
用结对编程的方式来传递知识，可以让最新的知识在团队中流动起来，所有人都掌握整个团队的业务和技术知识。用结对编程带新人的时候尤其方便，因为大部分的需求都是增删改查，就算不理解更深的原理也可以照猫画虎地解决问题，新人第一天就有产出。一个需求做下来，就基本摸清了项目里的业务，代码结构，框架使用，部署等方面的知识。
《解析极限编程》一书里对结对编程的描述很极致，它不是说一对 Pair 做一个需求，而是定时轮换。早上 A 和 B 结对认领了需求一，C 和 D 认领了需求二，下午 B 和 C 交换了一下， A 和 C 继续做需求一，B 和 D 继续做需求二；第二天早上，A 和 D 又交换了一下，C 和 D 继续做需求一，A 和 B 继续做需求二。用这种方式，再配合 Code Review，就可以让每个人都了解大部分的需求，尽可能消除信息瓶颈。</p>
<h2 id="增进友谊">增进友谊</h2>
<p>最后来说说增进友谊，也就是标题所说的：结对编程是程序员最好的社交。如果你的团队实践过结对编程，可能打死都不信。我的很多朋友告诉我尝试结对编程后，大家觉得很不习惯，还是一个人写代码更好，甚至增加了内部矛盾。
这些现象是正常的，我也曾经历过这个阶段。因为结对编程是一门技术，就好比一把倚天剑，如果掌握的不好，不仅无法增加威力，甚至会伤害到自己。所以要重点关注下后面如何做的部分。
现在，我最好的程序员朋友，都是长时间结对工作过的同事。每次久别重逢，最重要的事就是打开电脑来结对，看看对方又研究了什么好玩的。</p>
<h1 id="怎么做">怎么做</h1>
<p>并不是说两个人坐到一起写代码就算结对编程，结对编程是一门技术，需要学习结对的形式和习惯，以及常见问题如何预防和解决。</p>
<h2 id="三种形式">三种形式</h2>
<p>结对编程有三种形式：</p>
<ul>
<li>键盘鼠标式</li>
<li>Ping-Pong 式</li>
<li>领航员-驾驶员式</li>
</ul>
<h3 id="键盘鼠标式">键盘鼠标式</h3>
<p><img src="/_image/20170714-3.png" alt="键盘鼠标式"></p>
<p>顾名思义，就是一个人操作键盘，一个人操作鼠标。当然，这种方式越来越不常用，因为程序员们以使用命令行和快捷键为荣，能用到鼠标的地方越来越少了。</p>
<h3 id="ping-pong-式">Ping-Pong 式</h3>
<p><img src="/_image/20170714-4.png" alt="Ping-Pong 式"></p>
<p>这种是采用 TDD（测试驱动开发）时常用的方式，A 写测试，B 实现和重构，然后 B 写下一个测试，A 来实现和重构。</p>
<h3 id="领航员-驾驶员式">领航员-驾驶员式</h3>
<p><img src="/_image/20170714-5.png" alt="领航员-驾驶员式"></p>
<p>最后一种是 Navigator-Driver 式，Navigator 的注意力放在如何实现宏观目标，以及 Review Driver 编写的代码。 Driver 编辑代码，关注的是短期目标，代码细节。需要强调的是，Navigator 之所以叫这个名字，说明他不只是在一旁观看，他因为不操作键盘，想的会比较快，他要引领 Driver 的思路。同时，他在 Review 代码的时候，不要立即指出 Driver 编码中的小错误，那样容易打断 Driver 的思路，因为有可能 Driver 已经发现了，但想先把整个写完再去修复，以保持思路连贯，Navigator 可以在确认对方没有发现的情况下提示对方。</p>
<p>我们最常用的是 Ping-Pong 和 Navigator-Driver 结合的方式，双方都熟悉结对编程并有默契的时候，是会随时切换角色的。原则呢就是要让双方都保持参与感，不然一个人跟不上另一个人的思路，就会开始玩手机，打瞌睡，就无法愉快地结对了。</p>
<h3 id="好习惯">好习惯</h3>
<p>除了形式，我认为还有一些习惯决定了结对编程是否愉快。</p>
<p><strong>身体清洁</strong>
试想一下，坐到同事身边，隐隐传来浓烈的脚气味道，一张口传来大蒜或咖喱的味道，还能专心地写代码吗？
所以我们要注意个人卫生，常备口香糖，结对前来一粒，他好我也好。</p>
<p><strong>心态开放</strong>
尤其是在老手和新手结对的时候。不要觉得我的方案就是最好的。放低自己，倾听对方的想法，开放地探讨。</p>
<p><strong>欣赏和赞美</strong>
当对方提出精彩的想法或写出漂亮的代码时，不要吝啬你的赞美之词。尤其要避免指责和嘲笑，特别是老手和新手结对时，你的目的不是为了证明比对方聪明，而是帮助对方成长。</p>
<p><strong>感恩</strong>
结对结束后，真诚地感谢对方，告诉对方从他身上学到了哪些东西，对方会有满满的成就感。也会更愿意再次和你结对。</p>
<p><strong>节奏一致</strong>
你观察一下结对比较默契的同事，他们会一起喝水，一起上厕所，一起抽烟。只有保持一致的节奏，才能最大化地提高效率。不然，一个去厕所了，另一个人在那写，回来可能就跟不上了。刚跟上，之前那位又要出去抽根烟...
你可能会问，两个人老是形影不离会不会很尴尬啊。在这里分享一个我的小技巧，我会看对方来决定自己的行为，比如对方去接水，我就去厕所，等我回来接水，对方也去厕所了，就比较不会尴尬。
另一个重要的技巧是，要合理地划分任务，每一个任务在半小时左右可以完成。任务完成，提交代码，休息几分钟，继续下一个任务。就算一个人工作时，这也是比较好的工作节奏。</p>
<p><strong>切换角色</strong>
最后一个习惯，不要太过沉迷到自己的世界里，写代码写嗨了就独自霸着键盘，要有意识地察觉对方的状态，尤其是外向型和内向型结对、老手和新手结对时，要注意把控切换时机，给对方机会。</p>
<hr>
<p>最后，推荐一本书<a href="https://book.douban.com/subject/1144538/">《结对编程技术》</a>，这本书里详细讲了结对编程的各种场景容易出现的问题以及应当如何解决。
比如：</p>
<ul>
<li>新手和新手结对</li>
<li>老手和老手结对</li>
<li>新手和老手结对</li>
<li>同性结对</li>
<li>异性结对</li>
<li>内向型和内向型结对</li>
<li>外向型和外向型结对</li>
<li>内向型和外向型结对</li>
<li>和外国人结对</li>
<li>...</li>
</ul>
<hr>
<p>以上，是我对结对编程的理解，是什么、为什么以及怎么做，希望对你有用。
结对编程，你试过了吗？感受怎么样呢？期待与你交流~</p>
<p>本文最初发布与 GitChat，更多干货，请付费查看<a href="http://gitbook.cn/m/mazi/article/58dc48e03e68eecc07ebef6b?isLogArticle=yes&#x26;readArticle=yes">问答实录</a>。</p>]]></description><pubDate>Fri, 14 Jul 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何理解「教练是一面镜子」]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E7%90%86%E8%A7%A3%E3%80%8C%E6%95%99%E7%BB%83%E6%98%AF%E4%B8%80%E9%9D%A2%E9%95%9C%E5%AD%90%E3%80%8D/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E7%90%86%E8%A7%A3%E3%80%8C%E6%95%99%E7%BB%83%E6%98%AF%E4%B8%80%E9%9D%A2%E9%95%9C%E5%AD%90%E3%80%8D/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-16-58-45.png">
<p>昨天晚上，又一次参加了教练对话练习。
练习后，观察者给我反馈，说我提的问题有诱导性，不够中立，而教练应该是一面镜子。
我就一直在想，镜子是啥意思，到底要怎么才能做好一面镜子。
带着这个问题，我加入了另一组。
在练习结束后，作为观察者的张莹开始点评，他打开手机，展示了一张教练过程的照片。
我突然感觉被什么击中了。</p>
<h2 id="什么是镜子">什么是镜子</h2>
<blockquote>
<p>一种背面有反射物质（如水银）的玻璃，用来照见形象。</p>
</blockquote>
<p>镜子的作用是让使用者从另一个角度看自己，从而更加了解自己。
我想起第一次和 Mavis（我爱人） 去打保龄球的时候，我们俩都从未打过，谁也教不了谁，唯一可以参考的就是桌上的新手指南。
我们当时用手机给对方录像，每次击球后回看录像，以更好地自我纠正。</p>
<h2 id="为什么需要镜子">为什么需要镜子</h2>
<p>了解自己比了解别人要难得多，所以现在这么多人感到迷茫，开始通过冥想，内观等方法去探索自己。
镜子可以提供一个新的视角，让我们得以从另一个角度观察自身。
世界顶级的教练也有自己的教练，就好像，世界顶级的理发师，也需要一个给自己理发的人。</p>
<p><img src="/_image/2017-02-21-09-42-50.jpg" alt=""></p>
<p>上图为 Johari Window，可以看到，一个人身上存在四个区域：</p>
<ul>
<li>公开区，自己和他人都知道。比如我会编程这件事。</li>
<li>隐藏区，自己知道，别人不知道的。比如我会吹口琴这件事就没人知道（不过现在就知道了~）</li>
<li>盲区，别人知道，自己不知道的。比如... 还是你来告诉我吧。</li>
<li>未知区域，自己和别人都不知道，只有上帝知道。</li>
</ul>
<p>教练的作用，就是抓住两条线的交叉点，往右下角拖，探索未知区域，挖掘被教练者的潜力。</p>
<h2 id="怎么当一面镜子">怎么当一面镜子</h2>
<p>那么在教练对话过程中，教练需要做什么，不做什么，才能充当好一面镜子呢？</p>
<p><strong>问问题</strong>
通过问问题，客户回答，向下拓展，缩小隐藏区域。</p>
<p><strong>给反馈</strong>
把你看到的告诉客户，让他了解到自己原来不知道的。</p>
<p><strong>保持中立</strong>
教练要保持中立，客观地描述人和事，不要用自己的标准去评判客户。
当教练正好也在被客户同样的问题困扰时，不要陷入进去，时刻意识到正在进行教练对话。
当客户的问题，教练曾经解决过时，也不要用自己的经验去给客户建议。</p>
<h2 id="一面更好的镜子">一面更好的镜子</h2>
<p>除了以上三点，教练这面镜子还可以做的更好，支持多点触控，具备缩放功能，就像 iPad 一样。
客户可以放大某个局部来看观察细节，也可以缩小以便看到全貌。
这要求教练具备「洞察力」和「抓重点」的能力：
洞察力帮助客户放大局部，看到细节；
抓重点帮助客户把长篇大论浓缩为几个字，看清全貌。</p>
<p>以上是我对教练作为一面镜子的理解，欢迎交流~</p>
<hr>
<p>我是 Seaborn Lee，感谢你阅读我的文章，希望今天的分享对你有用~</p>]]></description><pubDate>Tue, 21 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何组织程序员集体学习活动 Code Retreat（一）]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E7%BB%84%E7%BB%87%E7%A8%8B%E5%BA%8F%E5%91%98%E9%9B%86%E4%BD%93%E5%AD%A6%E4%B9%A0%E6%B4%BB%E5%8A%A8%20Code%20Retreat%EF%BC%88%E4%B8%80%EF%BC%89/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E7%BB%84%E7%BB%87%E7%A8%8B%E5%BA%8F%E5%91%98%E9%9B%86%E4%BD%93%E5%AD%A6%E4%B9%A0%E6%B4%BB%E5%8A%A8%20Code%20Retreat%EF%BC%88%E4%B8%80%EF%BC%89/</guid><description><![CDATA[<img src="/_image/20170223-0.png">
<p>Code Retreat，又叫代码静修，代码精修。</p>
<h2 id="code-retreat-是什么">Code Retreat 是什么</h2>
<p>对<strong>想要编写出更好的代码</strong>，和<strong>更优雅地编写代码</strong>的程序员来说，Code Retreat 是最棒的<strong>集体学习活动</strong>。
它通过<strong>结对编程并频繁轮换搭档</strong>的形式，极大地<strong>开阔程序员的眼界和思维</strong>。
不同于 Hackthon（黑客马拉松），Code Retreat 通常<strong>为期一天</strong>，不以完成题目为目标，每一个小时都会删除全部代码，找个新搭档，<strong>针对一个目标进行练习</strong>。</p>
<h2 id="为什么我要写这个">为什么我要写这个</h2>
<p>从 2012 年在北京第一次参加 Code Retreat 开始，这几年，我在深圳和成都组织了 5 次 Code Retreat 活动。每一次都让我非常震撼，并且参加的人也觉得很有收获，他们在结束后最常问的问题是：「下一次活动什么时候啊？」
第一次在深圳组织的时候，我像无头苍蝇一样，到处找场地，找赞助，查资料，宣传，手忙脚乱。
担心报名的人不多，担心活动当天下雨，担心大家没学到东西，担心控制不好现场...
到现在，我已经轻车熟路，可以在一周以内，不费力气地组织一场 Code Retreat。
我想把我的经验写出来，让更多的人可以开始，在自己公司内部、在社区，组织 Code Retreat 活动。</p>
<h2 id="如何组织">如何组织</h2>
<p>最早，我们参加的是 Global Day of Code Retreat（全球代码静修日，简称 GDCR），在每年的 11 月，全球多个国家和城市同步举行，有数千名程序员参加。
2015 年，我们觉得一年一次不过瘾，于是在姚若舟的牵头下，中国区的组织者们一起准备搞一个 Chinese Day of Code Retreat，后来又有其他国家的组织者参与进来，于是变成了 APAC Day of Code Retreat，在 6 月举行，这样程序员们就可以每半年参加一次。
上周末，我在成都组织了一场 Code Retreat，既不是 GDCR，也不是 ADCR，就是一场普通的社区活动。
<strong>你可以随时随地组织一场 Code Retreat，没有人会阻拦你。</strong></p>
<hr>
<p>接下来，我从活动的前中后三个阶段来描述，在这三个阶段分别需要做些什么。</p>
<h3 id="活动前">活动前</h3>
<p><strong>怎么挑个好日子</strong>
首先需要确认活动的日期，你需要查看一下，当天是否是公共节假日，或者是否有其它社区活动。还有别忘了查看一下天气预报。
如果当天是公共假期，也有其它活动，并且当天天气并不怎么样，那么，这就是最适合举行 Code Retreat 的日子。
<strong>只有这样，你才能找到真正热爱编程，追求匠艺的程序员一起来玩。</strong>
我在深圳组织的时候，就经常和深圳敏捷部落，珠三角技术沙龙，GDG 等社区活动同一天进行，就是要强迫兴趣广泛的程序员们，做出一个拷问内心的选择。我是不是太邪恶了？
当然，如果你是第一次组织，并且是以推广软件匠艺为目的，就最好选一个，普通的周末，没有其它社区活动，且阳光明媚的日子。
最好再查一下「程序员老黄历」：
<img src="/_image/image_2023-11-04-21-06-37.png" alt=""></p>
<p><strong>怎么找场地</strong>
Code Retreat 并不需要很大的场地，能容纳 10 几个人的会议室就可以。
这些年参与和主办过很多活动，提供过场地的公司有：腾讯、迅雷、锦会、中兴通讯、金斧子、ThoughtWorks 等。
为什么他们要提供场地呢？仅仅是出于支持公益活动吗？非也。我总结了如下几点：</p>
<ul>
<li>大企业看重雇主品牌。比如，上周的活动在 ThoughtWorks 举行，回顾的时候有个参会者就感叹说：「有个好的工作环境非常重要」。（啊，看这软广打的，按惯例 ThoughtWorks 应该给我几万的广告费~）</li>
<li>创业公司看重宣传和招聘。锦会是个联合办公空间，当时刚开业，需要更多曝光。金斧子是专注互联网理财的创业公司，正在飞速发展，对工程师的需求很大。</li>
<li>传统公司看重氛围。中兴通讯更多的是看重，将对代码精益求精的态度和积极学习的氛围，带入到公司内部。</li>
<li>企业大学看重形式。迅雷当时在搞迅雷学院，更多的是多了解一种培养人的方式。</li>
</ul>
<p>再次感谢以上帮助过「软件匠艺社区」的企业，祝没上市的早日上市，已上市的基业长青！
也感谢这些企业里给我提供帮助的朋友们：军少，贺鹏飞，范堃，黄泽武、张晔，王拓，海侠。希望以后还有更多的合作~</p>
<p>所以呢，不要担心没有人提供场地，多找社区的朋友问问，实在找不到就在自己公司搞。
差点忘了，场地方还需要确认一下设施：</p>
<ul>
<li>饮水</li>
<li>插排</li>
<li>投影（VGA，HDMI）</li>
<li>白板</li>
<li>空调</li>
<li>空气净化器（深圳除外。妈蛋，好怀念深圳~）</li>
</ul>
<p><strong>宣传报名</strong>
确认了时间地点，接下来做什么？
首先要做一个报名表单，推荐用金数据：
<img src="/_image/image_2023-11-04-21-07-03.png" alt=""></p>
<p>有了报名表单，接下来就该去宣传了，你也不想一个人独守空房是吧~
2013 年第一次在深圳组织的时候，不到一周的时间，我加了各种 QQ 群，对，那时候流行 QQ，Java，C#，Ruby，Python，JavaScript 等。当时最有意思的是，QQ 群里一个人说：「周末还 TM 写代码，屌丝注定孤独一生。」
除了 QQ 群，还可以到开源中国、V2EX、RubyChina 等社区去宣传。
当然，也可以把活动发布到 「MeetUp.com」，「活动行」等自带流量的活动平台，虽然我没试过。</p>
<p>做了几年社区，现在也有一点影响力了（臭表脸的说），宣传报名也简单多了。这次活动，我在 CodingStyle.cn 上发了个帖，在朋友圈转了一下，就有 1000 多阅读，20 多人报名。
这次我也忘记了一点，<strong>报名后最好加个微信群</strong>，方便后续沟通。</p>
<p><strong>题目选择</strong>
GDCR 的题目是 Game of Life，一直没换过，官方的解释是：</p>
<blockquote>
<p>Code Retreat 的题目既不能太难也不能太简单，太难的话大家就会一心专注解题，忽略了练习目标，太容易的话大家会觉得无趣。一直没找到可以替换的题目，所以就一直用这个。</p>
</blockquote>
<p>我也尝试过用 Tennis Kata，确实不如 Game of Life 好。</p>
<hr>
<p>写到这里，奋笔疾书了 90 分钟了，已经快两千字了。
关于活动当天如何组织，明天再跟大家分享，喜欢请点赞，没人点赞就不写了~</p>]]></description><pubDate>Thu, 23 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何组织程序员集体学习活动 Code Retreat（二）]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E7%BB%84%E7%BB%87%E7%A8%8B%E5%BA%8F%E5%91%98%E9%9B%86%E4%BD%93%E5%AD%A6%E4%B9%A0%E6%B4%BB%E5%8A%A8%20Code%20Retreat%EF%BC%88%E4%BA%8C%EF%BC%89/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E7%BB%84%E7%BB%87%E7%A8%8B%E5%BA%8F%E5%91%98%E9%9B%86%E4%BD%93%E5%AD%A6%E4%B9%A0%E6%B4%BB%E5%8A%A8%20Code%20Retreat%EF%BC%88%E4%BA%8C%EF%BC%89/</guid><description><![CDATA[<img src="/_image/image_2023-11-04-21-09-31.png">
<p>昨天说完了确定时间，场地和题目。今天来说说活动当天要做些什么。</p>
<h2 id="准备">准备</h2>
<p>活动当天，提前半小时到达，准备如下东西：</p>
<ul>
<li>门口指引</li>
<li>WIFI</li>
<li>插线板</li>
<li>椅子</li>
<li>视觉引导（非必须）
<img src="./_image/2017-02-24-06-49-34.jpg" alt=""></li>
</ul>
<h2 id="破冰">破冰</h2>
<p>到了活动开始时间，邀请大家一起玩破冰游戏，用语要温柔：</p>
<blockquote>
<p>因为今天我们会一整天和很多人结对编程，我想邀请大家一起来玩一个游戏，帮助我们彼此熟悉。</p>
</blockquote>
<p>而不是：</p>
<blockquote>
<p>大家到这边来，我们玩一个游戏。</p>
</blockquote>
<p>我最喜欢的游戏是记名字：</p>
<blockquote>
<p>大家围成一圈，从我开始介绍，我是李小波，然后我左边的朋友就要说，我是李小波左边的 AAA，他左边的朋友就要说，我是李小波左边的 AAA 左边的 BBB。一直到最后，由我结束。</p>
</blockquote>
<p>这个游戏看起来很挑战记忆力，但实际上并不是很难，只要用心，基本都能记住。过程中抓住机会即兴幽默，让大家笑出来，只要笑出来了，大家就能放下防备，后面一整天的活动都会轻松很多。
过程中会陆续有迟到的人加入进来，邀请他站到你的右边，也就是最后一个位置。
如果第一轮下来，你觉得大家还不够放得开，或者人还没到齐，那就再来一轮，加一个挑战。比如，我是<strong>有双胞胎儿子</strong>的李小波，或者我是<strong>坚持每天写一篇文章</strong>的李小波，请大家继续，模仿着来。
两轮下来，大家也熟悉了，人也差不多到齐了。</p>
<h2 id="开场">开场</h2>
<p>开场需要做：</p>
<ul>
<li>自我介绍</li>
<li>主办方介绍</li>
<li>活动背景介绍</li>
<li>感谢场地赞助商</li>
<li>友情提示（信息安全规定，洗手间，喝水等）</li>
</ul>
<p>介绍活动形式：</p>
<ul>
<li>全天 5 - 7 个 Session</li>
<li>每个 Session 45 分钟</li>
<li>每个 Session 删除代码，换人结对</li>
<li>每个 Session 有一个目标（约束）</li>
<li>保持开放心态</li>
</ul>
<p>告诉大家，我们一整天都会玩同一个题目。
目标不是把代码写出来，应该关注在每个 Session 的练习目标上。
介绍题目规则，不用说的很清楚，可以让大家自己去网上找。
有一个视频建议放一下：<a href="http://v.youku.com/v_show/id_XODAzNzAzNzgw.html?from=s1.8-1-1.2&#x26;spm=a2h0k.8191407.0.0">Epic Conway's Game of Life</a>
问一下大家是否熟悉结对编程，如果不熟悉，可以介绍一下。
推荐放一个视频：<a href="http://v.youku.com/v_show/id_XNTQxNTYyMzMy.html?from=s1.8-1-1.2&#x26;spm=a2h0k.8191407.0.0">告诉你什么叫结对编程！ Atlassian 愚人节视频</a></p>
<h2 id="session-设置">Session 设置</h2>
<p>我通常第一轮不加约束，可以用自己平时的方式去做。
第二轮开始要求 TDD，之后就随机选取一个约束：</p>
<ul>
<li>快捷键</li>
<li>函数式编程</li>
<li>每个方法不超过 5 行</li>
<li>使用纯文本编辑器</li>
<li>TDD as if you meant it</li>
<li>静默结对</li>
<li>...</li>
</ul>
<h2 id="分组">分组</h2>
<p>第一轮，大家会倾向于找熟人结对，可以适当提示，和不熟悉的人结对会有更多惊喜。
如果对方坚持，就由他们去吧。
在 TDD 环节，调查一下大家对 TDD 的熟悉程度，可以说：</p>
<blockquote>
<p>从 1 分到 10 分，认为自己 TDD 掌握程度在 5 分以上的举手。</p>
</blockquote>
<p>如果差不多一半，就可以让熟悉的和不熟悉的结对了。
如果 5 分以下的特别多，可以引导 5 分以上的同学，来简单分享一下 TDD 怎么做。</p>
<p>其它时间，就随意地结对，不断提示大家：</p>
<blockquote>
<p>背景越不一样，结对的收获越大，不要重复结对。</p>
</blockquote>
<h2 id="巡场">巡场</h2>
<p>大家开始编码后，开始计时。
我以前试过，如果现场有一个人落单，我就去和他结对，现在我不会这么做了。
巡场是很有必要的，去提醒大家当前 Session 的关注点，不要沉迷于实现需求。</p>
<ul>
<li>如果两个人结对编程做的顺畅，比如用两台电脑，提示他们只用一台。</li>
<li>如果一个人没有参与感，提醒他们切换角色。</li>
<li>如果他们都不熟悉快捷键，给一些提示。
反正，引导者的目标是保证活动顺利进行，每个人都有最大的收获，除了写代码，可做的事情有很多。</li>
</ul>
<h2 id="回顾">回顾</h2>
<p>每个 Session 介绍后，邀请大家回到白板前，分享自己的代码。
这个时候是共同学习，有经验的人也可以学到很多东西。同时，作为分享者，也会很有成就感。
每次回顾结束后，休息 5 分钟，让大家可以喝水，上洗手间，检查手机。</p>
<h2 id="午饭">午饭</h2>
<p>感谢饿了么，让订餐这么方便，现场拉个群，帮大家订外卖，大家还可以自己选，反正自己掏钱。
如果有公司赞助午餐，那就统一订就行了。</p>
<h2 id="整体回顾">整体回顾</h2>
<p>最后，邀请大家做一个整体回顾。用便利贴写，每张写一条，从三方面写：</p>
<ul>
<li>学到了什么</li>
<li>什么让你震惊</li>
<li>回去下一步准备做什么</li>
</ul>
<p><img src="/_image/image_2023-11-04-21-10-02.png" alt=""></p>
<p>最后拍照留念，感谢大家抽出时间参与活动。再次感谢场地赞助商~</p>
<p><strong>活动后</strong>
在微信群里继续探讨，把拍的照片发给大家，尤其是有人分享的照片。鼓励大家写活动心得，回顾。
一方面回顾是个好习惯，另一方面可以作为宣传的素材，扩大活动影响力。</p>
<h2 id="常见问题">常见问题</h2>
<p><strong>时间到了，大家根本停不下来</strong>
这时要用一些引导的技巧，基本上是借用群体压力。
比如，时间到后，我开始拍手，请听到声音的同学也跟着拍手，直到所有人都开始拍手。</p>
<p><strong>没有人愿意主动分享。</strong>
在巡场的时候，观察哪些组做的比较好，提前鼓励他们分享。
在回顾时，每次分享完感谢分享者，带头鼓掌。
有些人想分享，但缺少主动的勇气，那你就可以点名请他分享。
尽量记住所有人的名字，多叫出他们的名字，会让人感到受尊重。
不要打击，评价分享者，给建议时要委婉，有建设性。</p>
<p><strong>经验丰富的人也会有收获吗？</strong>
是的，教学相长。我调查过，在 TDD 环节，5 分以上的同学，在 Session 结束后觉得分值有所提升。
因为在给对方解释时，自己的理解又加深了。
另外，在每次回顾时，也可以从其他有经验的人身上学到很多。</p>
<p><strong>作为引导者，需要技术很牛吗？</strong>
不需要。是加分项，但不是必须的。同时反而要控制住自己的表现欲，为大家搭建一个分享知识的舞台。
你要做的是控制好时间，节奏，氛围。 程序员大多是内向的，多鼓励，营造安全的氛围。这里没有项目经理，没有老板，放心大胆地玩。
无论何时，照顾多数人的利益，这样每个人都愿意成为多数人。
我举个例子，有人迟到了，我们就让准时到的人一起等着，这就不对，这是在惩罚守规矩的人，那下次大家就都不守规矩了。</p>
<hr>
<p>组织 Code Retreat 活动，对于引导者，不仅可以收获知识，影响力，还可以锻炼到控场，引导能力，讲话技巧。
希望大家都勇敢迈出第一步，去尝试在自己的公司内、在社区，组织 Code Retreat 活动。
需要任何帮助，给我留言，我坚定地支持你！</p>]]></description><pubDate>Fri, 24 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何让自己变得豁达]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E8%AE%A9%E8%87%AA%E5%B7%B1%E5%8F%98%E5%BE%97%E8%B1%81%E8%BE%BE/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E8%AE%A9%E8%87%AA%E5%B7%B1%E5%8F%98%E5%BE%97%E8%B1%81%E8%BE%BE/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-17-03-58.png">
<p>你是否常常因为一些小事，被你的爱人，你的孩子，你的同事激怒？
你是否看到网上争论「年轻人该不该给老人让座儿」也会破口大骂？
你是否期望，当负面的事情发生时，能够以豁达的心态，理性地对待，而不是被情绪所左右。</p>
<p><strong>ABC 理论：情绪的诱发装置</strong></p>
<ul>
<li>Activating Event，事件</li>
<li>Belief，信念</li>
<li>Consequence，结果</li>
</ul>
<p>对于同一件事，每个人会做出不同的反应。比如，公交车上上来一位老人，有的人会让座儿，有的人不会让。因为大家的信念不同。
如果我们想避免不好的结果出现，比如避免负面情绪，那么有两个办法，一是避免事件发生，比如不要看负能量的社会新闻。但这有点儿治标不治本的感觉，一劳永逸的办法是：改变自己的信念。</p>
<p><strong>失控是因为对方的行为不在你的信念清单中。</strong>
愤怒，其实是一种自我保护的状态。而最根本的原因，是因为对方的行为不在你的信念清单中。
举个例子，如果你回老家，你的小侄儿抡起小拳头打你，你会怎么处理？你会愤怒地怼回去吗？你多半不会的，如果你是正常人的话。因为你知道，小孩儿打人是正常的行为，因为他还不懂事嘛，也有可能只是为了得到你的关注而已。
那么换另一个场景，如果你走在大街上，有个陌生男人打你一下，你多半会有两种反应，要么是愤怒地回击，要么立马逃跑。因为在你的信念中，正常的成年人是不会随意地攻击别人的，他可能不太正常。为了安全，这时你的「下层脑」立马取得了身体的控制权，控制你的身体进行反击或逃跑。</p>
<p><strong>如何改变响应模式？</strong></p>
<ol>
<li>将「异常行为」加入信念清单</li>
<li>预演如何应对</li>
<li>常常更新</li>
</ol>
<p>每天观察自己，当出现不好的情绪时，把对方的这个行为加入到清单中，预演下次出现这种行为时，你要如何应对。
通过这种训练，久而久之，那些原本不在你清单中的行为，加入了清单，经过多次的预演，当这个行为真正出现的时候，大脑就不会因为陌生而立马紧张起来。从而我们可以更理性地应对。</p>
<p>最后，这样的训练，并不是为了接受所有不可理喻的行为，而是当这种行为出现的时候，我们可以更理性地去对待。
如果想了解更多，推荐阅读：<a href="https://book.douban.com/subject/26833522/">《麦肯锡精英的思考习惯》</a>。</p>]]></description><pubDate>Thu, 16 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[如何通过刻意练习成为面霸]]></title><link>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%88%BB%E6%84%8F%E7%BB%83%E4%B9%A0%E6%88%90%E4%B8%BA%E9%9D%A2%E9%9C%B8/</link><guid>https://life.seabornlee.cn/posts/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%88%BB%E6%84%8F%E7%BB%83%E4%B9%A0%E6%88%90%E4%B8%BA%E9%9D%A2%E9%9C%B8/</guid><description><![CDATA[<img src="/_image/2016-09-09-12-40-06.jpg">
<p>在上一篇中，我分享了一些<a href="http://seabornlee.cn/post/cheng-chang/2016-09-09-jian-li-he-mian-shi-ji-qiao">简历和面试技巧</a>。
方法和技巧看了那么多，怎么还是只能「看着别人收 offer 收到手软，自己等 offer 等到脚麻」呢？
我们首先要达成一个共识，<strong>面试是一项「技能」，只要是技能都能且只能通过练习来提升</strong>。
那是不是要大量的面试呢？会不会成本太高啊。
答案是<strong>不需要</strong>，通过实战来练习远不如针对性的练习效果好。
<img src="/_image/2016-09-10-12-26-50.jpg" alt=""></p>
<p>就拿乒乓球运动员来说，难道一上来就开始打比赛吗？虽然现在流行「以赛代练」，那也绝对不是初学者应该做的。</p>
<p>那要怎么练呢？
首先，拆解乒乓球技术：</p>
<ul>
<li>站位</li>
<li>挥拍</li>
<li>发球（上旋下旋等）</li>
<li>接发球（正手，反手）</li>
<li>拉球</li>
<li>削球</li>
<li>战术</li>
<li>...
（我不是专业的乒乓球运动员，只是做个事例，懂行的不要打我。）</li>
</ul>
<p>然后遵循两个原则来练习：</p>
<ul>
<li>循序渐进</li>
<li>针对性练习</li>
</ul>
<p>当然，在练习过程中如果有专家指导，会节省很多时间。</p>
<p>我认为只有这样的刻意练习，才能取得很好的成效。
回到面试，我暂且把面试能力拆解成：</p>
<ul>
<li>和陌生人自如交流
<ul>
<li>礼仪</li>
<li>倾听</li>
<li>表达</li>
</ul>
</li>
<li>回答问题
<ul>
<li>澄清问题</li>
<li>回答</li>
<li>确认答案</li>
</ul>
</li>
<li>挖掘信息
<ul>
<li>问题设计</li>
<li>引导</li>
<li>提炼信息</li>
</ul>
</li>
</ul>
<p>然后，我们就可以做针对性的练习了。
<strong>和陌生人自如交流</strong>
去搭讪陌生人：</p>
<blockquote>
<p>同学，能帮我系一下鞋带儿吗？</p>
</blockquote>
<p>挑那种让你一见就脸热心跳手心冒汗头脑空白的，没准儿还能成就一段佳话。</p>
<p><strong>回答问题</strong>
用「思维导图学习法」，把简历上的每一个关键字拿出来，问 5W1H。
<img src="/_image/2016-09-09-12-40-06.jpg" alt=""></p>
<p>如果你能做到「广度和深度」兼具，还会被问住吗？</p>
<p><strong>挖掘信息</strong>
设计一系列问题，去找人聊天，挖掘答案。
比如：</p>
<ul>
<li>找一个篮球打的好的，请教篮球知识</li>
<li>找一个游戏玩的好的，请教游戏技巧</li>
</ul>
<p>注意，<strong>要用提问来引导谈话，而不是让对方自由发挥</strong>。</p>
<p>待几部分基础能力都没什么大问题之后，就可以结合「模拟面试」和「实战」进一步地提升。</p>
<hr>
<p>以上，就是我能分享的关于面试的「知识」和「方法」。
<img src="/_image/2016-09-09-12-43-23.jpg" alt=""></p>
<p>然而，你以为我真的只是在说面试吗？
聪明的你已经发现了，这个办法对于任何技能都是通用的。
然而，聪明如你肯定也发现了，这篇文章根本没有什么新东西，无外乎都是我们从小就耳熟能详的道理：</p>
<ul>
<li>循序渐进</li>
<li>吃苦耐劳</li>
<li>持之以恒</li>
</ul>
<p>记住：</p>
<blockquote>
<p>当我们开始寻找捷径的时候，事情就会越来越难了。</p>
</blockquote>
<p>只有行动，才能让你成为那 1%。
你下一步将采取什么样的行动？可以告诉我吗?</p>
<p><img src="./_image/2016-09-09-12-48-02.png" alt=""></p>]]></description><pubDate>Fri, 09 Sep 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[学习小组第一次会议]]></title><link>https://life.seabornlee.cn/posts/%E5%AD%A6%E4%B9%A0%E5%B0%8F%E7%BB%84%E7%AC%AC%E4%B8%80%E6%AC%A1%E4%BC%9A%E8%AE%AE/</link><guid>https://life.seabornlee.cn/posts/%E5%AD%A6%E4%B9%A0%E5%B0%8F%E7%BB%84%E7%AC%AC%E4%B8%80%E6%AC%A1%E4%BC%9A%E8%AE%AE/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-20-23-36.png">
<p>今天第一次讨论非常成功，大家的积极性都很高。
讨论出的结论如下：</p>
<p>时间：</p>
<blockquote>
<p>每天中午 12:30-13:00 可以在 11:50 左右去吃饭，不影响吃饭和午休；</p>
</blockquote>
<p>地点：</p>
<blockquote>
<p>会议室或一楼六棵树；</p>
</blockquote>
<p>频率：</p>
<blockquote>
<p>目前成员共 5 人，每天一个 Topic，每人一周讲一次；</p>
</blockquote>
<p>话题范围：</p>
<blockquote>
<p>不限范围，只要对大家有用，大家感兴趣的；如果以后成员增加，话题太多的话就投票；</p>
</blockquote>
<p>资料管理：</p>
<blockquote>
<p>用 Github 管理材料，材料包括 PPT，代码，录屏，录音，录像等；</p>
</blockquote>
<p>规划：</p>
<blockquote>
<p>第一步先解决“敢讲”的问题，然后再提高内容质量和演讲技巧，最后梦想一下用英语演讲的情景吧；</p>
</blockquote>
<p>名称：</p>
<blockquote>
<p>学习小组的名称很重要，因此我们留下一点思考时间，明天再来确定。</p>
</blockquote>
<p>形式：</p>
<ul>
<li>每周五确定下一周的 Topic；</li>
<li>每次分享结束后听众应给与反馈；</li>
<li>待补充；</li>
</ul>
<p>今天也初步提出了一些话题意向，果然是百家讲坛啊，看看都有什么：</p>
<ul>
<li>我为什么要去网吧玩游戏？</li>
<li>Dota 入门与提高</li>
<li>捕蛇方法</li>
<li>追一个女孩８年的心得</li>
<li>有效激励</li>
<li>Git 入门</li>
<li>敏捷开发</li>
<li>Android 系列</li>
<li>读书心得</li>
<li>我的价值观</li>
<li>汽车知识入门</li>
<li>枪械知识入门</li>
</ul>
<p>为了将大家的情绪再往上提一提，我决定明天先做第一个 session，很高兴的是后面已经主动开始排队了。</p>
<p>让我们一起期待３个月后崭新的自己吧。</p>]]></description><pubDate>Fri, 18 Jun 2010 00:00:00 GMT</pubDate></item><item><title><![CDATA[学习小组第二次会议]]></title><link>https://life.seabornlee.cn/posts/%E5%AD%A6%E4%B9%A0%E5%B0%8F%E7%BB%84%E7%AC%AC%E4%BA%8C%E6%AC%A1%E4%BC%9A%E8%AE%AE/</link><guid>https://life.seabornlee.cn/posts/%E5%AD%A6%E4%B9%A0%E5%B0%8F%E7%BB%84%E7%AC%AC%E4%BA%8C%E6%AC%A1%E4%BC%9A%E8%AE%AE/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-20-26-18.png">
<p>今天学习小组进行了第二次分享，有一些小小的不顺利，主要有：</p>
<ol>
<li>演讲人以为是明天讲，也怪我前期沟通工作不到位；</li>
<li>会议室找了好几个都有人在，没想到大家工作这么努力，中午都在开会呢；</li>
<li>关于之前定的一天一次分享，有的同事认为太过频繁，经过讨论改成每周一、三、五分享。其实我是希望大家都能先讲上一两次，找找感觉，然后再听别人讲的时候也能和自己联系起来，这样收获会更大。我也思考了一下，不能让大家觉得很有压力，如果活动成了任务和负担，那样不会有任何效果，还是慢慢来吧。</li>
</ol>
<p>今天讲的是主题是游戏，没有用上我买的遥控笔，很是遗憾，非常期待下次能站起来讲。
今天我充当了主持人这个角色，作用是讲开场白和结束语，使活动更加完整和流畅，同时还要提醒演讲者控制时间。
以后依然是轮流充当主持人这个角色。</p>
<p>下面是我今天的主持词，纯属虚构：
开场白：</p>
<blockquote>
<p>大家好，我是今天的主持人李小波，很高兴能和这么多优秀的软件工程师一起度过这个愉快的中午。软件开发呢是一项强度非常大的工作，我们应该劳逸结合，才能保持健康的身体和良好的精神状态。所以今天呢，我们很荣幸地邀请到了全球知名的电脑游戏公司暴雨的创始人，ouyp 先生，大家可能不知道，ou 先生是一名资深的游戏工程师，曾经就职于微软，开发了像扫雷，接龙，红心大战这样的经典游戏。好的，下面的时间就交给 ou 先生了，请大家用热烈的掌声表示对 ou 先生的欢迎。</p>
</blockquote>
<p>结束语：</p>
<blockquote>
<p>好的，今天的演讲可谓是非常精彩，让我们再次用热烈的掌声感谢 ou 先生精彩的演讲。
大家还有什么问题的话可以和 ou 先生私下交流，咱们今天的活动到这里就结束了。为了感谢大家的积极参与，组委会为大家准备了精美的纪念品，请大家到 8 层领取（其实我们只有 7 层楼）。</p>
</blockquote>]]></description><pubDate>Mon, 19 Jun 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[实然很想学哑语]]></title><link>https://life.seabornlee.cn/posts/%E5%AE%9E%E7%84%B6%E5%BE%88%E6%83%B3%E5%AD%A6%E5%93%91%E8%AF%AD/</link><guid>https://life.seabornlee.cn/posts/%E5%AE%9E%E7%84%B6%E5%BE%88%E6%83%B3%E5%AD%A6%E5%93%91%E8%AF%AD/</guid><description><![CDATA[<img src="/_image/2013-07-31/Screen-Shot-2013-07-31-at-10.28.01-AM.png?width=320" alt="">
<p>今天和往常一样，坐地铁上班，回龙观到西二旗，两站地，8 分钟左右。
不同的是，遇到了一位很特别的姑娘。</p>
<p>天气格外的热，连以空调足著称的 13 号线也成了桑拿房。
我像往常一样读着 pocket 里的文章，余光中她拿出小本开始写字，写下一行后点了一下我的胳膊。
我一看，她写的是：“我要去西直门”。
我就跟她说：“西直门是终点，你一直坐就好了”。
她不好意思是指了指自己的耳朵。
哦，原来她不会说也不听不到的。
于是我拿过笔在小本上写下了我刚说的那句话，但她一脸迷茫，好像不明白我写的是什么。
她接着写道：“西直门你叫我？”
我写道：“我下一站就下车了，你坐到终点下就好。”
她还是茫然，我有点急了，因为我马上要下车了。
她好像不明白“终点”是什么意思，又写了几句我也不太明白的话。
于是我转而问旁边的另一位姑娘是不是到西直门下车，她说是，我说那你下车的时候叫她好吗？
我还没说，她就明白了，冲我竖了一下大拇指和一脸灿烂的微笑。
于是我终于放心了，一转身，便随着人流下了车。</p>
<p>这是我第一次和聋哑人交流，感到有点力不从心，也有点紧张。
现在想想，当时应该给她画图，可能会更直观一些。
不管怎样，这件事触动了我。让我觉得能像个普通人一样活着，其实已经很幸福了。
而且，我决定学一些简单的哑语，希望能在关键时刻帮到需要帮助的人。</p>
<h3 id="评论">评论：</h3>
<p><img src="/_image/2013-07-31/Screen-Shot-2013-07-31-at-12.17.45-PM.png" alt="评论截图"></p>
<p>王老师[^1]说的很有道理，达到一个目标有很多方法。多一种手段就多一种选择，有一句名言：</p>
<blockquote>
<p>当你手里只有一把锤子时，你看什么都像钉子。</p>
</blockquote>
<p>只有当我们掌握的工具多了，才能根据场景选择最合适，性价比最高的那种。</p>
<p>[^1]:
王洪亮 敏捷开发的支持者和实践者，对极限编程、测试驱动开发、演进式设计有丰富的实践经验。
曾作为敏捷开发独立咨询师为多家企业服务，并帮助企业建立相关的开发团队，改进工作方式，主要在 TDD，Refactor 方面有丰富的积累。<a href="http://www.cnblogs.com/stephen-wang/">他的博客-></a></p>]]></description><pubDate>Wed, 31 Jul 2013 11:30:18 GMT</pubDate></item><item><title><![CDATA[封控在家，怎么做个好爸爸]]></title><link>https://life.seabornlee.cn/posts/%E5%B0%81%E6%8E%A7%E5%9C%A8%E5%AE%B6%EF%BC%8C%E6%80%8E%E4%B9%88%E5%81%9A%E4%B8%AA%E5%A5%BD%E7%88%B8%E7%88%B8/</link><guid>https://life.seabornlee.cn/posts/%E5%B0%81%E6%8E%A7%E5%9C%A8%E5%AE%B6%EF%BC%8C%E6%80%8E%E4%B9%88%E5%81%9A%E4%B8%AA%E5%A5%BD%E7%88%B8%E7%88%B8/</guid><description><![CDATA[<p>这是目前为止离病毒最近的一次了，小区出现了两例确诊，所在楼栋已上了铁板打围。小区所有人不得出小区，孩子也只能在家上网课。
想到网课，脑子里已经出现了鸡飞狗跳的画面。为了做得更好，给自己来几条纪律：</p>
<ul>
<li>白天我在家也要工作，孩子网课由妈妈负责，工作间隙到客厅里跟孩子放松，重点关注孩子的情绪，而不是学习内容</li>
<li>不能出门，在家用健身环游戏运动一小时</li>
<li>晚上睡觉前和孩子练习英语对话</li>
<li>积极参与餐食准备和餐后清理工作，减轻妈妈负担</li>
</ul>]]></description><pubDate>Sun, 20 Nov 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[小心Android中的Javascript Interface]]></title><link>https://life.seabornlee.cn/posts/%E5%B0%8F%E5%BF%83Android%E4%B8%AD%E7%9A%84Javascript%20Interface/</link><guid>https://life.seabornlee.cn/posts/%E5%B0%8F%E5%BF%83Android%E4%B8%AD%E7%9A%84Javascript%20Interface/</guid><description><![CDATA[<img src="https://www.notebookcheck.net/fileadmin/Notebooks/News/_nc3/androidlogo.jpg">	
<p>去年的某一天，收到客户的反馈说我们的产品在他的手机上不工作。
看了一下日志发现是WebView中JavaScript调用的某个Java方法找不到，通过报错信息搜索后得知：</p>
<blockquote>
<p>Caution: If you've set your targetSdkVersion to 17 or higher, you must add the @JavascriptInterface annotation to any method that you want available your web page code (the method must also be public). If you do not provide the annotation, then the method will not accessible by your web page when running on Android 4.2 or higher.</p>
</blockquote>
<h3 id="问题">问题</h3>
<p>原来是API Level 17后，只会把带有@JavaScriptInterface的方法暴露给JavaScript，因为我的方法都没加这个Annotation，自然就无法调用了。</p>
<blockquote>
<p>Annotation that allows exposing methods to JavaScript. Starting from API level JELLY_BEAN_MR1 and above, only methods explicitly marked with this annotation are available to the Javascript code. See addJavascriptInterface(Object, String) for more information about it.</p>
</blockquote>
<p>再看addJavaScriptInterface方法的文档：</p>
<blockquote>
<p>IMPORTANT:
This method can be used to allow JavaScript to control the host application. This is a powerful feature, but also presents a security risk for applications targeted to API level JELLY_BEAN or below, because JavaScript could use reflection to access an injected object's public fields. Use of this method in a WebView containing untrusted content could allow an attacker to manipulate the host application in unintended ways, executing Java code with the permissions of the host application. Use extreme care when using this method in a WebView which could contain untrusted content.</p>
</blockquote>
<p>大概是说如果你访问了包括恶意内容的页面，攻击者会得到与应用相同的权限，通过反射来做一些你意想不到的事情。
反射？听起来很高级，到底有多危险？</p>
<h3 id="原理">原理</h3>
<p>因为Java中所有的类都继承自java.lang.Object，而Object类中有一个方法是getClass()，拿到Class后就可以forName加载任意Class进行反射了。
能做什么呢？不妨来研究下。</p>
<h3 id="应用">应用</h3>
<ul>
<li>执行任意命令：</li>
</ul>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">function execute(cmd){</span></span>
<span class="line"><span style="color: #c9d1d9">     return window.jsInterface.getClass().forName('java.lang.Runtime').getMethod('getRuntime', null).invoke(null,null).exec(cmd);</span></span>
<span class="line"><span style="color: #c9d1d9">}</span></span>
<span class="line"><span style="color: #c9d1d9">execute(['/system/bin/sh','-c','echo \"Hello Android!\” > /mnt/sdcard/test.txt']);</span></span></code></pre>
<ul>
<li>发送短信：</li>
</ul>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">var smsManager = window.jsInterface.getClass().forName('android.telephony.SmsManager').getMethod('getDefault', null).invoke(null, null);</span></span>
<span class="line"><span style="color: #c9d1d9">smsManager.sendTextMessage('133xxxxxxxx’, null, 'hello', null, null);</span></span></code></pre>
<p>当然，攻击成功的前提是你的应用具有相应权限，比如上例中需要<code>WRITE_EXTERNAL_STORAGE</code>和<code>SEND_SMS</code>的权限。</p>
<h3 id="扩展">扩展</h3>
<p>这个漏洞要得到利用，你既要控制web内容，又需要应用本身具有相应权限，看起来没什么大不了的。真的是这样吗？<br>
很多免费应用都会集成广告平台SDK以在应用中显示广告条增加收入。这个广告条通常是用WebView实现的，而且拥有比较多的权限。如果恶意攻击者使用<a href="http://dsploit.net/">dSploit</a>发起MITM攻击，篡改服务器返回的内容，插入恶意JavaScript代码，便可以轻易操纵你的手机。</p>
<p>往往这里一个小漏洞，那里一个小漏洞，两个小漏洞结合起来利用就能达到意想不到的效果。
作为开发者，我们要关注开发中的任何一个细节，尽量避免给用户带来威胁。</p>
<hr>
<p>文中代码：<a href="https://github.com/hkliya/JavascriptInterfaceDemo">Demo</a>
参考资料：</p>
<ul>
<li><a href="https://labs.mwrinfosecurity.com/advisories/2013/09/24/webview-addjavascriptinterface-remote-code-execution/">WebView addJavascriptInterface Remote Code Execution</a></li>
<li><a href="https://github.com/mwrlabs/drozer/blob/bcadf5c3fd08c4becf84ed34302a41d7b5e9db63/src/drozer/modules/exploit/mitm/addJavaScriptInterface.py">addJavaScriptInterface.py</a></li>
</ul>]]></description><pubDate>Mon, 14 Apr 2014 13:46:46 GMT</pubDate></item><item><title><![CDATA[差劲的员工是镜子]]></title><link>https://life.seabornlee.cn/posts/%E5%B7%AE%E5%8A%B2%E7%9A%84%E5%91%98%E5%B7%A5%E6%98%AF%E9%95%9C%E5%AD%90/</link><guid>https://life.seabornlee.cn/posts/%E5%B7%AE%E5%8A%B2%E7%9A%84%E5%91%98%E5%B7%A5%E6%98%AF%E9%95%9C%E5%AD%90/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-20-37-40.png" alt="">
<p>最近读到两篇文章挺有感触的，意思都差不多，主要观点是：</p>
<blockquote>
<p>公司应该只招聘「成年人」，他们具有专业性，能自我管理，这样管理成本是最低的。</p>
</blockquote>
<p>我在 ThoughtWorks 服务的两年间，从未感到被「管理」过。
当我加入「深圳湾」后，CEO 告诉我我需要管理团队成员时，我身体和内心都是拒绝的。</p>
<blockquote>
<p>扁平化只是一个噱头？</p>
</blockquote>
<p>如今几乎所有互联网初创公司都在强调「没有层级，扁平化结构」，然而这只是一个笑话，真正的原因是：「还没有招到 HR」。</p>
<p>TW 全球总共 3000 多人，号称只有三个层级：</p>
<ul>
<li>Global 管理团队</li>
<li>Office 管理团队</li>
<li>其他员工</li>
</ul>
<p>我从同事那里听到另一种论调是：「一个决策通过多少个人传达到你的耳朵里，那就是实际的层级数」。
所以有些人认为还是有隐形的层级的，虽然我确实没有感受到（可能我太专心做事了）。</p>
<p>我湾 CEO 也不止一次表达过：「扁平化」公司的 CEO 真的好累。
我却认为累并不是因为扁平化，而是因为她是 C - E - O。</p>
<blockquote>
<p>「成年人」不需要管理</p>
</blockquote>
<p>前几天加入了一个聊「成年人」话题的群组，我认为的「成年人」是懂得沟通、反馈、团队协作，具有职场专业性的人。
我非常认同好的员工不需要管理，当我湾有人要制定「管理条例」时我是极力反对的。
我认为在初创公司，更应该强调的是核心团队的领导力，价值观和文化导向。
换句话说，只招聘有共同价值观、能自我管理的人，才能把更多精力放在做事上。</p>
<blockquote>
<p>「主管」，是拿来黑的。</p>
</blockquote>
<p>不知道从什么时候开始，我湾有了「主管」这么个称呼。
当大家讲到主管时，通常都是不怀好意的，而「主管」们往往会反击道：「你才是主管，你全家都是主管」。</p>
<blockquote>
<p>「问题」员工是一面镜子</p>
</blockquote>
<p>有时候看到一些同事的行为会不舒服。当准备给他们提反馈的时候，我首先会想：「我是不是也存在类似的问题？」
如果有的话，我岂不是会被他们 Challenge？还是先端正自己吧。
俗话说：「上梁不正下梁歪」，「Set good example」也是重要的领导力。
所以我也要感谢「问题」员工，他们就像镜子，帮助我们更好地看清自己。</p>
<blockquote>
<p>「管理者」的主要职责是 T 人</p>
</blockquote>
<p>我以前认为管理者只需要管「事」，不需要管「人」。
但毕竟「林子大了，什么鸟都有」。虽然我们可以严卡招聘关，但始终不可能在招聘环节就把一个人了解的那么透彻。
日久见人心，当发现某些个体的行为对团队会产生不好的影响时，就要去跟他沟通，屡教不改的，要果断清理出去，不然会对其他团队成员造成伤害。
好吧，我说的是管理微信群的经验。</p>
<p>Terry 老师说：</p>
<blockquote>
<p>管理是一个很复杂的课题，念完 MBA 也只算入门。</p>
</blockquote>
<p>以上只是我最近的一些浅薄的感悟，谢谢你的耐心阅读，真诚地欢迎交流探讨！</p>]]></description><pubDate>Wed, 01 Apr 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[带娃来大理，躺平了吗？]]></title><link>https://life.seabornlee.cn/posts/%E5%B8%A6%E5%A8%83%E6%9D%A5%E5%A4%A7%E7%90%86%EF%BC%8C%E8%BA%BA%E5%B9%B3%E4%BA%86%E5%90%97%EF%BC%9F/</link><guid>https://life.seabornlee.cn/posts/%E5%B8%A6%E5%A8%83%E6%9D%A5%E5%A4%A7%E7%90%86%EF%BC%8C%E8%BA%BA%E5%B9%B3%E4%BA%86%E5%90%97%EF%BC%9F/</guid><description><![CDATA[<img src="/_image/20231103-0.png">
<p>没想到上一篇文章“从成都搬到大理的首要原因：孩子教育”引发了这么多的关注和讨论。凌晨 4 点被手机震动吵醒，看到这样一条评论，让我久久无法入睡。
<img src="/_image/20231103-1.png" alt=""></p>
<p>我们这一代，是通过读书改变命运，从农村走到一二线城市安身立命的第一代。这是成功的经验，我们理所应当传递给下一代。</p>
<p>但是，我也注意到，下一代的时代环境是不同的，以下几个现象引起了我的关注和思考：</p>
<p>一是出生率下滑。等孩子们长大后，人均分配到的资源是不同的，包括升学，就业，住房，医疗等。不会像我们一样千军万马过独木桥。
<img src="/_image/20231103-2.png" alt=""></p>
<p>二是学习资源不再匮乏，欠缺学习热情。以前大家都想通过读书改变命运，学习热情高，但是学习资源稀缺，只有进入好学校才能享受优质教育。但是现在反过来了，可以在 EDX，Coursera 等线上平台免费学习到顶尖大学如 MIT ，哈佛的课程。只要有学习的兴趣和热情，终生都有提升技能和学历的可能性。作为高中学历持有者的我，最近就在申请读一个 LSE 的在线金融本科课程。</p>
<p>如果把娃鸡得失去了学习的兴趣，那就算考进了不错的大学，勉强混个毕业证却啥也不会，出来只能给美团饿了么打工。而且就算找到一个坐办公室的工作，如果不能持续学习和思考，不能成为专家或高管，当个底层的打工人，离出人头地也差得远。</p>
<p>三是白领和蓝领的工资差异缩小。有程序员前同事去澳洲转行做木工，收入并不比白领低。而且越是纯知识型的工作，越容易被 AI 取代。我期望孩子找到自己的兴趣，哪怕是成为铁匠，木匠，做自己感兴趣的事，顺便赚点钱。
<img src="/_image/20231103-3.png" alt=""></p>
<p>四是心理健康亟待关注。已经有 1/4 的青少年检出有抑郁症状，并且还在往小学阶段转移。现在的孩子物质并不匮乏，缺少的是陪伴和玩耍，然后父母被房贷车贷压得如履薄冰，期望孩子能够维持甚至跨越阶层，孩子每天辗转于学校和兴趣班，有情绪时又不像我们小时候可以在山上疯跑，河边扔石头。
<img src="/_image/20231103-4.png" alt=""></p>
<p>五是不会生活，精神匮乏。小哥哥送外卖，累了看直播；小姐姐做直播，饿了点外卖。反映的正是父母包办生活的一切，孩子缺少必要的生活技能，只关注成绩、考级，扼杀了兴趣和热情。
<img src="/_image/20231103-5.png" alt=""></p>
<p>六是消费主义陷阱。豪宅豪车就不说了，花掉一个月工资也要用上最新款的手机，哪怕为此要多跑很多单。资本家不断洗脑，让我们把拥有的物品跟幸福划上等号，让我们把辛苦赚来的钱花掉，获得短暂的幸福感，然后又辛苦打工挣钱。这样资本家才有源源不断的“客户”和“工人”，他们才能持续获取剩余价值。经历过这样的陷阱，我正在渐渐从中抽离，我也不希望孩子们再走一遍，挑灯夜读十几年，就为了在被人挑选的时候更有卖相。
<img src="/_image/20231103-6.png" alt=""></p>
<p>探索新教育并不等于躺平。像我们孩子所在的蔬菜社区学校，依然每天要写作业，也会闹情绪，也需要大人陪伴支持。我并不反对努力学习，刻意练习。只不过，我不想把文化成绩当做一切，把一生的幸福寄托在高考上。</p>
<p>大理的新教育，除了学习文化课，每天有大量的户外运动时间，还有农耕课，厨艺课，大户外，柔道课等特色课程。
<img src="/_image/20231103-7.png" alt=""></p>
<p>我们家妹妹上幼儿园第一天就跟老师一起和面做饼干，经常放学都有美食惊喜。之前在成都上幼儿园一公里多都要坐车去，这两天放学我带她走路回家两公里多，轻松愉快不喊累。
<img src="/_image/20231103-8.png" alt=""></p>
<p>大理的新教育，基本都是小微学校，一个学校几十个孩子，一个班几个孩子。有位新同学在之前的学校总是因为坐不住被老师批评，来了这边后，老师可以让他只上喜欢的体育课，先玩够了再学。这不就是因材施教吗？而在大城市的好学校，每个孩子都要跟上整齐划一的进度，才算“正常”。</p>
<p>除了新教育，大理还有一个特点是多元化，各种能人异士，摆摊，卖艺，开课，开店，投资，都可以把生活过得有滋有味，唯独打工挣不了什么钱。在这个更松弛的环境下，大人们也更有兴趣和耐心跟孩子们交流。
<img src="/_image/20231103-9.png" alt=""></p>
<p>我希望孩子们看到多元化的世界，认识到：不上学也可以学习，不打工也可以生活。</p>]]></description><pubDate>Fri, 03 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[带孩子旅居大理，一年要花多少钱？]]></title><link>https://life.seabornlee.cn/posts/%E5%B8%A6%E5%AD%A9%E5%AD%90%E6%97%85%E5%B1%85%E5%A4%A7%E7%90%86%EF%BC%8C%E4%B8%80%E5%B9%B4%E8%A6%81%E8%8A%B1%E5%A4%9A%E5%B0%91%E9%92%B1%EF%BC%9F/</link><guid>https://life.seabornlee.cn/posts/%E5%B8%A6%E5%AD%A9%E5%AD%90%E6%97%85%E5%B1%85%E5%A4%A7%E7%90%86%EF%BC%8C%E4%B8%80%E5%B9%B4%E8%A6%81%E8%8A%B1%E5%A4%9A%E5%B0%91%E9%92%B1%EF%BC%9F/</guid><description><![CDATA[<img src="/_image/image_2023-11-09-20-12-41.png">
<p>上一篇文章发布后，好多朋友关心大理的学费和生活成本。这就借由我们的经历，给大家做个参考。</p>
<p>我们看了几所学校，孩子们上的两所学校，学费加生活费大概四五万一年。相比一线城市私立学校动辄二三十万的学费，基本可以忽略不计，所以有这么多北上广深的妈妈带着孩子过来旅居，爸爸继续留在大城市搞钱。一边让孩子接受新教育，一边借助大理的自然环境和丰富的身心灵社区疗愈自己。
<img src="/_image/image_2023-11-09-20-23-12.png" alt=""></p>
<p>七月底我们打包了成都的家，接近 50 个箱子，让中介把房子挂牌出售。
<img src="/_image/image_2023-11-09-20-12-27.png" alt=""></p>
<p>和几个素未谋面的小伙伴，在一位共同好友的撮合下，众筹了银桥镇下阳波一栋农村新建房，离古城 8 公里，十个卧室，两个客厅，一个大厨房，一个院子一个大露台。只有我们家是带孩子的，我们包了二层四个卧室，两个带独卫，一个做书房，另一个卧室可以用公卫。整栋年租六万三，算上一些公共基金，我们二层四间房月租 2500，挺开心的，但没开心几天。
<img src="/_image/image_2023-11-09-20-11-46.png" alt="书房景观"></p>
<p>刚住进去就发现怎么这么多虫子啊，纱窗也挡不住，做饭的时候，苍蝇多得都可以炒盘菜了，淋浴水压怎么这么小啊，只能蹲着洗，站起来它就不喷水只往下流，垃圾怎么还要自己拿出去扔啊，晚上出去好黑好害怕啊。来的时候正赶上雨季，连续几天不出太阳，太阳能它就不能了，热水澡的洗不了，又加上旅游旺季每天堵车，送娃上学 9 公里路程要开车 40 分钟（不堵车的话大概是 20 分钟）， 于是我们就决定要搬到孩子学校附近，而且从城里到村里落差太大，可能还是住小区会比较适应。</p>
<p>然后开始找中介看房，看了山水间一二三期，小院子南中北区，北至苍山高尔夫，南达实力希尔顿。越看越觉得，村里也不错啊，条件是差点儿，但是性价比高啊。</p>
<p>去年 12 月口罩放开后，在客厅阳台遛了三年弯儿的大伙儿，终于可以出去浪了，加上刘亦菲《去有风的地方》热播，把大理的热度推向了一个新高度，房租也就水涨船高。</p>
<p>这么说吧，我们成都高新区的房子，出门就是地铁站，学校就过一个路口，地暖新风中央空调三件套，“喜鹊生活”精装修三房，才租 5000 不到，这边同等面积和装修的房子要 8000 到 10000。一年下来房租物业水电网车位费差不多 10-12 万。而且基本都要求压 1-2 个月押金，租金年付。</p>
<p>我们看上的有三套，第一套在山水间三期，年租 11 万，缺点是新装修的有甲醛，放弃了，而且三期的路很窄，车停在路边就很挤，容易刮蹭。</p>
<p>第二套是苍山高尔夫，一套三层的别墅，视野无敌，缺点是在半山腰上，吃饭买菜都要下山，年租 12 万左右可谈。
<img src="/_image/image_2023-11-09-20-12-04.png" alt=""></p>
<p>第三套是我自己在 58 同城上找到的，山水间一期，生活最便利的小区，小区内的景观也不错，有儿童乐园，健身房，游泳池，网球场等配套。巧合的是，房东还是我朋友的好朋友，月租 8000，价格都没谈，觉得就这儿了。准备拟合同了，要求押金两个月，因为墙上里有名家画作，我们想寒暑假可能回老家，短期出租一下回点血，房东不同意，于是作罢。
<img src="/_image/image_2023-11-09-20-25-58.png" alt=""></p>
<p>经过一轮毒打后，还是觉得村子里真香。</p>
<p>于是我们把二层的房间转给了常住当地的朋友 Jay，留了一间房放东西。
在小红书上找到一个村子里的客栈，离孩子学校只有四百米，有一个看田园和山景的大露台，我们要了两间房，年租六万，月租 6500，旁边就是停车场，包月 200 元。搬出来，起码接送孩子的时间省了。
<img src="/_image/image_2023-11-09-20-18-06.png" alt=""></p>
<p>住进去后发现空间好小啊，孩子没有地方写作业，我们住三楼，厨房在一楼，空间很小不说，还是共用的，好吧，先住一个月继续找院子吧。</p>
<p>每天都在龙龛和生久村转悠，看到不错的院子，就直接敲门问是否出租，有的房东忙忙碌碌，冷眼相对，有的房东悠闲自在，客气热情，还让进去喝茶聊天。</p>
<p>终于，在孩子学校旁边找到了一栋面积 400 多平，有点景观但不算特别好，交通便利，门口可以停车，一楼有间大门市，三楼和楼顶两个大露台。
<img src="/_image/image_2023-11-09-20-20-35.png" alt=""></p>
<p>缺点是院子和隔壁邻居存在纠纷正在走法律程序，租金谈到了 80000 一年，但是要住的比较舒服的话，可能还要投入二十万左右装修地板，栏杆，露台防水，厨房和洗手间。我们打算平时自己住，暑假的时候短租一下回点本。房东只愿意签 10 年，我们想签 15 年。也不知道民宿到底生意如何，最后还是有点纠结，于是我在 9 月底找了家新开的民宿，去面试管家，老板想招的就是零经验的管家，于是顺利入职，正好亲身经历了十一假期。
<img src="/_image/image_2023-11-09-20-28-16.png" alt=""></p>
<p>后面聊得越多，也越认同老板的理念，老板还有两个客栈在装修，因为现在民宿太卷了，想做得有点特色，引入木工，扎染，皮具，陶艺等手工体验，正是我老婆 Mavis 擅长的，于是把 Mavis 也介绍过去.
<img src="/_image/image_2023-11-09-20-24-10.png" alt=""></p>
<p>后来老板说政府政策有变化，大理市要求民宿从个体经验转向公司经营，大理镇的政策还没有出来，新客栈可能几个月办不了营业执照，三家客栈前期投入了不少钱，所以现在养不起管家和阿姨了，但是房间多，可以提供住宿。加上这些年我一直在做脑力劳动和虚拟经济，想要体验一下实体生意和多一些体力劳动。
我也判断暑假过后进入淡季，随着大理的热度慢慢褪去，可能很多民宿会往外转。于是一拍即合，我们 11 月初搬进了客栈，既做管家又做阿姨，劳动换住宿。
<img src="/_image/image_2023-11-09-20-23-52.png" alt=""></p>
<p>以上就是我们来大理三个月，流离失所的体验，当然，也都留下了一些美好的回忆。</p>
<p>在共居社区，每天都有人约去而海边玩飞盘，大小节日，会到附近的“面包树花园”一起烧烤，唱歌。
<img src="/_image/image_2023-11-09-20-10-24.png" alt=""></p>
<p>我们在那边醉了有史以来最严重的一次，刚开始喝酒不懂嘛，把雪碧、啤酒和白酒混着喝，喝到凌晨 5 点，早上起床头痛欲裂，只能让没喝酒的 Jay 帮忙送孩子上学。</p>
<p>下阳波村里的烧烤好吃又便宜，我们在成都小区外面两个人吃一顿烧烤大概要 150，这边只要一半。
在客栈住的时候，房东海哥和嫂子也很照顾我们，做好吃的会跟我们端一盘，有时候我们有事出去了会帮着照看孩子们。本来打算住一个月搬走的，因为临时入职了客栈管家的工作，又续了一个月，但是我们原来的房子已经订出去了，有一晚需要我们两大三小五个人挤一个房间，于是在露台上搭了帐篷，接着几天所以人都轮流睡了一遍，也是难忘的体验。
<img src="/_image/image_2023-11-09-20-19-49.png" alt=""></p>
<p>说说物价，这边的蔬菜和肉感觉和一线城市也差不多价格，但是猪肉的品质很不错，在成都普通猪肉煮出来有股腥味儿，在盒马买 70 元一斤的猪肉煮出来才有香味，这边只要 17 块就有同等品质。在下阳波下馆子很便宜，但是在龙龛码头下饭馆都是景点价格。</p>
<p>总的来说，苍山洱海，风花雪月并不是免费的，而且现在还处在市场高点，要来的话做好心理准备哦。
如果要来旅居，可以提前在某瓣搜索“大理”相关的小组，有非常多的房源。
<img src="/_image/image_2023-11-09-20-48-47.png" alt=""></p>]]></description><pubDate>Thu, 09 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[平安夜惊魂]]></title><link>https://life.seabornlee.cn/posts/%E5%B9%B3%E5%AE%89%E5%A4%9C%E6%83%8A%E9%AD%82/</link><guid>https://life.seabornlee.cn/posts/%E5%B9%B3%E5%AE%89%E5%A4%9C%E6%83%8A%E9%AD%82/</guid><description><![CDATA[<img src="/_image/2013-12-25/IMG_20131224_171330.jpg" alt="">
<p>明天是圣诞节，我们买了圣诞树。</p>
<h3 id="快乐会传染">快乐会传染</h3>
<p>中午吃完饭，小伙伴便开始张灯结彩装饰我们的办公室，快乐的气氛很快便感染了旁边小屋的另一个项目组，一个妹子过来说你们还真浪漫，一屋子的老爷们儿默默低下了头。两个项目组虽然同一个门进出，但除了借椅子和投影仪基本没说过话，这次不光说话了，后来我们下午荼的时候，另一妹子还过来不客气的拿走了许多，小伙伴们都很高兴。快乐会传染，也能拉近人与人之间的距离。</p>
<h3 id="习惯的力量">习惯的力量</h3>
<p>今早因为特殊原因，没有爬楼梯，一天都心有戚戚。办公室里开展“是男人就上 100 层（每周）”的活动，作为发起人的我已经坚持了到第 8 个星期了，每天至少 24 层，我说过要坚持到离开这个地方的。下班收拾好东西后，空手和同事一起下楼，然后再一次爬上了 24 层。
我想这就是习惯的力量，就像去年坚持 5 点起床半年多。可能你投入的越多，就越不愿意放弃。</p>
<h3 id="坚持某些东西就会失去另一些东西">坚持某些东西就会失去另一些东西？</h3>
<p>等我爬回到 24 层后，发现电子门锁着，里边一个人也没有，都反常的早早回家过节了。我只能等着，期待着哪里能冒出一个人来，好帮我开门让我进去拿一下背包和衣服，其实电脑带不带都没关系，我想给老婆带回去一块巧克力，那是我从下午茶里专门给老婆留的。等了 10 分钟，一个人影都没有，出奇的安静，我准备打道回府了，心里想着，难道坚持某些东西就一定会失去另一些东西？</p>
<h3 id="机会在转角">机会在转角</h3>
<p>我按下了电梯按钮准备下楼，电梯很快便开了，电梯门打开的同时也燃起了希望，里边居然有人，我请她帮我开了门，她毫不犹豫便走出电梯帮我开了门（人很好，但安全意识有待提高啊），终于取回了我的东西，高高兴兴地下楼了。</p>
<h3 id="失而复得是最美">失而复得是最美</h3>
<p>出了楼门我又想起，好像乐极生悲了，把巧克力落在桌上忘拿了。于是失落了一路，回到酒店后，打开背包，巧克力居然在包里呢。老婆很开心，而我在短短的 10 几分钟，经历了两次失而复得，心里真是百感交集。</p>
<p>今天是平安夜，我们吃了一个苹果。
祝所有朋友平平安安，不仅自己要快乐，还要传递快乐，坚持自己的梦想，得意时不要忘形，失意时想想机会就在转角！</p>]]></description><pubDate>Sun, 10 Oct 2010 00:00:00 GMT</pubDate></item><item><title><![CDATA[幽默是智慧溢出，逗逼是情商欠费]]></title><link>https://life.seabornlee.cn/posts/%E5%B9%BD%E9%BB%98%E6%98%AF%E6%99%BA%E6%85%A7%E6%BA%A2%E5%87%BA%EF%BC%8C%E9%80%97%E9%80%BC%E6%98%AF%E6%83%85%E5%95%86%E6%AC%A0%E8%B4%B9/</link><guid>https://life.seabornlee.cn/posts/%E5%B9%BD%E9%BB%98%E6%98%AF%E6%99%BA%E6%85%A7%E6%BA%A2%E5%87%BA%EF%BC%8C%E9%80%97%E9%80%BC%E6%98%AF%E6%83%85%E5%95%86%E6%AC%A0%E8%B4%B9/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-21-00-18.png" alt="">
<p>我上周六参加了一个「幽默即兴表演」的工作坊，周日看了一场脱口秀演出，体会到了幽默和逗逼的区别。</p>
<p>幽默是沟通的润滑剂，是生活的调味品。
人人都希望自己是个幽默的人，却常常不小心成为别人眼中的逗逼。</p>
<p>逗逼最喜欢做的事，就是在公共场合讲低俗的段子。
人们发笑只不过是因为这种行为 - 在公共场合说出不该说的话 - 而不是段子本身。
这不仅是对异性的不尊重，甚至可以构成性骚扰。</p>
<p>对于培养者来说，不管是演讲、培训还是引导，幽默都能给我们加分。
作为一个具有「成长型思维」的人，我要告诉大家：</p>
<blockquote>
<p>幽默不是天生的，是可以习得的。</p>
</blockquote>
<p>接下来请看变得幽默的方法。</p>
<h2 id="幽默的结构">幽默的结构</h2>
<p>首先，要明白笑话为什么能让人发笑。一个笑话需要具备两个部分：「铺垫」和「爆点」。</p>
<p>铺垫包含<strong>主题，态度和洞见</strong>三个部分。
常见的态度有四种：<strong>奇怪的，可怕的，艰难的，愚蠢的</strong>。
洞见要引起<strong>共鸣</strong>，最好还具有<strong>独特性</strong>。</p>
<p>爆点应当满足两个条件：</p>
<ul>
<li>意料之外</li>
<li>情理之中</li>
</ul>
<p>说了这么多理论，估计你已经晕了，请看例子：</p>
<blockquote>
<p>带孩子真不容易。正在吃早餐，老婆对我说：「儿子拉臭臭了，快吃」。</p>
</blockquote>
<ul>
<li>铺垫：带孩子真不容易</li>
<li>主题：带孩子</li>
<li>态度：不容易</li>
<li>洞见：带孩子真不容易</li>
</ul>
<ul>
<li>爆点：儿子拉臭臭了，快吃</li>
<li>技巧：故意误解，偷换概念</li>
</ul>
<p>符合：意料之外，情理之中。 这就是幽默的结构，铺垫 + 笑点。是不是很简单？
当然了，光有结构还不行，还得有素材。</p>
<h2 id="素材积累">素材积累</h2>
<blockquote>
<p>幽默是智慧的溢出。</p>
</blockquote>
<p>要让智慧溢出，我们就得持续地增加智慧，增加智慧有很多方法，一个简单易行的方法是<strong>观察和思考生活</strong>。
感谢 Kevin 老师分享的 「Kevin 五+一库」，指导我们每天认真地观察和思考生活。
我们工作坊的同学在笔记应用里建立了这几个笔记本，每天至少积累一条素材，并在群里打卡，互相点评。</p>
<p><img src="/_image/2017-02-16-07-57-02.jpg" alt=""></p>
<h2 id="笑话创作">笑话创作</h2>
<p>有了素材的积累，就可以用上面的结构去创作了。</p>
<ul>
<li>定主题</li>
<li>选态度</li>
<li>思考洞见</li>
<li>爆点（自黑，讽刺，谐音，误解重点等）</li>
</ul>
<p>就以「PM 2.5」为例吧：</p>
<ul>
<li>主题：PM 2.5</li>
<li>态度：愚蠢的</li>
<li>洞见：成都 PM 2.5 高</li>
<li>铺垫：说成都 PM 2.5 高是愚蠢的</li>
<li>爆点：说成都 PM 2.5 高是愚蠢的，我趴在地上都能闻到</li>
</ul>
<p>怎么样？是不是很容易？赶紧试试吧！
如果觉得这样效率不高，还可以用「笑话地图」，「笑话树」等专业方法，工业化批量生产笑话。
具体的方法，以后再慢慢分享...</p>
<p>其实以上这些内容，我去年就学过，由于没有持续练习，也并没有什么收获。
如果真想变得幽默，持续练习是必不可少的。</p>]]></description><pubDate>Thu, 16 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[开不好站会？因为不同阶段站会的目的不一样]]></title><link>https://life.seabornlee.cn/posts/%E5%BC%80%E4%B8%8D%E5%A5%BD%E7%AB%99%E4%BC%9A%EF%BC%9F%E5%9B%A0%E4%B8%BA%E4%B8%8D%E5%90%8C%E9%98%B6%E6%AE%B5%E7%AB%99%E4%BC%9A%E7%9A%84%E7%9B%AE%E7%9A%84%E4%B8%8D%E4%B8%80%E6%A0%B7/</link><guid>https://life.seabornlee.cn/posts/%E5%BC%80%E4%B8%8D%E5%A5%BD%E7%AB%99%E4%BC%9A%EF%BC%9F%E5%9B%A0%E4%B8%BA%E4%B8%8D%E5%90%8C%E9%98%B6%E6%AE%B5%E7%AB%99%E4%BC%9A%E7%9A%84%E7%9B%AE%E7%9A%84%E4%B8%8D%E4%B8%80%E6%A0%B7/</guid><description><![CDATA[<img src="/_image/2016-11-24-14-35-39.jpg?r=68" alt="">
<p>说到站会，你一定会想到经典的三个问题:</p>
<ul>
<li>昨天完成了什么</li>
<li>今天准备干什么</li>
<li>遇到了什么障碍
你是否觉得这种形式太过死板？
当团队养成了随时沟通的习惯后，站会是否有存在的必要？
你是否发现站会老有人迟到，有人在吃早餐，有人在玩手机？</li>
</ul>
<p>有很多文章探讨站会的目的，形式和技巧。然而，读了那么多文章，依然开不好站会...
站会是一个团队实践，在研究站会的形式和技巧之前，我们应该先研究团队。
本文不讨论任何方法和技巧，而是尝试分析站会在团队不同阶段带来的价值。</p>
<p>优秀的团队不是一蹴而就的，一般要依次经历以下几个阶段：</p>
<ul>
<li>形成阶段（Forming）</li>
<li>震荡阶段（Storming）</li>
<li>规范阶段（Norming）</li>
<li>发挥阶段（Performing）</li>
<li>结束阶段</li>
</ul>
<p>在发挥阶段后期可能会进入「平台期」，表现是按部就班，产出稳定，提升乏力，缺少激情。
在不同的阶段，团队面对的问题不一样，站会的价值也不一样。</p>
<hr>
<h2 id="形成阶段震荡阶段---建立信任">形成阶段，震荡阶段 - 建立信任</h2>
<p><img src="/_image/2016-11-24-15-54-53.jpg?r=73" alt=""></p>
<p>团队初建，成员互相不够熟悉，这个阶段站会的主要价值是建立信任。
值得信任的团队成员需要具备:</p>
<ul>
<li>搞定问题的能力</li>
<li>积极主动的态度</li>
<li>团队合作的意识</li>
</ul>
<p>经典的三个问题恰好可以让我们了解团队成员是否具备以上三点:</p>
<ul>
<li>我昨天完成了什么？(我具有专业能力，能搞定一些事情)</li>
<li>今天准备做什么？(我积极思考，主动承担任务)</li>
<li>我遇到了什么问题？(我不是万能的，但我信任团队，我会把搞不定的问题暴露出来)</li>
</ul>
<h2 id="规范阶段发挥阶段---关注价值">规范阶段，发挥阶段 - 关注价值</h2>
<p><img src="/_image/2016-11-24-15-55-36.jpg?r=67" alt=""></p>
<p>软件开发中，任何功能只有真正被用户使用才能产生价值。
对于一个功能特性，我们要尽量缩短从分析到开发，测试，部署的周期，尽量减少「等待时间」。</p>
<p>在「规范阶段」和「发挥阶段」，团队成员对彼此的专业能力和态度都有了信心，站会的关注点应该从「人」转移到「事」上。
或者说关注接力棒而不是运动员。用「拉动」的方式，从右往左更新状态。</p>
<h2 id="发挥阶段---仪式感">发挥阶段 - 仪式感</h2>
<p><img src="/_image/2016-11-24-15-56-20.jpg?r=81" alt=""></p>
<p>项目后期，业务和技术上都没有什么新的挑战，团队每天按部就班地工作，激情在慢慢流失，团队很容易进入「平台期」。
这时站会更多的是一个仪式，让我们知道我们不是孤军奋战，而是一个团队在战斗。
产品经理可以经常分享产品在市场上的反馈，比如用户的表扬信，用户量增长，业务量增长等。
让大家看到工作产生的价值，持续获得成就感。</p>
<p>另外，站会还是<strong>工作与生活的分水岭</strong>。
借站会的机会，将看板上的工作的上下文加载到大脑中，开启一天的高效工作。</p>
<p>任何的实践都是为了解决问题，脱离问题出现的背景讨论具体做法往往会背道而驰。
采用一个实践时，我们要思考:</p>
<ul>
<li>它的出现是为了解决什么问题？</li>
<li>这个问题现在还存在吗？</li>
<li>有没有更好的解决办法？</li>
</ul>
<p>敏捷不是遵循「最佳」实践，搞清楚实践在什么环境下解决什么问题，合理地对实践进行裁剪和改进，才能保持敏捷力!</p>]]></description><pubDate>Thu, 24 Nov 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[异步工作才是最适合程序员的协作方式]]></title><link>https://life.seabornlee.cn/posts/%E5%BC%82%E6%AD%A5%E5%B7%A5%E4%BD%9C%E6%89%8D%E6%98%AF%E6%9C%80%E9%80%82%E5%90%88%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E5%8D%8F%E4%BD%9C%E6%96%B9%E5%BC%8F/</link><guid>https://life.seabornlee.cn/posts/%E5%BC%82%E6%AD%A5%E5%B7%A5%E4%BD%9C%E6%89%8D%E6%98%AF%E6%9C%80%E9%80%82%E5%90%88%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E5%8D%8F%E4%BD%9C%E6%96%B9%E5%BC%8F/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-21-14-50.png" alt="">
<p>不断的 IM 消息和邮件，把时间切的稀碎，而写代码需要一段比较长的时间才能进入状态，所以我们往往在白天根本写不了什么代码，只能在晚上测试，业务，客户都下班后，默默地写代码。</p>
<p>然而，一天的碎片化信息和多任务切换后，我们的精力已经消耗殆尽，晚上写代码的质量不高，写 Bug 效率很高，所以虫子（Bug）都喜欢晚上出来，等白天来临，业务，测试回到工作岗位后，就会发现我们置入的这些 Bug，从而又给我们发消息，准备数据，配合重现和确认，修改代码，再次验证。如果流入生产，就会被客户发现，从而上升到最高等级，必须停下手里的工作去救火。
这样，我们的时间就更碎片化了。聪明如你肯定看出来了，这就是一个恶性循环呀。
你说那我不会消息可以吗？不行，因为如果没有及时回复别人，在绩效沟通时可能就会得到一个「不善于团队合作」的评价。</p>
<p>我也一直有这样的苦恼，但是最近我加入的一个团队，却颠覆了我的认知。
我加入这个团队的角色 Android 端的技术负责人，刚入职很多「杂事」还没有交接到我手上，所以我现在可以说是一名普通的开发。
跟你聊聊我典型的一天是什么样子啊。</p>
<ol>
<li>上午，写 3 个小时代码</li>
<li>下午，写 3 个小时代码</li>
<li>代码写完后，发 Pull Request</li>
<li>查看 GitHub Issues，看看有哪些需求和 Bug，挑选优先级最高的，分析理解，需要明确的就在对应的 Issue 里留言 @同事</li>
<li>看一下之前的 PR，有没有什么问题需要解决的</li>
<li>看一下其他人的 PR，Review 写反馈</li>
<li>下班前的半个小时，查看邮件，简要总结当天完了哪些工作，文字发到 Discord 站会频道里</li>
</ol>
<p>每周有半个小时全员会议，COO 分享公司的大事，跨团队的一些提问和信息共享，需要详聊的再单独约小会。
每月一次回顾会议，增进感情和改进协作方式。</p>
<p>这个公司里，几乎没有点对点的即时消息，几乎没有邮件。
有一些需要频繁沟通甚至共创的工作，会结对完成。</p>
<p>我在 2012 年拥抱敏捷开发，后来又做了几年「敏捷教练」，看到敏捷正在被广泛接受，敏捷 12 条原则的第六条一直是我非常认可和鼓励的：</p>
<blockquote>
<p>不论团队内外，传递信息效果最好效率也最高的方式是面对面的交谈。</p>
</blockquote>
<p>但是我加入的新团队，却采用「异步工作」的方式，并且运作良好，这有点颠覆我的认知了。
但仔细想想，「异步工作」和上面的原则其实不冲突。
我们这一代中国人学习英语的方式，带来结果是，读写能力高于听说能力。
不仅我们国家这样，很多其他的国家的英语发音也是口音很重的。
面对面沟通的时候，老让对方「Pardon」，效率能高到哪里去呢？
我们大部分程序员看文档写邮件都没有问题，但要打电话和面对面沟通就头疼了。</p>
<p>另外，如果我们工作中 80% 的内容是传递信息，那么我们就不用采用一种低效的沟通方式。
但如果我们工作中的 80%甚至 90%都是独自创造，只有一小部分是需要传递信息的，那么就算效率低一点，影响也不会很大。</p>
<p>那我们来看一下，软件开发这项工作，大部分时间是在独自创造还是传递信息呢。
其实没有绝对的答案，开发底层的东西，前者的比重可能会更大一下，做的是面向用户的东西，就需要更频繁地交付和获取反馈。
不管是底层框架还是业务团队，在团队内也有分工，有些人擅长干「大活儿」，领导就会把大活儿给他，把其他琐碎的活儿给其他人，这样他才能专注地干好大活儿。</p>
<p>如果我们期望高质量，高效率，高价值，就需要「深度工作」的状态。干「大活儿」，就需要进入「深度工作」。
回 IM，邮件都是属于「肤浅工作」，很难带来极大的成就感和满足感。
所以你才会觉得一天下来好像忙得上厕所都要小跑，等到了下班的点儿，却很空虚和焦虑，然后就会不由自主地通过加班来弥补。
想从工作中创造更大价值，获得更多成就感，推荐阅读《深度工作》这本书。</p>
<h2 id="为什么异步工作有效">为什么异步工作有效</h2>
<p>其实我们会发现，再好的方法，在某些人身上也不管用，再不好的方法，在某些人身上也管用。
在探究「为什么管用」时，其实真正值得关注的是「怎么让它管用」。</p>
<p>通过我的观察和实践，我觉得下面这几点很重要：</p>
<ul>
<li>结构化表达</li>
<li>高度透明</li>
<li>鼓励全栈</li>
<li>开发者测试
我们一个个展开聊聊。</li>
</ul>
<h3 id="结构化沟通">结构化沟通</h3>
<p>程序员的工作中主要打交道的无非产品经理，业务分析师，客户，测试工程师，还有其他程序员，比如前后端联调，系统间联调等。
沟通场景主要有几类：</p>
<ul>
<li>需求获取，澄清和验收</li>
<li>Bug 重现，确认和验收</li>
<li>接口定义，联调</li>
</ul>
<p>不管是书面沟通还是面对面沟通，文字和声音都只是传递信息的一种媒介而已。
真正决定沟通效率的，是沟通的内容本身是否结构化。
就好比外卖时效性很高，但送过来的是一坨屎。</p>
<p>所以你看优秀的开源项目，在提需求和缺陷的时候，都要遵循一定的格式。
这里吐槽下国内的工具厂商，为了满足所有人的需求，往往做的大而全，几十上百个字段，一看就头大了，填的时候就很敷衍，真正重要的信息都靠 IM 一问一答一点点榨取出来，真的还不如一个消息模板好用。
还有考核缺陷率，为了维护良好的同事关系，测试人员也不会直接上系统给开发人员提缺陷，而是先用 IM 沟通，导致很多低效的一来一回的对话。</p>
<h3 id="高度透明">高度透明</h3>
<p>还记得前面提到的第六条敏捷原则吗？</p>
<blockquote>
<p>不论团队内外，传递信息效果最好效率也最高的方式是面对面的交谈。</p>
</blockquote>
<p>在我看来，传递信息更有效的方式，是把信息放在人人都能轻松获取的地方。
这就是为什么 Trello 类的看板工具，飞书/Slack/Discord 类的 IM，Notion 这样的团队知识管理工具，现在这么火爆的原因。
要有团队的共享知识空间，重视知识积累。
我刚加入新公司的时候，体验设计师就发给我 3 个他录制的视频，讲解他在 Zeplin 上是如何组织设计图的。要怎么找到布局，图片，字体和颜色等参数。
这样就不用每来一个新人都去问他了。</p>
<h3 id="鼓励全栈">鼓励全栈</h3>
<p>人的眼界越小，越对其他东西缺少敬畏。
所以才会有程序员鄙视链，用 Mac 的鄙视用 Windows 的，用 Terminal 的鄙视用 GUI，用 Vim 的鄙视用 IDE，甚至用外接键盘的鄙视用自带简单的。
前端说后端不就是增删改查吗？后端说前端不就是堆堆页面吗？
但是出了问题，总觉得自己这块没问题，问题在对方那边？
这不合逻辑啊，问题不是应该更容易出在比较复杂的那边吗？
你可能会说，我这边是更复杂，但是我聪明又细心啊。
那就更可怕了，你跟不聪明又不细心的人一起工作，你确定真的不是因为你跟他是一类人吗？
其实，你拥有的一切，都是因为你「值得」拥有，说难听点就是你「只配」拥有这样的。
所以，停止抱怨你的老板，领导，同事，也不要抱怨你的对象了。
唯一有效方法，是去提高自己，你才会拥有更好的。</p>
<p>如果你是前端，你去精进前端技术，你就会遇到更好的后端。很简单，精进了之后你可能会拿到更好的 Offer，你遇到更优秀的领导和同事的几率就会更大一些。
另一个方向是，反正都很简单，就去学习一下，去做全栈，前后端都一个人做了，这样就可以避免跟别人扯皮。
如果你们是技术栈，前后端都用现成的框架，比如前端用 React，后端用 SpringBoot，那真的不难学。
甚至你用 React 都不应该称自己为前端工程师，真正的前端工程师是开发 React 的人，真正的后端工程师是开发 SpringBoot 的人，我们都是业务开发工程师。</p>
<h3 id="开发者测试">开发者测试</h3>
<p>测试代码就是产品代码的使用说明书，并且是自动化的回归测试。开发者在编写测试代码时，对业务的理解会更加清晰，代码质量会更高，其他人在使用到别人的代码时，可以通过阅读测试代码来更好地理解每个方法的输入输出，在需要修改时，也有信心去修改，因为只要修改后测试还能运行通过就基本没有问题，测试不通过就去修复测试就好了。</p>
<h2 id="怎么开始尝试">怎么开始尝试</h2>
<p>团队约定一个静默时段，比如每天上午的三个小时，不要开会，不要发消息回消息。那你说要是团队外有紧急的事怎么办？可以轮流值班，每周有一个人来处理对外沟通的事。
想要探讨更多，可以来周三晚上的直播，也欢迎来 K+ 深圳峰会现场交流。</p>]]></description><pubDate>Thu, 01 Sep 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[彩色幼儿园事件]]></title><link>https://life.seabornlee.cn/posts/%E5%BD%A9%E8%89%B2%E5%B9%BC%E5%84%BF%E5%9B%AD%E4%BA%8B%E4%BB%B6/</link><guid>https://life.seabornlee.cn/posts/%E5%BD%A9%E8%89%B2%E5%B9%BC%E5%84%BF%E5%9B%AD%E4%BA%8B%E4%BB%B6/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-21-22-07.png" alt="">
<p>在宅男们的心中，幼师与护士、空姐一样，是美丽的天使，是可爱的大姐姐。可是最近爆出大批幼儿园虐童事件，狠狠地冲击了我们的三观。
这些本应像天使一样的幼儿园教师，为什么会做出扎针这样变态的行为？
她们是在进入幼教行业前就这么变态吗？如果是，那我们相关部门的筛选，监管机制出现了问题，让这样的人群进入了如此重要的岗位。如果不是，那<strong>是不是应该关注一下幼师的心理健康</strong>？
作为一名父亲，我在照看自己家孩子时都会忍不住火大，也忍不住打过孩子，我无法想象一个人要照看 10 几名甚至更多熊孩子时会有多崩溃。</p>
<h2 id="监控能解决问题吗">监控能解决问题吗？</h2>
<blockquote>
<p>360 周鸿祎呼吁：家长有权利知道幼儿园发生的一切。</p>
</blockquote>
<p>周鸿祎说要给幼儿园免费安装智能监控，我举双手「赞成」。不仅要监控，而且要全方位监控，这样我们才知道幼儿园老师有多辛苦。
我有一位朋友是乡镇公立幼儿园老师，常常听她抱怨工作辛苦，因为没有男老师，所有体力活儿都是女老师做，这些刚毕业的女学生，自己都还是个孩子呢，立马就从掌上明珠切换到保育员的角色，从衣来伸手饭来张口到照顾孩子的吃喝拉撒。
孩子要吃饭，她们要从小山上的食堂把饭抬到教室里；吃完饭还要洗碗、洗毛巾，更惨的是连热水都没有。
孩子要睡觉，她们要把床抬出来摆好铺好；
甚至在宿舍里出现一条小蛇时，也只能鼓起勇气、硬着头皮去处理，因为孩子们不仅需要她们的保护，还需要一个榜样。
当然，一线城市的幼儿园硬件肯定好得多，但她们的工作也绝不像我们想象的那么轻松。</p>
<blockquote>
<p>话说回来，哪个行业没有几个败类呢？</p>
</blockquote>
<p>见钱眼开的医生，颠倒黑白的律师，见色起意的教授，就算是我们程序员这个单纯的群体，也不乏窃取数据牟取私利的。不管在哪个行业，有问题的始终是少数。一方面要对肇事者严惩不贷，一方面也要思考深层次的原因。</p>
<h2 id="谁来关心下幼儿园老师">谁来关心下幼儿园老师？</h2>
<p>引用一篇论文《幼儿教师心理压力解析——透过 158 名幼儿教师看当前幼儿教师群体发展的障碍》的摘要：</p>
<blockquote>
<p>长期以来幼儿教师心理健康一直被社会所忽视。随着以人为本的教育改革理念被广泛接受,越来越多的研究开始关注幼儿教师的心理压力问题。本研究通过对沈阳市 158 位幼儿教师的问卷调查发现：
(1) 当前幼儿教师普遍承受着较高程度的心理压力,其工作热情在逐步降低；
(2) 不同幼儿教师压力源具有很大的差异；
(3) 目前幼儿教师这一群体缺乏有效的压力管理策略。
研究建议通过幼儿教师个人积极调试、教师之间互助和幼儿教育管理部门加强重视等途径来解决幼儿教师心理压力问题。</p>
</blockquote>
<p>今天的早间新闻中，教育部紧急部署，采取加强相关从业人员的资格审查，师风师德建设，加强技术手段等措施。但很遗憾的是，没有看到一条措施是站在平等的视角，为相关从业者考虑的。这些措施，对那些兢兢业业从事幼教工作的大多数老师，不仅可能增加她们的行政工作量，甚至有可能损害她们的职业尊严感。
试想一下，作为一名知识工作者，公司要求给你的电脑装上桌面监控，将你的一举一动暴露出来，你会作何感想？</p>
<p>最近听说某个幼儿园有一个很好的机制，要求家长轮流去幼儿园做志愿者，保证每天有一位本班学生家长在场。这样既可以增加幼教工作的透明度给家长信心，也能让家长体验到老师的不易，增进互相理解。</p>
<p>我们：</p>
<ul>
<li>不仅要考虑乘客的舒适，也要考虑司机的感受。</li>
<li>不仅要考虑病人的健康，也要考虑医生的感受。</li>
<li>不仅要考虑孩子的快乐，也要关注老师的感受。</li>
</ul>
<p>这才是社会主义核心价值观第六条的奥义，我们最终才能构建人人平等的和谐社会！</p>]]></description><pubDate>Thu, 30 Nov 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[怎么听，对方才肯说？- 积极聆听技术简介]]></title><link>https://life.seabornlee.cn/posts/%E6%80%8E%E4%B9%88%E5%90%AC%EF%BC%8C%E5%AF%B9%E6%96%B9%E6%89%8D%E8%82%AF%E8%AF%B4%EF%BC%9F-%20%E7%A7%AF%E6%9E%81%E8%81%86%E5%90%AC%E6%8A%80%E6%9C%AF%E7%AE%80%E4%BB%8B/</link><guid>https://life.seabornlee.cn/posts/%E6%80%8E%E4%B9%88%E5%90%AC%EF%BC%8C%E5%AF%B9%E6%96%B9%E6%89%8D%E8%82%AF%E8%AF%B4%EF%BC%9F-%20%E7%A7%AF%E6%9E%81%E8%81%86%E5%90%AC%E6%8A%80%E6%9C%AF%E7%AE%80%E4%BB%8B/</guid><description><![CDATA[<img src="/_image/2017-02-26-23-17-40.jpg" alt="">
<p>昨天内部培训，我第一次讲 Active Listening，中文是积极聆听。</p>
<h2 id="为什么聆听如此重要">为什么聆听如此重要？</h2>
<p><strong>学会聆听，是对别人最好的尊敬。</strong>
造物主给我们两只耳朵，一张嘴，就是希望我们多听少说（纯属瞎掰，请勿认真）。
没有人会喜欢一个滔滔不绝，喋喋不休的人。
一个有魅力的人，一定是一个聆听者。
也许在交谈过程中他并没有说上几句话，但是他一定会得到他人的肯定。
<strong>聆听，不仅仅是对别人的尊重，也是对别人的一种赞美。</strong></p>
<h2 id="是什么">是什么</h2>
<p>聆听，指集中精力认真地听，指虔诚而认真地听取，带有尊敬的色彩，因此一般表示下级听取上级的意见、报告等。
积极聆听是一种沟通技术，应用在咨询、培训和冲突解决中。它要求倾听者全身心投入、理解、回应诉说者，并记住说过的话。它的反面是，简单地重复诉说者说过的话以确认理解一致的反映式聆听（Reflective Listening）。---<a href="https://en.wikipedia.org/wiki/Active_listening">维基百科定义</a></p>
<h2 id="怎么做">怎么做</h2>
<p>积极聆听并不止于默默的听，应适时提出开放式问题（Open question）、 鼓励（Encourage）、译意（Paraphrase）、反映感受（Reflection of Feelings）及总结（Summary）。</p>
<h3 id="3f-聆听">3F 聆听</h3>
<p>「3F 聆听」是在非暴力对话倡导者马修.罗森博格（Marshall B.Rosenberg）和现代 Coaching 之父 汤姆.斯通（Tom Stone）的研究结果发展出来的技法。
三个 F 分别是：Fact，Feel，Focus。</p>
<p><em>Fact</em>
不用自己的想法和固有观念对对方的话进行评判，客观地接受对方谈话中的信息。</p>
<p><em>Feel</em>
在倾听事实的同时，感知对方的感受。</p>
<p><em>Focus</em>
把握对方真的想要什么，真正的意图是什么？</p>
<p>举个例子：</p>
<blockquote>
<p>我从午饭到现在已经 8 个小时没吃东西了，肚子好饿啊。</p>
</blockquote>
<p>事实是 8 个小时没吃东西，感受是肚子好饿，意图是赶紧去吃饭吧。</p>
<p>容易搞混的是 Fact 和 Feel，举个例子：</p>
<blockquote>
<p>今天太热了。</p>
</blockquote>
<p>这并不是一个事实，而是感受。</p>
<blockquote>
<p>今天温度是 39 摄氏度。</p>
</blockquote>
<p>这就是一个事实。</p>
<p>聆听的难点是听出对方的关注点和意图，听话听音儿就是说这个意思。
比如在四川，老公回家晚了，媳妇跟老公说：</p>
<blockquote>
<p>你回来做什么，你还找得到路回来啊？！</p>
</blockquote>
<p>她并不是在真的问你回家有什么事，是否还记得回家的路。而是：</p>
<blockquote>
<p>赶紧给老娘交代，到哪里鬼混去了？！</p>
</blockquote>
<h3 id="提问">提问</h3>
<p><strong>开放式问题和封闭式问题</strong>
开放式问题，比如：</p>
<blockquote>
<p>你觉得我长得怎么样？</p>
</blockquote>
<p>封闭式的问题，通常是选择题：</p>
<blockquote>
<p>你觉得我好看吗？</p>
</blockquote>
<p>开放式问题通常用于收集信息，比如：</p>
<blockquote>
<p>下班后到哪里去了？</p>
</blockquote>
<p>而封闭式问题用于确认：</p>
<blockquote>
<p>是不是又去洗脚了？</p>
</blockquote>
<p>也可以用于引导：</p>
<blockquote>
<p>你自己选，要跪榴莲还是主板？</p>
</blockquote>
<p><strong>5W2H</strong>
听到一句话，我们可以用 5W2H 框架，对不同的关注点提出问题。比如：</p>
<blockquote>
<p>我周末要去见一个人。</p>
</blockquote>
<ul>
<li>Who - 他是谁啊？</li>
<li>Why - 为什么要周末去呢？</li>
<li>Where - 你们在哪里见面？</li>
<li>What - 是男人还是女人？</li>
<li>When - 几点见？</li>
<li>How - 你怎么去？</li>
<li>How much - 你有多想见他？</li>
</ul>
<h3 id="鼓励">鼓励</h3>
<p>在谈话中，用鼓励的眼神、点头、认真思考的模样，或者简单的句子，都可以鼓励对方分享更多：</p>
<ul>
<li>我很想听到...可以分享一下吗？</li>
<li>很好，还有吗？</li>
</ul>
<h3 id="译意">译意</h3>
<p>为了澄清对方的意思，或为了向对方表示，你真的明白他的意思，都可用自己的言语重述对方所说的话：</p>
<ul>
<li>我可不可以理解为...</li>
<li>我理解是这样...</li>
<li>你刚刚是说...</li>
</ul>
<h3 id="反映感受">反映感受</h3>
<p>用言语反映对方的感受，让其觉得被理解，从而加强分享的意愿。</p>
<ul>
<li>听到这些，我感觉...</li>
<li>如果是我的话，我会觉得...</li>
<li>我想你一定感到很...</li>
</ul>
<h3 id="总结">总结</h3>
<p>最后，我们要总结一下，和对方进行确认。</p>
<blockquote>
<p>你刚刚讲到因为老公经常 22 点以后回家，你感到非常孤独和不安，所以你想我帮你在他手机里装一个定位软件，对吧？</p>
</blockquote>
<p>以上是关于积极聆听的介绍，希望它能帮助你提供聆听能力，成为一个更好的沟通对象~</p>]]></description><pubDate>Sun, 26 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[想成为高效的晨型人，只需做到这三点]]></title><link>https://life.seabornlee.cn/posts/%E6%83%B3%E6%88%90%E4%B8%BA%E9%AB%98%E6%95%88%E7%9A%84%E6%99%A8%E5%9E%8B%E4%BA%BA%EF%BC%8C%E5%8F%AA%E9%9C%80%E5%81%9A%E5%88%B0%E8%BF%99%E4%B8%89%E7%82%B9/</link><guid>https://life.seabornlee.cn/posts/%E6%83%B3%E6%88%90%E4%B8%BA%E9%AB%98%E6%95%88%E7%9A%84%E6%99%A8%E5%9E%8B%E4%BA%BA%EF%BC%8C%E5%8F%AA%E9%9C%80%E5%81%9A%E5%88%B0%E8%BF%99%E4%B8%89%E7%82%B9/</guid><description><![CDATA[<img src="/_image/2017-03-11-19-56-33.jpg" alt="">
<p>晨型人，是指那些坚持晚上早早睡觉，早晨四五点钟就起床的人，为了在忙碌的生活工作中保留快乐，因而早起，听音乐、看书、听广播的生活方式。
「晨型人」的概念来自日本，日本「早起心身医学研究所」的所长税所弘，是「晨型人」观念的起源。口号：你的未来，决战早晨！夜型社会已经逐渐迈向晨型社会！</p>
<p>几年来，我尝试了很多次做晨型人，充分利用早晨的时间，去完成一些重要的事情。往往坚持不了几天，这一次，我早起有一个月的时间了，我很享受当前的状态，我觉得这次能成，主要是做到了这三点：</p>
<ul>
<li>想清楚为什么要早起</li>
<li>不要压缩睡眠时间</li>
<li>稳定的晨间仪式</li>
</ul>
<p>首先声明，并非所有人都应该成为晨型人，不管你是晨型人还是夜猫子，只要自己满意自己的状态就好~
本文为个人经验，仅供参考。</p>
<h2 id="为什么要早起">为什么要早起</h2>
<p><em>精神好</em><br>
对我而言，经过一天的工作，晚上已经非常困倦了，不管是学习还是练习，效率都非常低。
所以我更愿意早点睡觉，把事情放到早上起来精神饱满的时候做。</p>
<p><em>没打扰</em><br>
早上，家人都还在睡觉，微信也没人发消息，也不会有人打电话，其实我手机在 22:00 - 9:00 都是勿扰模式，想打也打不进来。
所以在早上我可以更加专注，效率更高。</p>
<h2 id="不要压缩睡眠时间">不要压缩睡眠时间</h2>
<p>很多人以为早起，就是少睡几个小时，其实不是这样的，我们经常说「早睡早起」，要早睡才能早起。
对我而言，理想的睡眠时间是七到八个小时，早上基本都是自然醒，根本不用闹钟。
比起早起，更难做到的是早睡，要做到早睡，我认为有几下几点：</p>
<p><em>不要加班</em><br>
白天工作的时候要非常专注，排优先级，主动工作而不是响应式地工作。
把重要的事情做了，就有足够的成就感，就不需要在晚上加班。</p>
<p><em>做减法</em><br>
减少信息输入，不管是朋友圈文章还是订阅号，定期清理，如果一周没看过，就果断取关吧，最好只看付费订阅（冒着被取关的风险说出这样的话，我都被自己感动了~）。</p>
<p><strong>提高睡眠质量</strong>
晚饭之后不要吃甜点，肠胃活动太旺盛会影响睡眠质量，第二天早上会起不来或觉得没睡好。
避免在晚间玩游戏或和网友聊太 High，舍不得睡觉而熬夜。就算强行睡觉，也会因为兴奋而难以入睡，反而失眠。</p>
<p><em>慢慢来</em><br>
不要太心急，起床时间每两个星期提早半小时，让生物钟逐渐习惯早起，慢慢就能做到早上五点起床。
相对而言，春天和夏天更容易培养早起习惯，现在正是好时候。</p>
<h2 id="固定的晨间仪式">固定的晨间仪式</h2>
<p>很多时候，我们早上能起来，但不知道该干啥，也把时间浪费了，或者又回去睡回笼觉。
如果每天早上起来，不知道该做什么，或者每天做的事情都不一样，就很难养成早起的习惯。
所以我设计了一个固定的晨间仪式。</p>
<h3 id="喝水">喝水</h3>
<p>经过八个小时的睡眠，身体已经缺水了，尤其是冬天开着空调睡，虽然有加湿器，起床还是会感觉口干舌燥。
所以第一件事是去倒一杯水，慢慢地吞下去，感受水进入喉咙后，慢慢滋润整个身体的过程。</p>
<h3 id="唤醒身体">唤醒身体</h3>
<p><img src="/_image/2017-03-11-20-00-41.jpg" alt=""></p>
<p>早上起床后，我们的身体还没有做好迎接高效的一天的准备，所以我设计了一套，唤醒身体的动作，这套动作不能太复杂，也不要消耗太多体力。也不能挑场地，原来我有一个跳跃的动作，在出差的时候，我就特别担心做这个动作会影响到楼下的人休息。
所以后来就把它去掉了，现在的动作都是不挑场地的，不管是在家里还是在酒店，都可以安安静静地做，完成了这一系列动作之后，身体就被激活了，完全没有了睡意，为迎接高效的一天做好了准备，</p>
<h3 id="对齐目标">对齐目标</h3>
<p>前两天在群里聊到了拖延和懒惰，我认为，人之所以能延续到现在，身上的各种特质，一定都有其道理。比如说懒惰，如果人不懒惰的话，就不会发明汽车和电梯，对吧？
那么，人为什么会拖延呢？我觉得拖延是一个信号，说明显性意识和潜意识的目标是不一致的，所以我通过两件事情去对齐目标。</p>
<p><em>冥想</em><br>
冥想时，关闭了五感，认真的去观察潜意识里不断冒出来的各种念头，去探索内心真正的想法。</p>
<p><em>暗示</em></p>
<p><img src="/_image/2017-03-11-20-19-48.jpg" alt=""></p>
<p>我每天早上会拿起纸和笔，把我的目标在纸上写一遍，在非常放松和专注的状态下，一笔一笔地写，仿佛在和潜意识对话一样，通过这样的暗示，把显性的目标告诉潜意识。</p>
<h3 id="晨间日记">晨间日记</h3>
<p>请阅读<a href="http://www.jianshu.com/p/604edb8f163f">《如何用「晨间日记」专注目标》</a>。</p>
<h3 id="复盘">复盘</h3>
<p>请阅读<a href="http://www.jianshu.com/p/3be0964d3f40">《如何通过「复盘」把成长速度提高两倍（附实例）》</a>。</p>
<h3 id="学习">学习</h3>
<p>完成前面的仪式大约半个小时到一个小时，接下来还有一个半到两小时的学习时间，个人成长主要来自于这一段时间。
目前我的练习是每天写作，通过写作把我学习到的知识以及想法表达出来，促进思考，打通输入和输出。</p>
<h3 id="早餐">早餐</h3>
<p><img src="/_image/2017-03-11-20-00-19.jpg" alt=""></p>
<p>对我而言，早餐非常的重要，一顿爱人亲手做的，营养丰富、色香味俱全的早餐，不仅带给我上午所需的能量，还有满满的幸福感。感谢 Mavis 给我做不重样儿的早餐！</p>
<p>以上就是我的一点心得：<em>想清楚为什么要早起，不要压缩睡眠时间，设计一个稳定的晨间仪式</em>。
如果你想成为晨型人，希望我的经验对你有所启发~</p>]]></description><pubDate>Sat, 11 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[我为什么学编程]]></title><link>https://life.seabornlee.cn/posts/%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AD%A6%E7%BC%96%E7%A8%8B/</link><guid>https://life.seabornlee.cn/posts/%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AD%A6%E7%BC%96%E7%A8%8B/</guid><description><![CDATA[<img src="/_image/2013-07-31/22-50-17.jpg?width=320" alt="">
<p>我能想到一些可能的原因，但不太确定，可以肯定的是-不是父母逼我的。</p>
<ul>
<li>初中一年级的时候，父亲买了一台“裕兴电脑 VCD“，我当时就用它练习打字，那个时候我就会打五笔了；</li>
<li>高中二年级的时候，忘记了老师当时教了一门什么语言，一次上机课时老师说让我们编写一个加法函数，最快的同学平时成绩算满分，然后我就满分了；</li>
<li>高中毕业的假期，沉迷网络游戏了；</li>
<li>高中假期里看了一本计算机病毒相关的书，不明觉厉；</li>
<li>当时计算机很热门；</li>
<li>对其它专业没有兴趣。</li>
</ul>
<p>不管怎样，我现在很庆幸当初做了这个正确的选择，如果没有读计算机，我现在可能在家乡的赤水河里当一名小船长-像我父亲一样，他很喜欢也很擅长，父亲干了 20 年，前几年终于回到了陆地上。<br>
我现在很享受我的工作，并且能靠这门手艺过着还不错的生活，我希望我能干一辈子。</p>]]></description><pubDate>Wed, 31 Jul 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[我如何读书]]></title><link>https://life.seabornlee.cn/posts/%E6%88%91%E5%A6%82%E4%BD%95%E8%AF%BB%E4%B9%A6/</link><guid>https://life.seabornlee.cn/posts/%E6%88%91%E5%A6%82%E4%BD%95%E8%AF%BB%E4%B9%A6/</guid><description><![CDATA[<img src="/_image/2017-04-06-10-43-12.jpg" alt="">
<p>有人为了装 13 而读书，显然，我不是。
我通过写博客装 13。</p>
<h2 id="为什么读书">为什么读书</h2>
<p>读书对我来说并不是特别轻松的事，尽管我看过很多<a href="http://book.douban.com/subject/3916049/">《快速阅读》</a>的理论，也通过舒尔特表，曼陀螺卡片等工具做过一些训练，但并没有炼成一目十行的本事，依旧改不了逐字阅读的习惯。所以相对于读书，我更喜欢通过听演讲，参加在线课程等更高效的方式来学习。
比如观看一部两个人演完的小电影肯定比读几本成人文学花的时间更少，涨的姿势更多。</p>
<p>读书对我而言，主要有两点作用，<strong>拓展知识面</strong>和<strong>提高能力</strong>。</p>
<h3 id="拓展知识面">拓展知识面</h3>
<blockquote>
<p>智慧意味着自知无知。</p>
</blockquote>
<p>想像在知识的海洋中，有一个球。球内是你已经掌握的知识，球外是无限的你不知道你不知道的知识。对，我没有敲错。球的表面是你知道你不知道的知识。
你知道的越多，球越大，球的表面积也越大。也就是说，你知道的越多，你知道你不知道的就越多。
所以很多读到博士的人会觉得自己很无知。
差点把自己绕晕了，回到主题。这类书包括历史、传记、文学、人文、科学等。</p>
<h3 id="习得技能">习得技能</h3>
<p>比起漫无目的地读书，大多数时候，我是为了习得技能而读书。比如编程、管理、咨询、引导、肓儿等。
这类书很实用，学完马上就可以应用到工作和生活中。比如：
读过<a href="http://book.douban.com/subject/25785829/">《咨询的奥秘》</a>，我就可以跟客户讲“铺得越广，摊得越薄”的“树霉酱定律”，要求以百米的速度跑完全程马拉松是不科学的。
读过<a href="https://leanpub.com/funretrospectives">《Fun Retrospectives》</a>，我就能引导团队以更有趣的方式做<a href="http://www.seabornlee.cn/post/thoughtworks/retrospective">回顾会议</a>。
读过<a href="https://leanpub.com/codingdojohandbook">《The Coding Dojo Handbook》</a>我就能引导 Coding Dojo。
诸如此类。读过之后马上进行应用，用实践来检验理论，将知识转化为能力。</p>
<h3 id="娱乐">娱乐</h3>
<p>我不愿意读小说，因为一读就停不下来，小说通常都很长，而我读书很慢。所以我读过一些小说，但几乎没有一本读完过，因为当我意识到我沉迷其中时，我会毫不犹豫地删掉它。
比起小说，我更愿意通过电影来娱乐。只因为它独立且短小。</p>
<h2 id="读什么书">读什么书</h2>
<blockquote>
<p>你读书这么慢，就不要什么书都读了。</p>
</blockquote>
<p>因为读书慢，所以我更愿意多花一些时间在挑书上，读到不好的书也会赶紧扔掉。</p>
<h3 id="行业经典">行业经典</h3>
<blockquote>
<p>你不是读书少，是经典读的少。</p>
</blockquote>
<p>不知道什么时候看到过这句话，如醍醐灌顶。从此我将“经典”列为读书列表的最高优先级。
比如：<a href="http://book.douban.com/subject/1477390/">《代码大全》</a>，<a href="http://book.douban.com/subject/1148282/">《计算机程序的构造和解释》</a>，<a href="http://book.douban.com/subject/4262627/">《重构》</a>，<a href="http://book.douban.com/subject/25772550/">《你的灯亮着吗》</a>等。</p>
<h3 id="同行推荐">同行推荐</h3>
<p>微博和微信里总会有一些同行会时不时晒一些好书，或者对一些烂书吐槽。这样我就能将时间花在读好书上而不是浪费在烂书上。</p>
<h3 id="随机发现">随机发现</h3>
<p>多看阅读里每天会有限免图书，我也会去刷一下，但感兴趣的不多。通常只是下载，放在读书列表最后面。</p>
<h2 id="怎么得到书">怎么得到书</h2>
<p>对于我这种 Homeless 来讲，纸质书绝对是搬家时的一大痛，每次搬家都会清掉很多旧书。所以我偏爱电子书。</p>
<h3 id="电子书">电子书</h3>
<p>对于中文书，我首先会在“多看”进行搜索，很便宜且客户端阅读体验好。“多看”上找不到我再尝试到 Kindle 商店去找。
英文书通常可以直接在国外网站进行购买，比如<a href="https://leanpub.com">Leanpub</a>和<a href="https://pragprog.com/">Pragmatic Bookshelf</a>。
我通常使用 iPhone 或者 iPad 读，我的 Kindle Paperwhite 一代反应实在太慢了，只在飞机上才会用。</p>
<h3 id="纸质书">纸质书</h3>
<p>实在找不到电子书，我就上“京东”或者“Amazon”买纸质书，因为送货快，我可以在热情没有削减时就拿到手开始阅读。</p>
<h2 id="怎么读">怎么读</h2>
<blockquote>
<p>书拿到手了，最重要的是去读它，而不是把收藏当成是学习。</p>
</blockquote>
<p>记得上大学时，上网还是很贵的，一寝室同学凑钱买上网卡，晚上人齐了才能拨号上网。在那样的条件下，在线学习是非常奢侈的，所以通常都是采用“Read it later”的方式，晚上下载等有时间再看，可是白天上课又没时间看，晚上一连上网又认为不下载就是罪孽。就在这种环境下养成了囤积的毛病，在硬盘里囤了无数的电子书和视频教程。现在还是不能停药，在 Pocket、微信、微博里收藏了许多的文章。但我强迫自己在年底最后一天一定要全部清理掉，该读的读，该删的删。</p>
<p>经典的<a href="http://book.douban.com/subject/1383525/">《How to Read a Book》</a>讲了读各种书的方法，这本书对我的阅读习惯影响颇深。在这里不讨论具体的方法，分享一下我遵循的几个原则：</p>
<h3 id="不逼自己读">不逼自己读</h3>
<p>尽管读的是经典或者同行推荐的好书，但并不一定就适合我，或者适合现阶段的我。所以当读一本书让我痛苦时，我会把它放下，或换一本更加基础的，或待以后有一些阅历之后再读。比如：<a href="http://book.douban.com/subject/10484469/">《管理 3.0》</a>是一本好书，但在我还是一个静静的 Developer 的时候，读起来是索然无味的。待开始领导团队，遇到过一些实际问题之后，便能与作者产生共鸣，读起来就很享受。</p>
<h3 id="不以读完为目标">不以读完为目标</h3>
<blockquote>
<p>常在江湖漂，哪能不搬家。
每次搬家的时候，老婆总是望书兴叹：“买这么多书，你有几本是读完了的？”
我反问她，为什么我要把每一本书都读完？
把书从头到尾读完，就像从 A 到 Z 背单词一样无聊。我认为那是应试教育养成的恶习。
而且现在的图书，作者在写作时都力求章节间相对独立，为的就是方便大家选择感兴趣的部分进行阅读。</p>
</blockquote>
<p>在<a href="http://book.douban.com/subject/20493042/">《这样读书就够了》</a>一书中，作者的观点深得我心，不应以读完为目标，而应该重视如何将书中的知识应用到工作中，学会一点便不亏了，学会两点就赚大发了。</p>
<h3 id="不以记住为目标">不以记住为目标</h3>
<p>有些观点认为，读完书后要能默写出提纲，以及作者在各章的主要观点。我认为这也是应试教育的恶习。
我学到一个知识，应当迅速将它纳入自己的知识体系。一段时间后，当我和别人聊天的时候，我才不在乎这个观点是我自己思考出来的，还是从某个作者的某本书的第几章第几节看到的。</p>
<h3 id="带着问题读书">带着问题读书</h3>
<p>在开始读一本书之前，我通常会问自己几个问题，带着问题去读，能帮助我更加专注。
比如对于<a href="http://book.douban.com/subject/25839505/">《共创式教练》</a>一书，在翻开之前我就列出如下几个问题：</p>
<ul>
<li>什么是共创式？</li>
<li>除了共创式还有什么式？</li>
<li>为什么要共创？</li>
<li>它的应用场景是什么？</li>
<li>我如何在工作和生活中应用？</li>
</ul>
<p>在读的过程中，可能又会提出新的问题，没关系，加到列表里，一个一个去“问”作者。</p>
<h3 id="设置-wip">设置 WIP</h3>
<p>多任务是低效的。所以我通常会限制自己最多同时读两本书。两种不同类型的书交替阅读可以换换脑子。</p>
<h3 id="设置-dead-line">设置 Dead line</h3>
<p>虽然不逼自己读无趣的书，但人天生是有惰性的，虽然我很想读，但我的注意力可能会被“朋友圈”的各种新鲜事吸引。
所以我必须给当前在读的书设置一个 Dead line，并且给自己一些激励，比如读完（并非逐页读完）一本书后奖励自己买一个 iOS 小游戏玩玩。</p>
<h2 id="实践与分享">实践与分享</h2>
<p>通过阅读，我获得了作者的知识和经验，但必须要我亲自实践后才能将其转化为我的能力和经验。比如我通过<a href="http://book.douban.com/subject/1771049/">《Test-Driven Development By Example》</a>学习 TDD，然后在工作中去应用，再在社区去<a href="http://www.seabornlee.cn/post/huo-dong/gdcr-2013-shen-zhen-zong-jie">分享自己的经验</a>。</p>
<p>我认为读书并不是最好的学习方式，因为你不能和作者互动，书中的知识也可能过时。
我更喜欢面对面的交流，所以我非常愿意通过社区活动与人分享，这样听我分享的人便走了一条捷径。</p>
<blockquote>
<p>~~书山有路勤为径，学海无涯苦作舟~~。</p>
</blockquote>
<p>我认为学习不应该是辛苦或痛苦的，而是<strong><em>一个满足自己好奇心和求知欲的极富成就感的快乐的过程</em></strong>。
人生苦短，干嘛非要和自己死磕，去学那些不感兴趣的，学起来辛苦和痛苦的东西？
我更喜欢<a href="http://book.douban.com/subject/10799765/">搞清楚自己的优势</a>之后，在有天赋的领域快乐地学习，事半功倍地成长。</p>]]></description><pubDate>Thu, 06 Apr 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[我把娃独自留在大理的餐馆]]></title><link>https://life.seabornlee.cn/posts/%E6%88%91%E6%8A%8A%E5%A8%83%E7%8B%AC%E8%87%AA%E7%95%99%E5%9C%A8%E5%A4%A7%E7%90%86%E7%9A%84%E9%A4%90%E9%A6%86/</link><guid>https://life.seabornlee.cn/posts/%E6%88%91%E6%8A%8A%E5%A8%83%E7%8B%AC%E8%87%AA%E7%95%99%E5%9C%A8%E5%A4%A7%E7%90%86%E7%9A%84%E9%A4%90%E9%A6%86/</guid><description><![CDATA[<img src="/_image/image_2023-11-20-21-53-44.png">
<p>有天老婆早早出门上课去了，我收拾送孩子们上学，妹妹觉得我扎头发扎不好，不给我扎，就这样披头散发出门了，在常去的早餐店，因为总去，跟老板熟了，有时候给我们送豆浆，送饺子，赶上忙的时候，还要嗔怪我们来得不是时候。店里的阿姨看不下去了，趁着不忙的空档，就给妹妹扎了辫子。妹妹还在慢慢吃，哥哥已经要迟到了，于是我跟老板娘交代一声，就送哥哥去上学了，送完哥哥们再回去接妹妹。</p>
<p>傍晚，我接完妹妹接哥哥，在学校附近的一个清真餐馆吃晚饭，整个院子就我们一桌，哥哥吃完了，妹妹还在吃，这时 JD 小哥送洗衣机到客栈，我要过去收货验货，妹妹坚持还要继续吃，我就让哥哥们陪着妹妹继续吃，我先去收货。大约半小时后，回来接他们，他们在院子里和餐馆的奶奶玩得很开心。</p>
<p>之前我们在北京，深圳和成都都生活过多年，在那样的超级城市，这样平常的事是不会发生的。
也让我对 It takes a village to raise a child（养育孩子需要整个村庄）有了一点点体会。</p>
<p>没来大理之前，听一个播客，说生活在熟人社会，会让人潜意识更放松，相反在大城市里每天在写字楼，商场，公交和地铁上，会遇到大量的陌生人，身体和头脑会不自己地处于戒备紧张的状态。于是，对大理多了一分向往。
来大理后，发现常住的人也确实不多，大家常去活动的地方也就那几个，所以没来多久已经偶遇过好多次熟人了。
一对比，确实是那么回事。</p>
<p>就举几个偶遇熟人的例子吧。
在 58 同城上找的房源，加了微信后发现房东是我好大哥的好大哥。而现任租客知道我们才来大理，很热情地给我们介绍周边的生活环境，以及她女儿读的幼儿园，后来我们就真的去读了。后来有一天我去素方舟上瑜伽课，还偶遇了他们一家。</p>
<p>又比如，朋友前一天在群里发拜访一位藏传佛教师傅开示的视频，第二天我们在古城北门的一个路口就看到师傅正在过马路。
在面包树花园分享的台湾阿沐老师，过两天也在素方舟偶遇了。
<img src="/_image/image_2023-11-20-21-53-26.png" alt=""></p>
<p>在面包树居住的一位数字游民朋友，我们搬到龙龛后，有天偶遇她去附近参加活动。</p>
<p>说到熟人社会，那就不得不提社区文化。
我在北京参加过软件匠艺的 Meetup，在深圳参加过 SZTM 头马俱乐部，既提升了能力又认识了很多同频的朋友。</p>
<p>假期里给两个儿子报了跑酷课，送过去后发现楼下有个租车店，里面有张台球桌，说跟老婆去打两局，老板说这里有个高手没人陪，你们俩打吧，然后我们就打了几局，后来又陆陆续续来了几个人，换着打，输的下。打完我问多少钱，老板说不收钱，因为自己喜欢桌球，就安了张球桌，大家一起好玩。
<img src="/_image/image_2023-11-20-21-51-24.png" alt=""></p>
<p>后来每次送孩子过去上课，也成了我的休闲时光，一来二去跟大家都认识了，有隔壁火锅店和粤菜馆的老板，有附近客栈的老板，有孩子已经 12 岁的 90 后兄弟，有说一口流利韩语的东北大哥。</p>
<p>一边玩乐一边完成信息交换，谁家客栈入住率怎么样，哪个房子在转让报价多少，哪个集市有个啥小摊儿味道很绝等等。
这不就形成了一个社区么，虽然没有名字。</p>
<p>大理丰富的社区也是很吸引我的，各种各样的兴趣社群，涵盖瑜伽，国学，占星塔罗，疗愈，剧本杀，德州扑克，各种乐器，教育，飞盘，徒步，投资，演讲，脱口秀等等。</p>
<p>由于还没有安顿好，也没来得及去各个社区拜访。但好在朋友 Jay 把我拉进了各个社区的微信群，想去的时候能够联系得上。所以为了方便方便像我这样刚来的朋友，找到感兴趣的社群，我们还一起做了个小程序，正在备案，很快就能上线了。
<img src="/_image/image_2023-11-20-21-50-37.png" alt=""></p>]]></description><pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[我的 CSM 老师]]></title><link>https://life.seabornlee.cn/posts/%E6%88%91%E7%9A%84%20CSM%20%E8%80%81%E5%B8%88/</link><guid>https://life.seabornlee.cn/posts/%E6%88%91%E7%9A%84%20CSM%20%E8%80%81%E5%B8%88/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-23-22-19.png" alt="">
<p>Gullo 是去年 Scrum Gathering 的 keynote 讲师，也是我的 CSM 老师。今天看到他的中国行感受，其中提到的打车被堵那段就是和我在一起，我想我也应该写点东西记录一下和他相处的感受。</p>
<h3 id="csm">CSM</h3>
<p>时逢 Scrum Gathering，我在上一家公司实践 Scrum 有一段时间，尝到了一些好处，也遇到了很多问题。于是我想到了去参加 CSM 课程，一方面系统学习一下，另一方面希望从老师那里找到答案（还可以锻炼英语）。（前段时间国内第一个 CST/CSP-Daniel Teng 邀请我免费去参加他的三天 CSM 课程，想必更有意思，有机会一定要去一次）</p>
<p>Daniel 用 Scrum 来教 Scrum：</p>
<ul>
<li>两天的课程分成多个 Sprint</li>
<li>把学生的需求写成 Story 卡片</li>
<li>可视化教学环境</li>
<li>定义 working agreements</li>
<li>定义 Definition Of Done</li>
<li>使用 Burn down chart</li>
<li>…</li>
</ul>
<p>这种授课方式我是从未见过的，而且很多时候边讲边画，还有很多小游戏，比如翻硬币，投南瓜比赛，经理和员工等。
Daniel 能把复杂的道理简单地讲解出来，让我们这些英文很差的人都能听明白。饱受传统开发方式折磨的同学们都表示收获很大，已经跃跃欲试了。</p>
<h3 id="hanging-out">Hanging out</h3>
<p>第二天课程结束后，我和 Daniel 都要去五道口跟 Bob，Carol，Shining 一起吃烤鸭。他上课穿的很正式，天气很热，他想回酒店换身衣服，我说我可以去酒店等你，他稍显尴尬。我们打了个车，成功地被堵死在路上，司机对 Daniel 很好奇，我便当起了翻译，他们就美国房价是否过高，美国人结婚是否要买房等问题交换了意见。为了不让他们久等，我决定改乘地铁，于是付了钱和 Daniel 去坐地铁了，司机表示我们不够意思，把他一个人扔在路上堵着连个说话的人都没有。一路上我也在想，去他房间肯定挺尴尬的，终于到了大堂我说我在这儿等你（让我记住了 Lobby 这个词），我俩都松了一口气。他很快换完装备出来了，我们又去坐地铁，第一次和外国朋友相处我还挺兴奋的，一路上我不停给他介绍北京的特色和我的特色，两次差点带错路，都是 Daniel 给我纠正过来，后来到了饭店后我开玩笑说是 Daniel 带我过来的。</p>
<p>Daniel 用一个 app 学了几句中文，后来回美国后还和孩子一起报班学中文。
Daniel 擅长绘画，身上总带着一个小本本，画了好些速写。当我们聊到美国的 IT 时，他居然画出了美国地图，标出了一些主要的城市。
Daniel 有一个漂亮的妻子和 3 个孩子，第 4 个孩子马上要出生了（现在已经出生了）。他经常出差，对陌生城市没有一点不适感，他说他以后会经常来中国开课。</p>
<p>我们现在还保持在 Skype 上沟通，希望以后还能见到他，并且用英语或中文流利地交谈。</p>
<p>—
附上 Daniel 的中国行感受：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">Eagle and Dragon</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">My mind has been officially and completely blown.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">I spent two weeks in a country whose language I could not speak, read, or write.  The people there, in various degrees, were able to speak and read my language.  It was nice in a way to be able to tune out and not understand EVERY conversation going on around me or feel the need to read every sign.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">I also found that much of our communication as human beings is universal.  Pointing and pantomiming go a long way; as do smiling, having patience, and simply making an effort to understand something before passing judgment.  I am grateful to all those I encountered in China who had patience with me and welcomed me to their country.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">From a tourism perspective, guides in Beijing are very inexpensive it would seem.  I had a driver, guide, meals and attraction tickets included for 800 RMB (about $130) all day.  However, if this is appealing, I would recommend skipping the “tour of a silk factory”, “tour of a cloisonné factory”, “tea restaurant”, and the infamous “Nephew of the Last Emperor’s Calligraphy Studio” at the Forbidden City.  This is where the guide will steer you and where they get kickbacks from stuff that you buy.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">Initially, it seems like there are great deals on things.  They won’t haggle, stating that “this is a government shop and the prices are fixed”.  Just walk away.  You can find the same stuff elsewhere, like the Qiamen district in Beijing or Nanjin Road in Shanghai and other areas around the Bund and Yuyuan Gardens.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">Prior to spending time in Beijing, the most polluted air quality I had seen was in Milan.  I have heard Mexico City is also very bad.  I haven’t been there.  The locals in Beijing aren’t naïve.  They are all well aware of the pollution situation.  On one particular day, we couldn’t see the buildings just across the street, which was about 30 meters (about 100 feet).</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">They are also well aware of the population situation.  I hadn’t seen that magnitude of population density… ever.  I mean, sure, in New York, Chicago, Los Angeles, San Francisco, Las Vegas, Rome, etc. there are times during the day when the streets are crowded; the morning rush, lunch time, the evening rush, special events, holidays.  However in China, it is like perpetual rush hour.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">On a Friday at actual rush hour, my friend and I were taking a cab back to my hotel from the training venue.  We spent about an hour traveling 1.25 miles.  We were stopped dead on 103 National Road (the Jingtong Expressway).  It was like being on the 5 or 95 freeways.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">After about 10-15 minutes of sitting there, watching others get out of their cars, chatting to one another, my friend said something to the driver, paid him, opened the door and said “Let’s go.”  The driver was pissed.  However, there at the side of the road I could see the Dawanglu subway station.  I had to laugh out loud as I wheeled my rollerboard full of training supplies down the freeway in between the parked cars… It was a scene right out of “Planes, Trains, and Automobiles”.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">We were back to my hotel in about 10 minutes.  I asked what the driver was on about and my friend said that he didn’t want to be stuck alone in traffic with no one to talk to.  (I suspect he was also mad he wasn’t getting paid to be there anymore either.)</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">In visiting the various attractions, I was amazed by the history, traditions, and balance between opulence and poverty, complexity and simplicity, self and community, and various other characteristics; some in harmony, others in sharp discord.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">By far, the thing that amazed me the most was how inaccurate all of my preconceived notions of China were.  In America, we generally don’t pay much attention to anything that doesn’t directly involve ourselves or is not touted in the media.  Because I firmly believe that most media is sensationalistic, what we get is a caricature of China, not reality.  I am sure they get the same distorted view of the U.S. from their media.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">Meanwhile, the good citizens of both countries are trying to eke out an existence however we can, caring for our families and other loved ones, making friends, celebrating life and reflecting on the condition of humanity.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">I am not naïve either.  It is well known that the government is continually watching and monitoring the people (… in both countries.)  It is well known that corruption is rampant (…in both countries.)  There are the rules and then what people actually do to make things work (…in both countries.)  So, what’s different?</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">Quite a bit, and yet, not so much.  I continually found myself wondering what life in the US might be like with 1 Billion more people and a homogenous culture reaching back 2000-3000 years.  Probably even closer still to that of China.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">One of the main reasons I was in China was for the Regional Scrum Gathering, which was a huge success.  Shining Hsiong, Bob Jiang, and all of the others who volunteered did a PHENOMENAL job!!  I know first hand how difficult it is to organize a Scrum Gathering, and they didn’t have a great events firm like Elastic to rely on for logistics.  Kudos to the whole team and speakers!!</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">China is ready to move forward with Agility.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">It has already been happening.  It will take time.  There will be some resistance.  Old traditions in business will be difficult to change.  Centuries of focus on theory x and Taylor model management are not abandoned easily.  Elaborately hierarchical organizations do not become flat over night.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">But which country am I really speaking of now???  These things could easily be said about ALL countries and organizations around the world when first considering Agile adoption.  Looking at how the society functions in China, from my limited exposure, it seems right on the edge of chaos; doing only what’s necessary, deciding at the last responsible moment, following the rules as a set of guidelines not absolutes, etc.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">There are establishments emerging which are uber-focused on customer service and delight, like the renown Haidilao restaurant where the servers are able to exercise complete control over delivering the best experience possible.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">The CSM classes I taught received overwhelmingly positive feedback.  I was surprised.  I thought that the fact that they were primarily in English would have sealed my fate.  The attendees were excited about Scrum, Agile values and principles, and eager to hear more.  It would have been great to have more time for discussion and more examples but that’s the case with every class.  We made the most of the time we had.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">Overall, I must say 谢谢! (THANK YOU!) to everyone whom I met and came in contact with during the 2.5 weeks while I was in China: the random people I encountered while exploring the sights, the Gathering attendees and organizers, the attendees in my classes, and everyone else whom I might have missed mentioning.  I was amazed at how friendly and hospitable everyone was.  It gave me hope for the world of work and the world in general.  I felt very welcome and well-cared for.  What’s more, I felt safe.  I wish I could say the same for walking around alone in downtown Detroit or L.A. or NYC or even Philly.</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">I have made some great friends during my stay and I hope we can keep in touch.  I look forward to the next opportunity I have to visit and the adventures that await…</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">敬礼-</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">丹尼尔</span></span></code></pre>]]></description><pubDate>Sat, 29 Jun 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[我的时间管理观念和技巧]]></title><link>https://life.seabornlee.cn/posts/%E6%88%91%E7%9A%84%E6%97%B6%E9%97%B4%E7%AE%A1%E7%90%86%E8%A7%82%E5%BF%B5%E5%92%8C%E6%8A%80%E5%B7%A7/</link><guid>https://life.seabornlee.cn/posts/%E6%88%91%E7%9A%84%E6%97%B6%E9%97%B4%E7%AE%A1%E7%90%86%E8%A7%82%E5%BF%B5%E5%92%8C%E6%8A%80%E5%B7%A7/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-23-34-23.png" alt="">
<p>我是一个拖延症晚期患者，因为确实病得太重，一直拖着也没去治。
最近有人说我高产，我仔细一想，确实每天写一篇文章也不是一件容易的事。
我就开始思考，我是怎么从一个拖延症变成高产博主的呢？</p>
<h2 id="观念篇">观念篇</h2>
<h3 id="别尝试缩短睡眠">别尝试缩短睡眠</h3>
<p>为了有更多时间学习，我曾经研究过各种睡眠理论。
大概 2012 年前后，有半年时间我坚持每天晚上 12 点睡觉， 5 点起床。结果是一整天都迷迷糊糊的，经常是跟同事指着电脑讨论问题的时候就能睡着。
现在我已经接受了，不管别人是不是只睡 4 个小时就能精神百倍，反正我需要 8 个小时的睡眠，不多不少，多了我会很难受，少了就不在最佳状态。</p>
<h3 id="付费学习">付费学习</h3>
<p>原来为了缓解焦虑，每天刷朋友圈，看文章，在养成读书的习惯之后，就觉得看文章不够系统。
花时间去找免费的资源不是最大的浪费，最大的浪费是把时间花在了低质量的资源上。</p>
<p>所以我宁愿多花钱，节省时间，现在付费的东西质量都参差不齐，更不要说免费的了。
我在以下这些资源上花了钱，希望对你有用：</p>
<ul>
<li>李笑来的《通往财富自由之路》</li>
<li>樊登读书会</li>
<li>速读课程</li>
<li>机器学习纳米学位</li>
<li>Kindle Unlimited</li>
<li>视觉引导工作坊</li>
<li>一对一发声训练</li>
<li>歌者盟</li>
<li>纸质书</li>
<li>即兴幽默工作坊</li>
<li>产品经理线下课程</li>
<li>付费私密群</li>
<li>在行约见专家</li>
<li>分答小讲</li>
</ul>
<p>现在，我在减少知识来源，因为意识到：不练习，学再多知识也然并卵。</p>
<h3 id="付费买效率工具">付费买效率工具</h3>
<p>虽然以前我搞过软件破解，但后来想通了，程序员何苦为难程序员。
我买过的软件也很多，推荐几个比较常用的：</p>
<ul>
<li>IntelliJ IDEA，Java 程序员必备</li>
<li>Alfred，Mac 必备的效率工具</li>
<li>MarkEditor，就是现在写这篇文章的写作工具</li>
<li>1 Password，节省大量设计密码和输入密码的时间</li>
</ul>
<p>虽然有些工具挺贵的，但算算节省的时间，就非常划算。</p>
<h3 id="提高社交质量">提高社交质量</h3>
<p>不管参加线上还是线下的付费课程，都能获得一个相对高质量的圈子。
我身边的朋友，基本都比我大五岁以上，都是我的良师益友，我从他们身上学到很多。
比起一群人胡侃海聊，我更喜欢单独约见，可以深度交换思想。</p>
<h3 id="提高休闲质量">提高休闲质量</h3>
<p>以前休闲就是窝在家里看电视，打游戏。
现在我更喜欢走出去，去电影院看场电影，去公园散步，去看脱口秀演出，去打桌球、扔飞镖。
这些活动更能帮我充电。</p>
<h2 id="技巧篇">技巧篇</h2>
<blockquote>
<p>你怎么过一天，就怎么过一生。</p>
</blockquote>
<p>我相信习惯决定命运。
所以，我很重视培养每一天规律的作息习惯。</p>
<h3 id="制定晨间仪式">制定晨间仪式</h3>
<p>我设置了一个晨间仪式，完成了晨间仪式，我就觉得一天很有成就感了。</p>
<p><strong>喝水</strong>
起床后先补充水分。</p>
<p><strong>激活身体</strong>
做几个简单的动作，唤醒放松了一夜的身体，马上睡意全无。</p>
<p><strong>晨间日记</strong>
回顾昨天的目标达成情况，计划今天的最重要的事。</p>
<p><strong>写作</strong>
最近每天写一篇文章，早上写 90 分钟左右，基本完成，晚上编辑一下才发布。</p>
<p><strong>早餐</strong>
不出差的时候，老婆每天做精美的早餐，为我一天的工作提供能量。</p>
<h3 id="重合利用时间">重合利用时间</h3>
<p><em>通勤即运动</em><br>
以前我每天骑摩拜单车上下班，最近改成了快走，单程 25 分钟左右，一天就能走 50 分钟，我就不用单独安排时间运动了。</p>
<p><em>事务即陪伴</em><br>
有次等电梯的时候，一位同事问我：你每天这个忙，还有时间陪家人吗？有。
我家住在公司附近，公司旁边有个商场，老婆经常带着儿子去商场玩，中午我们可以一起吃饭。
下班回家吃完晚饭，我们也会在楼下遛遛弯儿。
晚上，我会跟儿子一起洗澡，先让他泡在桶里玩喷头，我开始刷牙，等我我洗脸洗头的时候，他还会帮我冲水，我洗完再给他洗头洗澡。</p>
<p><em>交流即学习</em><br>
大部分的社交活动，我都会带着老婆孩子一起，变成家庭聚餐。
所以我们有很多共同的朋友，共同的话题。
我们在一起不会聊张家长李家短，而是敏捷，教练技术，读书，画画儿，育儿，手工。
老婆是我的知己，我读过的书，会首先跟她探讨，写的文章，她会先帮我审阅。</p>
<h3 id="午休">午休</h3>
<p>因为起得早，午休对我而言就非常重要，不管再忙，也要休息 15 分钟，恢复精力。</p>
<p>以上就是我的秘密，希望对你有用~</p>]]></description><pubDate>Sat, 25 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[我的晨间日记]]></title><link>https://life.seabornlee.cn/posts/%E6%88%91%E7%9A%84%E6%99%A8%E9%97%B4%E6%97%A5%E8%AE%B0/</link><guid>https://life.seabornlee.cn/posts/%E6%88%91%E7%9A%84%E6%99%A8%E9%97%B4%E6%97%A5%E8%AE%B0/</guid><description><![CDATA[<img src="/_image/2017-03-03-11-17-29.jpg" alt="">
<p>前几天分享的时间管理文章里提到了晨间日记，有小伙伴留言说想尝试，不知道具体怎么写。
今天就分享一下，我写日记的经历，以及晨间日记格式的演变过程。</p>
<h2 id="为什么要写日记">为什么要写日记？</h2>
<p>每个人目的不一样，对我来说，一开始就是没想清楚，到底为何而写，所以也没有养成习惯，断断续续地写着。
现在呢，我写日记的目的是：</p>
<ul>
<li>专注目标</li>
<li>记录发现</li>
<li>当日 MIT（Most Important Task - 最重要的任务）</li>
</ul>
<p>我信奉一句话：</p>
<blockquote>
<p>你怎么过一天，就怎么过一生。</p>
</blockquote>
<p>我们一生想做的事情很多，每年都会给自己订立一些宏大的目标。那些去年没有达到的，本该在前年完成的，上前年计划的目标。
可到了年底，却还是和往年一样。还真应了那句话：最重要的事只有一件，就是完成去年的目标。</p>
<p>每天我们都会做很多事，哪些做得好，哪些可以提高，我会在早上去反省。
每天思考今天最重要的一件事是什么，做了拿件事，今天就算没白过，并把它拆成更小的任务。</p>
<h2 id="为什么要早上写">为什么要早上写？</h2>
<p>经过一夜的休息，早上思维更清明，情绪也更稳定，写出来的东西更加理性和客观。
比如你白天和同事发生争执，如果晚上写日记，多半会诅咒他，「永远摇不上号」之类的。
早上呢，会更容易思考自己要做什么，才能让事情往好的方向发展。</p>
<blockquote>
<p>如果你总认为是环境的问题，等者环境来适应你，那就永远也不会有什么变化。
只有把焦点放到自己身上，看看自己能做什么改变，才会越来越好。</p>
</blockquote>
<p>有的人会说，我身边就是那么多糟糕的人，我有什么办法？
那他就应该审视一下，物以类聚，人以群分，你是不是入错了圈子？还是你本身也和身边人一样？
我相信多半是后者。</p>
<h2 id="怎么写">怎么写？</h2>
<p>在我的 Day One 里，最早的日记是在 2014 年。
<img src="/_image/2017-03-03-11-13-17.jpg" alt=""></p>
<h3 id="记录事件和想法">记录事件和想法</h3>
<p>那时就是随时随地记录事件和想法。</p>
<blockquote>
<p>2014-06-03
<strong>在工作上别把客户当朋友</strong>
客户永远是客户，在个人层面上可能是朋友。
但涉及公司利益时，一定要公事公办。
这不仅能保全自己，也是一种专业能力的体现。</p>
</blockquote>
<blockquote>
<p>2014-06-18
<strong>丑话说在前头才能愉快合作</strong>
对于我们卖服务的公司，理论上必须先签合同才能开工，但往往需要提前开工。这时，必须让客户的采购部门给销售总监发邮件，以此作为证据，避免未来不必要的纠纷。</p>
</blockquote>
<blockquote>
<p>2014-06-23
<strong>承受压力的能力</strong>
今天和客户邮件往来，看到自己的论据被客户一条条反驳，心里像压了一块大石头一样，特别的难受。
打电话给领导，他却很淡定，估计已经见怪不怪了吧。
尽管心里很难受，我还是控制住，心平气和地和客户电话沟通，尽量站在对方的角度看问题，揣摩他的想法，争取达成共识，双赢。
相信沟通能解决一切问题！</p>
</blockquote>
<h3 id="多维度记录">多维度记录</h3>
<p>到 2014 年 8 月，开始在早晨写，从多个维度记录前一天，并计划当天的工作。
<img src="/_image/2017-03-03-11-15-22.jpg" alt=""></p>
<p><img src="/_image/2017-03-03-11-17-29.jpg" alt="">
<em>可以看出这个阶段有几个特点：</em></p>
<ul>
<li>写的比较感性，缺乏深度思考，对行为改进没什么帮助</li>
<li>时间不固定，有时在早上，有时在晚上</li>
<li>断断续续</li>
</ul>
<p><img src="/_image/2017-03-03-11-24-05.jpg" alt=""></p>
<h3 id="目标反思行动">目标，反思，行动</h3>
<p>目前，我的晨间日记目的比较明确，用于对齐目标，记录想法，思考今天最重要的事情是什么。
针对重要的事件，我会单独进行<a href="http://www.jianshu.com/p/3be0964d3f40">推演和复盘</a>。
下面是我最新的模板：
<img src="/_image/2017-03-03-18-51-25.jpg" alt=""></p>
<p>有意思的是，<strong>我会用 Alfred 应用快速插入模板，但会把答案每天重复敲一遍，以达到强化和暗示的作用</strong>。</p>
<p>以上，就是我的晨间日记历程，希望对你有所启发。
最后，推荐一本书：<a href="https://book.douban.com/subject/3744041/">《晨间日记的奇迹》</a></p>]]></description><pubDate>Fri, 03 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[我的父亲]]></title><link>https://life.seabornlee.cn/posts/%E6%88%91%E7%9A%84%E7%88%B6%E4%BA%B2/</link><guid>https://life.seabornlee.cn/posts/%E6%88%91%E7%9A%84%E7%88%B6%E4%BA%B2/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-23-43-50.png" alt="">
<p>上一次记录我的父亲，是在高中的时候，学校布置的一篇作文。</p>
<blockquote>
<p>我的父亲，身高一米八，体重一百八。</p>
</blockquote>
<p>自从有了女儿后，爱人不止一次跟我说，我对待女儿的方式，和对待儿子的方式很不一样。
这就引起了我的反思，我就在想我对儿子的教育方式，与父亲对我的教育有什么联系。
在教练的引导下探索一番后，发现父亲对我的教育非常成功，值得我借鉴和传承。</p>
<p>其实我爸身高没有一米八，可能在每个小男孩眼中，父亲都是全世界最高大的，比奥特曼还要高出一头。
高中那篇作用，记不得太多细节了，只知道我说爸爸是我的反面教材。
凡是他叫我不要做的，基本就是他天天做的。
凡是他叫我要坚持的，基本就是他从来不做的。</p>
<p>他叫我不要喝酒，不要打牌，而他就喜欢喝酒，喝完酒还要打牌。
他叫我不要说脏话，他却是满口脏话。
他叫我起床要叠被子，饭前摆碗筷，饭后抹桌子，洗碗扫地，但这些事几乎没见他做过，都是我妈在做。</p>
<p>现在我渐渐明白了，正是因为他知道打牌和喝酒不好，容易上瘾，还戒不掉，他自己深受其害，所以才不让我沾染。
在我们老家，打牌是家家户户必备的娱乐项目，但我爸就不让我玩，说虽然现在你是娱乐，慢慢你就觉得不刺激了，就要开始小赌怡情，然后小赌也不刺激了，就会越赌越大。
记得初中有一年除夕夜，我们一家三口打扑克，我的压岁钱全输光了，爸爸让我体会到失去的痛苦，告诫我不要赌钱，第二天又重新给我发了压岁钱。</p>
<blockquote>
<p>孩子不会成为你希望的样子，只会成为你的样子。</p>
</blockquote>
<p>青春期的男孩，大人越不让干的事情，就越是想干吧。
初中时候，我也学会了扑克麻将各种玩法。偷偷地跟同学小赌过几次，发现确实很上瘾，而且好似没有天分，总是输钱，不仅没有成就感，还很痛苦，后来就不碰了。</p>
<p>我爸常说我怯懦。初中时候被混混欺负过几次。
可能这让他很丢脸，因为欺负我的那些孩子，他们的爸爸小时候都是被我爸爸欺负的。
可能这就是报应吧。</p>
<p>我爸是江湖上跑的，戾气很重，动不动就要骂人甚至打人。
从我记事起，我爸就在跑船，把我们贵州大山里的煤炭和木材拉到重庆菜园坝码头去。
我爸常说人善被人欺，所以在这种环境下，就塑造出了一副不怒自威的脸孔。
我从小就「秀气」，大部分时间跟外婆，小姨，奶奶，二姨生活在一起，就变得更加人畜无害。
我儿子们也像我，很「秀气」，缺少一点野性，我很希望他们多跟爷爷一起玩，多「沾染」一些阳刚之气。</p>
<p>我记事时，我爷爷是剃头匠，赶集天就在小巷子里帮人剃头。
但听我爸爸说，我爷爷以前是教武术的。
我爸和我幺叔两兄弟小时候都经常举石锁，练就了很好的力量基础。
现在我幺叔家还有一个石锁，现在他们都 50 多了，还举得动那个石锁，而正值壮年的我，根本举不动。
过年时，最有趣的就是听他们喝酒后回忆小时候，怎么路见不平，逞勇斗狠的故事，每次都听得我热血沸腾。
我觉得我温和的表面下，也是有这种男儿热血在，只是现在和平年代，那种热血通过事业心表达出来。</p>
<p>我记忆中小时候是天天挨打，我爸瞪我一眼就能把我吓哭，他总说棍棒底下出孝子。
我曾在想，我打儿子是不是从我爸那里潜移默化学来的。
仔细想想，其实我比他差远了。
我打儿子不会事先警告，会忍耐，直到忍无可忍了，抬手就打。
而我爸打我，是有流程的。
他会让我自己拿来竹条，脱了裤子，往腿上打，很疼，还打不坏，打一次能疼好几天，而且夏天穿短裤，还能被同学老师看到挨打痕迹，造成心理上的二次伤害。
我感谢我爸，那时候他和我妈常年都在外面跑船，没有那么多时间慢慢教我，一遍遍地提醒我，所以在一些重要的规矩上，头脑记不住就用身体来记住。
我现在人品端正，诚实正直，不结交三教九流，与挨的那些打密不可分。</p>
<p>我爸学习能力，动手能力都极强。
以前船上的柴油机，一般的毛病他都自己修。
前两天回家，听妈说他把坏掉的路由器和烘衣机给修好了，这方面真是让我望尘莫及。
用时髦的话说，他还是个生活黑客，总能就地取材解决问题，上周我们带着孩子在公园玩飞机，挂到树上了，又爬不上去，附近也没有杆子，地上全是草，也没有石头可以扔，他就想到把鞋脱下来扔。这方面我感觉自己反而被束缚了思维，没有这种灵活和开放。</p>
<p>我爸他特别能吃苦，船上的螺旋桨缠上了东西，或者撞到石头变形了，那螺旋桨上百斤，大冬天的，他都是自己下水憋气套上绳子，再憋气下去拧螺丝取下来，捶打修复后再装回去。
跑船是看水吃饭，夏季雨水丰盈，是旺季，为了多跑几趟，他天天熬夜，实在困的不行了，他就把风油精抹到眼睛上。</p>
<p>他很有冒险精神。
以前在赤水河拉煤炭，上游河道窄小，滩浅水急，每年都会沉几条船，那时候他都不让我上船。
后来到四川岷江，再到重庆乌江。
河面虽然很宽，但是能走船的河道其实很窄，到处是暗礁和浅滩，暗礁会打坏螺旋桨，让船失去动力，浅滩会让船搁浅，需要等涨水或者叫其他船来拖，费钱又耗时。
一般到了新航路，其他船长都要请个熟悉的师傅带着跑几趟，就像刚拿了驾照找个师傅上路陪练一样，我爸不用，跟着前面的船跑，就能跑下来。
一方面是胆子大，一方面也是因为专业技术过硬。</p>
<p>正是由于他专业技术很强，所以在他手下干活儿也很惨，我上高中的时候，我表哥就在我爸船上当学徒，动不动就被骂啊，所以后来我表哥就成了大厨，现在自己经营饭店。
现在我堂弟在船上，我爸也说，要是在别人船上都可以当船长了，但是在他那里还是天天被骂。
可能这就是我爸的瓶颈，总觉得别人干得没自己好，不放心交给别人干，所以给他干活儿就没有成就感。
好在他对自己也有清晰的认识，也没想要从专家过渡到管理者。</p>
<p>我爸也很喜欢新科技，很早就有 BP 机，大哥大，后来的能用 WAP 浏览器的摩托罗拉。后来给我买的裕兴电脑 VCD，让我很早就打下了计算机基础知识，后来上大学，刚一开学就给我买了电脑，是我们宿舍里的第一台电脑，积累了丰富的杀毒和重装系统的经验。我会走上程序员这条路，也是受了我爸的影响吧。</p>
<p>我爸在教育和生活上对我的金钱支持是足够的，但非生活必须品就会比较严格。
初中在同学家玩了小霸王后，我就让爸给我买一个，他不给，我就说用我的压岁钱买，那是长辈给我的钱，我可以自己支配。但是我爸说，如果他不给其他孩子压岁钱，他们的父母也不会给我压岁钱，所以压岁钱其实还是他的。这个观念让我印象非常深刻，后来我就想要尽早财务独立，自己挣钱想买啥就买啥。</p>
<p>我爸总说我孩子都几岁了，自己还没长大。
在老家，不到二十岁的小伙子都比我老练世故。
我不抽烟，喝酒也不行，不打牌，也不吹牛不说脏话，在老家的社交环境下真的有点社交恐惧。
所以我爸其实是在为我开脱。</p>
<p>说我没长大，但他特别信任我。
高考失利后让我自己决定要跑船还是复读，后来选学校选专业，读到大三离开学校去参加编程培训，后来找工作换工作，从北京到深圳，再到成都，从程序员到培训师，买房，买车，从打工到自由职业，包括养育孩子，所有的决定他从来没有干涉过，只有支持。</p>
<p>我爸还一直鞭策我不要懒惰和懈怠，肩上扛着家庭的责任，不要安于现状，要创业干大事。</p>
<p>可能小时候挨打的多了，现在跟爸爸面对面沟通也觉得有很强的压迫感，所以通过这种方式表达我的心声。
有您这样的爸爸，是我的幸运。
我也会把爸爸教给我的正直，责任，吃苦耐劳，持续学习这些优秀品质，传承给我的孩子们。</p>
<p>当然，人无完人，还是要提醒爸爸，少喝大酒，喝完酒不开车，多运动少打牌，把体重降到正常范围内，。
希望爸爸身体健康，长命百岁，辛苦半生，现在儿孙满堂，后面还有很多福要享呢！
值此新春佳节，祝爸爸新年快乐！</p>]]></description><pubDate>Sun, 30 Jan 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[技术教练团队对于企业的意义]]></title><link>https://life.seabornlee.cn/posts/%E6%8A%80%E6%9C%AF%E6%95%99%E7%BB%83%E5%9B%A2%E9%98%9F%E5%AF%B9%E4%BA%8E%E4%BC%81%E4%B8%9A%E7%9A%84%E6%84%8F%E4%B9%89/</link><guid>https://life.seabornlee.cn/posts/%E6%8A%80%E6%9C%AF%E6%95%99%E7%BB%83%E5%9B%A2%E9%98%9F%E5%AF%B9%E4%BA%8E%E4%BC%81%E4%B8%9A%E7%9A%84%E6%84%8F%E4%B9%89/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-23-49-50.png" alt="">
<p>为什么企业需求技术教练团队？</p>
<h2 id="痛点">痛点</h2>
<p><em>转型迫切</em><br>
数字化转型中，持续交付的能力是核心能力。要实现持续交付，需要 CI/CD 流水线，微服务架构，容器化等新的技能。其次必须把质量工作前移，从检测变成预防，让开发人员对质量负责。传统的开发负责功能开发，测试人员负责质量保障的模式，几个弊端：</p>
<ul>
<li>发现问题相对较晚，修复成本更高，还有开发人员与测试人员之间的沟通成本和开发人员在开发新功能和修复缺陷之间的多任务切换导致的效率损失。</li>
<li>测试周期长，不能频繁执行回归测试，不能随时有信心重构代码，以保持灵活性。</li>
<li>测试团队膨胀，导致沟通管理成本变高。</li>
</ul>
<p>相对而言，CI/CD，微服务，容器化属于基础设施，只需要部分人掌握即可，业务开发工程师只要学会使用，成本不高。但业务开发工程师必须学会编写测试代码和重构代码的技术。由于行业普遍缺乏基本功的现实，需要培养的人数众多，通过引入外部技术教练可以缩短培养周期，更快看到效果，但外部技术教练本身也很稀缺，在数字化转型的大潮中，价格也水涨船高，并且因为市场需求大，导致难以长期高投入度地服务于同一家企业。另外，由于行业特殊性，尤其金融行业的业务复杂度较高，外部教练也需要花时间熟悉业务才能指导业务开发，否则只能隔靴搔痒。</p>
<p><em>招聘市场竞争压力大</em><br>
毕业生招聘市场压力大，优质学生被大厂高年薪争夺。</p>
<p><em>经验流失</em><br>
企业内部的资深工程师，除了架构，技术管理，转业务，多年积累的丰富经验，可能不能得到很好的传承，加上上层的岗位数量有限，导致资深工程师人才流失。</p>
<p>建设内部教练队伍的好处：</p>
<p><em>支持数字化转型</em><br>
用内部教练团队，通过开展培训和辅导，加速企业数字化转型。</p>
<p><em>用培养体系来降低选人门槛</em><br>
技术人才培养一直是 HR 的难题，基于内部教练团队发展出技术人才的胜任力模型，课程体系和导师池，建立师傅带徒弟的培养模式，可以有效降低人才招聘的门槛。</p>
<p><em>雇主品牌</em><br>
有内部教练团队，本身是一种工程师文化的体现，对于雇主品牌形象加分效果明显，更能吸引到优质的技术人才。</p>
<p><em>资深人才的多元化上升通道</em><br>
资深开发人员，对业务和管理都不感兴趣，热爱培养他人，有了施展的舞台，也能够获得价值上的认可。更能留着这些经验丰富的资深人才，并且将他们的经验传承下来。</p>]]></description><pubDate>Mon, 01 Feb 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[推广 TDD 的一点思考]]></title><link>https://life.seabornlee.cn/posts/%E6%8E%A8%E5%B9%BF%20TDD%20%E7%9A%84%E4%B8%80%E7%82%B9%E6%80%9D%E8%80%83/</link><guid>https://life.seabornlee.cn/posts/%E6%8E%A8%E5%B9%BF%20TDD%20%E7%9A%84%E4%B8%80%E7%82%B9%E6%80%9D%E8%80%83/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-23-55-30.png" alt="">
<p>读到同事张逸的一篇博文：<a href="http://agiledon.github.io/blog/2013/12/25/thought-about-applying-tdd/">推行 TDD 的思考</a>，我也有感而发。
我刚加入 ThoughtWorks 时，工作在一个合作开发的 Android 项目上，我们除了要 TDD 外，也要求并指导客户公司的开发人员进行 TDD，项目开发了快半年，测试覆盖率稳定在 90%以上。
业余时间，我主持过 GDCR 和 Coding Dojo 等活动。不管在企业还是社区，我见到很多开发者对 TDD 的理解还停留在字面上。
我认为推行 TDD 主要在两个方面努力，即意识和能力（好像任何事情都是这两方面哈）。</p>
<p>意识方面主要是：</p>
<ol>
<li>认识到自己原有编程方法的不足；</li>
<li>搞清楚 TDD 的价值所在，如何弥补原有方法的不足；</li>
<li>心态开放，勇于尝试新鲜事物，不要浅尝辄止，要持续改进。</li>
</ol>
<p>意识和能力没有先后关系，而是在不断学习和实践过程中同时提高。在这篇文章中，我更想谈的是能力。
我见到初接触 TDD 的人常犯下面的错误：</p>
<ol>
<li>在声明测试方法后，便开始写实现代码；</li>
<li>写完“所有”的测试代码才开始写实现；</li>
<li>一次实现过多的代码（超出当前测试覆盖的业务）；</li>
<li>从不重构；</li>
</ol>
<p>TDD 真是看起来容易，做起来难。</p>
<p><img src="/_image/image_2023-11-05-23-52-01.png" alt="TDD Cycle"></p>
<p>上面这个图一目了然，但其实每一步都是对能力有要求的：</p>
<h4 id="红">红</h4>
<p>测试先行并不是说不需要思考，直接开始写代码。在开始写代码之前要进行需求分析，将需求分解为任务列表，再从列表中挑选一个任务，转换成一组测试用例，然后不断循环去实现。测试代码其实是产品代码的“用户”，在写测试代码时你就要考虑如何“使用”产品代码，是一个实例方法还是一个类方法，是从构造函数传参还是从方法调用传参，方法的命名，返回值等。这时其实我们就是在做设计，而且设计以代码来体现，比在脑袋中空想要更直观。很多人不懂“意图式编程”，总是习惯先实现一个东西，再去调用它。而测试先行就要求先使用，再实现。这样能少走很多弯路，减少返工。</p>
<h4 id="绿">绿</h4>
<p>以最快的速度让测试变绿，意味着我们通常用最直接但可能并不优雅的方式，比如复制代码。然后小步重构，直到符合简单设计的原则：</p>
<ol>
<li>通过所有测试</li>
<li>每个概念都被清楚地表达</li>
<li>没有重复</li>
<li>没有多余的东西</li>
</ol>
<p>难的是要让实现刚好满足当前的测试，不做过度的设计，不写多余的代码。因为如果你写多了，除了引入复杂性以外，多的那部分就没有测试能覆盖到。或者你后面的测试写出来就能直接变绿，你就没办法按 TDD 的节奏进行下去了。</p>
<h4 id="重构">重构</h4>
<p>首先要能识别坏味道，一些低级的 Smell，很容易识别，比如：Magic Number，重复代码，太大的类，太长的方法，命名等。但更高级的如<a href="http://sourcemaking.com/refactoring/feature-envy">Feature Envy</a>，<a href="http://sourcemaking.com/refactoring/lazy-class">Lazy Class</a>等就比较难以识别。</p>
<p>只要识别到 Smell，知道用什么手法去重构，剩下的就比较简单了，现代的 IDE，尤其是<a href="https://www.jetbrains.com/products.html">JetBrains</a>的产品，对重构的支持非常强大，几乎都可以用快捷键完成。选对工具非常重要，善假于物能极大提高开发效率。但也不能过分依赖工具，要明白每一个手法背后的原理。所以推荐每个想要实践 TDD 的开发者，一定要先读《重构》。</p>
<p>最后我想说：
TDD 不是银弹，不可能适合所有的场景，但这不应该成为我们拒绝它的理由。
也不要轻易否定 TDD，如果要否定，起码要在认真实践过之后。</p>]]></description><pubDate>Mon, 30 Dec 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[敏捷团队有专职的QA吗？]]></title><link>https://life.seabornlee.cn/posts/%E6%95%8F%E6%8D%B7%E5%9B%A2%E9%98%9F%E6%9C%89%E4%B8%93%E8%81%8C%E7%9A%84QA%E5%90%97%EF%BC%9F/</link><guid>https://life.seabornlee.cn/posts/%E6%95%8F%E6%8D%B7%E5%9B%A2%E9%98%9F%E6%9C%89%E4%B8%93%E8%81%8C%E7%9A%84QA%E5%90%97%EF%BC%9F/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-23-58-22.png" alt="">
<p>敏捷团队有专职的 QA 吗？测试工作整体是怎么安排的？</p>
<h2 id="答">答</h2>
<p>QA 是 Quality Assurance（质量保证）的缩写，我认为回答这两个问题之前，我们要先搞清楚：</p>
<blockquote>
<p>敏捷团队中，谁对质量负责？质量是如何保证的？</p>
</blockquote>
<p>我的答案是：<strong>所有人对所有事负责，质量内建在交付过程中。</strong></p>
<h3 id="所有人对所有事负责">所有人对所有事负责</h3>
<p>企业导入敏捷，常用的两个框架是 Scrum 和 XP（极限编程），我们来看看它们是如下描述团队结构的。
Scrum 中对团队的描述如下：</p>
<blockquote>
<p>Development Teams are cross-functional, with all the skills as a team necessary to create a product Increment;
Scrum recognizes no titles for Development Team members, regardless of the work being performed by the person;
Individual Development Team members may have specialized skills and areas of focus, but accountability belongs to the Development Team as a whole.</p>
</blockquote>
<p>XP 中的 Whole Team（完整团队）描述如下：</p>
<blockquote>
<p>The best teams have no specialists, only general contributors with special skills.</p>
</blockquote>
<p>意思是说，团队需要具备端到端交付软件的各种技能，比如需求定义，分析，体验设计，编码，测试，运维等。但并不是那么职责分明，而是整个团队拥有集体所有权，责任共担。
为什么要这么做呢？有明确的分工不是效率更高吗？是的，每个人干自己熟悉的事，个人效率是更高，但团队的产出却不是最大的。
为什么要追求产出最大，而不是效率最高呢？因为<strong>敏捷解决的是「不确定性」的问题，而不是「效率问题」。</strong></p>
<p>如果你认同「需求都是待验证的假设」，那么最重要的就是赶紧交付出来，去获取用户的反馈。在有明确分工的团队里，常常会发现一个现象：每个人都在忙，都在做自己擅长的事，但需求却浪费了很多时间在各个环节等待被处理。设计完了等待开发，开发完了等待测试，测试完了等待验收......
这就相当于做了很多不能被交付的半成品，积压在生产线上。如果瓶颈已经在测试环节，很多需求等待被测试，那「开发人员」继续开发更多的功能，对整个团队来说，是在增加瓶颈的压力。如果这时「开发人员」去做测试，就能减轻瓶颈的压力，让更多需求被交付出去。</p>
<p>团队的瓶颈是动态变化的，通过每天的站会，可以让所有人了解团队目前的整体状态，并且主动选择「今天我准备做什么」来给团队贡献最大的价值。如果你划分了每个人的职责，并在迭代一开始就做了具体的任务分工，那往往每个人只会关注自己手里的事情能不能顺利完成，对「别人」的事就缺乏兴趣了。</p>
<p>那团队成员可能会说，别的工作我不会做啊？没关系，我们可以结对啊。通过结对工作，可以快速学会各种技能，开发能做业务分析，也能做测试，测试也能写代码，也能做业务分析，业务分析也能做测试。再结合可视化，站会，Code Review 这些实践，让业务和技术的上下文在整个团队中流动。
<strong>最好的团队是每个人有自己的专长，又愿意开放地学习上下游的其他技能，勇于拓展自己的舒适区。这就是 Scrum 价值观中「开放」，XP 价值观中「勇气」的体现。</strong></p>
<h3 id="质量内建在交付过程中">质量内建在交付过程中</h3>
<p>当测试成为软件交付的瓶颈时，传统的做法是增加测试资源，但这难免有点儿亡羊补牢的意思。我们应该系统性地解决问题，让问题不再出现，而不是在问题出现后再去修复。可能的方案有：</p>
<ul>
<li>增加测试资源：加人或加班</li>
<li>减少测试工作量：提高上游交付的质量</li>
<li>提高测试效率：提升个人能力或使用自动化工具</li>
</ul>
<p>通过前文说的模糊分工，实现了测试资源的动态扩展。通过引入 BDD，TDD，重构，结对编程，Code Review，持续集成等实践，建立单元测试，集成测试，端到端测试的自动化测试体系，提高上游的交付质量。通过培训和引入新工具，提升效率。</p>
<h2 id="回到题主的问题上">回到题主的问题上</h2>
<p>敏捷团队有专职的 QA 吗？测试工作整体是怎么安排的？
答：通常会有一个 QA 专家。TA 会参与计划会议，充分理解需求，编写自动化验收脚本。在 Dev 领取一个需求前，BA，QA 和 Dev 一起对需求和验收条件达成共识。在 Dev 开发完成进入测试阶段前，跟 BA 一起在 Dev 的机器上快速验收，有问题立即处理。在 UAT 环境上做探索测试，性能测试，压力测试等。</p>]]></description><pubDate>Thu, 22 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[敏捷需求和传统需求的区别]]></title><link>https://life.seabornlee.cn/posts/%E6%95%8F%E6%8D%B7%E9%9C%80%E6%B1%82%E5%92%8C%E4%BC%A0%E7%BB%9F%E9%9C%80%E6%B1%82%E7%9A%84%E5%8C%BA%E5%88%AB/</link><guid>https://life.seabornlee.cn/posts/%E6%95%8F%E6%8D%B7%E9%9C%80%E6%B1%82%E5%92%8C%E4%BC%A0%E7%BB%9F%E9%9C%80%E6%B1%82%E7%9A%84%E5%8C%BA%E5%88%AB/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-00-00-27.png" alt="">
<p>来自知识星球《成为百万年薪敏捷教练》的提问：</p>
<p><em>第一：对于产品经理的工作，岂不是还是要针对需求做详细的描述和说明，那不就是将原先需求的名字换了一种写法而已？</em></p>
<p>从组织形式来说，在传统的需求文档中，偏重描述系统应该长成什么样，很少提及我们为什么要做这个特性，用户在什么场景下要用这个特性，用了有什么好处。这样的话，团队就只看到解决方案，直接去实施解决方案，看不到「问题」，就可能造成：无法和业务方及用户共情，难以接受需求变更，无法在早期提出更高性价比的方案。
敏捷需求，最重要的变化是从「用户故事」出发，整个团队所有人都有机会首先站在同一个视角，就是用户视角来思考，从而就能理解为什么要做，为什么要改，为什么要先做这个后做那个。
总结一下就是：传统需求文档更注重描述解决方案，就是功能特性，业务规则等。敏捷需求更注重传递用户痛点，优先级，验收条件，实例。</p>
<p><em>第二：以 Scrum 框架为例，产品经理对用户故事详细描述的这部分工作，应该放在哪个阶段呢？是在计划会之前，产品经理作为 PO 完成这部分工作？还是在 sprint 开始后，产品经理作为团队成员完成这部分工作？</em></p>
<p>在动手写代码之前，要有 AC，最好还有实例（Example）。
但是对于谁来提供，什么时间做，没有标准答案。</p>
<ul>
<li>谁来做？
把用户故事细化出具体的验收条件和实例，是 BA 的工作，如果 PO 有这个能力，PO 就可以自己做 BA，如果 PO 偏对外，没有时间做或能力做，就需要团队中有人来做 BA，是一名专职的 BA，还是由开发或测试工程师来做，都可以，它是一个「角色」而不是一个「岗位」。</li>
<li>什么时候做？
是在 Planning 之前做完，还是在一个专门的会议上做 Backlog Refine，亦或 Planning 之后，按优先级持续细化，就是需要通过迭代回顾不断调整的。</li>
</ul>
<p>比较理想的做法是，PO 持续地对 Backlog 进行细化，在需要时请求资深开发和测试工程师的支持，在 Planning 的时候，故事大小合适，有线框图，有验收条件，这个时候图标，文案可以不确定，因为不影响工作量。Planning 后，PO，BA，UX 继续补充细节，比如高保真原型，文案等。开发人员领取故事后动手写代码前，跟 PO 和测试工程师 Kickoff，明确细节，尽量保证开发过程能顺畅进行。
敏捷需求的核心是小批量，多层次，拉动和共创，不要期望一次性把所有需求沟通完。</p>]]></description><pubDate>Fri, 03 Jan 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[新人如何快速融入团队]]></title><link>https://life.seabornlee.cn/posts/%E6%96%B0%E4%BA%BA%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E8%9E%8D%E5%85%A5%E5%9B%A2%E9%98%9F/</link><guid>https://life.seabornlee.cn/posts/%E6%96%B0%E4%BA%BA%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E8%9E%8D%E5%85%A5%E5%9B%A2%E9%98%9F/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-10-37-39.png" alt="">
<p>最近，有一位前不久参加过入职培训的同事跟我说：</p>
<blockquote>
<p>在项目组里待了两个多月了，感觉自己还是被当成新人。
怎么才能让自己更快的融入，不被当做新人？</p>
</blockquote>
<p>同事的这个问题让我想起我的新人经历：</p>
<blockquote>
<p>2013 年，加入目前的公司后，在北京办公室（其实我们习惯说 office，外企你懂的）呆了一周。
我就被派往深圳的客户现场，当时项目经理跟我说：「我不管你以前写没写过 Android 应用，我希望你在半个月之后，比 XX 更熟悉这个项目。」</p>
</blockquote>
<p>当然，我们现在有更完善的培养机制了，也是我目前的主要工作。</p>
<p>如果换做你是我，你会如何做呢？又会如何回答这位同事的问题呢？
首先，要区分出这句话里的 Fact（事实），Feel（感受） 和 Focus（意图）。
<strong>Fact</strong>
在项目组里待了两个多月。</p>
<p><strong>Feel</strong>
自己被当做新人。</p>
<p><strong>Focus</strong>
需要做什么？才能不被当做新人。</p>
<p>在给建议之前，我需要对方澄清几个问题：</p>
<ul>
<li>你是怎么定义新人的，是时间吗？还是技能？或其他？</li>
<li>如果和时间有关，那么你觉得多久之后就不算新人？</li>
<li>因为什么事情，让你觉得其他人把你当新人，能举个具体的例子吗？</li>
</ul>
<p>那么，我是如何回应这位同事的呢？先卖个关子。</p>
<hr>
<p>关于**「新人」要怎么才能快速融入组织**，这是一个大家都会关心的话题。
今天来分享一下从周老师那里学到的（对，又是周老师，跟周老师学了好多东西），个体融入组织的几个阶段：<strong>了解，适应，融入，突出</strong>。</p>
<p><strong>了解</strong>
了解组织在行业中的位置，部门在组织中的位置，团队在部门中的位置，个人在团队中的位置。
了解组织中的语言，有哪些黑话，组织里的沟通方式，以及如何协作。</p>
<p><strong>适应</strong>
调适自己，上周有位同事分享，说来公司后，人生第一次买了不是运动裤的长裤，同一款休闲皮鞋买了好几双。这就是非常主动地调整自己，以适应新环境的行为。
这个阶段新人要刻意多去使用组织的语言，用组织内习惯的方式沟通协作。</p>
<p>经常听到有人离开一家公司时会说：「我不适应那里的文化」，就是在这个阶段。</p>
<p><strong>融入</strong>
适应以后，新人会得到组织原有成员的认同。也开始张口闭口不经意间吐出外人完全听不懂的黑话。和组织里的其他个体互相吸引，一起鄙视组织外的人。
此时，组织的文化和价值观已经融入到你的血液中，为了保全组织文化，会不自觉地排斥「新人」，认为他们稀释了组织的文化。</p>
<p><strong>突出</strong>
融入组织后，只有很少一部分人会表现突出，成为大家谈论的对象，目光的焦点。
如果你想成为这样的人，需要胆子大，毛遂自荐然后出类拔萃。
你需要走出舒适区，迎接更大的挑战，承担更大的责任。</p>
<p>以上几步就是个体进入组织会经历的几个阶段，它的适用范围非常广。
比如：</p>
<blockquote>
<p>中午你叫了个外卖，拿到茶水间吃，看到几位同事在聊天，你想加入进去。
你要先<strong>了解</strong>，听他们在聊什么话题，观察大家聊天的状态，是聊得很开心还是郁闷。
然后要<strong>适应</strong>，调整自己的语音语调，语速和节奏，跟他们说同样的语言，比如是和 90 后的年轻人聊天，你想表达外卖的分量太少，你就可以说「我可能点了一份假的卤肉饭」，「宝宝心里好苦」之类的。
得到大家的接纳后，大家才会愿意听你说，你<strong>融入</strong>了这个小团队。
然后你再择机抛出自己独特的见解，<strong>突出</strong>自己，为谈话贡献内容，获得更大的认可。</p>
</blockquote>
<p>再回到我自己，我是如何度过新人阶段的呢？</p>
<blockquote>
<p>我不管你以前写没写过 Android 应用，我希望你在半个月之后，比 XX 更熟悉这个项目。</p>
</blockquote>
<p>作为第一次面试被拒，一年半后第二次面试才勉强通过的新员工，听到项目经理这话时的压力你能想象吗？
于是我每天下班后回到酒店，一头扎进代码的海洋，理解业务和技术。
那时我们每天下午 6 点，会做集体 Code Review（注：代码评审，就是程序员们互相吐槽，制造同辈压力，以提高代码质量），把当天所有的代码过一遍。
刚开始我被各种吐槽，少个空格啊，多个空行啊，多余的注释啊，遗漏的测试用例啊，太复杂的代码逻辑啊，命名不规范啊，各种问题，每张便利贴记录一个问题，贴满了我的显示器。
被吐槽得多了，我就更加担心了，没想到「狗改不了吃屎」，哦，不对，是「兔子急了还咬人」，我还真想出了一些招儿：</p>
<ul>
<li>我搜索了代码历史，把前面几个月其他人做评审被吐槽后修改的代码，看了一遍，整理出来大家经常关注的点，每次提交代码前逐项检查，于是我就很少被吐槽了。</li>
<li>我提取项目里使用的业务和技术术语，在和他人交流，以及编写代码时，使用统一的词汇。</li>
<li>每次开站立会议前（注：站立会议就是房产中介每天早上在门口围成一圈儿开的那种会，只不过我们不跳舞，好遗憾~），提前想好自己要说什么，甚至写下来。</li>
<li>我注意到客户方开发人员英文水平不高，我就抓住这一点，每次代码评审就纠正其他人的单词拼写，纠正不准确的用词。慢慢地大家就把我当字典，以我为准了。
半个月后，我不知道是否比 XX 更熟悉项目，但毋庸置疑的是，我得到了团队的认可，在客户现场生存了下来。
不久后，之前的同事出差满半年回了北京，我接任了项目管理工作。</li>
</ul>
<p>好，牛吹完了，回到文章开头的问题上。
<strong>每个人性格，经历不一样，融入一个组织的时间肯定不一样，甚至能不能融入也不一定。但有一点，并不是熬的时间长了，就自然而然从新人变成了老人，而是需要我们去做一些努力的。</strong>
这位同事主动提出需要做些什么才能不被当做新人，说明他是从自身寻求改变的，我不了解具体情况，于是建议他先找他的 Buddy 沟通，必要的话收集一下其他人的反馈（注：Buddy 是帮助新员工融入公司，并顺利度过试用期的老员工）。</p>
<p>最后，你可能看我的中英夹杂很不爽。跟你一样，我曾经也很讨厌这种不洋不土的说话方式，没想到：</p>
<blockquote>
<p>我们终将变成我们最讨厌的那种人...</p>
</blockquote>
<p>所以我决定，从现在起，我开始仇富了！</p>]]></description><pubDate>Sat, 04 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[是时候停止找捷径了，开始练习吧]]></title><link>https://life.seabornlee.cn/posts/%E6%98%AF%E6%97%B6%E5%80%99%E5%81%9C%E6%AD%A2%E6%89%BE%E6%8D%B7%E5%BE%84%E4%BA%86%EF%BC%8C%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0%E5%90%A7/</link><guid>https://life.seabornlee.cn/posts/%E6%98%AF%E6%97%B6%E5%80%99%E5%81%9C%E6%AD%A2%E6%89%BE%E6%8D%B7%E5%BE%84%E4%BA%86%EF%BC%8C%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0%E5%90%A7/</guid><description><![CDATA[<img src="/_image/2017-02-27-21-45-51.jpg" alt="">
<p>我兴趣非常广泛，什么都想学。
在学习上也没少花钱：</p>
<ul>
<li>花几百块参加过段子训练营；</li>
<li>花几千块参加过视觉引导工作坊；</li>
<li>花几万块参加过华尔街英语；</li>
</ul>
<p>这不，昨天又报了一个三万多的 TTT 课程。</p>
<p>原来总期望找到捷径，期望快速掌握某项技能。
开始做培训后，越发觉得，学习其实很简单，只要你相信一点：</p>
<blockquote>
<p>没有捷径，必须进行练习。</p>
</blockquote>
<p>现在是信息过载的时代，我们每天读朋友圈里的文章，听一段罗辑思维的语音，看一本书。
我们沉迷于获得知识的满足感无法自拔，但对于技能学习而言，知识的作用是有限的。
<strong>它仅仅能帮助我们设计练习，以及在练习中进行自我纠正。</strong></p>
<p>刻意练习是一种方法，它也需要练习。最近我才真正开始练习「刻意练习」。
对，我并不是在练习具体的技能，而是练习如何练习，培养练习的习惯。
到目前为止，我练习了手绘 20 天，幽默 15 天，写作 12 天。
请看成果：
<img src="/_image/2017-02-27-21-22-03.jpg" alt=""></p>
<p><img src="/_image/2017-02-27-21-25-52.jpg" alt=""></p>
<p><img src="/_image/2017-02-27-21-28-51.jpg" alt=""></p>
<p>其实上面这些并不能叫练习的成果，真正的成果，是你正在读的这篇文章。</p>
<h2 id="怎么练习">怎么练习</h2>
<p>《刻意练习》这本书告诉我们，有效的练习必须符合几个原则：</p>
<ul>
<li>目标清晰</li>
<li>专注</li>
<li>重复</li>
<li>反馈</li>
</ul>
<p>拿手绘练习来说，我每天画 1 到 2 页，重复地画一个图形，练习时一心一意，练完拍照发到群里接受点评。
拿幽默练习来说，每天从六个方面观察和思考，积累一个素材，发到群里，导师 Kevin 会给每一个人点评。
对于写作，我每天写一篇千字左右的文章。</p>
<h2 id="真正的收获">真正的收获</h2>
<h3 id="画画">画画</h3>
<p>刚开始，我觉得应该一笔画完，重复画同一个图形，练成肌肉记忆，这样以后才可以无需思考，很快画出来。</p>
<p><img src="/_image/2017-02-27-21-36-57.jpg" alt=""></p>
<p>有一天，我突然发现握笔的手很紧张，下笔也很用力，我开始刻意观察自己，让自己放松、平静。
画了几天，会画的图标和形状越来越多了，我就在思考，才练了几天，我就能画不少东西了，为什么有些人从小就学习美术，每天画几个小时，而且还去读美院呢。
慢慢地我发现，虽然这些图形很简单，都是基本图形，但却很难把它画得好看。
画圆不圆，画方不方，画线不直。
我才知道，他们每天练习的是扎实的基本功，是对画笔的掌控能力，练到把笔变成手的延伸，可以随心所欲地使用的能力。</p>
<blockquote>
<p>业余选手练习到做对为止，而专业选手练习到不会做错为止。</p>
</blockquote>
<p><img src="/_image/2017-02-27-22-08-32.jpg" alt=""></p>
<h3 id="幽默">幽默</h3>
<p>上周刚结束一场培训，大家说我的特点是一本正经地讲段子。</p>
<p><img src="/_image/2017-02-27-21-45-51.jpg" alt=""></p>
<p>我就在思考，这和这段时间的练习有没有关系呢？
我发现我讲的段子并不是我平时积累的那些素材，很多是即兴创作的。
因为我自己都没有预先设计，所以才会那么一本正经并出人意料。
我领悟到：</p>
<blockquote>
<p>每天的素材积累，其实重点不是积累了多少素材，而是练习<strong>认真观察的态度</strong>和<strong>幽默的思维方式</strong>。</p>
</blockquote>
<p>有了这两个东西，看到什么东西都可以变成素材，段子信手拈来。</p>
<h2 id="写作">写作</h2>
<p>还有写作，写到第 12 天了，也有了一些心得，稍后单独写一篇文章来分享。</p>
<p>总而言之，才短短不到一个月的练习，就有不少的领悟。
这些都在书上看到过，但真正自己领悟后感觉完全不一样：</p>
<ul>
<li>想要掌握技能，练习是不可避免的</li>
<li>练习要目的明确，专注，重复，有反馈</li>
<li>比起过程，练习的产出物不重要</li>
<li>练习时应该关注自己是否平静，身体是否放松，精神是否专注</li>
<li>每天坚持，相信日拱一卒的力量</li>
</ul>
<p>最后，推荐两本书：</p>
<ul>
<li><a href="https://book.douban.com/subject/26895993/">《刻意练习》</a></li>
<li><a href="https://book.douban.com/subject/26911425/">《练习的心态》</a></li>
</ul>
<p>如果你真的想要掌握一项技能，停止读更多的文章，看更多的视频，参加更多的培训班，开始练习吧！</p>]]></description><pubDate>Mon, 27 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[来自敏捷教练的几个问题]]></title><link>https://life.seabornlee.cn/posts/%E6%9D%A5%E8%87%AA%E6%95%8F%E6%8D%B7%E6%95%99%E7%BB%83%E7%9A%84%E5%87%A0%E4%B8%AA%E9%97%AE%E9%A2%98/</link><guid>https://life.seabornlee.cn/posts/%E6%9D%A5%E8%87%AA%E6%95%8F%E6%8D%B7%E6%95%99%E7%BB%83%E7%9A%84%E5%87%A0%E4%B8%AA%E9%97%AE%E9%A2%98/</guid><description><![CDATA[<img src="/_image/image_2023-11-04-21-30-04.png" alt="">
<h2 id="1-其他公司的敏捷是怎么做的做的好的是什么样子呢好的点和不好的点可以举例说明一下吗">1 其他公司的敏捷是怎么做的，做的好的是什么样子呢？好的点和不好的点可以举例说明一下吗？</h2>
<p>管理实践和工程实践，管理实践大部分是导入 Scrum，少部分导入看板方法。
工程实践包括 CI（持续集成），单元测试，SonarQube 代码扫描，自动化测试，自动化部署等。</p>
<p>大部分企业的敏捷是流于形式的。体现在流程僵化，工程实践缺失。</p>
<ul>
<li>站会开成了汇报会；</li>
<li>团队看板更新不及时，不能反映真实状态；</li>
<li>需求拆分粒度太大，几天都看不到进展；</li>
<li>代码扫描问题没有及时修改，技术债累积；</li>
<li>后补单元测试，为了覆盖率而编写测试；</li>
<li>...</li>
</ul>
<p>做得好的团队呢，会体会到敏捷的好处：</p>
<ul>
<li>状态透明了，协作加强了</li>
<li>客户能更快看到成果，提供反馈</li>
<li>质量和效率都有提升</li>
<li>团队觉得工作有趣味，有价值和意义</li>
<li>...</li>
</ul>
<h2 id="2-敏捷教练的价值是什么">2 敏捷教练的价值是什么？</h2>
<p>敏捷教练是团队敏捷转型中的伙伴，给团队提供敏捷经验，解答团队敏捷实施中的疑惑，减少转型阵痛，加速转型过程。
你列举的应该是 Scrum Master 的工作，理想状态下，Scrum Master 是一位团队教练，能辅导 PO 拆解，排序需求，辅导团队发现和排除障碍，引导团队持续改进。
但实现中，Scrum Master 往往不具备足够的技能，所以需要「敏捷教练」去辅导 PO，辅导团队，并教会 Scrum Master 如何辅导 PO 和团队。</p>
<h2 id="3-持续改进和度量部分可以讲讲吗敏捷度量的体系有哪些">3 持续改进和度量部分可以讲讲吗？敏捷度量的体系有哪些？</h2>
<p>从「人事果」三方面来度量。
人：</p>
<ul>
<li>团队成员的开心指数，成就指数</li>
<li>团队内部协作顺畅度</li>
<li>客户满意度</li>
<li>领导满意度</li>
<li>...</li>
</ul>
<p>事：</p>
<ul>
<li>缺陷率</li>
<li>一次通过率</li>
<li>发布频率</li>
<li>发布成功率</li>
<li>交付周期</li>
<li>发布时长</li>
<li>构建时长</li>
<li>重复率</li>
<li>代码圈复杂度</li>
<li>测试覆盖率</li>
<li>问题修复周期</li>
<li>...</li>
</ul>
<p>果：</p>
<ul>
<li>营收，利润</li>
<li>新增用户数，活跃用户数</li>
<li>复购率，单用户价值</li>
<li>...</li>
</ul>
<p>持续改进，就是不断发现和消除瓶颈，发现和消除的过程。
《精益软件开发》定义了软件开发的常见浪费，比如半成品，残次品，开发完了不能上线的需求等。
最常见的浪费是「等待」，需求分析完了等待开发，开发完了等待测试，测试完了等待部署。
这块的方法论 TOC（约束理论），推荐看一本小说《目标》。</p>
<h2 id="4-一般标准的敏捷团队是什么样的组织架构">4 一般标准的敏捷团队是什么样的组织架构？</h2>
<p>要放弃「标准」思维，一旦标准了，就不敏捷了。
敏捷团队需求编写的「标准」方式是什么？我用一个例子来说明。
一个新团队，大家第一次合作，这时要做一个列表，那需求就要讲得很细：</p>
<ul>
<li>带不带翻页</li>
<li>一页几条数据</li>
<li>没有数据如何展示</li>
<li>要不要 Loading 浮层</li>
<li>日期字段用什么格式展示</li>
<li>空值如何展示</li>
<li>...</li>
</ul>
<p>同样是这个团队，一起工作半年后，PO 只需要说要一个列表，开发人员就知道 PO 要什么。
敏捷就是要持续改进，持续成长。根据当下的情况，不断引入新工具和方法，不断调整协作模式。</p>
<p>敏捷团队组建的基本的原则是「特性团队」，能够在团队内完成端到端交付。按 Scrum 的定义，一个 PO，一个 SM，UI/UX，QA，数名 Developer，书上定义是 7±2 人，也叫 Two Pizza Team。</p>
<h2 id="5-如果对方问到作为敏捷教练能给他们公司带来什么这种问题什么维度回答合适呢">5 如果对方问到作为敏捷教练能给他们公司带来什么，这种问题什么维度回答合适呢？</h2>
<p>问这个问题，说明他们还没有想清楚：他们要什么，他们缺什么。
公司引入敏捷，有不同的诉求：</p>
<ul>
<li>缩短 Time-to-market</li>
<li>提升用户响应力</li>
<li>降低成本</li>
<li>提升质量</li>
<li>激发员工活力</li>
<li>...</li>
</ul>
<p>问对方想要什么。</p>
<p>然后，问他们缺什么？
需求管理能力不足？
团队协作不畅？
产品质量差？
研发过程不可信？</p>
<p>根据自己的专长和经验，告诉对方你在哪些方面可以提供价值。</p>]]></description><pubDate>Sat, 10 Oct 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[桌球与敏捷]]></title><link>https://life.seabornlee.cn/posts/%E6%A1%8C%E7%90%83%E4%B8%8E%E6%95%8F%E6%8D%B7/</link><guid>https://life.seabornlee.cn/posts/%E6%A1%8C%E7%90%83%E4%B8%8E%E6%95%8F%E6%8D%B7/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-10-55-10.png" alt="">
<p>周末和同事去打桌球，突然觉得很熟悉的感觉。
仔细思考，发现它和我们每天做的软件开发是如此相似。</p>
<p>每一局是一个项目。
每一颗球是一个 Feature，将所有自己的球击打落袋是项目的目标。
你需要在开球后对整个局势进行考量，制定自己的清台计划，这就是 Planning。</p>
<h3 id="story">Story</h3>
<p>初学者通常错误地把进球当成是 Story。
其实当你思考的抽象一点，把球的移动作为 Story 来看时， 落袋只是其中的一种特殊情况。有的球太难打要考虑分几次去打，就像是将 Feature 拆成 Story。</p>
<h3 id="planning">Planning</h3>
<p>要考虑每个球的价值和风险，价值是击落它能否让击落下一个球变得更容易；风险是你有多大把握能击落它。比如离袋口近的球价值高风险小，因为你很容易让它落袋，而且比较容易给下一颗球走位；而贴库或者扎堆的球，就比较难落袋，属高风险。在 Planning 的时候，你要规划自己大致的击打顺序和进球路线。</p>
<p>如果不懂计划，那通常是打进一个算一个。你通常会输得不明所以，一开始感觉自己占优势，因为你剩 2 个球的时候可能对手还剩 7 个球，但往往在你感觉胜利触手可及时，被对手一杆或两杆清台。
所以要做计划，但又不能做太详细的计划，因为你毕竟不是机器人，不能将角度，力度控制得那么完美。
你和对手的每一次击球，都会改变球的局势。每一轮击球（Sprint）结束后，根据新的局势调整后面的计划。</p>
<h3 id="sprint">Sprint</h3>
<p>每一轮击球机会是一个 Sprint。你要计划在这一轮达到什么样的目标：进球、解球或者给对手制造障碍都可以是目标。可能需要从不同的 Feature 中挑选一些 Story 来组成这个 Sprint。</p>
<h4 id="daily-scrum">Daily Scrum</h4>
<p>在一轮击球中，如果你将球击落，你可以连续击球。这一杆一杆就像是 Daily Scrum，每一杆都要告诉对手你要将哪个球击落到哪个袋里，也要思考有什么阻碍，能否通过跳球、传球、弧线球、勾球等技术来绕过它。</p>
<h3 id="重构">重构</h3>
<p>很多人在完全没有希望进球的时候，便乱打一杆。殊不知这是极大的浪费，相当于这个 Sprint 什么都没有做。其实你可以去给对手制造障碍，破坏对手的好球。或者把自己不好进的球移动到好的位置，就好比软件开发中的重构。</p>
<h3 id="度量进度">度量进度</h3>
<p>最后说说度量，新手最常用剩余的球（Feature）数来衡量进度，这在双方都是新手时是没有问题的。
如果双方都是高手，就会更加重视每个球的价值。比如你只有一个球，贴在库边，而对手有 5 个球，全在袋口，你觉得谁更容易获胜呢？</p>
<p>如果你同样爱好软件开发与桌球，欢迎切磋。希望我们都能写得一手好代码，打得一手好球！</p>]]></description><pubDate>Tue, 01 May 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[沟通能力对程序员有多重要？]]></title><link>https://life.seabornlee.cn/posts/%E6%B2%9F%E9%80%9A%E8%83%BD%E5%8A%9B%E5%AF%B9%E7%A8%8B%E5%BA%8F%E5%91%98%E6%9C%89%E5%A4%9A%E9%87%8D%E8%A6%81%EF%BC%9F/</link><guid>https://life.seabornlee.cn/posts/%E6%B2%9F%E9%80%9A%E8%83%BD%E5%8A%9B%E5%AF%B9%E7%A8%8B%E5%BA%8F%E5%91%98%E6%9C%89%E5%A4%9A%E9%87%8D%E8%A6%81%EF%BC%9F/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-11-05-11.png" alt="">
<p>在上周的一场活动上，我作为演讲嘉宾，接受了一位听众的提问：对程序员来说，沟通表达能力有多重要？
相信很多人对这个话题感兴趣，在此整理成文分享一下。</p>
<p>我认为不能一概而论。首先，在一个团队中，通常有三类程序员：</p>
<ul>
<li>一类是「技术专家」，通过编写底层基础设施提升应用开发效率，攻克技术难题；</li>
<li>一类是「应用程序员」（Application Developer），主要工作是理解业务需求并实现出来；</li>
<li>第三类是「技术领导」，他们不仅是个人贡献者，更要通过领导和培养他人提升整个团队的效率。</li>
</ul>
<p>对三类人来说，对沟通表达能力的要求依次递增。技术专家在业务与技术间更偏向技术，主要的沟通对象是其他开发人员，对沟通表达能力要求一般。应用程序员开发业务功能，主要沟通对象包括产品经理，业务分析师，QA，甚至用户，对沟通表达能力要求中等。技术领导要通过演讲、培训、教练等技术做技术布道，团队管理，推行新的流程和实践，提升团队成员的能力，沟通表达能力应达到专家级别。</p>
<h2 id="影响力是任何人价值倍增的基础">「影响力」是任何人价值倍增的基础</h2>
<p>如果把一个人比作一家公司，把工作成果比作「产品」，那么如何能获得更大的利润呢？
答案是：要么<strong>卖的更多</strong>，要么<strong>卖的更贵</strong>。
对于技术专家来说，如果仅仅服务于团队内的几个应用程序员，价值非常有限，如果将其编写的底层组件开源，在公司内，行业内进行推广，用的人越多，就提升了越多人的效率，创造了更大的价值，从而获取更大的回报。
对于应用程序员来说，你开发的功能用户数越大，用户使用的频次越高，为用户节省了更多时间或者带来更多愉悦感，就创造了更大的价值。
对于技术领导，你影响的人越多，对人影响的越深，就创造了更大的价值。
写作、交谈、演讲都是有效提升影响力的手段，而它们的基础就是沟通表达能力。</p>
<h2 id="别被蒙蔽了双眼">别被蒙蔽了双眼</h2>
<p>有的程序员会举出一些特例来说明「就算不会沟通表达，也能成为技术大牛」，比如 Linux 和 Git 的创始人 - Linus。</p>
<p><img src="/_image/2018-03-19-10-06-05.jpg" alt=""></p>
<p>这其实是一种偏见，能出现在公众视野里的技术牛人，他们的技术很牛毋庸置疑，但他们一定在其他方面也很牛，就拿 Linus 来说，能吸引如此多程序员为他的项目贡献代码，说明他在影响他人方面的能力也是很强的。能让 Linux 成为企业服务器的首选，说明他在产品设计和营销方面的能力也是不可忽视的。
世界上可能真的存在一些「纯」技术牛人，可是这样的人压根儿就不会进入公众视野。我们耳熟能详的这些技术牛人，其实他们在产品设计、营销、管理方面的能力也很强。之所以没有被正确认识，有两方面的原因：一方面因为他们的技术太强，相对而言其他方面就显得弱了一点；另一方面是媒体报道时，放大一个人的特点，才更有吸引力。</p>
<h2 id="问题背后真正的问题">问题背后真正的问题</h2>
<p>条条大路通罗马，不管是「技术专家」，是「应用程序员」，还是「技术领导」，都有人做的风生水起，有人做的很悲催。任何一条路都能通往成功的彼岸，也都需要穿过荆棘丛林。看看行业里，公司里，团队里需要什么人才，结合自己的优势，就能找到自己的方向。
其实大部分程序员真正关心的是：<strong>我要不要「现在」花时间去提升沟通表达能力？</strong>
毕竟一个人的时间是有限的，在某个时间点，到底是专注技术还是提升其他方面的能力，<strong>取决于在你当前的工作角色中，你的「瓶颈」是什么</strong>。
以我个人的经历为例：</p>
<blockquote>
<p>前三年做应用开发，主要就负责开发业务需求，什么技术栈都要用，掌握了基本的前后端开发技术，以及和产品经理沟通的技能。然后在「神州数码」开始带团队，不仅自己能完成开发，还要让团队在一起能高效地开发，于是学习了「敏捷开发方法」和「工程实践」方面的能力，当我给用户演示系统的时候，发现自己不会演讲，于是成立「4US 学习小组」开始练习演讲。加入「ThoughtWorks」成为咨询师后，在「如何让团队交付更好的软件」上深挖，成为了 Scrum，TDD，重构，持续集成，结对编程方面的「专家」。创业做互联网产品 「ShenzhenWare.com」，学到了技术之外的市场、用户、设计、运营等知识。加入「思沃学院」后，继续发展演讲、写作、培训、教练等技能。</p>
</blockquote>
<p>现在我在技术、产品、管理、发展他人方面都有了积累，<strong>我可以选择 60 岁的时候还写代码，但我不止这一个选择</strong>，我还可以做技术管理，做技术咨询培训，培训技术管理者，管理产品团队等。</p>
<p>最近几年看到一些中年程序员被奉献了青春热血的公司逐出门外，重新回到市场上面对激烈的竞争，有的人不堪重负选择结束自己的生命。我感到非常惋惜，更加坚定地鼓励身边的程序员朋友，要在技术之外发展更多的技能，这样才有更多的选择。</p>]]></description><pubDate>Mon, 19 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[深度解读 TDD（测试驱动开发）]]></title><link>https://life.seabornlee.cn/posts/%E6%B7%B1%E5%BA%A6%E8%A7%A3%E8%AF%BB%20TDD%EF%BC%88%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91%EF%BC%89/</link><guid>https://life.seabornlee.cn/posts/%E6%B7%B1%E5%BA%A6%E8%A7%A3%E8%AF%BB%20TDD%EF%BC%88%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91%EF%BC%89/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-17-53-59.png" alt="">
<p>本文结构：</p>
<ul>
<li>什么是 TDD</li>
<li>为什么要 TDD</li>
<li>怎么 TDD</li>
<li>FAQ</li>
<li>学习路径</li>
<li>延伸阅读</li>
</ul>
<h2 id="什么是-tdd">什么是 TDD</h2>
<p>TDD 有广义和狭义之分，常说的是狭义的 TDD，也就是 UTDD（Unit Test Driven Development）。广义的 TDD 是 ATDD（Acceptance Test Driven Development），包括 BDD（Behavior Driven Test Development）和 Consumer-Driven Contracts Development 等。
本文所说的 TDD 指狭义上的 TDD，也就是「单元测试驱动开发」。</p>
<blockquote>
<p>TDD 是敏捷开发中的一项核心实践和技术，也是一种设计方法论。TDD 的原理是在开发功能代码之前，先编写单元测试用例代码，测试代码确定需要编写什么产品代码。TDD 是 XP（Extreme Programming）的核心实践。它的主要推动者是 Kent Beck。</p>
</blockquote>
<p>TDD 有三层含义：</p>
<ul>
<li>Test-Driven Development，测试驱动开发。</li>
<li>Task-Driven Development，任务驱动开发，要对问题进行分析并进行任务分解。</li>
<li>Test-Driven Design，测试保护下的设计改善。TDD 并不能直接提高设计能力，它只是给你更多机会和保障去改善设计。</li>
</ul>
<h2 id="为什么要-tdd">为什么要 TDD</h2>
<h3 id="传统编码方式-vs-tdd-编码方式">传统编码方式 VS TDD 编码方式</h3>
<p><strong>传统编码方式</strong></p>
<ul>
<li>需求分析，想不清楚细节，管他呢，先开始写</li>
<li>发现需求细节不明确，去跟业务人员确认</li>
<li>确认好几次终于写完所有逻辑</li>
<li>运行起来测试一下，靠，果然不工作，调试</li>
<li>调试好久终于工作了</li>
<li>转测试，QA 测出 bug，debug， 打补丁</li>
<li>终于，代码可以工作了</li>
<li>一看代码烂的像坨屎，不敢动，动了还得手工测试，还得让 QA 测试，还得加班...</li>
</ul>
<p><strong>TDD 编码方式</strong></p>
<ul>
<li>先分解任务，分离关注点（后面有演示）</li>
<li>列 Example，用实例化需求，澄清需求细节</li>
<li>写测试，只关注需求，程序的输入输出，不关心中间过程</li>
<li>写实现，不考虑别的需求，用最简单的方式满足当前这个小需求即可</li>
<li>重构，用手法消除代码里的坏味道</li>
<li>写完，手动测试一下，基本没什么问题，有问题补个用例，修复</li>
<li>转测试，小问题，补用例，修复</li>
<li>代码整洁且用例齐全，信心满满地提交</li>
</ul>
<h3 id="tdd-的好处">TDD 的好处</h3>
<p><strong>降低开发者负担</strong><br>
通过明确的流程，让我们一次只关注一个点，思维负担更小。</p>
<p><strong>保护网</strong><br>
TDD 的好处是覆盖完全的单元测试，对产品代码提供了一个保护网，让我们可以轻松地<strong>迎接需求变化</strong>或<strong>改善代码的设计</strong>。
所以如果你的项目需求稳定，一次性做完，后续没有任何改动的话，能享受到 TDD 的好处就比较少了。</p>
<p><strong>提前澄清需求</strong><br>
先写测试可以帮助我们去思考需求，并提前澄清需求细节，而不是代码写到一半才发现不明确的需求。</p>
<p><strong>快速反馈</strong><br>
有很多人说 TDD 时，我的代码量增加了，所以开发效率降低了。但是，如果没有单元测试，你就要手工测试，你要花很多时间去准备数据，启动应用，跳转界面等，反馈是很慢的。准确说，快速反馈是单元测试的好处。</p>
<h2 id="怎么-tdd">怎么 TDD</h2>
<p><img src="/_image/image_2023-11-06-17-53-59.png" alt=""></p>
<p>TDD 的基本流程是：红，绿，重构。
更详细的流程是：</p>
<ul>
<li>写一个测试用例</li>
<li>运行测试</li>
<li>写刚好能让测试通过的实现</li>
<li>运行测试</li>
<li>识别坏味道，用手法修改代码</li>
<li>运行测试</li>
</ul>
<p>你可能会问，我写一个测试用例，它明显会失败，还要运行一下吗？
是的。你可能以为测试只有成功和失败两种情况，然而，失败有无数多种，运行测试才能保证当前的失败是你期望的失败。
一切都是为了让程序符合预期，这样当出现错误的时候，就能很快定位到错误（它一定是刚刚修改的代码引起的，因为一分钟前代码还是符合我的预期的）。
通过这种方式，节省了大量的调试代码的时间。</p>
<h3 id="tdd-的三条规则">TDD 的三条规则</h3>
<ol>
<li>除非是为了使一个失败的 unit test 通过，否则不允许编写任何产品代码</li>
<li>在一个单元测试中，只允许编写刚好能够导致失败的内容（编译错误也算失败）</li>
<li>只允许编写刚好能够使一个失败的 unit test 通过的产品代码</li>
</ol>
<p><strong>如果违反了会怎么样呢？</strong>
违反第一条，先编写了产品代码，那这段代码是为了实现什么需求呢？怎么确保它真的实现了呢？
违反第二条，写了多个失败的测试，如果测试长时间不能通过，会增加开发者的压力，另外，测试可能会被重构，这时会增加测试的修改成本。
违反第三条，产品代码实现了超出当前测试的功能，那么这部分代码就没有测试的保护，不知道是否正确，需要手工测试。可能这是不存在的需求，那就凭空增加了代码的复杂性。如果是存在的需求，那后面的测试写出来就会直接通过，破坏了 TDD 的节奏感。</p>
<p>我认为它的本质是：
<strong>分离关注点，一次只戴一顶帽子</strong>
在我们编程的过程中，有几个关注点：需求，实现，设计。
TDD 给了我们明确的三个步骤，每个步骤关注一个方面。
红：写一个失败的测试，它是对一个小需求的描述，只需要关心输入输出，这个时候根本不用关心如何实现。
绿：专注在用最快的方式实现当前这个小需求，不用关心其他需求，也不要管代码的质量多么惨不忍睹。
重构：既不用思考需求，也没有实现的压力，只需要找出代码中的坏味道，并用一个手法消除它，让代码变成整洁的代码。</p>
<p><strong>注意力控制</strong>
人的注意力既可以主动控制，也会被被动吸引。注意力来回切换的话，就会消耗更多精力，思考也会不那么完整。
使用 TDD 开发，我们要主动去控制注意力，写测试的时候，发现一个类没有定义，IDE 提示编译错误，这时候你如果去创建这个类，你的注意力就不在需求上了，已经切换到了实现上，我们应该专注地写完这个测试，思考它是否表达了需求，确定无误后再开始去消除编译错误。</p>
<h3 id="为什么很多人做-tdd-都做不起来">为什么很多人做 TDD 都做不起来？</h3>
<p><strong>不会合理拆分任务</strong><br>
TDD 之前要拆分任务，把一个大需求拆成多个小需求。
也可以拆出多个函数来。</p>
<p><strong>不会写测试</strong><br>
什么是有效的单元测试，有很多人写测试，连到底在测什么都不清楚，也可能连断言都没有，通过控制台输出，肉眼对比来验证。
好的单元测试应该符合几条原则：</p>
<ul>
<li>简单，只测试一个需求</li>
<li>符合 Given-When-Then 格式</li>
<li>速度快</li>
<li>包含断言</li>
<li>可以重复执行</li>
</ul>
<p><strong>不会写刚好的实现</strong><br>
很多人写实现的时候无法专注当前需求，一不小心就把其他需求也实现了，就破坏了节奏感。
实现的时候不会小步快走。</p>
<p><strong>不会重构</strong><br>
不懂什么是 Clean Code，看不出 Smell，没有及时重构，等想要重构时已经难以下手了。
不知道用合适的「手法」消除 Smell。</p>
<p><strong>基础设施</strong><br>
对于特定技术栈，没有把单元测试基础设施搭建好，导致写测试时无法专注在测试用例上。</p>
<h3 id="实例">实例</h3>
<p>写一个程序来计算一个文本文件 words.txt 中每个单词出现的频率。
为了保持简单，假设：</p>
<ul>
<li>words.txt 只包含小写字母和空格</li>
<li>每个单词只包含小写字母</li>
<li>单词之间由一个或多个空格分开</li>
</ul>
<p>举个例子，假设 words.txt 包含以下内容：</p>
<blockquote>
<p>the day is sunny the the
the sunny is is</p>
</blockquote>
<p>你的程序应当输出如下，按频率倒序排序：</p>
<blockquote>
<p>the 4
is 3
sunny 2
day 1</p>
</blockquote>
<p>请先不要往下读，思考一下你会怎么做。
（思考 3 分钟...）</p>
<p>新手拿到这样的需求呢，就会把所有代码写到一个 main() 方法里，伪代码如下：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">main() {</span></span>
<span class="line"><span style="color: #c9d1d9">    // 读取文件</span></span>
<span class="line"><span style="color: #c9d1d9">    ...</span></span>
<span class="line"><span style="color: #c9d1d9">    // 分隔单词</span></span>
<span class="line"><span style="color: #c9d1d9">    ...</span></span>
<span class="line"><span style="color: #c9d1d9">    // 分组</span></span>
<span class="line"><span style="color: #c9d1d9">    ...</span></span>
<span class="line"><span style="color: #c9d1d9">    // 倒序排序</span></span>
<span class="line"><span style="color: #c9d1d9">    ...</span></span>
<span class="line"><span style="color: #c9d1d9">    // 拼接字符串</span></span>
<span class="line"><span style="color: #c9d1d9">    ...</span></span>
<span class="line"><span style="color: #c9d1d9">    // 打印</span></span>
<span class="line"><span style="color: #c9d1d9">    ...</span></span>
<span class="line"><span style="color: #c9d1d9">}</span></span></code></pre>
<p>思路很清晰，但往往一口气写完，最后运行起来，输出却不符合预期，然后就开始打断点调试。</p>
<p>这种代码没有任何的封装。这就是为什么很多人一听到说有些公司限制一个方法不超过 10 行，就立马跳出来说，这不可能，10 行能干什么啊，我们的业务逻辑很复杂...
<strong>这样的代码存在什么样的问题呢？</strong></p>
<ul>
<li>不可测试</li>
<li>不可重用</li>
<li>难以定位问题</li>
</ul>
<p>好嘛，那我们来 TDD 嘛，你说读文件，输出控制台的测试代码要怎么写？
当然，我们可以通过 Mock 和 Stub 来隔离 IO，但真的有必要吗？</p>
<p>有人问过 Kent Beck 这样一个问题：</p>
<blockquote>
<p>你真的什么都会测吗？连 getter 和 setter 也会测试吗？</p>
</blockquote>
<p>Kent Beck 说：公司请我来是为了实现业务价值，而不是写测试代码。
所以我只在没有信心的地方写测试代码。</p>
<p>那对我们这个程序而言，读文件和打印到控制台都是调用系统 API，可以很有信心吧。最没有信心的是中间那写要自己写的业务逻辑。
所以我们可以对程序做一些封装，《代码整洁之道》里说，有注释的地方都可以抽取方法，用方法名来代替注释：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">main() {</span></span>
<span class="line"><span style="color: #c9d1d9">    String words = read_file('words.txt')</span></span>
<span class="line"><span style="color: #c9d1d9">    String[] wordArray = split(words)</span></span>
<span class="line"><span style="color: #c9d1d9">    Map&#x3C;String, Integer> frequency = group(wordArray)</span></span>
<span class="line"><span style="color: #c9d1d9">    sort(frequency)</span></span>
<span class="line"><span style="color: #c9d1d9">    String output = format(frequency)</span></span>
<span class="line"><span style="color: #c9d1d9">    print(output)</span></span>
<span class="line"><span style="color: #c9d1d9">}</span></span></code></pre>
<p>这样是不是就可以单独为 <code>split</code>，<code>group</code>，<code>sort</code>，<code>format</code> 这些方法写单元测试了呢？
当然可以， 它们的输入和输出都是很明确的嘛。</p>
<p>等等，你可能会说，不是测试驱动设计吗？你怎么开始做设计了？好问题！</p>
<blockquote>
<p>TDD 要不要做提前设计呢？</p>
</blockquote>
<p>Kent Beck 不做提前设计，他会选一个最简单的用例，直接开写，用最简单的代码通过测试。逐渐增加测试，让代码变复杂，用重构来驱动出设计。
在这个需求里，最简单的场景是什么呢？
<strong>那就是文件内容为空，输出也为空。</strong></p>
<p>当然，对于复杂问题，可能要一边写一边补充新的用例，但对于这种简单的题目，基本可以提前就想清楚用什么用例驱动去什么产品代码。
大概可以想到如下的用例：</p>
<ul>
<li>"" => ""</li>
<li>"he" => "he 1"，一个单词，驱动出格式化字符串的代码</li>
<li>"he is" => "he 1\r\nis 1"，两个不同单词，驱动出分割单词的代码</li>
<li>"he he is" => "he 2\r\nis 1"，有相同单词，驱动出分组代码</li>
<li>"he is is" => "is 2\r\nhe 1"，驱动出分组后的排序代码</li>
<li>"he is" => "he 1\r\nis 1"，多个空格，完善分割单词的代码</li>
</ul>
<p>Martin Fowler 的观点是，以前我们写代码要做 <a href="https://en.wikipedia.org/wiki/Big_Design_Up_Front">Big Front Up Design</a>，在开始写代码前要设计好所有细节。
而我们有了重构这个工具后，做设计的压力小了很多，因为有测试代码保护，我们可以随时重构实现了。但这并不代表我们不需要做提前设计了，提前设计可以让我们可以和他人讨论，可以先迭代几次再开始写代码，在纸上迭代总比改代码要快。
我个人比较认同 Martin Fowler 的做法，先在脑子里（当然，我脑子不够用，所以用纸画）做设计，迭代几次之后再开始写，这样，我还是会用最简单的实现通过测试，但重构时就有了方向，效率更高。</p>
<p>回到这个程序，我发现目前的封装不在一个抽象层次上，更理想的设计是：</p>
<p><img src="/_image/image_2023-11-06-17-54-24.png" alt="分解任务"></p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">main() {</span></span>
<span class="line"><span style="color: #c9d1d9">    String words = read_file('words.txt')</span></span>
<span class="line"><span style="color: #c9d1d9">    String output = word_frequency(words)</span></span>
<span class="line"><span style="color: #c9d1d9">    print(output)</span></span>
<span class="line"><span style="color: #c9d1d9">}</span></span>
<span class="line"><span style="color: #c9d1d9"></span></span>
<span class="line"><span style="color: #c9d1d9">word_frequency(words) {</span></span>
<span class="line"><span style="color: #c9d1d9">    String[] wordArray = split(words)</span></span>
<span class="line"><span style="color: #c9d1d9">    Map&#x3C;String, Integer> frequency = group(wordArray)</span></span>
<span class="line"><span style="color: #c9d1d9">    sort(frequency)</span></span>
<span class="line"><span style="color: #c9d1d9">    return format(frequency)</span></span>
<span class="line"><span style="color: #c9d1d9">}</span></span></code></pre>
<p>这时候，又有两种选择，有人喜欢自顶向下，有人喜欢自底向上，我个人更倾向于前者。</p>
<p>现在开始，只要照着 红-绿-重构 的循环去做就可以。
<strong>大部分 TDD 做不好，就是没有前面的任务分解和列 Example 的过程。</strong><br>
想看 TDD 过程的话，可以参考我做的<a href="http://www.bilibili.com/video/av9208705/">直播</a>。</p>
<h2 id="faq">FAQ</h2>
<p>为什么一定要先写测试，后补测试行不行？</p>
<blockquote>
<p>行，但是要写完实现后，马上写测试，用测试来验证实现。如果你先手工测试，把代码都调试好了，再补单元测试，你就会觉得很鸡肋，还增加了工作量。
不管测试先行还是后行都可以享受到快速反馈，不过如果测试先行，你就可以享受另一个好处，使用意图驱动编程减少返工。因为你的测试代码就是产品代码的客户端（调用者），你可以在测试代码里写成你理想的样子（方法名，参数，返回值等），再去实现产品代码，比起先写实现后写测试，前者返工更少。</p>
</blockquote>
<p>刚写了一个测试，还没写实现。明知道运行测试一定会报错，为什么还要去运行？</p>
<blockquote>
<p>其实测试的运行结果并非只有通过与不通过两种，因为不通过时有很多种可能。所以在明知道一定失败的情况下去运行测试，目的是看看是不是报了期望的那个错误。</p>
</blockquote>
<p>小步快走确实好，但真的需要这么小步吗？</p>
<blockquote>
<p>步子迈太大，容易扯着蛋。
练习的时候需要养成小步的习惯，工作的时候可以自由切换步子的大小。
当你自信的时候步子就可以大点，当你不太自信的时候就可以立即切换到小步的模式。如果只会大步，就难以再小步了。</p>
</blockquote>
<p>测试代码是否会成为维护的负担？</p>
<blockquote>
<p>维护时也遵循 TDD 流程，先修改测试代码成需求变更后的样子，让测试失败，再修改产品代码使其通过。
这样你就不是在维护测试用例，而是在利用测试用例。</p>
</blockquote>
<p>为什么要快速实现？</p>
<blockquote>
<p>其实是用二分查找法隔离问题，通过 hardcode 实现通过测试后，就基本确定测试是没有问题，这时再去实现产品代码，如果测试不通过，就是产品代码的问题。
所以小步快走主要是为了隔离问题，也就是你可以告别 Debug  了。</p>
</blockquote>
<p>为什么测试代码要很简单？</p>
<blockquote>
<p>如果一个测试失败了，修复的时候是改测试代码而不是产品代码，那就是测试代码写的不好。
当测试代码足够简单时，如果一个测试失败了，就有足够信心断定一定是产品代码的问题。</p>
</blockquote>
<p>什么时候不适合 TDD？</p>
<blockquote>
<p>如果你是做探索性的技术研究（Spike），不需要长期维护，而且测试基础设施搭建成本很高，那还是手工测试吧。
另外还有「可测试性极差的遗留系统」和「使用测试不友好的技术栈」的系统，做 TDD 可能得不偿失。</p>
</blockquote>
<h2 id="学习路径">学习路径</h2>
<ol>
<li><a href="https://book.douban.com/subject/26364867/">《有效的单元测试》</a></li>
<li><a href="https://book.douban.com/subject/4199741/">《代码整洁之道》</a></li>
<li><a href="https://book.douban.com/subject/4262627/">《重构》</a></li>
<li><a href="https://en.wikipedia.org/wiki/Transformation_Priority_Premise">Transformation Priority Premise</a></li>
<li>《Test-Driven Development by Example》</li>
<li>《Growing Object-Oriented Software, Guided by Tests》</li>
</ol>
<h2 id="延伸阅读">延伸阅读</h2>
<ul>
<li><a href="https://mp.weixin.qq.com/s?__biz=MjM5MjY3OTgwMA==&#x26;mid=2652456431&#x26;idx=1&#x26;sn=a48bd4f6842cb60a7bebb11b02f65210&#x26;chksm=bd4f77f88a38feee727912fbd38a4fc580eb96121f1d8ce7ca29d712e45748110e8034289ef0&#x26;mpshare=1&#x26;scene=2&#x26;srcid=0312PQVSGNue5SAS7JuYVE5F&#x26;key=f9128360d66942a324a63c170a0a51d52c2e65a144438e0f7d3e922962be99dd801e3cb00545efa54d05df4900e19b1e815d4e55dc3663d3a1a24745405b2cb477794c8961cc6673d95295086ea35192&#x26;ascene=0&#x26;uin=MTI0ODA4ODk0MA%3D%3D&#x26;devicetype=iMac+MacBookPro11%2C2+OSX+OSX+10.12.4+build(16E175b)&#x26;version=12020010&#x26;nettype=WIFI&#x26;fontScale=100&#x26;pass_ticket=W3SeHWkK%2BA4oUEevrkoaCAb4bqsCvLY5pwSoqdnp%2FRwy8Suf0b9uYdnV9bLzBqlK">让我们再聊聊 TDD</a></li>
<li><a href="https://codingstyle.cn/topics/2">TDD 为什么这么难？</a></li>
<li><a href="https://codingstyle.cn/topics/node5">TDD 专题</a></li>
</ul>
<h2 id="qa">Q&#x26;A</h2>
<p><strong>问：在一个团队中谁来写单元测试呢，开发还是测试？开发测试如何协作呢？分开的方式会不会导致测试用例质量的下降？毕竟要实现的功能只有开发最清楚，会不会导致覆盖率降低？</strong><br>
答： TDD 是开发人员自己的事。基本不需要和测试协作，不过我司的测试已经开始参与单元测试的 Review 了。</p>
<p><strong>问：TDD 是否适合界面的开发？应用的业务逻辑部分可以用 TDD 这个可以理解，不过，界面部分是否也适用？如果可以的话，大概是如何操作呢？比如安卓，是用安卓提供的测试框架么？那只能测试简单的界面切换之类的功能，有没有其他更好的方式？</strong><br>
答：前几年我们做过一个 Android 应用，用 Robolectric 做的单元测试。http://robolectric.org/
移动应用开发挺适合的，因为你就不用启动应用来测试了。反馈会比较快，也不用去做数据，去跳转页面。Robolectric 不用启虚拟机，速度非常快，在 JVM 里跑的。也可以用 Appium 做端到端的测试。</p>
<p><strong>问：有关于怎样分解任务的策略，拿到一个任务，如何开始第一步？</strong><br>
答：关于任务分解可以读这个<a href="https://www.zybuluo.com/jtong/note/504192">系列文章</a>，学会这个，就可以在不动键盘的情况下想清楚代码的结构，在脑子里做几遍重构，再写的时候就效率很高。脑子想不明白可以借助纸笔来画。有了这个图你就可以和别人交流了。带人的时候尤其好用，你布置完一个任务，让新人先画图，就可以在他开始写代码前对他的设计提反馈。</p>
<p><strong>问：按流程一路写测试，一路实现，还是随便挑一个开始测试与实现，然后 mock 数据呢？</strong><br>
答：有从上到下的，也有从下到上的两种途径。我个人倾向于从上到下的。或者说从外到内的。从下到上，有可能最后连不起来。</p>
<p><strong>问：单元测试与集成测试，怎么权衡，开发应该注重单元测试还是集成测试，还是说都要关注？</strong><br>
答：测试是分层的，都要关注。各种测试要搭配起来，各有各的好处。</p>
<p><strong>问：如何在紧张的工期和完善的单元测试之间进行权衡？</strong><br>
答：这是个伪命题。TDD 不是慢。</p>
<p><strong>问：两周一个版本迭代，适合用 TDD 吗？</strong><br>
答：特别适合。没有完善的测试覆盖，两周发布一个版本是很困难的。有 TDD 才容易做到快速交付，写完测试，实现，跑完构建流程，部署流水线，就发布了。</p>
<p><strong>问：我比较关心 Robert 大叔说的那个 TDD 优先级 ，这个如何理解和应用？好像确实很容易写着就死胡同了。</strong><br>
答：这个就是 TDD 中绿的部分，Baby Step 能做到多细。Uncle Bob 的 TPP 给我们指了一条明路。</p>
<p><strong>问：TDD 测试驱动开发，有哪些注意事项，测试和开发应该注意哪些内容？</strong><br>
答：小步快走，频繁提交，注意休息。</p>
<p><strong>问：对于单元测试的 mock，应该针对外部接口进行 mock 吗？那么，再提交测试之前，是否要关注外部接口的返回结果是否按照约定返回？</strong><br>
答：单元测试保证的是自己的逻辑。外部接口的质量有外部系统来保证。我们也有集成测试来保证。</p>
<p><strong>问：请老师分享一下写单元测试好的实践，及各种单元测试优缺点（使用详解就更好了）。</strong><br>
答：三个原则，Given-When-Then，FIRST，BICEP-Right。</p>]]></description><pubDate>Thu, 30 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[游戏化养育]]></title><link>https://life.seabornlee.cn/posts/%E6%B8%B8%E6%88%8F%E5%8C%96%E5%85%BB%E8%82%B2/</link><guid>https://life.seabornlee.cn/posts/%E6%B8%B8%E6%88%8F%E5%8C%96%E5%85%BB%E8%82%B2/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-18-02-44.png" alt="">
<p>在我还是孩子的时候，父亲对我的要求很严厉。
早上起床不能太晚，印象中差不多是 8 点，起床后不能赖在床上，要立即穿好衣服，整理好床铺，洗脸刷牙......</p>
<p>一天早上，大约 9 点半，两个儿子起床很久了，还在床上玩，没穿好衣服，没整理床铺，没洗脸刷牙。
我突然变成了曾经的我的父亲，限他们一分钟之内起床洗脸刷牙，不然就数据线招呼。
一分钟后，我听到佑佑还在床上哼哼唧唧，顿时火冒三丈。
拿着数据线径直走到儿子房间，没有任何警告，狠狠地抽在了佑佑稚嫩的腿上。
他顿时十分惊恐，泣不成声。我要求他立即照我说的去做，不然还要挨更多的打。
他照做了，带着恐惧，委屈，皮肤的疼痛，还不敢放声大哭。</p>
<p>我回到房间，感觉到心跳飞快，比我跑步冲刺时还快。
我的手也在不自主地抖。</p>
<p>我并没有树立权威的成就感，反而满是挫败感。
类似的事情前不久也发生在了佐佐身上，回想起那一幕让我愈发挫败。
我真是个失败的父亲，起码在揍儿子的两个时刻，我是彻底失败的。</p>
<p>清晰记得之前最后一次对孩子动手，是 2019 年在黄果树瀑布旅游的时候，那次不走运的是佐佐。
后来就跟老婆说好了，孩子大了，不打了。
没想到守了两年多，还是破了戒。</p>
<p>我很快意识到，是我的焦虑让我失去耐心，我开始调整心态，补充知识，于是读到一本很棒的书《游戏化养育》。
于是我立马付诸实践，发现真的太实用了。</p>
<p>又是一个早晨，8 点多，我在客厅听到儿子差不多要醒了，于是蹑手蹑脚地走到他们房间，悄悄地躺在他们床上。
然后伸了个懒腰，大声说：“咦，你们怎么跑到我的床上来了？”
“你们把妈妈藏哪儿了？”
儿子们知道我在装傻，也不戳穿，说：“这是我们的房间，是你跑到我们的床上来了。”
“你看，那里还有我们的玩具盒子呀。”
我继续装傻说：“啊，你们把玩具也全搬到我的房间来了......”
“你们怎么把衣柜也搬到我的房间来了。”
他们终于忍不住哈哈大笑起来。
又在床上玩了一会儿别的游戏，我说起床了，洗脸刷牙吧。
他们屁颠屁颠就去了。</p>
<p>那一刻，我知道我是成功的父亲。
也让我更有信心去实践更多的「游戏化养育」。</p>
<p>记不清是同一天，还是第二天上午，我开着车，老婆坐在副驾，他们坐在二排，对中间的扶手箱发生了一点争执。
作为双胞胎的他们，不缺少玩伴，也少不了吵架甚至动手。
以前他们冲突时，我们教育过他们如何自己处理。
考虑到我在开车，老婆希望他们不要吵架影响到我，对他们说：“想想那些一个孩子的家庭，你们应该庆幸随时都有一个兄弟陪自己玩。你们有问题自己解决，如果你们不需要对方，可以一个在成都，一个送回老家。”
老婆本意是想让他们学会自己解决问题，珍惜兄弟情谊，避免作为父母的我们成为他们的裁判。
三孩家庭，哪有那么多时间和耐心去解决一天 N 起的小打小闹。</p>
<p>我突然意识到，和同龄人玩，也会腻的。有时候需要和父母玩，他们表面上的冲突，其实是想要获取父母的注意。
于是我又不动声色地发出了游戏邀请。
我说：“扶手箱里有个怪物，你们要把它看住，不然他会跑出来影响我开车，那样可就太危险了。”
儿子立马就心领神会，说：“这个怪物是隐身的，看不见，但是可以摸得到。”
我说：“它会跑过来蒙住我的眼睛。”
佐佐说：“它蒙住你的眼睛，你也看得见，因为它是隐身的啊。”
......
你一言我一语，车内又洋溢着欢乐的氛围。</p>
<p>我也会想，在大庭广众之下跟孩子装疯卖傻，要是还被孩子拒绝，岂不是很尴尬。
《游戏化养育》作者老爷子说了，当着众人对孩子歇斯底里，难道就不尴尬。
根据我几次的实践，发现他们会立刻会意，欣然接受游戏邀请。</p>
<p>老爷子还强调，游戏的目的只是「联结」，不要总是想通过游戏教会孩子点什么道理。
满足了孩子的情感需求，得到了充分的陪伴和关注，孩子才会有动力和安全感去探索世界。</p>
<p>我很高兴读到这本书，并且希望它也对你有用。</p>
<p>后记：</p>
<blockquote>
<p>文章差不多快要写完的时候，听到儿子醒了。出差这一周，买了一个新的游戏手柄，他们盼望着我回来跟他们一起玩三人游戏。所以我放下键盘，跑到他们房间和他们玩了一会儿，并且问他们是否愿意 9 点钟一起玩三人游戏。他们高兴地洗脸刷牙，然后跑过来看我写文章，问了我怎么打字，文章发表在哪里。然后我把他们搂在怀里，用文字转语音，把文章读给他们听了一遍。佐佐还补充了我们对话的细节。</p>
</blockquote>]]></description><pubDate>Thu, 01 Aug 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[火车]]></title><link>https://life.seabornlee.cn/posts/%E7%81%AB%E8%BD%A6/</link><guid>https://life.seabornlee.cn/posts/%E7%81%AB%E8%BD%A6/</guid><description><![CDATA[<img src="/_image/2014-03-23/IMG_5134.JPG">
<p>以前在北京上学的时候，每次寒暑假回家，都要坐长途火车，特快 25 小时，普快 33 小时，最长坐过 48 小时的临时列车。曾经在火车上 33 小时没动一下位置，把方便面捏碎了当干脆面吃，没上一次厕所（下车后第一泡有点疼，差点憋坏了，请大家不要模仿）。不知道为什么，一看到火车人那么多人就难受你，上个厕所要挤半天，说无数次：对不起，借过，不好意思，而且厕所还很脏，经常没水。那时我就发誓，以后一定要坐飞机回家，绝不坐火车回。刚参加工作的时候，还是买不起春节期间的机票，不过好歹可以升级到卧铺了，比硬座强太多了，厕所随时上，还可以下地走动，厕所也没那么脏。后来条件慢慢改善，开始能坐飞机了回家了，也就再没坐过春运的火车。后来坐了北京到苏州的动车，深圳到广州的高铁，感觉真不错呢，再加上飞机晚点越来越严重，我对火车的印象慢慢有了改观。</p>
<p>昨天参加完全国敏捷之旅组织者聚会，从厦门坐动车回来。这一趟虽然只有 4 小时，却费了一番周折。
首先说说买票，厦门真是个旅游城市，放票当日就买不到票，当然也可能是我经验不足。后来听周老师说他买了福州的票，果然姜还是老的辣，原来还可以这样啊。我也果断采用这种方法，可惜连福州都没买上，我一站一站往前查询，结果终于到苍南有票了，二等座，虽然多花了几站的钱，好歹有个座儿，比周老师强。</p>
<p>昨天下午活动还没结束，我就打车去了火车站，人真叫多，排队进了站却发现没有取票的机器，咨询工作人员后，又出来去了旁边的售票大厅，但还是取不出来票，我猜想是相隔的站太多。我又进站，尝试着去刷身份证，果然刷不开，找了个工作人员咨询，她说还没到检票时间，等到了时间是可以进的。又等，终于开始检票了，可还是刷不出来，让我出示短信，我手机里查找了一下，哪有短信啊？手机也快没电了，我给她看手机里拍的购票成功的照片，人家不认照片只认短信，于是给老婆打电话，果然有短信，老婆迅速转发到我手机上，一出示短信，顺利进站，刚坐下手机就没电了。不得不说这种通过短信进站的方式太不安全了，根本不看发信人是谁，随便找个人编辑一条发过来就行。就算要看发信人，也是很容易利用手机漏洞伪装 12306 给自己发一条短信的。</p>
<p>不过坐下了就舒服了，不知道周老师那边情况怎么样，周老师身强力壮，估计也不会有年轻人给他让座儿的。不过有个朋友分享了一个攻略，只要扫一遍车厢，肯定是能找到座位的，坐一段儿后就算被赶起来，再接着找，一直重复这么做就可以一路坐到终点了。他说这个方法屡试不爽，因为大多数人是不会这么做的。</p>
<p>不管怎么样，终于有惊无险地回到深圳了。不知道我的人生中还会和火车有多少次亲密接触。</p>]]></description><pubDate>Mon, 17 Mar 2014 23:59:23 GMT</pubDate></item><item><title><![CDATA[爱的五种语言 - 如何更好地表达爱和接受爱]]></title><link>https://life.seabornlee.cn/posts/%E7%88%B1%E7%9A%84%E4%BA%94%E7%A7%8D%E8%AF%AD%E8%A8%80%20-%20%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E5%9C%B0%E8%A1%A8%E8%BE%BE%E7%88%B1%E5%92%8C%E6%8E%A5%E5%8F%97%E7%88%B1/</link><guid>https://life.seabornlee.cn/posts/%E7%88%B1%E7%9A%84%E4%BA%94%E7%A7%8D%E8%AF%AD%E8%A8%80%20-%20%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E5%9C%B0%E8%A1%A8%E8%BE%BE%E7%88%B1%E5%92%8C%E6%8E%A5%E5%8F%97%E7%88%B1/</guid><description><![CDATA[<img src="/_image/2017-04-20-08-08-28.jpg" alt="">
<p>生活中，有很多值得思考的事情：</p>
<ul>
<li>一对对的模范明星夫妻，男的嫖娼，女的出轨</li>
<li>一个老实的男生为女神打饭打水，女神却投入了一个「坏」男生的怀抱</li>
<li>老公拼命地工作，给老婆豪华的房子和车子，老婆却说：你变了，你不爱我了</li>
<li>老公每天辛辛苦苦带娃做家务，老婆却说：你能不能有点出息？！</li>
<li>...</li>
</ul>
<p>为什么会出现这些现象呢？</p>
<p>我们读了十几年书，从来没有一堂课教我们如何爱别人。在家里可能也学不到，我从来没见过父母拥抱或接吻，我父亲连好好说话都很少，张嘴就是骂。</p>
<p>我和爱人 Mavis 从高中三年级开始谈恋爱，一起在北京读书，找工作，结婚，生孩子，从北京到深圳，从深圳到成都...
今年是我们在一起的第十四个年头，你一定听说过七年之痒，是的，热恋期的激情过后，我们也为鸡毛蒜皮的小事争吵过，莫名其妙就把对方给点着了。我们开始怀疑，难道婚姻真的是爱情的坟墓？
直到有一天，我们读到了《爱的五种语言》，这本书教会了我们如何表达爱和接受爱。从那以后，我们更会爱对方，也更容易感受到对方的爱了，从此过上了幸福的生活~~~
我不止一次和同事朋友分享过《爱的五种语言》，他们总会觉得相见恨晚，迫不及待地和爱人讨论并实践，看到他们更加幸福，我忍不住想要再次分享，让更多的人享受美好的爱情。</p>
<h2 id="什么是爱的五种语言">什么是爱的五种语言？</h2>
<blockquote>
<p>两性间许多误解、隔阂和争吵，都是由于不了解或忽略对方的主要爱语造成的。当夫妻双方选择使用对方的主要爱语时，就能很好地发展彼此的亲密关系，并积极地处理婚姻中的冲突和失败。</p>
</blockquote>
<p>这是一本教我们如何爱的书，了解到爱的五种语言，可以：</p>
<ul>
<li>让对方始终感受到你的爱，避免白忙活</li>
<li>更清晰地表达自己对爱的需求</li>
</ul>
<p>在继续往下读之前，我想邀请你先停下来，用几秒钟回忆一下，你最近三次表达爱意的方式是什么？</p>
<p>两性关系专家查普曼博士将常用的爱语归纳为五种：</p>
<ul>
<li>肯定的言辞（Words of Affirmation）</li>
<li>服务的行动（Acts of Service）</li>
<li>接收礼物（Receiving Gifts）</li>
<li>精心的时刻（Quality Time）</li>
<li>身体接触（Physical Touch）</li>
</ul>
<p>你刚刚回忆到的最近三次表达爱意的方式，是否在这五类里呢？
一般呢，每个人有一种主要的爱语和两种次要的爱语。比如对我而言，优先级是：肯定的言辞 > 服务的行动 > 身体接触。</p>
<p>![](/_image/Scannable Document on 20 Apr 2017, 7_59_26 AM.png)</p>
<h3 id="肯定的言辞">肯定的言辞</h3>
<p>肯定的言辞包括赞美，鼓励和感激等。</p>
<p><strong>赞美</strong><br>
Mavis 会经常说：老公你真帅！你又瘦了，腹肌更明显了哦。</p>
<p><strong>鼓励</strong><br>
我出生和成长在农村，从小到大都有一种自卑心理，是 Mavis 不断的鼓励让我相信我可以做任何事，让我相信我不比别人差。
我经常把早餐晒到朋友圈，也是一种表达鼓励的方式。</p>
<p><strong>感激</strong><br>
每次吃饭前，我都会说：谢谢妈咪给我们做饭。现在儿子都养成习惯了，自己也会主动说：谢谢妈妈给宝贝做饭。</p>
<h3 id="服务的行动">服务的行动</h3>
<p>为对方提供服务，比如做饭，洗衣服，按摩等。
在 Mavis 怀着宝宝的时候，每天晚上都会觉得腿酸脚痛，我就为她按摩。工作一天回到家，有时我会感到肩颈酸痛，Mavis 也会为我按摩。
每天为我做丰盛的早餐，我就感到特别幸福。</p>
<h3 id="接收礼物">接收礼物</h3>
<p>Mavis 曾告诉我，我每次出差去一个新的地方，要给她带一件礼物。
平时过节，我也会买一枝花送给她。不过我总是不太会挑礼物，总觉得那些礼品都很俗气，配不上她的气质（容我拍下马屁）。如果你有什么挑选礼物的心得，一定要分享给我~</p>
<h3 id="精心的时刻">精心的时刻</h3>
<p>高质量的陪伴时间，可能是看一场电影，一起逛公园，一起散步，或者只是坐着聊聊天。重点是要高质量，一边玩手机一边陪伴，还不如自己玩自己的。
这是 Mavis 的主要爱语，如果我做的不好，她就会告诉我：你很久没有给我精心的时刻了。每次出差回来，我们都会聊到很晚，补齐几天的精心时刻。</p>
<h3 id="身体接触">身体接触</h3>
<p>西方人接吻和拥抱是很普遍的，而我们中国人比较含蓄，这点应该向西方人学习。每天出门时，我会和 Mavis 拥抱和亲吻，互相说一声 Have a good day！
走路的时候，拉着手，搂着肩。睡觉的时候，摸摸头发，摸摸耳朵。再说下去就少儿不宜了~</p>
<p>到这里，我已经介绍了爱的五种语言，那要如何使用呢？</p>
<h2 id="我该怎么使用它">我该怎么使用它？</h2>
<p>首先要识别各自的爱语是什么，然后使用对方的爱语来表达爱，如果觉得自己需要被爱，给对方提出清晰的需求。</p>
<h3 id="识别爱语">识别爱语</h3>
<p>要识别爱语，最简单的方式就是问自己几个问题：</p>
<ul>
<li>你的配偶做什么事或者不做什么事，伤害你最深？跟这件事相反的，可能就是你爱的语言。</li>
<li>你最常请求你配偶的是什么？你最常请求的事，可能是最能使你感觉到爱的事。</li>
<li>你通常以什么方式向你的配偶表示爱？你表示爱的方法，也许它也会使你感觉到爱。</li>
</ul>
<p>更科学一点呢可以做一套测试题：</p>
<ul>
<li><a href="http://www.xinli001.com/ceshi/780">爱的五种语言测试（女士版）</a></li>
<li><a href="http://www.xinli001.com/ceshi/784">爱的五种语言测试（男士版）</a></li>
</ul>
<h3 id="使用对方的爱语">使用对方的爱语</h3>
<p>一个人通常表达和接受爱的语言是一致的，而两个人的爱语却通常是不一致的，这就是问题所在。
比如，我的主要爱语是肯定的言辞，听到赞美我就会很开心，我可能就会用肯定的言辞让爱人开心，而对方的主要爱语却是精心的时刻，她可能会觉得我虚头巴脑，净说些没用的。而她制造了很多精心的时刻，却可能会让我觉得没有了自己的空间。</p>
<p>爱，是一种选择。你会选择你喜欢的方式，还是对方喜欢的方式？
每个人心里都有一个「爱箱」，需要常常被填满，如果空了，就会产生负面情绪，开始抱怨、吵闹。而最有效率地填满对方爱箱的方式，就是使用对方的爱语。</p>
<h3 id="给对方提需求">给对方提需求</h3>
<p>知道自己是如何接受爱的之后，就可以更明确地给对方提需求了：</p>
<ul>
<li>亲爱的，比起昂贵的礼物，我更需要你的陪伴。</li>
<li>亲爱的，你的鼓励会让我充满力量，你可以夸夸我吗？</li>
</ul>
<p>接下来，让你的爱人也知道「爱的五种语言」，一起讨论和实践吧！
享受到幸福后，记得将爱传递出去，让更多的人学会「爱语」哦~
我们每个人，都值得拥有，更好的爱情！</p>]]></description><pubDate>Thu, 20 Apr 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[用 Anki 增强记忆]]></title><link>https://life.seabornlee.cn/posts/%E7%94%A8%20Anki%20%E5%A2%9E%E5%BC%BA%E8%AE%B0%E5%BF%86/</link><guid>https://life.seabornlee.cn/posts/%E7%94%A8%20Anki%20%E5%A2%9E%E5%BC%BA%E8%AE%B0%E5%BF%86/</guid><description><![CDATA[<img src="/_image/2014-05-11/22-47-48.jpg" alt="">
<p>Anki is a program which makes remembering things easy. Because it's a lot more efficient than traditional study methods, you can either greatly decrease your time spent studying, or greatly increase the amount you learn.</p>
<p>Anki 是一个帮助记忆的应用，它使用卡片的形式，正面是题目，反面是答案。根据记忆的程度调整复习的周期。
我这次想用 Anki 来帮助我记忆<a href="https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/git/git.plugin.zsh">git plugin of oh-my-zsh</a>提供的 git 别名，首先要做的事情就是将这些别名导入到 Anki 中。</p>
<h3 id="文件格式">文件格式</h3>
<p>Anki 需要的文件格式如下，每行表示一个卡片，分号前面是卡片正面的文字，分号后面是卡片背面的文字：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">git status;gst</span></span>
<span class="line"><span style="color: #c9d1d9">git add;ga</span></span></code></pre>
<p><a href="https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/git/git.plugin.zsh">git plugin of oh-my-zsh</a>的 shell 文件如下：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9"># Aliases</span></span>
<span class="line"><span style="color: #c9d1d9">alias g='git'</span></span>
<span class="line"><span style="color: #c9d1d9">compdef g=git</span></span>
<span class="line"><span style="color: #c9d1d9">alias gst='git status'</span></span>
<span class="line"><span style="color: #c9d1d9">compdef _git gst=git-status</span></span>
<span class="line"><span style="color: #c9d1d9">alias gd='git diff'</span></span>
<span class="line"><span style="color: #c9d1d9">compdef _git gd=git-diff</span></span>
<span class="line"><span style="color: #c9d1d9">alias gdc='git diff --cached'</span></span>
<span class="line"><span style="color: #c9d1d9">......</span></span></code></pre>
<p>不难看出，只要稍做加工便可以达到我们的目标。首先过滤出 alias 开头的行，去掉 alias 关键字，再将等号左右的内容对调并且将等号替换为分号就可以了。</p>
<h3 id="awk-出场">awk 出场</h3>
<p>首先将文件下载下来：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">curl https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/plugins/git/git.plugin.zsh -o git.plugin.zsh</span></span></code></pre>
<p>然后执行如下命令：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">awk '/^alias/' git.plugin.zsh | awk '{split($0, arr1, "="); split(arr1[1], arr2, " "); printf "%s;%s\n", arr1[2], arr2[2]}' > deck.txt</span></span></code></pre>
<p>这是我第一次尝试 awk，被其深深折服了。我相信这个脚本一定不是最优的，如果您有更好的方法请一定留言告诉我：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">awk '/^alias/' git.plugin.zsh</span></span></code></pre>
<p>筛选出<code>git.plugin.zsh</code>中以 alias 开头的行；</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">split($0, arr1, "=")</span></span></code></pre>
<p>将第一条命令的结果按等号拆分，并且存放到以 arr1 命名的数组中；</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">split(arr1[1], arr2, " ")</span></span></code></pre>
<p>将 arr1 中等号左边的部分以空格为分隔进行二次拆分，并且存放到以 arr2 命名的数组中；</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">printf "%s;%s\n", arr1[2], arr2[2]</span></span></code></pre>
<p>打印等号右边的部分，打印分号，打印空格右边的部分；
最后将命令结果重定向到文件<code>deck.txt</code>中。</p>
<h3 id="导入-anki">导入 Anki</h3>
<p>按格式生成好文件之后，导入就非常简单了。
打开 Anki，按 Command+i 或点击“File->Import”，选择<code>deck.txt</code>即可。
<img src="/_image/2014-05-11/22-00-34.jpg" alt="导入Anki"></p>
<h3 id="参考资料">参考资料</h3>
<p><a href="http://coolshell.cn/articles/9070.html">AWK 简明教程</a></p>
<h3 id="update">Update</h3>
<hr>
<p><img src="/_image/2014-05-12/07-58-38.jpg" alt="Juven评论">
不出我所料，<a href="http://www.juvenxu.com/">Juven</a>果然有更好的方法。</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">grep '^alias' git.plugin.zsh | sed 's/^alias //g' | awk -F '=' '{print $2";"$1}'</span></span></code></pre>
<p>主要改进两点：</p>
<ul>
<li>使用 sed 将“alias ”替换掉;</li>
<li>用<code>-F '='</code>代替 split；</li>
</ul>
<p>经过这样的改进，意图更加清晰，也更符合 linux 思维。</p>
<p>又一次印证了那句老话：</p>
<blockquote>
<p>当你手里只有一把锤子，你看什么都像钉子。</p>
</blockquote>
<p>因为之前并不知道 sed 可以轻易帮我做文本替换，所以蹩脚地用 awk 的 split 来达到这个目的，牺牲了可读性。</p>]]></description><pubDate>Sun, 11 May 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[知识变现，我们这样的普通人该如何参与？]]></title><link>https://life.seabornlee.cn/posts/%E7%9F%A5%E8%AF%86%E5%8F%98%E7%8E%B0%EF%BC%8C%E6%88%91%E4%BB%AC%E8%BF%99%E6%A0%B7%E7%9A%84%E6%99%AE%E9%80%9A%E4%BA%BA%E8%AF%A5%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E%EF%BC%9F/</link><guid>https://life.seabornlee.cn/posts/%E7%9F%A5%E8%AF%86%E5%8F%98%E7%8E%B0%EF%BC%8C%E6%88%91%E4%BB%AC%E8%BF%99%E6%A0%B7%E7%9A%84%E6%99%AE%E9%80%9A%E4%BA%BA%E8%AF%A5%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E%EF%BC%9F/</guid><description><![CDATA[<img src="/_image/2017-03-09-14-37-51.jpg" alt="">
<p>你说，我是不是有病？
之前订阅了李笑来的《通往财富自由之路》和「樊登读书会」，好久没听以至于我都快忘了有这两个订阅。
今天却又花 199 订阅了《五分钟商学院》。
不仅如此，最近还花了几百块，加入了两个付费社群。
整个互联网都在喊「知识变现」，我也忍不住加入了大军，<strong>帮好多人变了现</strong>...</p>
<h2 id="不是为知识付费而是为焦虑买单">不是为知识付费，而是为焦虑买单</h2>
<p>在我们心里，钱是分门别类地存放的。
同样是 100 块，在休闲娱乐账户里和个人成长投资账户里的价值是不一样的。
这个快速变化的时代，让我们变得越来越焦虑，危机感激促使我们想要不断提升自己。
信息过载，让我们筛选知识的成本与日俱增，觉醒过来的人们，开始愿意花钱，去节省宝贵的时间和注意力。
而那些还没觉醒的人，还在用自己的时间和注意力，帮别人变现。</p>
<p>刚开始订阅付费内容的时候，每天眼巴巴地盼着作者更新，如饥似渴地去学习，学完还喊：老板，再来一碗。
这时我们对那些免费的，想方设法植入软广的文章，点都懒得点开。
然而，蜜月期一过，由于<strong>没有良好的学习习惯</strong>，我们开始跟不上勤劳的作者的脚步，APP 上的「未读数」日复一日地增长，象征着我们和作者的距离越来越远。
于是我们变得更加焦虑，然后带着不甘心，换一个作者，开始一轮新的较量。</p>
<blockquote>
<p>与其说是为知识付费，其实是在为焦虑买单。</p>
</blockquote>
<h2 id="新一轮的内容爆发正在来临">新一轮的内容爆发正在来临</h2>
<p>最近关注了香港第一自媒体 Spenser，有一天收到推送，说他准备开写作训练营，价格是 ¥599。
我当时有点犹豫，就先收藏起来了。过了两天，我又收到一条推送，标题是：「第一次出来卖，一天卖了 100 万」。
吓得我的煎饼果子掉到地上，于是在后台给他留言，你赔我的煎饼果子！</p>
<p>我还关注了秋叶大叔的「知识型 IP 训练营」，学习了他的分答小讲「如何从零开始打造你的个人 IP」。</p>
<blockquote>
<p>知识型 IP 是指：精通一个或多个领域，持续输出原创内容，形成了个人品牌的人。
他们跟网红不一样，网红主要靠脸吃饭，他们靠脑袋。能靠脸吃饭，谁特么愿意跟你拼智慧啊。</p>
</blockquote>
<p>通过种种迹象，我想到了三点：</p>
<ol>
<li>看到别人知识变现了，大量的拥有某个领域专业知识的人，开始学习写作、品牌和营销，期望走上知识型 IP 的道路</li>
<li>先一步成长起来的 IP 们，可能在一级市场变现能力遇到了瓶颈，转而进入二级市场，通过培养知识型 IP 来变现</li>
<li>批量制造知识型 IP 之后，准 IP 们将产生大量的内容，信息过载会更加严重</li>
</ol>
<h2 id="输入只是娱乐输出才是学习">输入只是娱乐，输出才是学习</h2>
<p>作为一名普通人，我们应当如何应对呢？
是继续抵制付费，呼吁知识应该共享？
还是远离免费「知识」，提高输入质量？
或者走上成为知识型 IP 的道路，顺便帮 IP 们变现？
微信告诉我们：</p>
<blockquote>
<p>再小的个体，都可以拥有自己的品牌。</p>
</blockquote>
<p>于是我注册了自己的公众号，开始每天写作，同步发布到简书，知乎和头条。
意外地，在简书上收到 300 元左右的打赏，多数来自我的朋友圈，再次感谢朋友们，我的成长离不开你们的鼓励！
通过大量的输出，我发现所谓知识变现，最重要是<strong>打通输入输出，持续成长</strong>，变现只是一个副产品。</p>
<p>李笑来告诉我注意力是最宝贵的财富，然后我就不愿意再把宝贵的注意力给他。
樊登说每年一起读 50 本书，我读了几本就开始实践，没有时间再听他讲书了。</p>
<p>我前同事说过一句话：</p>
<blockquote>
<p>输入只是娱乐，输出才是学习。</p>
</blockquote>
<p>有输出才有反馈，反馈速度决定学习速度！最好当天的输入当天就有输出。
输入输出不打通，输入再多也是空！
别再娱乐了，开始输出吧！
如果你不知道如何迈出第一步，而我恰好比你先走出了一步，我很乐意跟你一起成长！</p>]]></description><pubDate>Thu, 09 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[离开了老师，我是这样高效学习的]]></title><link>https://life.seabornlee.cn/posts/%E7%A6%BB%E5%BC%80%E4%BA%86%E8%80%81%E5%B8%88%EF%BC%8C%E6%88%91%E6%98%AF%E8%BF%99%E6%A0%B7%E9%AB%98%E6%95%88%E5%AD%A6%E4%B9%A0%E7%9A%84/</link><guid>https://life.seabornlee.cn/posts/%E7%A6%BB%E5%BC%80%E4%BA%86%E8%80%81%E5%B8%88%EF%BC%8C%E6%88%91%E6%98%AF%E8%BF%99%E6%A0%B7%E9%AB%98%E6%95%88%E5%AD%A6%E4%B9%A0%E7%9A%84/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-18-16-48.png" alt="">
<p>互联网上不缺知识，关键是怎么把知识转化为自己的技能。</p>
<p>你可能已经发现，知识的保鲜期正在变得越来越短，学会的东西在几年，甚至几个月后，可能就已经过时了，这让我们越来越焦虑。</p>
<p><strong>唯有持续学习，成为终生学习者，才能保持持续竞争力。</strong></p>
<p>学习这件事，本来没什么好说的，因为它是一种本能。
从呱呱坠地开始，我们学会了走路，说话，穿衣，阅读，写字，开车，直至有了一技傍身。
但是，你有没有发现，大部分时候，我们的学习都离不开老师这个角色。
从胎教，早教，幼教，义务教育，高等教育，一直都有「老师」带着我们学习。</p>
<p>那么问题来了，离开学校，进入职场后，没有了老师，该如何学习？</p>
<h2 id="自学--自教">自学 = 自教</h2>
<p>没有老师，我们只能自学。自学的英文是：Self-taught，也就是自己教自己。
没错，没有了老师，我们就当自己的老师，自己教自己。</p>
<p>学了这么多年，你知道老师的教学套路吗？
一次教学过程，通常包含几个环节：</p>
<ul>
<li>说明（告诉学生应该怎么做）</li>
<li>示范（做给学生看）</li>
<li>练习（让学生练习）</li>
<li>观察（老师在旁边观察）</li>
<li>反馈（鼓励做的好的，纠正做的不好的地方）</li>
</ul>
<p>以我正在学习的「视觉引导」为例，看看如何应用这个套路。</p>
<h3 id="说明">说明</h3>
<p>在 Youtube 上搜索，找到相关的视频，有一个系列视频非常棒。
推荐先看这两个（优酷上也能找到同名视频）：</p>
<ul>
<li>Learning Graphic Facilitation - 7 Elements by Bigger Picture</li>
<li>Learning Graphic Facilitation - Tools by Bigger Picture</li>
</ul>
<p>通过视频，我了解到有如下基本元素：</p>
<ul>
<li>人物（动作，表情）</li>
<li>场景</li>
<li>流程</li>
<li>对话</li>
<li>文字</li>
<li>颜色</li>
</ul>
<p>有下图所示这些工具：
<img src="/_image/2017-02-17-07-47-22.jpg" alt=""></p>
<h3 id="示范">示范</h3>
<p>在第一个视频中，作者是边画边讲的，相当于给我做了示范。</p>
<p><img src="/_image/2017-02-17-07-52-38.jpg" alt=""></p>
<h3 id="练习">练习</h3>
<p>有了以上理论基础，我开始练习基本元素，每天画上一页，练习 20 分钟左右。</p>
<p><img src="/_image/2017-02-17-08-08-58.jpg" alt=""></p>
<h3 id="观察">观察</h3>
<p>我每天把练习结果拍照。</p>
<p><img src="/_image/2017-02-17-08-00-21.jpg" alt=""></p>
<h3 id="反馈">反馈</h3>
<p>把照片发到社群里，得到其他人的反馈。
有人鼓励我持续练习的，有人点评图案的细节，有人解答我具体的困惑。</p>
<p><img src="/_image/2017-02-17-08-07-19.jpg" alt=""></p>
<p>以上就是我用这个套路学习「视觉引导」的方法。</p>
<p>很多高手只擅长做，不擅长教，如果你指望他教会你那是没戏的。有了这个套路，我就会引导他：</p>
<ul>
<li>你先给我说说怎么做</li>
<li>你做一遍给我看</li>
<li>我来试着做一下</li>
<li>请你在旁边观察我做的过程</li>
<li>你看看我哪里做的不到位</li>
</ul>
<p>互联网上几乎能找到所有东西，而我们却没有学会什么。
因为这些资料大部分是「说明」和「示范」，我们只能通过它们得到「知识」。
要获取一项技能，<strong>「练习」是必不可少的</strong>。
知识的作用只有两点：一是帮助我们制定练习计划；二是帮助我们在练习时进行自我纠正。</p>
<p>以后我会分享练习的心态、原则，以及如何培养练习的习惯！</p>]]></description><pubDate>Fri, 17 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[程序员一定要打字很快吗？]]></title><link>https://life.seabornlee.cn/posts/%E7%A8%8B%E5%BA%8F%E5%91%98%E4%B8%80%E5%AE%9A%E8%A6%81%E6%89%93%E5%AD%97%E5%BE%88%E5%BF%AB%E5%90%97%EF%BC%9F/</link><guid>https://life.seabornlee.cn/posts/%E7%A8%8B%E5%BA%8F%E5%91%98%E4%B8%80%E5%AE%9A%E8%A6%81%E6%89%93%E5%AD%97%E5%BE%88%E5%BF%AB%E5%90%97%EF%BC%9F/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-18-23-21.png" alt="">
<p>我的观点是<em>手速能顺畅地表达思想</em>即可。
编程和写作，主体都是大脑，通过打字把我们的思想可视化出来，再进行重构优化。
思想在大脑里产生，通过手指敲击键盘生成文字，显示到屏幕上，再通过眼睛进入大脑。
这个过程中，“打字”就像一根水管，水管细了是瓶颈，粗了是浪费。</p>
<p>我曾与许多工作年限不等的程序员交流过，大家对手速的态度大概会经历三个阶段：<strong>无意识 -> 追求手速 -> 手速不重要</strong>。</p>
<p>手速快慢不重要，重要的是别让打字耗费太多注意力。</p>
<p>编码是一个以打字为基础的活动，打字耗费的注意力越多，思考程序本身的注意力就越少。
如果你的关注点总是被拉到键盘上，就更加难以进入心流状态。</p>
<p>练打字的目的是让打字毫不费力，速度快只是一个副产品，并非越快越好。
目标是通过练习形成肌肉记忆，条件反射。速度提升是自然而然的事情。</p>
<p>工具越用越熟，越熟越用。人们倾向于使用自己熟悉的工具，熟悉键盘的人喜欢用键盘，熟悉鼠标的人喜欢用鼠标。
对键盘熟悉更利于养成这几个习惯：使用命令行，使用快捷键，小步提交。</p>
<p>反过来讲，很多人无法养成这几个习惯可能是因为键盘不熟悉，就是不会盲打。</p>
<p>编程是一项技能，知识可能通过听和看获得，技能只能通过练习获得。
打字速度影响练习速度，时间限定的情况下，打的越慢，练的越少。
最重要是影响精力消耗，别人能练习三个小时，你练一个小时就累了。</p>]]></description><pubDate>Fri, 01 Sep 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[第一个半马]]></title><link>https://life.seabornlee.cn/posts/%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%8D%8A%E9%A9%AC/</link><guid>https://life.seabornlee.cn/posts/%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%8D%8A%E9%A9%AC/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-18-27-33.png" alt="">
<p>虽然以前也跑过 20 公里以上，今天却是第一次参加马拉松赛事。幸运的是与一个朋友结伴，获得了许多指导。总结如下：</p>
<h3 id="兔子">兔子</h3>
<p>刚开始跑就发现有些人屁股后面挂着个气球，上面有数字，这个数字是准备完赛的时间。有 3 小时的关门兔，也有 230，200 等。
兔子相当于是一个标杆，他们会提前设置好完赛的时间，你可以选择合适的兔子，跟着跑就行了。
据说当兔子不容易，需要对速度有很好的控制能力。</p>
<h3 id="跑团">跑团</h3>
<p>一路上可以看到许多的跑团，有一些很松散，有一些很紧密。常见 10 几人一同向前跑，队首和队尾分别有一个扛大旗的，速度非常稳定。偶尔喊喊口号，互相打气。碰到前面折返回来的团友也会热情地加油。</p>
<h3 id="能量补充">能量补充</h3>
<p>早上吃了三块巧克力，跑到 10 几公里后开始感觉肚子饿了，这时朋友拿出两条能量胶，挤到嘴里，喝一口水冲下去就行了。不过味道口感都不怎么好。
饮水点有矿泉水和功能饮料，没有食物，据朋友说山地马拉松在补给点会提供食物，吃跑喝足了再走。
如果实在饿的不行也不要害怕，留意马路边的观众，有些热情的观众会给运动员递香蕉苹果之类的食物。</p>
<h3 id="配速">配速</h3>
<p>对于我而言，最大的问题就是配速不稳，跑着跑着一走神又慢下来了，然后又狂追一段儿。问题处于变速的状态。而一些人配速稳定的人，感觉他们挺慢的，把他们超过去，但过一会儿却又发现被他们超过了。比较好的做法是预计好自己的完赛时间，前半段不要太快，后半段不要掉速，成绩就不会太差了。</p>
<h3 id="抽筋">抽筋</h3>
<p>之前跑过几次半马，总是在差不多最后一公里的时候抽筋。而这次，途中也出现过脚踝不舒服，前脚掌不舒服的现象。朋友告诉我，去喷点云南白药，要红瓶的。后来又给我吞了一颗盐丸儿和一颗好像是排乳酸的什么药丸儿。他还告诉我小腿套和紧身库都具备加力和防抽筋的效果。</p>
<h3 id="观众">观众</h3>
<p>观众真的是非常热情，不停地给运动员加油打气，送水送粮。其中不乏一些小朋友，朋友说他在北京的一个朋友，小时候就是当马拉松观众，到后来自己去跑。我想，我也要带儿子们去当观众，体验运动的魅力，希望他们以后也能爱上这项运动。
有的观众太热情，也要小心，不要被他们感染了，破坏了自己的节奏。朋友说他有个朋友就被观众点燃后猛加速，结果抽筋了。</p>
<h3 id="出路">出路</h3>
<p>我朋友是前一天参加了龙岗马拉松，接着第二天又参加南山马拉松的。他说这样的人不在少数，甚至还有上午跑完半马，下午要去参加铁三的。他说跑马只有两条出路，一条是铁三，一条是山地马拉松。
他说自己是奖牌控，跑步才半年，收集了 50 块左右的奖牌了，而他的一个女性朋友，今年已攒了 100 多块了，其中有线下的，也有线上的。我还第一次听说有线上的马拉松，他说是“咕咚”组织的。</p>
<p>总的来说，这第一次参赛是很好的体验，让我迫不及待地邀请 Mavis 一起报名了深马的半程。希望在跑马的路上，拥有健康的身体和坚强的意志，结识更多正能量的朋友。</p>
<p><img src="/_image/image_2023-11-06-18-27-07.png" alt=""></p>]]></description><pubDate>Fri, 01 Jan 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[第一次献血]]></title><link>https://life.seabornlee.cn/posts/%E7%AC%AC%E4%B8%80%E6%AC%A1%E7%8C%AE%E8%A1%80/</link><guid>https://life.seabornlee.cn/posts/%E7%AC%AC%E4%B8%80%E6%AC%A1%E7%8C%AE%E8%A1%80/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-18-30-03.png" alt="">
<p>献血这种事呢，没有什么大不了的，每天都有很多人在做，朋友中也有很多人都献过。但对我而言，却是大姑娘上花轿头一回，还是感触颇深，所以还是写出来，供还没有献出第一次的朋友参考。</p>
<p>今天早上在深圳中心书城看了半天书，出来准备吃午饭，看到路边停了一辆献血车，使我不禁想起刚到北京的时候，每次去动物园都会看到献血车，却总是没有勇气走上去。直到今年终于将献血这件事放入了年度计划，也许是刚看了关于修行的书，大踏步就走了上去（难道被加持了？），却被告知不能空腹献血。吃完饭逛了一圈图书馆又去，人还挺多，填了资料和健康调查表，量血压，扎手指（验血型），然后排队抽血。等候的时候，有个哥们躺着，我觉得他好嚣张，直到起来的时候我多问了一句才知道，哥们晕血了，献血失败，我说你以前不知道自己晕血吗，他说知道，真是勇气可嘉啊。
其实虽然我不晕血，但每次抽血我都会有点紧张，尤其看到那个针头，它居然和乡下给猪打针的一般大。</p>
<p>轮到我后，医生问我肚子饿不饿，饿的话可以先吃点八宝粥，喝点牛奶。开始抽了，医生让我别看，我别过头去，我也不想看着那么大的针头插到我的身体里，不然我会错觉把自己当初猪。插入的时候还是有点疼的，但老婆一直在跟我聊天试图分散我的注意力，旁边的聊天也很逗，一个刚抽完的问医生抽血有什么好处，医生说抽血反正没坏处，大家都笑了，然后医生补充说，献血可以拯救别人的生命，对自己身体的造血功能也是有好处的。</p>
<p>听着大家的聊天，捏着手中的海绵，很快就抽满了 400CC，医生说不要站着，立马坐下，要在车上休息 15 分钟。陆陆续续有人上车下车，车也在不停摇晃，我之前还和老婆开玩笑说，我不晕血，但晕车，现在我就真感觉有点晕车想吐了。医生说你躺下吧，我看你有点不舒服，就这样我跟之前晕血那哥们儿一样的待遇，屈膝，头低脚高。哎，也不知道这一车的小伙伴怎么看我。后来一个东北大叔就问我了，小伙儿你是抽了没抽啊，我说还没抽呢就吓晕了，我看到大叔好鄙视的样子，大叔还说，以后自己的血流在别人的血管里，自己的生命也得到延续了，说完不忘又鄙视我一下。休息了 15 分钟，感觉没什么不妥了，起身准备下车，大叔看到我胳膊上的止血贴，说原来你抽了啊，又轻轻地鄙视了我一下。医生说先别着急走，量个血压看看，然后等着量血压，这时一个大哥说，这次别抽我 400CC 了，上次就给我抽晕了，医生说你的身体抽 400 没问题的，头晕和很多因素有关，比如没休息好，肚子饿，紧张等。我想我属于紧张那一类吧。量完血压正常，下车走人。终于了了一大心愿，心里非常舒畅。</p>
<p>医生说 24 小时不要剧烈运动，不要用出血那只手拎重物。于是老婆抢过我的电脑包（屌丝连逛街也要带电脑），还抢着帮我推门，真是非常细心，把我当病人一样照顾着。我的习惯是，完成一个目标就要给自己一个奖励，最后我们去了乐器城买了个 ukulele，老婆现在正跟着视频在练习呢，似乎有点像模像样了，希望不久就能用它奏出美妙的音乐。</p>
<p>人生总有很多第一次，这就是我的第一次献血，但绝不是最后一次。</p>]]></description><pubDate>Sun, 01 Sep 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[第二旅程 App]]></title><link>https://life.seabornlee.cn/posts/%E7%AC%AC%E4%BA%8C%E6%97%85%E7%A8%8B%20App/</link><guid>https://life.seabornlee.cn/posts/%E7%AC%AC%E4%BA%8C%E6%97%85%E7%A8%8B%20App/</guid><description><![CDATA[<h1 id="第二旅程-second-journey">第二旅程 (Second Journey)</h1>
<blockquote>
<p>一款不是"生活管理系统"，而是"自我反思系统"的移动应用</p>
</blockquote>
<h2 id="-应用简介">🌟 应用简介</h2>
<p>第二旅程相信用户内心已经拥有所有答案，它作为一面诚实、多维度的"镜子"，帮助用户清晰地看到自己生活的模式。这是一款致力于帮助用户进行深度自我探索和反思的移动应用。</p>
<h2 id="-核心理念">💡 核心理念</h2>
<ul>
<li><strong>内在答案</strong>：相信每个人内心都拥有解决问题的答案</li>
<li><strong>多维反射</strong>：提供多角度的自我观察工具</li>
<li><strong>诚实呈现</strong>：不带评判地展现真实的生活模式</li>
<li><strong>自我发现</strong>：通过记录和观察促进深度思考</li>
</ul>
<h2 id="-主要功能">✨ 主要功能</h2>
<h3 id="-日常记录">🏠 日常记录</h3>
<ul>
<li><strong>日常反思</strong>：记录每日生活片段和感悟</li>
<li><strong>习惯追踪</strong>：观察和培养积极的生活习惯</li>
<li><strong>高光时刻</strong>：捕捉生活中的美好瞬间</li>
<li><strong>重要日期</strong>：标记对个人有意义的时间节点</li>
</ul>
<h3 id="-关系管理">👫 关系管理</h3>
<ul>
<li><strong>重要人物</strong>：记录生活中重要的人际关系</li>
<li><strong>亲密花园</strong>：维护和深化亲密关系</li>
<li><strong>关系阶段</strong>：理解关系的发展历程</li>
<li><strong>支持行动</strong>：给予和接受支持的记录</li>
</ul>
<h3 id="-个人成长">🎯 个人成长</h3>
<ul>
<li><strong>边界设定</strong>：建立健康的个人边界</li>
<li><strong>私密时间</strong>：保护和安排独处时光</li>
<li><strong>行动项目</strong>：将想法转化为具体行动</li>
<li><strong>AI对话</strong>：智能辅助思考和反思</li>
</ul>
<h3 id="-多媒体记录">📸 多媒体记录</h3>
<ul>
<li><strong>照片墙</strong>：可视化记忆收集</li>
<li><strong>相册管理</strong>：按主题和情感分类整理</li>
<li><strong>位置标记</strong>：记录有意义的地方</li>
<li><strong>文件上传</strong>：支持文档和其他媒体</li>
</ul>
<h2 id="-设计特色">🎨 设计特色</h2>
<h3 id="-精美开场动画">🚪 精美开场动画</h3>
<ul>
<li><strong>哲理引导</strong>：三句深刻的哲学思考作为开场</li>
<li><strong>开门效果</strong>：逼真的门开启动画，象征进入新的旅程</li>
<li><strong>优雅过渡</strong>：流畅的动画序列营造沉浸式体验</li>
<li><strong>视觉震撼</strong>：精心设计的阴影和光影效果</li>
</ul>
<h3 id="-现代化界面">🌙 现代化界面</h3>
<ul>
<li><strong>简洁设计</strong>：采用现代极简主义设计语言</li>
<li><strong>直观操作</strong>：符合用户直觉的交互设计</li>
<li><strong>响应式布局</strong>：适配不同设备和屏幕尺寸</li>
<li><strong>无障碍支持</strong>：关注用户体验的每个细节</li>
</ul>
<h2 id="-技术架构">🛠 技术架构</h2>
<h3 id="前端技术栈">前端技术栈</h3>
<ul>
<li><strong>React Native 0.75.4</strong>：跨平台移动应用开发框架</li>
<li><strong>TypeScript</strong>：类型安全的 JavaScript 超集</li>
<li><strong>React Navigation 6.x</strong>：强大的导航解决方案</li>
<li><strong>i18next</strong>：国际化和本地化支持</li>
</ul>
<h3 id="数据存储">数据存储</h3>
<ul>
<li><strong>SQLite</strong>：本地数据库存储</li>
<li><strong>PowerSync</strong>：实时数据同步</li>
<li><strong>YAML格式</strong>：数据导入导出的标准化格式</li>
</ul>
<h3 id="开发工具">开发工具</h3>
<ul>
<li><strong>Jest</strong>：单元测试框架</li>
<li><strong>Maestro</strong>：端到端测试</li>
<li><strong>ESLint</strong>：代码质量检查</li>
<li><strong>Metro</strong>：JavaScript 打包工具</li>
</ul>
<h2 id="-多语言支持">🌍 多语言支持</h2>
<ul>
<li>🇨🇳 <strong>简体中文</strong>：主要支持语言</li>
<li>🇺🇸 <strong>English</strong>：英文界面支持</li>
<li>智能语言检测和切换</li>
<li>完整的本地化体验</li>
</ul>
<h2 id="-平台兼容性">📱 平台兼容性</h2>
<ul>
<li><strong>iOS</strong>：支持 iPhone 和 iPad</li>
<li><strong>Android</strong>：支持 Android 6.0 及以上版本</li>
<li><strong>macOS</strong>：桌面版本支持</li>
<li>跨平台数据同步</li>
</ul>
<h2 id="-隐私与安全">🔒 隐私与安全</h2>
<ul>
<li><strong>本地优先</strong>：数据主要存储在本地设备</li>
<li><strong>用户控制</strong>：完全掌控个人数据</li>
<li><strong>透明机制</strong>：清晰的数据使用说明</li>
<li><strong>安全传输</strong>：网络传输采用加密协议</li>
</ul>
<h2 id="-适用人群">🎯 适用人群</h2>
<ul>
<li><strong>自我探索者</strong>：希望深入了解自己的人群</li>
<li><strong>生活记录者</strong>：喜欢记录生活点滴的用户</li>
<li><strong>关系经营者</strong>：重视人际关系维护的人士</li>
<li><strong>个人成长追求者</strong>：持续自我提升的个体</li>
</ul>
<h2 id="-开发理念">🚀 开发理念</h2>
<h3 id="技术卓越">技术卓越</h3>
<ul>
<li>严格的 TypeScript 类型检查</li>
<li>完善的测试覆盖</li>
<li>模块化的代码架构</li>
<li>持续集成的开发流程</li>
</ul>
<h3 id="用户体验优先">用户体验优先</h3>
<ul>
<li>直观的界面设计</li>
<li>流畅的动画效果</li>
<li>快速的响应时间</li>
<li>贴心的功能细节</li>
</ul>
<h3 id="哲学思考融入">哲学思考融入</h3>
<ul>
<li>每个功能都承载深层思考</li>
<li>设计体现对用户的尊重</li>
<li>鼓励而非强迫的使用方式</li>
<li>长期陪伴的伙伴关系</li>
</ul>
<h2 id="-项目状态">📊 项目状态</h2>
<ul>
<li><strong>版本</strong>：v0.0.1</li>
<li><strong>开发状态</strong>：活跃开发中</li>
<li><strong>测试覆盖</strong>：持续完善中</li>
<li><strong>文档建设</strong>：逐步完善</li>
</ul>
<h2 id="-开源与协作">🤝 开源与协作</h2>
<p>本项目采用开源模式开发，欢迎社区贡献和反馈。</p>
<ul>
<li><strong>代码仓库</strong>：[GitHub 链接]</li>
<li><strong>问题反馈</strong>：通过 Issues 提交</li>
<li><strong>功能建议</strong>：欢迎提出改进建议</li>
<li><strong>开发协作</strong>：欢迎参与代码贡献</li>
</ul>
<hr>
<p><em>第二旅程 - 陪伴你探索内心世界的移动应用</em></p>]]></description><pubDate>Sun, 10 Oct 2010 00:00:00 GMT</pubDate></item><item><title><![CDATA[简历和面试技巧]]></title><link>https://life.seabornlee.cn/posts/%E7%AE%80%E5%8E%86%E5%92%8C%E9%9D%A2%E8%AF%95%E6%8A%80%E5%B7%A7/</link><guid>https://life.seabornlee.cn/posts/%E7%AE%80%E5%8E%86%E5%92%8C%E9%9D%A2%E8%AF%95%E6%8A%80%E5%B7%A7/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-18-36-41.png" alt="">
<p>我求职面试的经验不多，在创业期间，倒是积累了一些招聘面试的经验。</p>
<p>面试，相亲，销售的过程都很类似，抽象一下，它们的本质是什么？
我认为是：</p>
<blockquote>
<p>展示自我和挖掘对方需求的过程。</p>
</blockquote>
<h2 id="简历">简历</h2>
<h3 id="为什么要写简历">为什么要写简历？</h3>
<p>如果有人要给你介绍对象，你是直接约见面呢还是先看一下 Ta 的简介？
你当然也不希望刚一见面就发现对方不是你的菜，既浪费时间，又很尴尬。
所以简历呢，它<strong>除了吸引适合你的公司，也能过滤掉不适合你的公司</strong>。
尤其是当你的职业竞争力上来之后，你会不堪其扰。
我认为简历的第一原则就是<strong>表现真实的自己</strong>。</p>
<h3 id="照片">照片</h3>
<h4 id="要不要放照片">要不要放照片？</h4>
<p>不如问自己这几个问题：</p>
<ul>
<li>你是不是以貌取人？</li>
<li>你想不想和以貌取人的老板工作？</li>
<li>你的照片能否给你加分？</li>
</ul>
<p>反正我是还蛮关心未来同事长什么样子的。</p>
<h4 id="放证件照还是生活照">放证件照还是生活照？</h4>
<p>程序员不同于「保险顾问」，「投资顾问」之类的专业人士，我认为放生活照更有亲和力，但不要太夸张的那种。
比如这损 sai：</p>
<p><img src="/_image/2016-09-09-11-14-55.jpg?r=41" alt=""></p>
<h3 id="博客github-地址能加分">博客，GitHub 地址能加分？</h3>
<p>如果你博客上都是一些生活吐槽，流水账似的日记...
如果你的 GitHub 上是自己都不忍直视的代码...</p>
<p>我见过很多这样的简历，嗯，节省了双方的时间。</p>
<h3 id="技能">技能</h3>
<p>想想你应聘的职位一天是怎么工作的，需要用到哪些工具，技术，思想。如果想不到的话，去看看 JD（Job Description）吧。</p>
<p><strong>精通，掌握，熟练，了解 到底怎么写？</strong>
我建议不要写精通，因为精通通常意味着「无知者无畏」。
「掌握」和「熟练」之间的区别是什么？我们都区分不清楚，面试官可能也是晕的，不如就只写其中一种。
所以，总结一下：</p>
<ul>
<li>从上到下掌握程度递减</li>
<li>包含：思想（OO、TDD），语言（JS、Java），框架（Express、React），工具（Git、Linux），不同类的不要放到一行</li>
<li>只分「掌握 | 熟练」和「了解」两级</li>
</ul>
<h3 id="项目经验">项目经验</h3>
<p>体现几点：</p>
<ul>
<li>什么业务？</li>
<li>用了什么技术？</li>
<li>你干了什么？</li>
<li>你收获了什么？</li>
</ul>
<h3 id="自我评价">自我评价</h3>
<p><img src="/_image/2016-09-09-11-31-35.jpg" alt=""></p>
<p>人无完人，只要放对地方，哪怕是一条咸鱼也有它的价值。面试官希望通过这里了解你，以便于团队成员间的各方面是互补的。
我认为这部分也体现了求职者的「自我认知」程度，如果真不了解自己的话，可以看看：</p>
<ul>
<li>星座</li>
<li>血型</li>
<li>九型人格</li>
<li><a href="http://baike.baidu.com/link?url=WoefFPtwRyMJQU6fO3E4UVjXgPXh-1nub0oJkphYc0XxlcnKaoSYkuHILpLZIz3jhT3XQ_fiWrUwzqAnnmRoZK">DISC</a></li>
<li>《优势识别器》</li>
</ul>
<p>所以在写自我评价时，<strong>要扬长避短，突出适合目标职位的特质，也要丑话说在前头，避免浪费双方时间</strong>。</p>
<h3 id="细节">细节</h3>
<p>自从追求 Clean Code 之后，我对文字也有了比较高的追求，我认为细节可以暴露性格和习惯。
有一些是个人偏好，仅供参考：</p>
<ul>
<li>注意大小写：App，HTML，JavaScript</li>
<li>对齐</li>
<li>段首不用空两格（就像我这篇文章一样）</li>
<li>英文和数字两边各留一个空格</li>
<li>用「引号」代替“引号”</li>
</ul>
<h2 id="面试">面试</h2>
<h3 id="自我介绍">自我介绍</h3>
<p>为什么要做自我介绍？不都写着呢吗（面试官你瞎啊）？</p>
<p><img src="/_image/2016-09-09-11-46-49.jpg" alt=""></p>
<p>想象一下，面试官拿着你的简历说：你稍等，我先看一下你的简历。
喂，作为面试官，这样不是显得我很没有准备吗？一边看还得一边想提什么问题，好累啊！
两个人坐在那里不说话，一个还呆若木鸡，很尴尬的好吗？</p>
<p><img src="/_image/2016-09-09-11-51-29.jpg" alt=""></p>
<p>面试官心理压力也很大啊，也害怕冷场，所以必须要有人先说话，对不对？
所以，你不做自我介绍，难道要我做吗？</p>
<p>怎么准备一个精彩的自我介绍？</p>
<ul>
<li>写下来，改到完美</li>
<li>设计肢体语言</li>
<li>设计声音</li>
</ul>
<p>参考文章：<a href="http://mp.weixin.qq.com/s?__biz=MzA4MDU0MTE5MQ==&#x26;mid=401785720&#x26;idx=2&#x26;sn=355c48e648ed1dcc9c4247b8b8979159&#x26;scene=19#wechat_redirect">个人介绍 写法</a></p>
<h3 id="如何应对提问">如何应对提问</h3>
<p>首先你要知道，对方提问的目的不是难倒你，然后暗暗鄙视你，从而获得成就感。当然我是说大多数心理正常的面试官。
<strong>面试官问问题是为了挖掘信息，以便于确认是否和岗位需求匹配。</strong>
所以千万不要<strong>不懂装懂</strong>，要实话实说，不会就告诉他你为什么不会，哪块比较会。面试官是很愿意跟你聊你会的东西的，一方面是三人行必有我师，另一方面是你能会一样，再学会另一样只是时间问题。
现在技术日新月异，很多企业招聘时都<strong>看重学习能力高于现有水平</strong>。</p>
<h4 id="他问我对-xxx-了解多少好像对我的回答不太满意我不太清楚他什么意图你知道吗">他问我对 XXX 了解多少，好像对我的回答不太满意，我不太清楚他什么意图，你知道吗？</h4>
<p>他问的是你哎，我啷个知道？我又不是女巫...</p>
<p><img src="/_image/2016-09-09-12-09-27.jpg" alt=""></p>
<p>不清楚对方意图怎么办，问他？真的好吗？他会不会不喜欢？
悄悄告诉你，我做面试官就喜欢故意挖坑不说清楚，看对方会不会主动沟通确认。
你想想，领导给你布置个活儿，你不明白也不问，做出来的结果相差十万八千里。你要是做领导，你喜欢这种员工吗？</p>
<h4 id="你认为自己最大的缺点是什么">你认为自己最大的缺点是什么？</h4>
<p>我缺点就是「懒」，难道真的要告诉他吗？
谁说「懒」一定是缺点啊：</p>
<ul>
<li>我懒，懒得跳槽（我忠诚度很高啊）...</li>
<li>我懒，不喜欢重复枯燥的事情（我写了 101 个自动化脚本）...</li>
</ul>
<p>如果你真这样说，我只能说：</p>
<p><img src="/_image/2016-09-09-12-14-52.jpg" alt=""></p>
<p>你要深刻剖析自己，说一些真正的缺点，不过不要说对这个岗位至关重要的。
然后再补充你的改进计划，表明你已经在行动了。
当然，前提是：</p>
<p><img src="/_image/2016-09-09-12-17-58.jpg" alt=""></p>
<h3 id="如何提问">如何提问</h3>
<p>当你听到：你还有什么问题想问我的吗？
说明什么？终于要结束了吗？是的。</p>
<ul>
<li>有可能他再不去吃饭，就只剩残羹剩饭了...</li>
<li>有可能他的「尼古丁上瘾症」发作，想出去抽根香烟了...</li>
<li>有可能他很关心朋友圈刚发的照片是不是有人点赞了...</li>
</ul>
<p><img src="/_image/2016-09-09-12-59-52.jpg" alt=""></p>
<p>总之，他想结束谈话了。那是问还是不问呢？
你要<strong>看他是不是很着急</strong>，如果不是急到马上就要尿出来的话，还是问一下吧，我建议你的问题要体现以下其中一样：</p>
<ul>
<li>对公司的兴趣</li>
<li>对面试官的兴趣</li>
<li>你思考的深度</li>
</ul>
<p>记住，<strong>这个时候面试官的脑子也不怎么转了，不要问太难回答的问题。</strong></p>
<p>以上，就是我的些许经验，希望对你有用。
期待看到你的想法！</p>]]></description><pubDate>Fri, 09 Sep 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[精明的骗子]]></title><link>https://life.seabornlee.cn/posts/%E7%B2%BE%E6%98%8E%E7%9A%84%E9%AA%97%E5%AD%90/</link><guid>https://life.seabornlee.cn/posts/%E7%B2%BE%E6%98%8E%E7%9A%84%E9%AA%97%E5%AD%90/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-18-38-52.png" alt="">
<p>2010 年左右，那时我住在回龙观附近的「北京人家」。
有天下班快到家的时候，在人行道上遇到两个打扮入时的女孩子，说她们被骗了，身无分文，只要一顿饭钱。我信了，给了 20 元钱。</p>
<p>后来在北京和深圳又遇到过几次，有时是年轻女子，有时是阿姨，但她们都用同样的开场白：“同学，问你一下好吗？”。
当然我也学聪明了，只要是这一句开场白，统统无视。</p>
<p>但我好奇的是，她们为什么要用同样的开场白，这样不是根本骗不到我这样的人了吗？她们怎么会这么笨？</p>
<p>我想了好久，终于在最近想通了。</p>
<blockquote>
<p>像我这样被骗过一次的，根本就很难再上第二次当了。
用同样的开场白，就可以将我这样的人自动过滤掉，把时间花在没被骗过的人向上，从而提高成功机率。</p>
</blockquote>
<p>果然，骗子还是很精明的。行行都是门道，切勿小看任何人。</p>]]></description><pubDate>Sat, 12 Mar 2016 21:36:27 GMT</pubDate></item><item><title><![CDATA[纸婚]]></title><link>https://life.seabornlee.cn/posts/%E7%BA%B8%E5%A9%9A/</link><guid>https://life.seabornlee.cn/posts/%E7%BA%B8%E5%A9%9A/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-18-41-52.png" alt="">
<p>亲爱的老婆：</p>
<p>今天是个特别的日子，我们的第一个结婚纪念日。</p>
<p>我们从 2003 年 10 月 25 开始，一转眼快 10 年了，
分隔两地的那一年，你没有丢下我，
沉迷游戏的那段时间，你也没有丢下我，
终于，在 2011 年 12 月 19 日，你成为了我的新娘。
小时候语文课上学的岁月如梭、如白驹过隙什么的，现在才真的体会到了。
结婚后，仿佛时间过的更加快了，用学过的那些词都不足以形容。
去年的今天，在我脑海里就像昨天一样清晰。</p>
<p>你从来不喜欢早起，那天早上，你一个人去化妆，一个人打车回家，我多想在你身边，然而这一天，我不能。
我站在你家楼下，在众目睽睽之下，用破锣嗓子高声唱着《月亮代表我的心》，引得大家一片笑声，才得以进入你家的楼；</p>
<p>又带着亲朋好友，塞了无数红包，才敲开你家的三道门，进到你的闺房中，看到坐在床上的最漂亮的你；
我想破脑袋，也找不到你的高跟鞋，又一阵软磨硬泡，才从你的闺秘口中得出；
当我抱着你走出闺房，来到客厅，一个简单的仪式，面对你的父母，说出：“爸爸妈妈放心，以后筱敏就交给我了，我会对她好的。”；
那一刻，我知道，说一句话虽然简单，但“承诺”却是要用一生来履行的。</p>
<p>细节就回顾到这里了，在今天这个特别的日子里，很 CCTV 的问一句：“你幸福吗？”
虽然记者并不关心受访者是否真的幸福，但我是真的很关心你的答案，因为这是我的承诺。</p>
<p>回首这一年，我们有许多欢笑，也闹过一些别扭。
作为一个丈夫，我必须反省，我不如以前那么有耐心，做家务也不勤快，也没有经常给你“精心的时刻”…...
你知道我学习能力很强的，希望老婆大人以后多花点时间，多点耐心，一定能把我调教成你独家专享的好老公！</p>
<p>最后，祝老婆节日快乐，天天快乐！</p>
<p>2012.12.19</p>]]></description><pubDate>Wed, 19 Dec 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[经验是智慧的障碍]]></title><link>https://life.seabornlee.cn/posts/%E7%BB%8F%E9%AA%8C%E6%98%AF%E6%99%BA%E6%85%A7%E7%9A%84%E9%9A%9C%E7%A2%8D/</link><guid>https://life.seabornlee.cn/posts/%E7%BB%8F%E9%AA%8C%E6%98%AF%E6%99%BA%E6%85%A7%E7%9A%84%E9%9A%9C%E7%A2%8D/</guid><description><![CDATA[<img src="/_image/image_2023-11-06-18-44-48.png" alt="">
<p>在培训时谈到单元测试，学员会有很多疑问，包括不认可，觉得成本过高，当然这方面我们是很有经验的，于是我们就会去和他们讲道理，期望能说服他们，却始终无法说服。
直到我们看到他们的单元测试，才知道我们说的根本不是同一个东西，他们说的单元测试是开发人员要自测，并且把案例和执行结果截图填到一个「单元测试报告」里。</p>
<p>在敏捷辅导时，团队说回顾会议没有用，如果你尝试去讲回顾会议的好处，直到他说我还有个会，留下你一人在风中凌乱。
原因在于，他经历的回顾会议可能是主持人念着 PPT，参会人对着自己的电脑做事，偶尔关注一下会议进程，最后得出的改进项往往是「加强质量意识」，「提升前端技能」等无法落地的模糊目标。</p>
<p>名可名，非「常名」。名字只是一个代号，很难表达其指代对象的全部。
我们听到任何再熟悉不过的名字时，都可以先确认一下对方说的和你想的是不是同一个东西。
清空自己，不带任何预设，充满无知和好奇。
不要被经验所束缚，过早得出结论，而是看清现实，基于现实做出思考。
如此，我们将变得更加开放和灵活。</p>
<p>当有人说「单元测试成本太高，收益太小」时，先让他打开电脑，看看 TA 说的单元测试是什么。
当有人说「回顾会议时间太长，没什么用」时，先问问：</p>
<ul>
<li>能分享一下你们是怎么开的吗？</li>
<li>你们得出了什么改进项呢？</li>
<li>这些改进项落地得怎么样？</li>
<li>有得到预期的收益吗？</li>
<li>你觉得有价值的回顾会议应该是什么样呢？</li>
</ul>
<p>我是三个孩子的父亲，孩子呱呱坠地时，都是一张白纸，会说话以后，就会不停地问为什么。
问得多了，问得深了，触及了我的知识盲区，也难免表现出不耐烦。
所以慢慢地，孩子可能形成「思考是不受欢迎的」的想法，开始接受父母和老师经验，文化传统和习俗，停止了质疑一切的独立思考。</p>
<p>按照社会既定的模式，努力读书，拼命工作，存钱买房，挣钱养家...
直到某一天，发现还是有很多困惑找不到答案。</p>
<ul>
<li>为什么拥有越多，还想要拥有更多？</li>
<li>为什么职位越高，压力越大？</li>
<li>为什么有房有车，有妻有子，依然不快乐？</li>
</ul>
<p>于是开始拥抱哲学，关注灵性成长。
佛陀说的「空性」，教练技术说的「无知，好奇」，萨古鲁说的「经验不是智慧」，《零极限》说的「一生最重要的事就是清空」，
毛主席说的「解放思想，实事求是」。
说的都是一个意思。</p>
<p>开始清空自己的记忆和经验，重新思考一切：</p>
<ul>
<li>为什么一天要吃三顿饭，睡 8 小时？</li>
<li>为什么人要上班，鸟儿不用上班？</li>
<li>如果人类也像鸟儿一样自给自足，吃饱穿暖即可，是否会更幸福？</li>
<li>公园里的鸟如果不叫，人们可能就不会去公园散步，公园就会疏于管理，就会有人去打鸟。鸟儿在公园里雀跃和鸣叫，是不是和人类达成了一种默契，其实也是在「上班」？</li>
<li>为什么自律就是早起，运动和读书？</li>
<li>为什么孩子一定要送去学校，为什么父母一定要去公司上班？</li>
<li>......</li>
</ul>
<p>所谓觉醒，或者开悟，可能就是，意识到自己正在别人设定好的轨道上「自动驾驶」。
开始设定目的地，接管方向盘，掌控刹车和电门（对不起，我开电车）。
承担责任，独立思考，积极行动。</p>]]></description><pubDate>Tue, 21 Dec 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[续 - 如何理解「教练是一面镜子」]]></title><link>https://life.seabornlee.cn/posts/%E7%BB%AD%20-%20%E5%A6%82%E4%BD%95%E7%90%86%E8%A7%A3%E3%80%8C%E6%95%99%E7%BB%83%E6%98%AF%E4%B8%80%E9%9D%A2%E9%95%9C%E5%AD%90%E3%80%8D/</link><guid>https://life.seabornlee.cn/posts/%E7%BB%AD%20-%20%E5%A6%82%E4%BD%95%E7%90%86%E8%A7%A3%E3%80%8C%E6%95%99%E7%BB%83%E6%98%AF%E4%B8%80%E9%9D%A2%E9%95%9C%E5%AD%90%E3%80%8D/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-16-58-45.png">
<p>昨天分享了我对<a href="http://www.jianshu.com/p/54d0c2abb58c">「教练是一面镜子」</a>的理解，把文章发给我亦师亦友的一位资深教练需求反馈（我称呼他周老师），我们通了一个小时电话。
周老师指出昨天的文章比较表面，没有深入谈论教练作为镜子，需要具备哪些核心能力。
于我而言，这一个小时的内容非常之宝贵，是书上学不到的，整理如下。</p>
<h2 id="镜子的核心能力">镜子的核心能力</h2>
<p>要做好一面镜子，需具备三方面的能力：</p>
<ul>
<li>描述客观事实的能力</li>
<li>洞察力</li>
<li>有意识地教练的能力</li>
</ul>
<h3 id="描述客观事实的能力">描述客观事实的能力</h3>
<p>镜子反映的是被教练者的态度、行为和现状。
举例：
<strong>描述人</strong>
主观：</p>
<blockquote>
<p>你有点心不在焉。</p>
</blockquote>
<p>客观：</p>
<blockquote>
<p>我观察到，在过去的一分钟，你看了三次手机。</p>
</blockquote>
<p><strong>描述事</strong>
主观：</p>
<blockquote>
<p>你怎么说话不算数，说了五点交报告的，现在五点十分了，报告呢？</p>
</blockquote>
<p>客观：</p>
<blockquote>
<p>你答应五点交报告，现在是五点十分，我没有收到你的报告。</p>
</blockquote>
<h3 id="洞察力">洞察力</h3>
<p>洞察力（Insight）是指透过现象看本质的能力，包括观察和分析。
主要是观察三个部分：</p>
<ul>
<li>手足</li>
<li>仪表</li>
<li>仪容
顺序是很重要的，脸要最后看，因为我们对颜值的偏执，很容易引入主观评价，从而影响对其他地方的观察。（这段是我补的）
观察过后是分析，如果一个人不停地玩弄手中的物件，可能他是紧张的，如果他的手，随着音乐节奏敲击桌面，可能他就是放松的。</li>
</ul>
<p>除了在生活中经常观察，并发现现象之间的联系，比如弹吉他的人左手指头有老茧，还可以学习如何解读微动作，微表情。</p>
<h3 id="有意识地教练">有意识地教练</h3>
<p>在教练过程中，不能陷入到客户的问题中，要意识到自己在教练过程中，当前处于哪一个阶段。
在谈话过程中，有意识地关注三条线：</p>
<ul>
<li>信息线（信息传递是否到位）</li>
<li>关系线（关系有没有按预期发展）</li>
<li>感情线（感情是否按预期变化）</li>
</ul>
<p>我对关系和感情的区别有点不理解，周老师举了一个例子：</p>
<blockquote>
<p>张三想跟李四做生意，不得已卑躬屈膝。这时候他们的生意关系是建立起来了，但感情是疏远的。</p>
</blockquote>
<p>层次低的人，靠感性建立关系，谁对我好我就跟谁亲近。
层次越高的人，越靠理性建立关系，礼数怎么样无所谓，关键是给彼此带来的价值。
所以跟层次低的人谈话，就要照顾 TA 的情感需求，跟层次高的人谈话，就要少说废话，一针见血。</p>
<p>这三条线在任何沟通中都是存在的，三条线的背后，是给对方留下三种印象：</p>
<ul>
<li>理性形象（专业度）</li>
<li>感性形象（舒适度）</li>
<li>感官形象（看到的，听到的）</li>
</ul>
<p>信息是否准确到位，语气是否让人舒服，语音语调是否合适，肢体语言是否自然，这些都会影响给对方留下的印象。</p>
<p>最后，感谢周老师毫无保留地与我分享！</p>]]></description><pubDate>Wed, 22 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[编译优化]]></title><link>https://life.seabornlee.cn/posts/%E7%BC%96%E8%AF%91%E4%BC%98%E5%8C%96/</link><guid>https://life.seabornlee.cn/posts/%E7%BC%96%E8%AF%91%E4%BC%98%E5%8C%96/</guid><description><![CDATA[<img src="/_image/image_2023-11-04-22-25-00.png">
<p>关于函数调用开销，也是很多人担心的地方。
我认为有几个点可以交流：
首先，提取函数只是消除重复的一种方式，还有其他的方式，比如以下这个例子：</p>
<p><img src="/_image/2020-03-07/325617F4-9C94-45F6-8593-A08083894D3E.png" alt="">
第二个点是，整洁易维护的代码，更有利于编译优化，比如常量折叠，方法内联等。就是在编译期的时候，像宏展开一样，将函数代码替换到调用的地方去。
对于一些方法提取，缩小了变量的作用域和生命周期，更有利于内存利用。
还有一些运行时优化，比如惰性求值，如果一个函数是纯函数，在输入参数没有变化的情况下，可以直接使用缓存的值，而进行重新运行，不仅没有方法调用，还减少了计算，提升了运行性能。</p>
<p>第三个点是，要看运行的频率。如果是底层代码，运行的频率很高，那可能会牺牲一些可读性换取可维护性，比如使用位运算等。这就要具体场景具体分析，比如咱们写的是编译器，对于大部分用户，是低频次的，但对程序员来说就是高频的，那就要区别对待，可能提供不同的版本或者参数控制。</p>
<p>第四点是，不要过早优化。对于性能优化，要在有工具支撑，数据驱动的方式下进行才最有效。
可能改进一下文件读写策略，算法，缓存，能带来大幅的性能提升，这时就可以忽略函数调用的额外开销。</p>]]></description><pubDate>Wed, 03 Mar 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[翻转课堂]]></title><link>https://life.seabornlee.cn/posts/%E7%BF%BB%E8%BD%AC%E8%AF%BE%E5%A0%82/</link><guid>https://life.seabornlee.cn/posts/%E7%BF%BB%E8%BD%AC%E8%AF%BE%E5%A0%82/</guid><description><![CDATA[<img src="/_image/image_2023-11-04-22-21-44.png">
<p>英文名称：Flipped Classroom。</p>
<h2 id="什么是翻转课堂">什么是翻转课堂</h2>
<p>翻转课堂翻转了传统的教学方法，使得学生在课堂外线上学习教学材料，在课堂上做「家庭作业」。</p>
<h2 id="翻转了什么">翻转了什么</h2>
<p>它的做法是：</p>
<ul>
<li>学生在家按自己的节奏学习教学材料，在线与老师和同学讨论</li>
<li>在教室里进行讨论和实验</li>
</ul>
<h2 id="为什么要翻转">为什么要翻转</h2>
<p>老师经年累月地重复讲解一门课程，无聊并浪费时间。
学生在家做作业，遇到问题无法及时得到帮助，容易受挫，降低学习的积极性。</p>
<p>得益于科技进步和人类学习能力的提高，我们现在可以通过自学多媒体材料学习理论概念，从而把更多的课堂时间用于进行互动和建立师生联系，让老师可以更容易帮助学生找出没有掌握的知识点。</p>
<h2 id="发展历程">发展历程</h2>
<p>2007 年，Jonathan Bergman 和 Aaron Sams 两位老师将自己的 PPT 演示过程录制下来，发送给无法到学校上课的同学，然后这些讲座视频被传播开来...直到 MOOC 兴起，与翻转课堂相辅相成。</p>
<p>在中国大学 MOOC 网站上有一门<a href="http://www.icourse163.org/course/pku-21016?tid=1001748007#/info">《翻转课堂教学法》</a>的课程，其介绍显示：</p>
<blockquote>
<p>目前这门课程已经开设过八期，累计注册人数 133730 人，获得结业证书者：14001 人，其中优秀证书获得者 8953 人。祝愿您通过自己的努力，也获得好的成绩。</p>
</blockquote>
<p>说明翻转课堂的理念已在国内广泛传播，并已有许多具备创新精神的老师在学习和实践。</p>
<h2 id="挑战在哪里">挑战在哪里</h2>
<p>相较于传统的教学方法，翻转课堂教学法对教师提出了新的挑战，这些挑战主要来自：</p>
<ul>
<li>如何制作优质的教学视频</li>
<li>如何布置自主学习任务</li>
<li>如何组织课堂学习活动</li>
</ul>
<p><a href="http://www.icourse163.org/course/pku-21016?tid=1001748007#/info">《翻转课堂教学法》</a>这门课程正好包含这些方面的内容，值得学习。</p>
<p>参考资料：
<a href="https://www.knewton.com/infographics/flipped-classroom/">The Flipped Classroom</a>
<a href="https://net.educause.edu/ir/library/pdf/eli7081.pdf">7 things you should know about flipped classroom</a></p>]]></description><pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[蔚来汽车使用访谈]]></title><link>https://life.seabornlee.cn/posts/%E8%94%9A%E6%9D%A5%E6%B1%BD%E8%BD%A6%E4%BD%BF%E7%94%A8%E8%AE%BF%E8%B0%88/</link><guid>https://life.seabornlee.cn/posts/%E8%94%9A%E6%9D%A5%E6%B1%BD%E8%BD%A6%E4%BD%BF%E7%94%A8%E8%AE%BF%E8%B0%88/</guid><description><![CDATA[<img src="/_image/image_2023-11-05-15-37-21.png">
<p>受访者：李小波，早期蔚来车主
城市：成都</p>
<h2 id="购买系能源车的初衷">购买系能源车的初衷</h2>
<p>在北京经历过雾霾特别严重的时期，所以就想买新能源车，就一直在奔波。以前是一直喜欢特斯拉，当时特斯拉只有 MODEL X，后来看到同事转发蔚来的发布会，觉得很心动，特别符合我们的需求。我们两个人就在 APP 上定了这款车，当时没有买车计划。</p>
<h2 id="是什么让你在还没有驾照的情况下就决定通过-app-来购买蔚来呢">是什么让你在还没有驾照的情况下，就决定通过 App 来购买蔚来呢</h2>
<p>第一个是科技感，对科技感的东西感兴趣，很多东西还没普及的时候去尝鲜的，可以接受产品的瑕疵
有两个小孩，考虑 7 座的车，女王副驾，体验会很好，爱人会比较喜欢，从车主的角度对爱人比较好，可以往后调可以照顾后面的小孩。
加速和刹车性能有保证，0-100 公里加速，4.4 秒。刹车是 33.5 米。我们没有横向对比过，看他宣称比较好的，用起来也很好。考虑到安全，万一有事能不能避开，能不能刹得住。（我们确实遇到过一次，中间有一个事情，我们差不多并行走。右边在修路，右边的车道有一个）。</p>
<h2 id="蔚来有什么地方可以改善的吗">蔚来有什么地方可以改善的吗？</h2>
<p>后面又出了很多款，新车出来，硬件芯片都不一样，现在很多新的东西只能在新车上用。还没计划，看到新的也会很心动，看到反应会更快，最新出的眼镜，可以在车里看电影。旧车还不支持。</p>
<h2 id="夫人的感觉和你一样吗">夫人的感觉和你一样吗？</h2>
<p>我的夫人同时学了驾照，前面一两年不怎么开，最近这一年已经很熟练，也开高速。</p>
<h2 id="大家所说的里程焦虑你的感觉如何">大家所说的里程焦虑，你的感觉如何？</h2>
<p>7 万多公里，为了解决旅程焦虑，推出了一键加电，我把车推到北京开，一键加电，一年出 12 次的，没有充电的问题。里程焦虑会在高速上比较明显的，70 度的电池，只能开到 200 多公里，就跟开油车不一样，你得提前规划，在哪里充。在高速上遇到排队，好多桩都是坏的，APP 上有评价，排队、充电线好不好，有多少个枪，多少个枪在用。</p>
<h2 id="你怎么看特斯拉小鹏和理想">你怎么看特斯拉、小鹏和理想？</h2>
<p>特斯拉 MODEL 3，我坐过，小鹏和理想我专门试驾了一下。小鹏很酷炫，玩法很多，但是硬件舒适性就差一点。理想的硬件和软件体验是很一致的，但是不是纯电的。</p>
<p>特斯拉最开始，我们去看 MODEL X 的车（还没交蔚来的时候），看内饰的时候，就看到 MODEL X 的内饰特别粗糙。现在就没有再关注了。不会考虑理想。</p>
<h2 id="是什么让你对蔚来的忠诚度这么高">是什么让你对蔚来的忠诚度这么高？</h2>
<p>蔚来很牛的一点是他们不在一个维度上（下面是几个例子）
换电站是一个很有意思的地方，竞争领先很重要的因素，一直在铺换电站，我们本来买了车位，第一批车主终身免费换电了，在市内用车不用再去充电。
活动运营也是做得很好，例如组织针对不同的群体的活动，例如针对小孩的歌舞剧，会找外面的培训机构，在蔚来车主群体里做一些活动，收一些积分，买服务会返积分，我们可以拿积分参加这些活动，小孩参加歌舞剧，爱人会有插花、狼人杀等活动。
还有一些培训，里面参加领导力的课，办理公开课，蔚来提供场地，提供几个名额，开放给车主。活动的体系。</p>
<h2 id="这是让你们换车的时候不愿意放弃的需求吗">这是让你们换车的时候不愿意放弃的需求吗？</h2>
<p>也不是那么强烈，但是这不是很理性的，就是很感性的对比。蔚来的车主形成了一个社区，会跟其他车主成为朋友。
成都和北京不一样，早期的时候，车主很少，所以大家都是比较同频的，喜欢新鲜的东西，有一些共同的特质，就会更加有一种心心相惜的感觉，经常参加活动就会碰到认识的。</p>
<h2 id="对于外界所说的驾驶新能源车时候的软件-bug-和安全性你怎么看的">对于外界所说的驾驶新能源车时候的软件 BUG 和安全性，你怎么看的？</h2>
<p>软件里面分驾驶和娱乐的东西，驾驶的部分没有那么灵活的，不会让你去修改，但是娱乐部分失去的之后也是正常开的。
安全部分一个是自燃的问题，一个是高速上自动驾驶追尾的事故。
自动驾驶用得提早的，高速上用得也很好。在配合，随时切进来随时切换。什么时候让他自己开，什么时候让他开。</p>
<h2 id="根据你的观察蔚来车主都是什么样的人群">根据你的观察，蔚来车主都是什么样的人群？</h2>
<p>我看到中年以上，有孩子。25 以上，30 岁以下，这是单身的群体，参加活动玩。35+还大一些，45 以下。
感觉蔚来车主这群人没有正经上班的人，经常在活动上，要不自己经营一个生意，或者自由职业，没有坐班的人。</p>
<h2 id="如果让你选择一条去安利给周边的人你会选择哪一条">如果让你选择一条，去安利给周边的人，你会选择哪一条？</h2>
<p>我觉得它的可玩性。我在推荐的时候，都是在有更新的时候推荐，会发朋友圈。
传统的车买了车之后就固定了，很少有升级。软件是持续在升级，硬件也可以替换。
新车采用了新芯片，我们都可以花积分去换的，都会在软件和硬件上进行升级。一帮人都反应座椅不舒适，顶棚，中控屏都可以换。很多硬件都可以替换，用积分换。</p>
<h2 id="你觉得传统车企还有机会吗什么样的情况下你会重新考虑传统车企的汽车">你觉得传统车企还有机会吗？什么样的情况下，你会重新考虑传统车企的汽车？</h2>
<p>有一个叫赛里斯，华为的汽车，华为来做这个系统，传统车企做好自己车的部分，软件上会有优势。蔚来所有东西都是自主研发会有很多问题的会有很漫长的周期去变得稳定。</p>]]></description><pubDate>Sun, 06 Jun 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[西安印象]]></title><link>https://life.seabornlee.cn/posts/%E8%A5%BF%E5%AE%89%E5%8D%B0%E8%B1%A1/</link><guid>https://life.seabornlee.cn/posts/%E8%A5%BF%E5%AE%89%E5%8D%B0%E8%B1%A1/</guid><description><![CDATA[<img src="/_image/thumb_IMG_3464_1024.jpg">
<p>在「唐城墙遗址公园」晨跑，经过一个小广场时，我被巨大的啪啪啪声吸引了。原来是两个老爷们儿在抽陀螺，抬手举鞭，随意地那么一甩，靴子抽到陀螺上，「啪」的一声，陀螺仿佛受了惊吓般一跳，转得更加卖力。我驻足看了一会儿，故意在脸上写满兴趣，较年轻的一位大哥问我要不要玩一下，我当然乐意。</p>
<p>挥鞭动作看起来简单，别说像大哥一样一气呵成，我压根都抽不到陀螺身上，它却在那儿扭来扭去，仿佛在嘲笑我，急得我满头大汗。后来慢慢找到了感觉，左右开弓，一会儿胳膊就酸了。</p>
<p>大哥把鞭子给我后就去了树荫底下，等我去还陀螺的时候才发现，原来树荫底下还放着几个形状差不多但长短粗细不一的陀螺。它们静静地在那儿倒立，听着主人们吹牛逼。仿佛在低声唱着：我就静静的看着你装 B，从来都不会打断你…</p>
<p>他们说着口音浓重的家乡话，我也听不太懂，便开始观察起陀螺来。</p>
<p><img src="/_image/thumb_IMG_3465_1024.jpg" alt="">
我小时候也玩过陀螺，不过形状却大不一样，我们玩的陀螺比较像罗老师 - 短粗胖，通常是自己用木头削的。而这陀螺显然不是自制的，整个呈圆柱体，中间是铁，有两条口子，能看到里边有两根儿电线。</p>
<p><img src="/_image/thumb_IMG_3466_1024.jpg" alt="">
底部有一个钢珠，类似圆珠笔尖，用手轻轻一压会发现有弹性，应该是起缓冲作用。顶部是木头，有三个 LED，一个充电孔和一个开关，想必是为了晚上也能出来锻（zhuang）炼（bi）。</p>
<p><img src="/_image/thumb_IMG_3467_1024.jpg" alt="">
比起陀螺的精致，鞭子就像不是亲生的一样。一根不知哪里拣来的木棍，既不直也不平，头儿上钻个小孔，橡胶绳子从中间穿过，留出与棍身差不多的长度，多余的部分在棍子上缠绕数圈，用胶布贴住。</p>
<p>拍了照片，还了陀螺，道了感谢，大哥冲我一摆手：莫撕。简简单单一句话都透露出当今浮躁社会的独立态度。
<img src="/_image/thumb_IMG_3469_1024.jpg" alt="">
走在路上，正在朋友圈分享刚刚的有趣经历，一人哼着小曲儿与我擦肩而过，后边紧随一人，冲我笑笑。二人肩上扛着一根棍子，后边拗着一个袋子，不是别的，正是陀螺。虽无印象，想必二人也是刚才树荫下的一分子。</p>
<p>来西安一个星期了，所遇之人皆给我留下非常好的印象。
陀螺，这项集运动休闲娱乐社交于一身，且低碳环保的运动方式，将西安人民「热情友善，随意不造作却也不失情趣」的生活态度体现的淋漓尽致。</p>]]></description><pubDate>Wed, 22 Jun 2016 08:37:47 GMT</pubDate></item><item><title><![CDATA[读“翻译的基本知识”]]></title><link>https://life.seabornlee.cn/posts/%E8%AF%BB%E2%80%9C%E7%BF%BB%E8%AF%91%E7%9A%84%E5%9F%BA%E6%9C%AC%E7%9F%A5%E8%AF%86%E2%80%9D/</link><guid>https://life.seabornlee.cn/posts/%E8%AF%BB%E2%80%9C%E7%BF%BB%E8%AF%91%E7%9A%84%E5%9F%BA%E6%9C%AC%E7%9F%A5%E8%AF%86%E2%80%9D/</guid><description><![CDATA[<img src="/_image/2013-07-30/18-55-47.jpg?width=160">
<h3 id="为什么读这本书">为什么读这本书</h3>
<p>对我而言，有学习翻译的需求。但网上资料不系统，个人习惯的方式是读书。
在豆瓣上搜索“翻译”后得此书，评价颇高。
认真调查后发现：</p>
<ol>
<li>这是一本入门级别的书，适合像我这样的新手；</li>
<li>作者本身是散文名家；</li>
<li>作者有丰富的教学和翻译经验；</li>
<li>此书长踞<a href="http://z.cn">亚马逊</a>翻译类图书排行榜第 1 名。</li>
</ol>
<p>综合考虑后决定读此书。</p>
<h3 id="序">序</h3>
<p>其实书中没有序，叫《重版补记》，因为我看的是“修订版”。
序中作者引用了几篇书评，体现了作者对待翻译工作的认真态度，以及在文字功夫上的造诣。
比如：</p>
<blockquote>
<p>余得请于帝焉矣。</p>
</blockquote>
<p>此句中的帝到底该译作 emperor，king，ruler，duke，lord 中的哪一个。作者是根据帝的定义来决定的：</p>
<blockquote>
<p>（1）卒葬曰帝。（见《大戴礼-诰志》）
（2）措之庙立之主曰帝。（见《礼-曲礼下》）</p>
</blockquote>
<p>可见在翻译之前，一定彻底了解原文，除了平时的知识积累，必要的时候要能快速查阅各种资料。</p>
<h3 id="一个古老的问题">一个古老的问题</h3>
<p>作者说，如果只是口头传述，没有文字，只能叫做“通译（interpret）”，只有留于文字的才叫做“翻译（translate）”。通译的历史比翻译要早很多，因为早在造字之前就有通译了。
不管在中国还是欧洲，翻译都有几千年的历史，而且翻译从古至今都不是一件容易的事，即使是翻译大家也有闹笑话的时候。
作者强调，“<strong>从事翻译工作，非精通语文者莫办。</strong>”</p>
<h3 id="约定俗成万物名">约定俗成万物名</h3>
<p>万物分为人为物和自然物。人为物是人类加工出来，如果没有人类就没有人为物，而自然物是与人类无关的，即使没有人类，自然物同样存在。而且，人类也是自然物的一种。</p>
<p>对翻译而言，自然物比较好译，因为不管是哪里的月亮都是同一个月亮，哪里的青草都是同样的青草。</p>
<blockquote>
<p>语言跟语言所表达的事物的关系，完全是任意的，是约定俗成的关系。</p>
</blockquote>
<p>只要译成对应的名称，人们在阅读时就能产生对应物品的联想。</p>
<p>比较难的是人为物的翻译，因为并不是每个民族都会制造出同一种东西。比如中国的毛笔翻译成 brush 就并不恰当，因为刷子是平的，而毛笔是有笔锋的。墨翻译成 Chinese ink 也不合理，因为墨是固体。
所以对于目标语言中并不存在的人为物，不如音译，像《楞严经》中的“楞严”就是音译。像沙发（sofa），豆腐（toufu）之类的就是音译，而不是牵强地找一个东西来和它对应。
<strong>翻译人为物时一定要格外谨慎。</strong></p>
<h3 id="有此理必有误">有此理必有误</h3>
<p>本章强调，译文一定要符合逻辑，不能让人看了有“岂有此理”的感觉。
作者举了很多例子，比如武松说“放屁！”被译成了“Pass your wind!”，放屁本是自然现象，基本不受人控制，这里译文用命令的语气，相当于强迫别人放屁，真是岂有此理。而原文中明显是“胡说”的意思，应当译为“bullshit”。
还有一个《水浒》中的例子：</p>
<blockquote>
<p>阮小七便在船内取将一桶小鱼上来，约有五七斤。（第十回）</p>
</blockquote>
<p>译文为：</p>
<blockquote>
<p>Juan the seventh then went to his boat and brought up a <strong>bucket</strong> of <strong>small fish</strong> and they were five to seven catties <strong>each</strong> in weight.</p>
</blockquote>
<p>试想一下，五斤以上的鱼还算是小鱼吗？一个桶能装许多五七斤的鱼吗？真是岂有此理。
我猜想译者可能不太清楚“斤”的概念，才会闹出这种笑话。这也提醒我们在翻译时一定要字斟句酌，不明白的就要去查资料，切忌不懂装懂。</p>]]></description><pubDate>Tue, 30 Jul 2013 11:20:11 GMT</pubDate></item><item><title><![CDATA[读《Effective Unit Testing》]]></title><link>https://life.seabornlee.cn/posts/%E8%AF%BB%E3%80%8AEffective%20Unit%20Testing%E3%80%8B/</link><guid>https://life.seabornlee.cn/posts/%E8%AF%BB%E3%80%8AEffective%20Unit%20Testing%E3%80%8B/</guid><description><![CDATA[<img src="/_image/2013-08-05/Screen-Shot-2013-08-05-at-4.14.40-PM.png?width=320">
<p>我们知道，软件的维护成本远远高于其开发成本，因为开发只占软件生命周期中极小的一部分。
软件行业唯一不变的真理就是<strong>需求总会发生变更</strong>，所以代码在写就之后的数（十）年间，会被反复阅读和修改。这就使得代码的可读性至关重要，生产代码如是，测试代码如是。</p>
<h3 id="测试极其脆弱">测试极其脆弱</h3>
<p>代码是天使与魔鬼的结合体，它既极其灵活，也极其脆弱。
灵活是因为近年来，软件能做的事越来越多，大到上天入地，小到生活起居，软件几乎无所不在。
脆弱是因为，极小的改动都能让整个软件系统瞬间崩溃（crash）。
而测试代码也是代码，所以测试也是极其脆弱的。
在我们大量编写自动化测试的时候，也要考虑到测试的这种脆弱性。</p>
<h3 id="重复是万恶之源">重复是万恶之源</h3>
<p>我们都知道 DRY 原则。为什么“重复”会成为头号公敌呢？
每重复一次，就会给理解代码造成多一分阻碍，也会使需求变更时需要修改的地方又多一处，这就增加了 Bug 潜入的机率（因为你可能会漏掉某个地方）。你肯定不希望把你的测试变成维护的恶梦吧。</p>
<h3 id="重复的定义和分类">重复的定义和分类</h3>
<p>简单来说，重复就是 copy 代码，或者有多处代码表达的是同一个概念或逻辑。
重复有多种，一种是<strong>字面上的重复</strong>（硬编码的数据或值）；一种是<strong>结构上的重复</strong>，在多处代码中出现同样的逻辑，只是操作的数据不同；还有一种叫“语义重复”，代码虽然看起来不一样，但表达的是同一个意思，这种比较难于发现。</p>
<h3 id="消除重复的方法">消除重复的方法</h3>
<p>从显而易见的重复开始入手，因为消除掉一个明显的重复之后，可能会让其它不明显的重复也变得更明显。
通过提取变量，常量或方法可以很容易地消除重复。
对于不那么容易发现的“语义重复”，可以先修改它们，把它们变成“结构重复”，再通过提取变量和方法消除结构重复。</p>
<h3 id="小心过犹不及">小心过犹不及</h3>
<p>有时候消除重复也会过犹不及，对于测试代码，我们的目标是可读性，如果保留一些重复能增加可读性的话，又何乐而不为呢？</p>
<p>参考资料：</p>
<ul>
<li>申健，独立敏捷教练和软件艺匠，天津软件社区组织者，CSM, CSP。南京大学天津校友会常委。桌面游戏和羽毛球爱好者。博客：<a href="http://blog.csdn.net/mebusw">http://blog.csdn.net/mebusw</a>，新浪微博：<a href="http://weibo.com/u/1001863751">@申导</a>。</li>
<li><a href="http://www.uml.org.cn/zjjs/200912144.asp">架构设计最佳实践之 Don’t Repeat Yourself</a></li>
<li>参考<a href="http://book.douban.com/subject/4262627/">《重构-改善既有代码的设计》</a>第六章</li>
</ul>]]></description><pubDate>Mon, 05 Aug 2013 12:20:04 GMT</pubDate></item><item><title><![CDATA[读《爱的五种语言》]]></title><link>https://life.seabornlee.cn/posts/%E8%AF%BB%E3%80%8A%E7%88%B1%E7%9A%84%E4%BA%94%E7%A7%8D%E8%AF%AD%E8%A8%80%E3%80%8B/</link><guid>https://life.seabornlee.cn/posts/%E8%AF%BB%E3%80%8A%E7%88%B1%E7%9A%84%E4%BA%94%E7%A7%8D%E8%AF%AD%E8%A8%80%E3%80%8B/</guid><description><![CDATA[<img src="/_image/2013-08-05/Screen-Shot-2013-08-05-at-6.00.22-PM.png">
<p>两性间许多误解、隔阂和争吵都是由于不了解或忽略对方的主要爱语造成的。当夫妻双方主动选择使用对方的主要爱语时，就能很好地发展彼此的亲密关系，并积极地处理婚姻中的冲突和失败。</p>
<h3 id="语言不同带来的问题">语言不同带来的问题</h3>
<h4 id="猫和狗为什么总是打架">猫和狗为什么总是打架？</h4>
<p>简单来说，猫对着你竖起尾巴，它在向你示好; 而狗对着你竖起尾巴，则有两种意思: 一是打招呼; 二是对你充满敌意。如果猫发出呼哧的声音，是希望你亲近它; 而当狗喘着粗气时，那就代表真的发怒了。 所以当猫和狗互相示好时，却会被对方“误解”成恶意。</p>
<h4 id="你爱我吗">你爱我吗？</h4>
<p>你的伴侣是否经常会问“你爱我吗？”。她（他）为什么会问这样的问题呢？因为她（他）感受不到你的爱，可能是你惜字如金，从来不说出那三个字，也可能你说了，但她（他）不相信。当你口渴的时候，其实你的身体已经缺水了。如果你明白了爱的五种语言，去“说”她（他）的爱语，你根本不会被问到这个问题的。</p>
<h3 id="爱的五种语言">爱的五种语言</h3>
<p>爱语，其实就是你表达爱的方式，也是能让你感受被爱的方式。
查普曼博士经过调查和分析，将常见的爱语总结为：肯定的言辞，服务的行动，精心的时刻，接收礼物，身体的接触。
每个人都可能有多种爱语。比如，我的爱语是肯定的言辞，服务的行动，身体的接触。也就是说，当听到老婆夸我身材好，帮我做早餐，给我拥抱，我都会很感动，会强烈地感受到她的爱意。相对而言，精心的时刻和接收礼物，就没有那么明显的效果。而对她来说，精心的时刻就非常重要。所以我会经常跟她散步，谈心。
知道对方的爱语后，主动去“说”她的爱语，她也会选择“说”你的爱语，这样你们的爱箱才会常满，爱情才会长久。</p>
<h4 id="肯定的言辞">肯定的言辞</h4>
<p>基本上少有人不喜欢听恭维的话，像我自己，只要不是特别虚伪，都会很受用。所以千万不要吝啬你的赞美。当她穿了一件新衣服或做了一个新发型，要称赞；当她早起为你做早餐，要感激；当她收拾了屋子，要褒奖；不要认为一切都是理所应当的；当她鼓起勇气尝试一件不太擅长的事，一定要鼓励。需要注意的是，赞美别人的时候，一定要具体，不要假大空，否则只会适得其反。</p>
<h4 id="精心的时刻">精心的时刻</h4>
<blockquote>
<p>“我能想到最浪漫的事，就是和你一起慢慢变老。”</p>
</blockquote>
<p>对有的人来说，专门的相处时间非常重要。比如黄昏一起散散步，睡前搂着聊聊天。总之，让她感受到你的用心，你的关心。切记，要全身心的投入，这段时间你的身体和所有注意力都属于她一个人。千万不要玩手机，看美女，心不在焉。要注意她的每一个动作，听进去她的每一句话，这样才算是精心的时刻。</p>
<h4 id="接受礼物">接受礼物</h4>
<p>下班回家路上买几支花，出差带回来一个当地特产，甚至送钻石，房子，车子。
如果你的伴侣拥有这种类型的爱语，你就千万不能错过每一个节日，恋爱纪念日，结婚纪念日，生日，情人节，妇女节，没有收到礼物就跟你急。</p>
<h4 id="服务的行动">服务的行动</h4>
<p>有的人喜欢被人服侍，喜欢有人拎包儿，喜欢有人端茶倒水，收拾屋子。我有个同事，她老婆喜欢他给按摩。如果我老婆给我做好吃的，我也会感觉很幸福。这就是服务的行动，当被人服务的时候，你会感受到对方的爱意。</p>
<h4 id="身体的接触">身体的接触</h4>
<p>身体语言也是一种语言，而且表达力强过言语。有时一个小小的举动胜过千言万语。
出门前的吻别，归家时的拥抱，睡前额头上的轻吻；难过时轻抚她的背，高兴时像爱抚猫咪一样抚摸她的头发。拥有这种爱语的人会很受用，而另一部分人却会非常反感。经常有这样的桥段，送了很多礼物，写了很多情书，表白也非常精彩，女神十分感动，然后拒绝了你，最后无计可施之下，忍不住冲动强吻了她，却得到了女神的芳心，她们就属于这种类型。这招威力惊人，不过在使用前一定要搞清楚对方是否受用。</p>
<h3 id="爱是一种选择">爱是一种选择</h3>
<p>爱是一种选择，因为出于对爱人那纯粹的爱，我们会选择用对方的主要“爱语”来表达我们的爱，哪怕需要做我们所不喜欢的事情；正是出于对爱人的爱，我们会选择不计回报的付出，只为了表达我们的爱给对方。而对方也会抱着同样的想法将她的爱回馈给你，除非她并不爱你。</p>
<h3 id="识别你的爱语">识别你的爱语</h3>
<p>一、你的配偶做什么事或者不做什么事，伤害你最深？跟这件事相反的，可能就是你爱的语言。
二、你最常请求你配偶的是什么？你最常请求的事，可能是最能使你感觉到爱的事。
三、你通常以什么方式向你的配偶表示爱？你表示爱的方法，也许显示它会使你感觉到爱。
四、在线测试</p>
<ul>
<li><a href="http://www.xinli001.com/ceshi/780/">中文版-女士</a></li>
<li><a href="http://www.xinli001.com/ceshi/784/">中文版-男士</a></li>
<li><a href="http://www.5lovelanguages.com/">英文版</a></li>
</ul>
<h3 id="结束语">结束语</h3>
<p>其实爱的五种语言并不局限于婚姻。掌握到别人爱语，你的社交生活会如鱼得水，也能让你更好地和家人，同事相处。</p>]]></description><pubDate>Wed, 07 Aug 2013 21:58:20 GMT</pubDate></item><item><title><![CDATA[跑起来]]></title><link>https://life.seabornlee.cn/posts/%E8%B7%91%E8%B5%B7%E6%9D%A5/</link><guid>https://life.seabornlee.cn/posts/%E8%B7%91%E8%B5%B7%E6%9D%A5/</guid><description><![CDATA[<img src="/_image/2013-07-28/1c2736818fc51b436a1f4b63ddb0bf27.jpeg?width=640">
<p>人生就像一场游戏，为了让这游戏更有趣，我在生涯模式里给自己设定了很多目标，就在今天我达成了一个新的成就。</p>
<h3 id="新的成就">新的成就</h3>
<p>2012 年的目标之一是“完成 10 公里”，眼看今年过去一半儿了，一共也没跑过几次，且每次都是 5 公里左右，
其实每次跑完 5 公里身体并没什么感觉，只是因为无聊才跑不下去，为了解决这个问题，我还特意买了 iPod nano，
这样可以一边跑步一边听小说，mp3，相声之类的，当然也发现了一些适合跑步的音乐，跟着那种节奏感，跑的确实舒服一些。
其实如果只是听的话，普通的 mp3 播放器就可以了，为什么选择 nano 呢？
第一因为我是果粉嘛，第二就是它里边带有 Nike plus，
可以自动记录每次练习的距离啊，时间啊，热量啊等信息，就像上图那样。
而且连接 itunes 后还可以自动上传到 nike plus 网站，可以制定训练计划，和别的跑友互动等，给跑步带来了更多的乐趣。
万事俱备之后，我选择了一条新的跑道，到陌生的小区去跑。果然，我坚持下来了，跑了 4 个小区，完成了我生涯中的第一个 10 公里。</p>
<h3 id="过去">过去</h3>
<p>回想中学时期，每次体育考试 1000 米，都会把我累半死，跑完总是头晕目眩，半天说不出话。
高中开始想要强健体魄，一直坚持做俯卧撑。
近两年意识到，除了做肌肉训练，还得练心肺功能，内外兼修才是王道。
而且腰上也不争气地开始堆积脂肪，要解决这两个问题，我的首选其实是游泳。
因为从小在河边长大，和水有一种说不清的亲切感。
不过现在游泳确实不怎么方便，只能退而求其次，所以我决定要跑步。
刚开始跑的时候，跑不出 1 公里，小腿前部就会格外的痛，像灌了铅一样的重，
上网查询后据说是缺钙，半信半疑地也喝了好些高钙牛奶，直至喝出三聚氰胺。</p>
<h3 id="现在">现在</h3>
<p>最近几个月生活比较规律，老婆每周末都会去上课，而我也会一起早起送她到地铁站，然后开始跑步。
没想到跑着跑着，腿不痛了，而且我每次跑完心率都不是很高，呼吸也没有急促，看来下一步应该提高速度了。</p>
<h3 id="未来">未来</h3>
<p>下半年将 5 公里控制在 20 分钟内。
明年的目标是“半程马拉松”，后年就可以全程了，
我的终极目标 TNF100 公里，这辈子一定要完成。</p>]]></description><pubDate>Sun, 01 Jul 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[这两本书改变了我的职业生涯，推荐给你]]></title><link>https://life.seabornlee.cn/posts/%E8%BF%99%E4%B8%A4%E6%9C%AC%E4%B9%A6%E6%94%B9%E5%8F%98%E4%BA%86%E6%88%91%E7%9A%84%E8%81%8C%E4%B8%9A%E7%94%9F%E6%B6%AF%EF%BC%8C%E6%8E%A8%E8%8D%90%E7%BB%99%E4%BD%A0/</link><guid>https://life.seabornlee.cn/posts/%E8%BF%99%E4%B8%A4%E6%9C%AC%E4%B9%A6%E6%94%B9%E5%8F%98%E4%BA%86%E6%88%91%E7%9A%84%E8%81%8C%E4%B8%9A%E7%94%9F%E6%B6%AF%EF%BC%8C%E6%8E%A8%E8%8D%90%E7%BB%99%E4%BD%A0/</guid><description><![CDATA[<img src="/_image/2017-02-25-07-23-51.jpg">
<p>我在 2015 年离开 ThoughtWorks 公司， 加入 <a href="http://shenzhenware.com/">ShenzhenWare</a>，又在 8 个月后回到 TW，跟两本书关系极大。
它们是：</p>
<ul>
<li><a href="https://book.douban.com/subject/10799765/">《优势识别器 2.0》</a></li>
<li><a href="https://book.douban.com/subject/26932666/">《发现你的职业优势》</a></li>
</ul>
<p>两本书都属于盖洛普系列，盖洛普是何方神圣呢？</p>
<blockquote>
<p>乔治·盖洛普（Gallup GeorgeHorace，1901—1984）是美国数学家，抽样调查方法的创始人、民意调查的组织者，他几乎是民意调查活动的代名词。</p>
</blockquote>
<p>盖洛普的机构，因为成功连续预测美国总统大选而声名大噪。</p>
<h2 id="什么是优势运动">什么是优势运动</h2>
<p>盖洛普系列的基础是优势理论：</p>
<ul>
<li>人的精力是有限的</li>
<li>精力投入在哪里，成果就在哪里</li>
<li>之所以有长板和短板，跟你的兴趣有很大关系，短板往往不是你的兴趣所在</li>
<li>提升长板会更有兴趣和成就感，而且效率更高</li>
</ul>
<p>受木桶理论的影响，以前我认为人的一生就是不断补足自己的短板。
而优势运动却告诉我们，长板决定了团队的上限。
在团队中，每个人可以避开短板，找优势互补的人合作。</p>
<p>这让我想起，以前有个咨询师同事，经常被吐槽 PPT 做的很烂，但他根本不在乎，他知道自己的长处在哪儿，客户也为他的长处买单，而不是他的 PPT。</p>
<h2 id="发现你的优势">发现你的优势</h2>
<p>2015，TW 筹建深圳办公室，内部竞聘办公室负责人，我也报名了。
第一轮，HR 就发了这么一本书，让所有候选人做测试。
<img src="/_image/2017-02-25-07-21-05.jpg" alt="">
这本书售价 128 元，当时第一反应是，怎么这么贵。
书里的文字不多，除了前面优势运动的介绍，都不用看。</p>
<p>优势运动把人的天赋优势归结为 34 个主题。书的最大作用是，里边有个线上测试的验证码。
我拿着这个验证码登录到官网，做了接近两百道选择题。
然后系统计算出我的五大优势，生成一个报告：</p>
<ul>
<li>行动</li>
<li>交往</li>
<li>积极</li>
<li>战略</li>
<li>沟通</li>
</ul>
<p>当时，我工作不是很顺利，正好朋友创业拿到了天使投资，邀请我做技术合伙人。
我一看，我的五个优势不正适合创业吗？</p>
<blockquote>
<p>创业你得制定<strong>战略</strong>，采取<strong>行动</strong>，用<strong>积极</strong>的态度影响他人加入，和内外各种角色<strong>交往</strong>，建立<strong>关系</strong>。</p>
</blockquote>
<p>后来，我就去创业了。</p>
<h2 id="发现你的职业优势">发现你的职业优势</h2>
<p>到了 2016 年，创业并不如当初想像的那么顺利，公司业务往媒体和活动策划方面调整。感觉技术对于公司发展并无太大帮助，工作上没有什么成就感。
当时出于研究社区类产品增长的目的，业余创立了<a href="https://codingstyle.cn/">软件匠艺社区</a>，然后我从社区分享和组织活动中，获得了极大的成就感。发现了我对培养人的兴趣，我就想要不我去全职搞社区吧。
后来不知道什么机缘，发现了一本书：
<img src="/_image/2017-02-25-07-41-59.jpg" alt="">
它把人的职业归为 9 类，我测出来是最适合我的职业是：激励师和教师，对团队最大的价值就是传播学习的能量。
<img src="/_image/2017-02-25-07-23-51.jpg" alt="">
这更加肯定了我的想法。然后我就加入了目前这个团队，半年多来，事实也证明，我很享受现在做培训、教练的工作。
从学员和同事的反馈中，也证明了我擅长做这件事。
<img src="/_image/2017-02-25-07-40-21.jpg" alt=""></p>
<hr>
<p>以上两本书颠覆了我的认知，影响了我的职业选择。
我也真心地推荐给你，希望对你有所启发~</p>]]></description><pubDate>Sat, 25 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[通过阅读成长]]></title><link>https://life.seabornlee.cn/posts/%E9%80%9A%E8%BF%87%E9%98%85%E8%AF%BB%E6%88%90%E9%95%BF/</link><guid>https://life.seabornlee.cn/posts/%E9%80%9A%E8%BF%87%E9%98%85%E8%AF%BB%E6%88%90%E9%95%BF/</guid><description><![CDATA[<img src="/_image/image_2023-11-04-21-33-31.png">
<p>核心价值：帮助大家通过阅读得到成长</p>
<p><strong>理念来源</strong></p>
<p>一开始只是想做一个图书共享平台，减少同一个企业内员工重复购买相同书籍造成的金钱浪费。</p>
<p>但仔细想想，人为什么要读书呢？</p>
<p>虽然有的人读书是为了装 13，但我认为大部分人是为了学习知识，增强理解力，而最终目的是对自己的内心或行为产生影响，从而获得“成长”。</p>
<p><strong>通过阅读获得成长</strong></p>
<p>如果一个人想要通过阅读获得成长，他通常会经历以下几个环节：</p>
<p>1、知道要读什么–书单</p>
<p>2、获取阅读材料–购买，下载，借阅</p>
<p>3、读的过程–产生笔记，思考</p>
<p>4、行动计划–TODO</p>
<p>5、总结，分享经验</p>
<p>“知易行难”，理论指导实践，实践检验理论</p>
<p>通过分析每一阶段存在的痛点，提炼出用户的核心需求，</p>
<p>再结合自身情况，对需求进行优先级排序，在产品中实现这些功能，使产品能满足这些需求，以实现“帮助用户通过阅读得到成长”的目标。</p>
<p>能做的事情有：</p>
<p>书单，借阅，下载，购买，笔记，评分，个人成长主页，书的主页，报表，虚拟学习顾问等。</p>
<p>**  角色提炼**</p>
<p>虚拟学习顾问</p>
<p>游客</p>
<p>贡献者</p>
<p>借阅者</p>
<p>管理员</p>
<p><a href="https://github.com/hkliya/Book-Sharing-System">Fork Me</a></p>]]></description><pubDate>Tue, 04 Dec 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[重要的事情说三点 - 一种有效的思维训练]]></title><link>https://life.seabornlee.cn/posts/%E9%87%8D%E8%A6%81%E7%9A%84%E4%BA%8B%E6%83%85%E8%AF%B4%E4%B8%89%E7%82%B9%20-%20%E4%B8%80%E7%A7%8D%E6%9C%89%E6%95%88%E7%9A%84%E6%80%9D%E7%BB%B4%E8%AE%AD%E7%BB%83/</link><guid>https://life.seabornlee.cn/posts/%E9%87%8D%E8%A6%81%E7%9A%84%E4%BA%8B%E6%83%85%E8%AF%B4%E4%B8%89%E7%82%B9%20-%20%E4%B8%80%E7%A7%8D%E6%9C%89%E6%95%88%E7%9A%84%E6%80%9D%E7%BB%B4%E8%AE%AD%E7%BB%83/</guid><description><![CDATA[<img src="/_image/2017-03-15-22-12-05.jpg">
<p>有的人讲话重点清晰，有的人说半天你不知道他在说什么。
有的文章让人拍案叫绝，而有的却给人胡乱堆切文字的感觉。
有的演讲振聋发聩，而有的却不知所云。</p>
<p>为了提高沟通，写作和演讲的技能，很多人去学习肢体语言，眼神接触，修辞手法，PPT 制作。
但效果不明显，因为其实我们缺乏的是一种能力：结构思考力。</p>
<p>我们身处的这个世界，正以极快的速度在变化，知被不断被刷新，知识的有效期在不断缩短。
这个时代比拼的，不是你已经掌握了多少知识，而是你学习速度。
而有了百度和谷歌，每个人都可以方便快速地获取知识，所以比拼的重点变成了<strong>理解，加工，输出知识的速度</strong>。
提升思考力，可以让我们更快地理解新知识，更好地存储和加工，更好地表达和呈现。</p>
<h2 id="什么是结构思考力">什么是结构思考力</h2>
<blockquote>
<p>万事万物都有结构，思考也有结构。</p>
</blockquote>
<p>结构化思考，其实就是：<strong>先框架后细节，先总结后具体，先结论后原因，先主要后次要</strong>。
你可能会说，这不就是「金字塔原理」吗？没错。
国内有个李忠秋老师，他写了两本书《透过结构看世界》，《结构思考力》，还翻译引进了《重要的事情说三点》。这三本书分别从理念、方法和行为的角度解释了金字塔原理，让它变成是人人都可以学会的思考技术。</p>
<h2 id="如何提升结构思考力">如何提升结构思考力</h2>
<p>昨天我阅读了一部分《重要的事情说三点》，在给学员讲课的时候试验了一下。学员以团队的形式在进行模拟项目，进行到拆分用户故事的阶段，我邀请有经验的同学给大家分享一下，两位学员讲了目的、格式等一些细节，我在听的过程中就在思考要怎么提炼成三点，于是我想到：角色，格式和原则。</p>
<ul>
<li>从角色出发：系统中有老师和学生两个角色</li>
<li>用户故事的格式："As a (role), I want (goal/desire) so that (benefit)"</li>
<li>原则：INVEST</li>
</ul>
<p>当我这样讲出来的时候，感觉自己更有信心，学员也更容易理解。
这就是结构的魔力。</p>
<p>重要的事情只说三点，给了我很大的启发，我们可以让学生在平时的总结和表达时，只说三点，这样逼着他们去提炼总结，去思考从什么维度讲，才能用三点说清楚。当然，每个小点下面又可以包含三点，逐层细化。
这也是电梯演讲的秘密，当你的时间有限时，你只能挑最顶层的三点来讲，而不是直接进入细节。如果只有十秒钟，你只能说最顶层的三点，如果有三分钟，可以说到第二层，如果是十分钟，就可以全部说完。
这么说可能有点抽象，我来举个例子：</p>
<p>问：你是怎么来的西安？
非结构化的表达是：</p>
<blockquote>
<p>我在家里打了个滴滴，但因为停电只能走楼梯下楼。出来后才知道那个司机是个新手，找不到我的位置，费了好大劲才上了车，路上经过了 5 个红绿灯，到了机场，我先打印了登机牌...</p>
</blockquote>
<p>结构化的表达是这样：</p>
<blockquote>
<p>我打滴滴到双流机场，飞了 1 个多小时到咸阳机场，出来打了个出租到酒店...</p>
</blockquote>
<p>这就是先总结后具体，先主要后次要。
你可能会问，如果只有两点怎么办？非要凑出三点来吗？
不是的，限制三点是逼着你去提炼，三是个上限，如果是两点也没关系。</p>
<p>我们每个人都应该学习思考的技术，提升学习，理解，输出的速度和质量。</p>]]></description><pubDate>Wed, 15 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[需求变化是唯一不变的事]]></title><link>https://life.seabornlee.cn/posts/%E9%9C%80%E6%B1%82%E5%8F%98%E5%8C%96%E6%98%AF%E5%94%AF%E4%B8%80%E4%B8%8D%E5%8F%98%E7%9A%84%E4%BA%8B/</link><guid>https://life.seabornlee.cn/posts/%E9%9C%80%E6%B1%82%E5%8F%98%E5%8C%96%E6%98%AF%E5%94%AF%E4%B8%80%E4%B8%8D%E5%8F%98%E7%9A%84%E4%BA%8B/</guid><description><![CDATA[<img src="/_image/image_2023-11-04-21-24-21.png">
<h2 id="需求变化是有害的">需求变化是有害的</h2>
<p>星期五下午 4 点，陈旭已经差不多干完了计划的活儿，心理盘算着明天和大学室友老汉约球的事儿。
在面试的那段时间，陈旭一度很羡慕老汉，同样大学毕业，陈旭长了张娃娃脸，而他的头顶已经有「资深」程序员的特征了，于是拿到的 Offer 都比陈旭多。
他俩先后找到了心仪的工作，从那以后，虽然还在同一个城市，但他们已经好久没见过面了，约了几次，不是临时陈旭有事，就是老汉有事。
陈旭心想这次终于约上了，一定要跟老汉痛痛快快地打一场球。</p>
<p>“叮叮......”
耳机中传来办公 IM 的声音，将陈旭从思绪中拉了回来。
“各位伙伴，两个事情跟大家同步一下，很遗憾 #602 需求取消，#739 需求有紧急变更，需要赶在下周三的窗口投产，按照惯例，周一要封版进行两天的回归测试，虽然有挑战，但我相信大家合理安排工作时间，奋力拼搏，一定可以战胜困难！”</p>
<p>“这不摆明让 LZ 加班吗？！”
陈旭心里大骂，还不解气，狠狠踹了主机箱一脚。主机发出「滋滋」声表示抗议。
“都特么什么年代了，还在用 6G 内存的电脑，连固态硬盘都没有...”</p>
<p>领导都暗示的这么明显了，显然晚上和明天都要献给工作了。
陈旭开始怀疑当初为什么要填报计算机专业，当初「用代码改变世界」的梦想还能实现吗？
陈旭只能给老汉发个微信说要加班，能不能改到周日见面。还好老汉也是程序员，表示很理解陈旭的处境，答应了他的提议。</p>
<p>陈旭知道每一次需求紧急变更都是噩梦的开始，加班加点已经让陈旭头昏脑涨，没有时间也没有精力去思考优雅的设计方案，代码规范也只能靠边站。
在时钟即将指向凌晨 12 点时，陈旭终于按新需求改完了所有代码，启动应用，简单跑一下，修复了几个明显的错误。
完整的测试还是交给测试团队的同事明天测吧。如果专业的测试都测不出来，那可怪不到我头上。
陈旭敲下回车，提交代码，伸个懒腰，心满意足地回家了。</p>
<p>周六早上 11 点，陈旭嚼着鸡蛋灌饼来到公司，打开电脑，等待电脑启动的时候，陈旭习惯用手机浏览了一会儿关注的技术公众号，每天层出不穷的开发框架让陈旭无所适从，工作中重复的增删改查让他对未来充满危机感，知识不成体系，什么都会一点儿，什么都谈不上精通，到底该学什么才能保值增值？
懒得去想了，陈旭放下手机，在早已启动好的电脑上登录「项目协作系统」。打开「我的工作台」，测试人员已经指派了几个 Bug 给他。
陈旭开始和 Bug 玩捉迷藏游戏，调试，定位，修复，重新部署，反复几次，终于修完了所有 Bug，然后代码已经不忍直视了，有一瞬间，陈旭很想重构一下，但一想时间这么紧，改完我还得测试一遍，关键测试数据还这么难造，而且就算我测完，测试同事也不放心，还得重新测一遍，陈旭可不想当那个坏人。他瞅一眼显示器下面的《重构》和《代码整洁之道》，又瞅一眼刚刚改完的一屏都无法安放的长方法，感叹理想和现实的距离就像哈尔滨到三亚那样远。</p>
<p>陈旭觉得加班，缺陷增多，代码质量腐坏，这一切的源头都是因为需求变化，陈旭很想知道如何才能脱离苦海，但是身边又没有人可以讨论这个话题，于是陈旭想起最近关注的一个公众号「小波老西」，他是一位程序员，敏捷教练，还是三个孩子奶爸。据说 30 出头的年纪已经年入百万，最让人羡慕的是，发际线还依然坚挺。
虽然陈旭不知道敏捷教练具体是干什么的，但陈旭这几年也参加过几次「敏捷软件开发」的培训，大概是缩短交付周期，提升研发效能，改进产品质量。
好像他周六在郑州敏捷之旅有个分享，要不去听听看，说不定能解决疑惑呢？</p>
<p>于是陈旭打开「小波老西」的公众号，留言提问：
“小波老西，你好，为什么需求老是变？程序员要如何应对需求变化呢？”</p>
<p>第二天睡到 10 点，匆匆赴约，和老汉到了球场，工作关系，久坐不动，体力也大不如前，几个半场打下来，喘的像狗一样，已经蹦不过年轻人了，趁兴而去，败兴而归。
他们决定去喝点小酒，谈谈心，一起回忆大学时光，一起感叹曾经的精神小伙，如今已经有了大叔模样。
饭桌上谈起需求变更的问题，老汉也是深受其害，无能为力。</p>
<p>下午 4 点，陈旭回到家中，收到微信一条微信通知，打开一看，难道小波老西这么快就回复了？</p>
<h2 id="需求变化的常见原因">需求变化的常见原因</h2>
<p>你好呀，谢谢你的提问，需求变化是程序员面对的最大的苦恼了，我也曾经深受其害。
值得开心的是你已经意识到了其危害，并作出积极的努力去应对。
我分享一点我的想法，希望能对你有所帮助。
首先要接受一个事实就是「这个世界上唯一不变的就是需求一直在变」。
因为抱怨需求变化是没有任何积极作用的，而且这样做会让你把责任都推给别人，就是说我没问题，都是业务分析师的问题，是产品经理的问题，是用户的问题。他们说不清楚自己要什么，甚至自己都没有想清楚自己要什么。
对了，他们就说不清楚，甚至自己也没想清楚。</p>
<p>前不久，我老婆的堂兄，也就过年一起吃过几次饭，跟其他兄弟一起灌过我酒，平时没什么交集，给我发来一条消息：</p>
<blockquote>
<p>小波，什么时候有空，我想做抓取网页上的数据的小程序，网页地址：https://xxxxxx</p>
</blockquote>
<p>很多程序员的思维方式是，一收到需求，就开始想怎么去实现，开始考虑技术细节，然后你提出来的疑问，需求人员根本不懂，就没法聊了。
我收到这个需求，我首先判断这是一个「功能需求」，做一个抓取网页数据的小程序。
我要先挖掘他背后的「用户需求」，而不是立马开始去想这个小程序要用什么技术去实现。</p>
<p>这种「一句话需求」，如果你拿着这种需求就开始去干，就会遇到很多问题，然后你想去确认需求，又发现对方很难有时间跟你及时澄清细节。就像鸽子飞到广场上拉了一泡屎就飞走了，所以我们称其为「鸽子需求」。</p>
<p>这时我就给他打语音电话了，我为什么要打电话而不是发文字消息呢？
程序员都有个毛病：</p>
<ul>
<li>能文字沟通就不语音沟通</li>
<li>能语音留言就不电话</li>
<li>能电话沟通就不见面
越不擅长沟通的程序员，越喜欢用异步的沟通方式，殊不知这样沟通效果最差，也无法锻炼到沟通能力。
我打过电话去，首先要搞清楚几个问题：</li>
<li>要完成什么工作？</li>
<li>完成工作的过程中遇到了什么问题？</li>
<li>没有程序的时候，是怎么解决这个问题的？</li>
<li>有了这个程序，能带来什么好处？</li>
</ul>
<p>通过这些问题，我知道了他是在采用一种「小仓位 xxx」的短线投资方式，需要选股，这个网站提供了一些数据，他要把这些数据手工添加到一款股票软件里面去分析。</p>
<p>用户最了解的是自己的场景，任务和问题。不了解的是技术能做到什么，能如何帮助他们解决问题。
所以他们提出的需求往往是不靠谱的。
如果你按照他提的需求去做，你就是个工具人。最后做出来的东西，不满足他的需要。
这就是为什么需要产品经理，业务分析师，在程序员和用户中间，架起一座桥梁。
把用户的「一句话需求」细化成可以落地的「功能需求」。</p>
<p>但是，我们要知道：</p>
<ul>
<li>你理解的不一定是业务分析师想表达的</li>
<li>业务分析师理解的不一定是产品经理想表达的</li>
<li>产品经理理解的不一定是用户想表达的</li>
<li>用户表达的也不一定是用户真正需要的</li>
</ul>
<p>2015 年我创业时，团队里有一位工程师，很有产品思维，每一个需要都关注用户价值，但有点过犹不及，一定要让产品经理证明其价值，产品经理没办法证明。下一个星期，我就让他去做跟用户沟通，做需求分析，他就理解了：所有的需求都是假设。</p>
<ul>
<li>假设用户痛点真的存在</li>
<li>假设我们的方案能解决用户的痛点</li>
<li>假设我们能在时间，成本，质量等约束下实现方案</li>
<li>假设方案实现后，用户会选择我们的方案</li>
</ul>
<p>需求变更，往往是发现前面的假设不成立。</p>
<ul>
<li>找错了用户痛点</li>
<li>痛点确实存在，但我们的方案没有解决用户的痛点</li>
<li>我们无法按原计划实现我们的方案</li>
<li>我们的方案确实能解决问题，但没有竞争对手做得好，导致用户不愿意使用</li>
</ul>
<p>接受了「需求都是假设」这个前提，我们就不再执着于得到「确定的需求」。
而是反过来去思考：</p>
<ul>
<li>如何才能快速低成本地验证假设？</li>
<li>如何降低需求变更带来的成本和风险？</li>
</ul>
<p>第一个问题的解决方案是《精益创业》思想中的「快速试错」，要找出 MVP（Minimal Viable Product），先把主流程跑通，尽早地把产品推向市场（缩短 Time-to-Market），看看用户真实的数据反馈；
2014 年我辅导过一个做 P2P 的客户，P2P 的核心就是出借人放款，借款人借钱和还钱。当时为了尽早把产品推出来，抢占市场。我们做出了一个大胆的决定，在做完借钱功能，还没有还钱功能的时候，就上线了。
为什么呢？因为从业务规则上来讲，用户借钱后要至少 30 天后才会进行第一次还款。我们没有必要在借钱功能开发完后，再多等半个月甚至一个月去把还钱功能做完才上线。因为那样会损失很多潜在用户。</p>
<p>而上线借钱功能后，我们有 30 天时间去开发还钱功能，哪怕开发不完，我们通过客户帮助，通过传统的银行转账也是可以还款的。
但我们有信心开发完，因为我们会做简化。一般还款都支持多种渠道，比如银行转账，那又需要对接多家银行；比如第三方支付渠道扣款；我们没有必要对接完全部的银行和第三方才上线
举一个更极端的例子，当时我们的登录界面上和其他 App 一样，有注册，登录，找回密码功能。
找回密码这个功能，什么时候会用的比较多呢？长时间不登录，才容易忘记密码对吧。
刚线上的产品，新注册的用户，应该不会有很多人会去找回密码。
而找回密码的开发成本呢？
安全问题找回密码，比如：</p>
<ul>
<li>你幼儿园所在的街道叫什么名字？</li>
<li>你邻居家的宠物的性别？
安全邮箱找回秘密；
手机验证找回密码；
如果要做全，开发加测试，可能又是一星期的工作量。
你猜我们最终怎么做的？
我们在用户点击找回密码时，弹出系统拨号盘，给客服打电话，客服帮你重置成默认密码。</li>
</ul>
<p>这样的例子不胜枚举，最终这家公司现在已经成长为一家金融科技独角兽。</p>
<p><strong>如何降低需求变更带来的成本和风险？</strong>
这个问题的解决方案是「极限编程」中的「简单设计」和「测试驱动开发」。
过度设计的软件，会变得结构复杂僵化，修改起来成本就很高。
简单设计定义了 4 条原则：</p>
<ul>
<li>通过所有测试</li>
<li>没有重复</li>
<li>表达意图</li>
<li>最少程序元素
从上到下，优先级逐渐降低。
通过所有测试，就是要满足功能需求。也就是说不能为了保持简单而不实现功能。
没有重复，因为重复是万恶之源，会导致后期变更时要修改多个地方，漏掉的话就是缺陷。
表达意图，方法，变量的命名都要体现出意图，尤其是要体验出业务领域里面的用词。
比如代码里有一行：</li>
</ul>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">if (user.getOrgId().equals(org.getId())) {</span></span>
<span class="line"><span style="color: #c9d1d9">    // do something</span></span>
<span class="line"><span style="color: #c9d1d9">}</span></span></code></pre>
<p>而需求里的描述是：</p>
<blockquote>
<p>当用户属于该机构，就...</p>
</blockquote>
<p>那么这段代码就缺少了「属于」这个概念，可以被重构为：</p>
<pre is:raw="" class="astro-code" style="background-color: #0d1117; overflow-x: auto;"><code><span class="line"><span style="color: #c9d1d9">if (user.belongsTo(org)) {</span></span>
<span class="line"><span style="color: #c9d1d9">    // do something</span></span>
<span class="line"><span style="color: #c9d1d9">}</span></span></code></pre>
<p>最后一条，最少化程序元素。
程序元素就是类，接口，方法，常量，变量，参数等等，越多就表示程序员越复杂，在满足前面 3 天的前提下应尽量减少。</p>
<p>程序员为什么不喜欢需求变更，因为变更让我们压力很大。
什么压力呢？就是怕搞出缺陷。
其实大部分的缺陷不是写代码的时候写出来的，因为每次写代码，改代码，起码还是会把当前这次的需求都自测一下的，就算程序员没有自测，测试同学也会测试一下的。
但是，我们在实现新功能的时候，也很有可能影响已有的功能，这时候程序员就难以全量回归测试了，因为一是已有的需求不一定都清楚，而是造数据很复杂，耗费的时间很多，而工期又很短。所以这时候往往会寄希望于后续的测试环节。而且，心里会想，如果上线后除了问题，那也不是我的问题，毕竟专门做测试的测试团队都没有测出来......
而测试同学就苦了，就会去问开发同学，你这次改动会影响哪些功能，你告诉我我重点测试一下。开发同学会怎么回应呢？</p>
<blockquote>
<p>保险起见，你最好还是全部重新测一遍吧。</p>
</blockquote>
<p>但是全部回归一遍需要时间啊，所以团队响应变化的能力就越来越差。</p>
<p>那怎么减少这种担心搞坏之前功能压力呢？
那就是自动化测试，包括单元测试，接口测试，端到端测试等。
这里重点说单元测试，如果程序员采用「测试驱动开发」的方式写代码，先写测试用例，测试运行失败，再写产品代码让失败的测试用例通过，再看看代码有没有可以优化的地方，就可以保证代码的整洁，设计的优雅，并且得到接近 100%的单元测试覆盖率，那样就可以在需求变更不小心引入缺陷时，被之前的单元测试捕获到，从而第一时间发现和修复缺陷。</p>
<p>还有一种可怕的变更，是优先级变更，就是计划本来都做好了，突然插入一个紧急的需求，为啥这么紧急呢？因为是「老板」提出来的。
这时就会打断团队的节奏。这种叫「河马」需求，谁嘴巴大就听谁的。</p>
<p>这种呢，我们也不能一味抱怨，也要想办法积极应对。
比如：</p>
<ul>
<li>定期跟老板沟通，看看老板有什么新想法</li>
<li>做计划前过一下需求池里面的所有需求，看看有没有什么需求变得紧急了</li>
<li>尽量把任务拆小，采用小步提交的方式，保持编码工作区干净，减少任务切换的成本</li>
</ul>
<p>最后，我了解到大舅哥用的那款软件支持用 XML 导入的方式，所以让他给了我一个模板，我抓取完数据后直接填充到模板里，给他提供了一个 URL，他一打开就会自动下载当天的数据文件，导入进去使用，大舅哥很满意，过年吃饭应该不会灌我酒了，哈哈。
就聊到这里，我带孩子去公园了。</p>
<h2 id="总结">总结</h2>
<p>看完了小波老西的回复，陈旭觉得收获很大，但他知道必须要思考和应用，才能解决实际问题，于是他做了如下总结：
需求的三个层次：</p>
<ul>
<li>业务需求 - 要赚多少钱</li>
<li>用户需求 - 要解决哪些人遇到的哪些问题</li>
<li>功能需求 - 用什么方式来解决，用什么形式来交互</li>
</ul>
<p>需求的本质是假设：</p>
<ul>
<li>假设用户痛点真的存在</li>
<li>假设我们的方案能解决用户的痛点</li>
<li>假设我们能在时间，成本，质量等约束下实现方案</li>
<li>假设方案实现后，用户会选择我们的方案</li>
</ul>
<p>需求变化的原因：</p>
<ul>
<li>鸽子需求和河马需求</li>
<li>用户痛点没找对或发现新痛点</li>
<li>方案不能解决痛点</li>
<li>方案无法在约束条件下实现</li>
<li>体验优化</li>
</ul>
<p>如何应对需求变化：</p>
<ul>
<li>跳出功能需求，挖掘用户需求和业务需求</li>
<li>延迟决策，尽量晚定细节，这样能留出更多时间来接受变化</li>
<li>采用简单设计，提高设计能力，降低扩展成本</li>
<li>采用测试驱动开发，降低变更风险</li>
</ul>
<p>突然，陈旭觉得眼前一黑，抬头看向窗外，原来是太阳穿过了云层，树的影子跑到了书桌上。
陈旭眉头舒展，嘴角露出久违的笑容，仿佛生活又充满了希望。</p>]]></description><pubDate>Thu, 11 Nov 2021 00:00:00 GMT</pubDate></item></channel></rss>