选择程序员工具的实验方法

如果您喜欢这篇文章,可以在我自己的博客上阅读此文章。 像很多人一样,我有一种宠物编程范例,我喜欢适应各种代码库和使用的语言。 我想稍微标准化一下,并与世界分享。 它被称为“专注于明确性的最小共享状态编程” (我不太擅长命名)。 当我心中的应用统计学家开始教我道:“嘿,我可以尝试做一个小实验”时,我正在考虑如何向全世界和我自己证明它的价值。 所以我做到了,我写了两段代码来做同一件事,这是一个相当简单的任务。 一个是功能性的,另一个是我的宠物范例编写的。 我创建了一个网站,可以为参与者提供一个或另一个代码段,并请他们解释(在几段中)代码的作用。 代码很简单,任何能读代码的人只要摸了一下脑子,就能弄清代码的作用。 确实,在手动检查大约20%的答案(随机选择)后,没有一个是错误的。 但是,答案本身并不是我真正关心的数据。 相反,我要监视的是,人们花了多长时间得出答案,多少人在阅读完任务后放弃了却什么也没写。 我的想法是:“如果一种编程风格确实易于阅读,那意味着程序员应该有一个更轻松的时间将其转化为大脑中的抽象概念,然后转化为单词”。 因此,您可以通过查看某人能以多快的速度理解一个“简单”的代码,而不是查看他是否能够理解一个大型的代码库(其中包含许多问题)来部分评估编程风格的困难。 令我惊讶和不满的是,该研究未能证明我的假设。 在数百个答案的样本中,人们解释我的宠物范例代码与以纯功能样式编写的代码的速度有多大差异(在删除了一些可疑数据并且z得分> 5类异常值之后)…

知识死了,万岁学习

使用技术的人们必须面对一个不可避免的事实。 随着时间的流逝,我们所获得的知识几乎不可避免地变得过时了。 如果我们专注于某事,那么我们该如何处理我们的专长(可能甚至一直是我们开创的尖端技术)最终成为旧系统的事实呢? 正如艾伦·厄尔曼(Ellen Ullman)所说:“不断变化的必然结果是无知……我们的计算机专家几乎不知道我们在做什么。” 前端开发人员非常熟悉这种感觉,经常面对JavaScript框架的变化令人眼花pace乱的变化。 曾几何时,我为能够使CSS布局在IE7中工作而感到自豪。 现在,所有这些花招和技巧只不过是毫无价值的琐事,也许没有实际的琐事有价值。 至少知道谁在1973年足总杯决赛中获得了冠军可能会帮助进行一场酒吧测验-我无法想象能够用星号为属性添加前缀会派上用场,但它占用了我大脑中的存储空间。 既然CSS网格越来越普及,我所学到的关于float(甚至是flexbox)的一切都变得越来越有用。 甚至还有一些人(尽管我不是其中之一)会说CSS本身不再有价值。 同样,jQuery在我曾经知道的坟墓中已经开始加入YUI和MooTools了,Drupal社区的经验丰富的成员最近开始接受这样的事实,即为了使技术进步,我们将不得不取消学习一些旧方法。 这不仅仅适用于技术。 伦敦的出租车司机发现,卫星导航已使他们来之不易的知识过时了,不久以后,驾驶技能本身将不再是编织篮子的方式,也不是可以驾驶马拉马车的方式,这可能对于发烧友仍然很有趣,但与大多数人的生活无关。 面对令人不快的现实,即我们刻苦学习的技能已经过时,该如何应对? 我们是否遵循Luddites的榜样并反对机器的发展? 容易陷入沉没成本谬论的受害者,即使我们是一个不再有用的领域的专家,自我也极有诱惑力坚持我们的权威地位。 如果您是缩水池塘中的大鱼,则可能需要小心,以免池塘完全干dry。…

节省更多时间作为软件工程师

在我大学的头几年,我意识到我的编码时间没有达到应有的生产力,而且我并没有真正专注。 因此,这是我每天应用的一些技巧,可提高编码时间的效率。 如果某人在您编写代码解决问题的那一刻打乱了您的注意力,请他/她给您一点时间在注释中(或您要记笔记的任何地方)写下您对如何继续的想法。具体任务。 您永远不知道某人需要多长时间才能引起您的注意。 如果您使用此方法并在对同事进行回复之前将您的想法写在某处,您将看到之后,您需要更少的时间来重新获得最初的关注。 也许您正在为自己的项目或大学班级工作,如果您每天申请的期限很短,您会发现自己变得更有纪律,并且在完成更多工作上保持一致。 因此,请尝试将项目划分为日常任务,并按时完成任务(这对我完成许多大学任务很有帮助)。 也许您认为您可以执行多任务,但请相信我,但您不是,您只是在Slack到您的代码之间,再到Slack来回移动。 在编写代码时,您希望尽可能集中精力。 关闭所有您可能会忘却的应用程序,例如Messenger,Email等,因为您无法高效地编写代码,无法同时回复电子邮件或与朋友聊天。 对我有用的另一件事是关闭手机上的通知,并指定一个时间段来检查我收到的每条通知消息电子邮件。 谢谢阅读。