教学如何让你成为一个更好的程序员
学习如何在旧金山编码已经成为学习如何DJ或饮食4美元吐司的臀部。从投资银行家到艺术家,每个人都希望能够提出一项技能,现在就像知道如何在这个城市的初创公司推动经济中知道如何阅读。通过编码学校吹嘘毕业生的高达98%的工作安置率,并开始薪水高达110万美元,学习如何代码的奖励是即时和有形的。
但这对我们在科技产业中的人意味着什么?我认为这是一个巨大的趋势,但在很多方面,我很羡慕。对于现有工程师来说,深化我们对代码的理解需要夜间和周末的自学和周末,并花费许多小时努力为开源项目做出贡献。新学生获得了专注的学习奢侈,并立即将其付诸实践的好处。美国经验丰富的工程师往往很难进入思考的模式而不是实施,甚至更难知道你需要学习的内容,而没有正确的指导。
对于Web开发人员来说,这个问题甚至更糟糕的是,新技术的数量每天都会生长,并且很难淘汰它们如何合适。
有一句老人说,学到某事的最佳方式是教它给别人。我认为这对所有科目不这是真的,但它绝对是来自我在大会的教学网络发展的经验。
七周前,我开始向大会前端Web开发计划提供20名成人学生的旅程。正如我与他们的学期结束,他们走开了一个完全新的技能组,它将弹射他们的职业生涯,我可以竭诚地说这段经验已经激发了我作为工程师贡献的能力。
以下是我从学生中学到的3个关键课程:
我来实现自己的偏见和假设
我第一次开始在Java中学习计算机科学。然后我进展到javalogo,然后是smalltalk。我在方案中做了短暂的稳定性,但我的面包和黄油是面向对象的编程语言。JavaScript是一个整个世界。我努力解释为什么你想要一个匿名功能。毕竟,语法更令人困惑,你可能会丢失你的功能。最初,我只能提出一个有时你只使用一次函数的借口。
几乎不相信我的解释后,我必须学习并内部化,匿名功能是功能规划的一部分。他们给你更多的灵活性。您可以将功能作为参数传递给其他功能,并以更改的方式编写代码。通过教授JavaScript,我终于内化了,并学会了JavaScript的强大程度,并且能够以更有效的方式使用它。
有一些我们认为理所当然的事情
我在概念上认识,有一个呼叫堆栈,但我没有想到它。其唯一目的是向我展示运行时错误可能发起的地方。正如我向学生向我的学生展示了一个关于返回不同函数的函数的示例,因为它向初始函数引用了参数,他们模仿他们的头爆炸。
即使在对控制流程的众多解释之后,函数方式也是值的,也没有点击学生。最后,当我的教学助理在董事会上筹集堆栈并展示了当他们被调用时,函数在呼叫堆栈上进行了函数时,当它们完成执行时,才会出现。这是我很久以前内化的东西,但在很长一段时间内没有想过。
教学我的班级让我考虑了在我运行程序时实际工作的实际工作以及我的电脑发生了什么。每次我解释一个新的概念时,我都会立即反馈我是否解释是有道理的,我巩固了自己对概念的理解。
承认你不知道是可以的
科技有很多自我。我多年前毕业于麻省理工学院,凭借计算机科学的学位。我13岁时开始编码。显然,我的运行时环境的心理模型应该是稳定的。毕竟,我是站在课前的人,试图传播我丰富的知识。但是作为一种从业者和真正抓住了某事物背后的理论,就会有很大的区别。当您教导别人并帮助他们制定协会时,您需要在所有抽象背后的理论上有一个坚实的基础。
我整个夜晚都花了下午,再学习编程背后的理论,所以我可以向学生解释。在我开始教学之前,我会通过思考,“当然,我可以实施一个网站 - 你需要什么?”
所以你可能会思考,更深入的了解让你在编码中?你之前不是一个完美的实践者吗?通过我的新凝固理解,我现在可以通过源代码读取并建造一个更快的精神模型(更准确)。我能够与我的合作者拥有更高效和有意义的对话。我以前从未考虑过大型开源项目,因为我被吓倒了,不知道从哪里开始。现在,我发现自己享受阅读源代码,我想在接下来的几个月里,我将首次提交IronRouter(与Meteor相关的主要路由器项目,JavaScript框架)。
我目前正在努力练习软件工程师的教育平台,以增长和提高他们的技术技能。其他领域具有培训计划,以升级其现有的劳动力,无论是执行MBA计划还是领导撤退。偶尔,开发人员可能会被发送到会议,但深度学习往往不会发生在内。我正在创建一个平台,允许开发人员在自己的时间和新媒体上学习和理解新概念。
通过兼职教学的产品开发,我已经能够将我的理论付诸实践,结果卓越。当我说世界上最好的感受之一是那个时刻,当你看一个漂亮的网站并思考时,我并没有夸张,“我希望我能做到这一点”然后意识到它是由学生制作的从您学习的网络开发。
所以去那里。学习一些东西。教。
Kara Yu是科技行业的资深人士,在谷歌,CloudFlare和流星工作。她目前是大会的网络开发讲师,也在努力开展新的软件开发教育平台。