两个钥匙上级代码质量:对编程和指导
当我第一次学习Ruby上的Ruby on Rails时,我花了很多夜晚被困惑,试图在如何在对象之间构建适当的多对多关联,构建为RESTful接口,以及线束测试驱动的开发。
我还记得它是如何吃的:我可以在理论上可以在一小部分中易于组装应用程序,以便通过利用强大的宝石来代码划痕,但我来自一个Java背景,并且已经习惯了Java的发展方法。Rails“通过配置公约”方法的不透明度对我来说是缺席的。我花了数小时搜索了网站和stackoverflow以获得答案,并且可以很容易地从那里和那里的语言转过来,劝阻反向怨恨。
幸运的是,我有一个伟大的导师特里斯坦克罗姆勒,他能够走过它。Tristan不仅是一个熟练的铁路程序员,他也是精益的创业专家。他认为锋利的角度,在这个特定的一周里,他是我祈祷的答案。我们一起坐在他的办公室并在一起“对编程”。在几个小时内,事情对我来说已经更有意义。如果不是特里斯坦,我可能会浪费日子,不耐烦地滚动,宣传,我从来没有学到他教导我的一些最好的做法。
这些天,越来越多的公司正在强制开发商的整个劳动力之间的这种配对编程。我们池塘中的一些最大的鱼 - 例如关键实验室,思想家和广场 - 一次将两个开发人员分配给一个键盘,并且通常这种劳动力减少了巨大的生产率。
对于孤独,反社会倾向的声誉的领域,我们肯定开始彼此依赖。当然,指导在每个领域都很重要,但它在编程中具有特别重要的意义。毕竟,在其他领域可以错过的分号导致挫折的时间?在其他领域可以用适当的设计模式凝聚数百条线路的单线?复制编辑可能会削减段落或两个,但具有适当编码原则的经验丰富的开发人员可以削减周或几个月的工作 - 并且可以教一个愿意的学徒来做同样的事情。
当然,问题是,不是每个人都可以访问一流经验的开发人员,以帮助他们掌握他们的工艺。
在康奈尔,我有教授,教学助理,实验室合作伙伴,以及一小军的患者灵魂,愿意通过我的混乱时刻帮助我。但不是每个人都有大学教育的特权,那些不可能无法获得的人一对一辅导,即学术训练有素的编码人员认为理所当然。对于像编程的掌握纪律,鞋面挖掘训练有素和未经训练之间的深度学习曲线,并有助于我们的空间缺乏包容性和普及。没有其他人来自他人的信心,鼓励和知识,新人感到太害怕,让暴跌进入我们的社区,或者在不可行的斗争中被劝阻,以便在网上找到答案。
有许多非营利组织可以令人难以置信的脚步来解决这个问题,例如code.org(帮助世界学习到代码),CodeStarter(为儿童提供笔记本电脑)和Coderdojo(为年轻人提供免费编程俱乐部)。但我们需要更多。
我相信所需要的是基层指导运动:对于全世界的程序员来说,让我们彼此组装和导师,以便我们可以集体努力成为软件开发中的掌握工匠。
现在,平均程序员的效率和良好的效率之间存在一个数量级。但是,如果每个开发人员都要采取少量的时间来向另一个人提供他们的专业知识,则代码的质量将会跨越整个领域,并且该领域将是一个远的级别。桥接差距可以像学习一样,另一对眼睛,以及借给他们有需要的同伴的意愿。
谁是你领域中最大的导师?你认为没有他们在哪里?你有没有感受到过于支付他们的智慧?
Ed Roman是一个程序员,序列企业家和顾问。他创建了世界上最大的Java开发人员社区,这是一个用于iOS的一年之比赛,是Java一本畅销书籍,并运行昂堡投资者综合杂志。他目前是Hack.Hands()的首席执行官,该平台是一个用于瞬间指导的在线平台,并举办了一个慈善编码峰会,达到12月1-4的慈善编码峰会,并联合了编码中的一些最大名称以筹集非营利组织并鼓励在空间中的指导。他最新的项目,黑客。施德(),要求程序员在2015年向2015年迈向指导或被思考的时间。