xiaoyuer / the_story_of_time

1 stars 0 forks source link

开智Python #2

Open xiaoyuer opened 9 years ago

xiaoyuer commented 9 years ago

Day 02 开智专栏

零基础学编程?Python 中文社区创始人给你五个建议

大妈

zoomquiet.io Python 中文社区联合创始人

建议一:教是最好的学

传统教育把所有人召集到一个屋子内,定时定期上课,营造氛围,而基于互联网的开智学院没办法也没必要也弄出一个这样的大房子。人的心智寄居在肉体当中,控制了肉体,很大程度上就控制了心智。历史上只有少数圣贤能脱离肉体,心神肆意放飞无法禁锢其思考,所以有孟母三迁。

对新人来说,最好的学习方式是:找个导师,让他手把手的教你。你会发现,这只不过是个游戏而已,并不难学。

在信息大爆炸的时代,教材是极其不重要的一环。教学翻转是 Python 课程的主要模式。教别人其实不是一件容易的事情,尤其在缺少明确目标、详细目标分解、受众、指导以及自信的情况下,“教”可能最多是想象自己的笔记怎样能更好让人读懂。

因此,开智创新学院首期 Python 班整体上的教学流程是:

相信经过教学反转的学习,你能深入地理解和实践在教授中学习。

建议二:建立编程思维

在资源极其丰富的情况下, 怎么习得一种技能呢?很多人会说多看书、多看别人写的好代码就行了。

然而,只背知识,无法形成编程思维。

就如只在岸上看别人游,你知道大概的游泳姿势,但不下水游,永远学不会游泳。又如做菜,不根据食材微调,只是呆板遵循食谱,永远无法做出美味。别人的经验能让你有心理准备、不恐惧,但要结合自身情况实践才能学会。

经过「基础折腾—借助 Coursera 学习基础编程能力—实操工程」这三个阶段,学员逐渐掌握了把大问题拆分成一组有序框架化小问题的能力——而这正是编程思维的关键所在。

参与实操工程阶段的学员还体会了编程思维的另一个精髓——在产品建造阶段,用 MVP(Minus Viable Product,最小可行产品)的方式,即投入最少的人力资源建造一个刚刚能够体现创新点或核心价值的产品,并立刻将其投入使用快速迭代。这也正式《精益创业》的作者 Eric 强烈建议的。

建议三:学习学习的技巧

理解这个建议,需要先理解什么是学习——在篆书里,“学”字篆书上半部分像孩子的两只手玩算筹,代表以往经验,整个“学”字,意味着一个大 house 里面有很多孩子,他们一起学习以往的经验。

对于一线程序员来说,必须不断地学习已有知识并积累经验,才能自如拆解并解决面临的难题。而在开智创新者学院的课程里,需要学习的不仅仅是自己领域的知识和学习方法,还有基于脑科学、认知科学等元学科的学习技巧。

当然,回到第一个建议,还建议每位学员:

学习学习技巧,并有效传授给其他学习者。

建议四:写一份独一无二的教程

代码和写作是有区别的,一千个人里有一千个哈姆雷特,但是判断代码的高效与否只要运行起来就知道了,它可以通过运行速度很直白的表现出来。但是为什么自己写的代码比别人的慢10倍、100倍、1000倍,这个就很难表现出来了。

代码和绘画是一样的,看别人的代码无论是一行还是20行对于新手来说都是一样的。比如蒙娜丽莎放在你的眼前了,你看着能画出来吗?画出和蒙娜丽莎神韵一样的画是有可能的,但是画出一模一样的却很难。

所以,如果你无法看第一笔到最后一笔是如何画出来的,你就只能从结果出发,用自己的经验和学识倒推模拟出原作者的思路。但是这个和原作者思路或许是完全不同的,并不能吻合创作者的经验世界观,所以自然也就不能画出一模一样的蒙娜丽莎了。

因此我们要求学员们将自己走过的弯路用博客的形式记录下来,相当于写出一本自己的私人教程,教六个月前零基础的自己。

你的画和蒙娜丽莎之间的距离就是你的代码和好代码之间的距离。

很多学员都不是职业程序员,那么零基础甚至负基础的文科生如何理解编程思想呢?到达什么样的水平就可以和团队内程序员无障碍沟通了呢?我们建议的标准是:独立写出50行以上可以运行的代码。 写就是 write 或是 coding , writing 和 coding 应该是一体两面的事情,写出代码和写出好教程一样荣耀。

好教程的样子,可以参考Python一期学霸君Frank的学习笔记:http://t.cn/RyXERDy

建议五:学会 show 出你自己

Show 是一种沟通形式。成果做出来后,如何把你的成果 show 给大家,如何把你做出的成果高效地 show 给大家?

