我从没想过我会写代码。虽然我现在是一名软件工程师,但我在大学里学习的是历史和文学,毕业后从事的是市场营销工作。在科技公司工作让我渴望获得工程技能,所以我决定学习编程。
我的朋友们都很震惊。其中一位在听到我的职业转型计划后,向我推荐了一本书如果海明威写过JavaScript。她承诺说:“如果有什么编程书籍能打动像你这样的人文学科人士,那一定是这本。”我买了它。
快进14个月。我刚开始在优步餐饮服务公司(Uber Eats)当工程师,屏幕上闪过一条聊天信息安格斯克罗斯。这个名字听起来很熟。可能是我第一本也是最喜欢的软件书的作者吗?
这是!安格斯在优步的网络平台团队工作,在那里他帮助编写了驱动M.UBER.移动网络应用程序,以及其他主要项目。很激动到意识到我们是同事,我伸出了关于代码,文学和交叉口的对话。
你一直是读者吗?
是啊,我一直很喜欢文学。我可能更喜欢阅读而不是编写代码——我无意中接触到了软件。
你的软件事业怎么会是意外?
我在大学后的死者工作,然后有一天我申请了一家愿意聘请的公司,愿意租用和培训编程实习生。一开始,我将软件写作为工作,获得报酬 - 我只是通过动议。只有在我发现javascript点击之后它只是。
什么是如此迷恋JavaScript?
我喜欢它的灵活性及其古代;尽管语法非常简单,但它可以适应多种方法:功能,目标和程序。一个模块结合几种方法是常见的。有点像英语或其他口语语言,你可以通过相对较小的词汇,但它却是高度表现力和不断发展的。
JavaScript是一种非传统的语言,计算机科学家往往看不起和蔑视它。它没有类型检查,等式检查有点左,它会强制变量而不询问。也许这种对传统语言的奇特蔑视是吸引我的部分原因。它也非常宽容——你的代码可能看起来像狗的晚餐,但它仍然可以运行——鼓励对语言核心机制的探索,这反过来又鼓励实验和开发新的习惯用语。所有这些都有助于保持JavaScript的趣味性。
你什么时候开始感受javascript的风格?
这花了些时间。当你第一次学习一门语言的时候,我相信你已经感受到了,你倾向于陷入恐慌模式。你会想,我不明白而别人明白,这让人很有压力,所以现在不是实验的时候。当你第一次学习一门语言时,你只是希望能够用别人写的方式来写它。这就像说一门外语——你只是想融入其中。但是,在用一种语言工作了一年之后,你已经足够舒服,可以开始有创造力了。
在我的JavaScript开始获得创意之前花了几年。我公司当时要求我写一篇关于JavaScript的博客,我开始真正深入这门语言,因为我没雷竞技到底好不好用有觉得我可以公开写一些我没有彻底理解的事情。所以我开始学习标准,JavaScript语言的底层规范。这是这个巨大的文件 - 令人难以置疑的干燥 - 甚至理解一个操作实际工作的实际需要很多都需要很多关注。
慢慢地,我逐渐理解了JavaScript引擎,并意识到JavaScript比我想象的要有用得多。有比我意识到的更多的边缘情况和不寻常的事情。想想看,浏览一本字典,找到所有这些你从未听说过的有趣单词——感觉就是这样。这很酷,随着博客的发展,我开始突破界限,开始用JavaSc雷竞技到底好不好用ript做一些别人从未做过的事情。
他人当时使用Javascript是如何使用的?
因为JavaScript很灵活,可以让你做很多事情,如果你不小心,你可能会陷入麻烦;你可以写出非常糟糕的代码。有些人自认是JavaScript社区的领导者,他们认为我们应该只使用这种语言的一个子集,因为这种语言的一半是古怪的或难以理解的,可能会导致麻烦。我不喜欢那样。我想,嘿,你忽略了一些非常强大的工具。你应该理解它们,而不是忽略它们(一旦理解了,你就可以使用它们)。
对于90%的JavaScript程序,您可能会通过广泛接受的一半语言获得。但是当您从其他一半的语言发现一个实用性时,它是如此令人满意,这正是您所需要的工具。我在2012年在柏林发表了会议谈话,称为“违反所有规则”。这是有争议的:我探索了宣布不安全的JavaScript功能,并展示了如何使用,它们不仅是安全而非常有用的,而且还是一些最受欢迎的图书馆的基础。谈话最终真的成功了。
所以这两件事,深入潜入语言和学习,为自己思考它,让我意识到那里有一个丰富的词汇,没有被习惯充实。
这些经历如何导致这本书?
我一直在思考JavaScript的表达可能性以及它们与文学的相似之处。我和其他喜欢文学和其他创造性形式的程序员在一个IRC聊天群里。有一天,群里的一个成员(雅各布桑顿谁将前言写给了这本书)问我所做的一切,我说,“哦,我想在海明威的风格写下JavaScript。”
其实我并没有这么做——这只是我在上班的路上想到的一个想法,想知道它是否可行。但雅各布很喜欢这个想法,并鼓励我就此写一篇博客文章。雷竞技到底好不好用在接下来的几天里,我写了又重写了斐波那契数列算法,直到我有了一些类似海明威和其他几个作家的风格,主要是书中第一章的那些人,并以博客的形式发表了它。雷竞技到底好不好用帖子在纽约人中非常受欢迎,甚至在纽约人提到。
那时我已经在写一本严肃的JavaScript书了没有淀粉新闻,对该语言的全面参考。我快累坏了,所以我问能不能休息一下,继续写这本新书。出版商对此表示怀疑:“这行不通,这本书还能在书店里卖到哪里去?”在文学?下软件吗?”我说:“用不了多久——给我六个月。”他同意了。实际上我花了一年的时间,包括编辑、制作等。
这本书呈现了规范算法,仿佛他们是由文学伟大写的。谁是谁的款式是写作最愉快的?
我真的很喜欢写作弗吉尼亚伍尔夫- 她是我最喜欢的作者之一。我曾经发现她的写作很难,直到我学会了如何阅读她:不要停止,不要想太努力,只是继续阅读。这就像一流的意识;混乱,就像现实生活一样,如果你让它进去,它会在你的皮肤下。她的句子是如此丰富,紧紧抓住,经常运行,他们可以感觉到代码中的陈述。虽然伍尔夫没有写太多诗歌,但她的散文自然是诗意的;您可以安排JavaScript以模仿其中一些模式。大胆,独特的方法弗拉基米尔·纳博科夫那Jorge Luis Borges.,刘易斯卡罗尔(仅举几例)模仿也有很多乐趣。
有没有哪位作家的风格不受欢迎?
俄罗斯人:托尔斯泰那契诃夫,哥哥哥。我真的很喜欢他们的作品,但它们太难了,因为它们太微妙了。模仿具有高度不同风格的作者更容易。托尔斯泰和契诃夫肯定有自己的风格,但他们更难确定,我觉得我没有能力将他们转化为代码。托妮·莫里森另一个作者我花了很多时间试图做出正确,但最终失败了。
您觉得可以通过调整JavaScript的哪些特性来实现独特的风格?
我尝试了命名,注释,表达函数的不同方式。不同的编码范式,如功能性、目标性和过程性,自然更适合某些作者。另外,许多优秀的作者并不拘泥于规则;他们一直在打破规则。阿兰达蒂她经常打破规则,所以她才那么优秀。她会到处words,组成新单词就玩的散文,我露出了笑容,因为人们说,“哦,你永远不会成为一个伟大的JavaScript程序员如果你不遵守规则,“我认为,最好的作者打破规则。
写这本书的大部分内容都是关于如何打破JavaScript的规则,这也是为什么我不建议人们在日常工作中使用这本书中的大部分代码。打破规则是作者要做的,我开始打破JavaScript的规则,就像这些作者喜欢打破文学的规则一样。
你的书受到什么样的欢迎?你见过谁对此最感兴趣?
我原以为兴趣只会来自编码社区,所以让人兴奋的是,它让那些没有编码背景的人产生了如此多的热情,就像许多有人文学科背景的人,他们觉得自己被整个技术事情拒之门外。有一种技术例外论,技术人员认为我们可以用算法和数据来解决一切问题,我们不需要人文学科。这让我很恼火!写这本书的很大一部分是接触人文学科的人,告诉他们:“你们在这里扮演着重要的角色。”
总的来说,那些给我发推文或给我发邮件谈论这本书的人的多样性比大多数科技公司员工的多样性要高得多。即使这本书只是在拓宽软件领域的人和方法的多样性方面迈出的一小步,只要说“嘿,你知道,还有另一种方法来实现它”,这就是我感到自豪的事情。
订阅我们的通讯跟上超级工程的最新创新。