路演是一个团队综合能力的体现。在一期结业展示的最后一个阶段,每个组有一天的展示时间。Show 得有感觉,没有观众也白忙活——只有单方不叫沟通,所以让目标人群来接收你的沟通同样重要。

Python一期学员项目--「小小书童」

微软、苹果、facebook 等大公司开大会的时候,message 满天飞,每天都会通过不同渠道提醒你,生怕你不来,也是类似的道理。一期结业展示时,第一组学员综合运用了邮件列表、视频等各种形式来通知大家参与并 show 作品,其实还可以更卖力些——微信微博都用起来,甚至给所有学员打电话:亲,你今晚一定要到啊!

总之,不仅要做出完整漂亮的作品,还要学会利用互联网的各种形式和渠道,把你的作品和你自己更好地 show 出来!

xiaoyuer commented 9 years ago

Day 04 开智学院

 大妈答疑:如何用编程让大脑二次发育?

Q1:文科森为什么应该学编程?

学编程有很多种理由,大妈简要列一下,大家自个儿选个顺眼的,刻到脑子里:

让大脑二次发育 文科生会编程是件很「酷」的事情 安替曰了:“我觉得写一次 Python 程序之后,文科生就不会胡写中文了。” 李笑来的《把时间当做朋友》中曰过: 多年以来,受影响最深的,并不是当时所学的 BASIC ,或者是后来所学的 PASCAL ,抑或再后来学的 C、C++ 什么的;受影响最深的是一种思考方式──在跑程序之前,要反复浏览代码,在脑子里进行预演;而不是写完程序直接跑,出错了再说。这是节省时间提高效率的重要方式。

大妈曰:“学习 Python 的目标本身,从来不是 Python,而是只有通过编程思维才能理解/接触到的真实世界的 Cyber 维度!

Q2:学会编程后有什么变化?

有了编程思维至少你:

可以识破各种所谓高科技、大数据的广告辞; 理解程序猿们的工作以及难度,和程序猿愉快地对话; 最实用的是,面对各种软件、App 的问题,自个儿可以判定怎么处理,即使无法解决,也能问对问题,获得帮助; 更加贴心的,是在参加 geek 们的活动时,可以听明白地球上这群最富有智能的人们在讨论什么、担心什么、折腾什么,体验到这个世界另一个侧面的精彩; 最最最不济,评论 SiFi 电影时,也能更加专业了。

Q3:学编程要准备些什么?

1.心智健全,这个非常关键。

首先,英文过关,至少得过四级,敢于阅读整屏的英文;

其次,习惯使用 Google 搜索,并习惯一次输入3个以上的关键字;

最后,愿意尝试不同的编程体验,不纠结类似括号一定要单独一行这种细节。

2.有靠谱环境,这可能是相对困难的一方面。

Linux/MAC 用户,比较幸福,什么都是现成的,而且各种爽利 Windows 用户,请允许俺致以最大的同情,然后,敬请自行先安装好: activestate.com/activepython SublimeText2 ,并配置好 Python 支持插件

Q4:如何快速扫盲基础概念?

先随手记录,过程中所有不明白的关键词; 反复读几次,看这个关键词列表是否有减少; 最终在明确了这些关键词的上下文之后,尝试去搜索,解答自个儿的疑问; 再反复几次,最终留下的不明关键词,还超过4.2个,再来问。 因为每个技术领域的语境也都是逐步形成的,即使有这种术语辞典,对于小白也是没有帮助的,最后只会进入循环困惑的境界。只有通过自个儿的努力,找到独有的猜测(学习)模式,才能突然明白一切。

Q5:安装完 Python 后做什么?

回想自个儿关心什么,再想象用程序能帮忙自个儿解决吗?如果有这种一系列问题,那么抓住其中最简单的一个用 Python 来完成!

我关心PM2.5,想知道今天的PM2.5含量 我有一大堆word文件,想统一改名 我期望自动给半年后那一堆朋友发封邮件 我想用微信随时标记想读的好书 …… 用1和0找到爱

正如丹麦王子哈姆雷特所说:“即使把我关进一个核桃壳里,我也要做自己拥有无限空间的国王。

大妈是这么有趣,擅长自嘲,从不把自己当成什么大人物,但也不会为谁低到尘埃里。他要像一棵树,立在溪水边,按时候结果子,叶子也不枯干。

大妈还是一位爱心满溢的父亲,他程序的纪年是以女儿牛妞的生日作为元年的。

中国人在为孩子搭建一个什么样的世界?土豪用金条,记者用胶片,小资用乐高,而大妈用的是 1 和 0 ,还有人类的语言。

我们的语言就是我们的武器。濒临死亡,造就了我们的表达。

愿大妈带领我们,穿过数字疆界的铁丝网,度过无知的子母河。

至为重要的是:找到爱。

我们必须下决心与他一起跳,因为,显然,深渊不能分两次跨越。