
当我刚开始是一名开发人员时,我对大写字母“ IG”不屑一顾。 互联网刚刚开始流行,那些小的银色AOL磁盘每隔一天就会出现在每个人的邮件中,并且计算能力越来越便宜。 我还在海军陆战队时从eMachines购买了第一台PC,当我向他展示如何连接本地局域网上的计算机以相互对抗Quake 2时,我就向我的军营伙伴赞叹不已。 不久之后,我开始在加利福尼亚州约书亚树的铜山社区学院上编程课程。

他们教的语言是Visual Basic,对我而言,这是一次改变生活的体验。 小时候,我一直敬畏地看着某些朋友能够编写自己的游戏或入侵当地的电话公司(至少一个朋友为此而入狱),但由于涉及到,因此始终无法访问深入研究最模糊的工具命令行。 对我来说,命令行代表了计算机的老派,就像我记得玩俄勒冈足迹(Oregon Trail)和蛇(Snake)一样,并且在我中学读到的TRS-80的闪烁的绿色和黑色屏幕上编写BASIC程序实验室。 它使人联想到留着胡须的老嬉皮书呆子,现代的甘道夫夫妇,以及对计算机内部工作的深刻了解,我以为我永远不会理解。

当我发现Visual Studio及其UI构建工具,使我能够像玩块一样轻松地组合用户界面,并通过单击界面元素在UI后面编写代码时,我知道这一定是未来。 不久之后,当我有了可靠的互联网连接时,我发现了Macromedia的WYSIWYG(所见即所得,发音为“ wiz-ee-wig”)编辑器Dreamweaver,并立即将我所有的时间都花在学习ins和软件淘汰。 我发现这些工具被称为IDE……集成开发环境……除了可视化工具外,您还获得了诸如代码完成,基于语法的颜色方案和FTP工具之类的功能,这些功能直接内置于编辑器中,并在视觉上帮助您在开发计算机上设置服务器。 感觉好像我刚刚被池塘里的一个陌生女人交给神剑,我先头冲了下来,开始了我的网络开发之旅。 我认为,无需使用过去的过时的基于文本的工具。 让那些胡须留在脖子上的知识分子。
我本来不会错,但是直到几年后我才真正发现错。

专业上,我继续前进。 我学会了使用Macromedia的另一个著名工具Flash来制作丰富的内容,并学会了ActionScript…一种语言,例如Javascript,现在是ECMAScript的超集,但最初是基于HyperTalk的。 CSS问世后,我开始设计更大更好的网站。 当C#发布时,我升级了Visual Studio,并开始在WPF应用程序中编写应用程序。 我也学习了vb.net,但是最后,这对我来说还远远不够……我已经在真空中完成了很多学习,发现自己在找不到不是“技术专家”的工作中挣扎在办公室里,除了编写应用程序外,他还希望在每个人的计算机上安装软件,管理(和设计)公司的网站,管理网络,并在某些情况下修理老板的10岁女儿的计算机,所有这些都是为了即使今天的快餐店工人也turn之以鼻。 我下定决心要学习一切并取得成功,那就是我决定学习PHP的时候。 当时,PHP是可在网络上使用的最受欢迎的语言之一,并且是支持主题主题博客引擎WordPress的语言,当时它才开始受到人们的关注。 从理论上讲,我发现WordPress是一个诱人的快捷方式……它是免费的,并允许您快速建立一个可以通过插件和主题进行调整的网站,使其成为所需的一切,并且很容易获得所有内容您需要在Windows上启动并运行。 但是,在学习越来越多的PHP时,我开始鄙视它(出于太多的原因而不能在这里使用,但主要是因为它太丑陋了),并开始涉猎Ruby。 Ruby拥有一个名为Rails的框架,该框架具有许多工具,可让您直接从命令行启动一个新的webapp并为其提供服务。 它的工具可以让您输入简单的命令来生成样板,准备运行的代码。 它…在Windows上不能很好地播放。 我已经学会了足够的Linux技能,可以在公司服务器上运行Apache托管WordPress网站的方式,从而克服了最初对命令行的担心,但是直到我对尝试获取Ruby和Rails感到沮丧之前,我还没有真正接受它。在Windows上运行没有问题。 我决定开始越来越多地在Linux VM中工作,并越来越多地了解命令行工具的强大功能。 而且,令我惊讶的是,还有多少人仍在使用我以前嘲笑的那种过时的工具来开发,构建和运行现代软件。 随着年轻傲慢自大的力量逐渐从我的眼中移开,我了解到,由于无需担心性能的视觉UI,从命令行运行的应用程序通常运行得更快。 我了解到Ruby在Linux上运行得更好,因为它利用了Linux发行版中常见的某些基于终端和基于系统的工具,但是要想在Windows上工作,就需要跳很多圈。 当Node出现并开始使用它时,我发现同样的道理也是如此……虽然您可以(仍然可以)使Node在Windows上运行,但在Linux上,通过终端,Linux上现成的许多工具只是Windows上没有的。 BASH开始打电话给我,迫使我学习更多,而我不得不这样做。 快进了几年,现在我很少使用编辑器的WYSIWYG功能,而是总是打开终端窗口,而在使用它们时直接在浏览器中运行我的应用程序。 我在Ruby中工作的时间越长,我越依赖命令行,不仅运行我的应用程序,而且安装,管理和运行软件。 我很高兴地了解到,在我第一次参加Pro Rails演出时,所有在Linux上运行得如此出色但在Windows上却运行不佳的工具在MacOS上也运行良好(这是由于MacOS本身就是UNIX变体)。 此外,我很喜欢在命令行中工作给我带来的自由。 我开始通过明智地使用终端来寻找改善工作流程的方法。 因此,在这一点上,我不必害怕码头,但我仍然没有完全拥抱它。

当时我正在使用RubyMine; 还有另一个IDE(特定于Ruby),它使我可以在屏幕底部的方便窗口中运行终端。 我从这个时候开始,也要使用EmberJS,这是一个JS前端框架,其中包含许多Rails提供的相同类型的脚手架工具。 我还开始使用终端来自动化我的许多工作流程……我设置了cron作业,并开始编写BASH脚本来安装所需的软件和库; 我放弃了过去使用的基于UI的版本控制工具,转而仅从命令行使用Git,而是为常用命令编写了自定义别名,我认为这很有用。 我以为我真的可以从中得到最大的收获,但是尽管如此,当我直接在终端上运行软件时,我仍然怀有很多旧的偏见。 在我看来,那些基于UI的华而不实的东西仍然是要走的路。 直到我完成目前的工作,我的眼睛才真正睁开。
到我开始通过Railroad19在NBC工作时,我已经将多年来获得的技能成功地运用于体面的职业。 自从我开始从事该行业以来,我的收入翻了三倍还多,以至于我的薪水不仅与我的其他技能所产生的竞争,而且实际上处于领先地位。 我知道使用工具和所用语言的方式,并且知道在哪里可以找到我没有的答案。 尽管如此,我还是想要更多…对知识的渴望以及对我的工作和工具的更深入了解从未真正消失,并且我使用基于Flash的基于UI的IDE的次数越来越多,一个缺点开始变得显而易见…也就是说,他们感到困惑下降和呆滞。 我注意到我的一些同事使用了Vim…是过时的(因此,我认为,但是TBH,他们的网站看起来仍然很糟糕)之一的编辑,我不认为我是胡须的工具之一。 。 我嘲笑了一会儿,但是很快就与这些家伙结对编程时意识到,他们能够以惊人的速度完成任务,这是通过我的狩猎和啄食打字以及依靠点击鼠标来实现的。驱动的工作流程,只是跟不上。
我通过从基于Java的RubyMine切换到VSCode来提高了工作效率,尽管我非常喜欢在那个编辑器中工作,但我仍然无法完全像使用Vim的人那样快(这在大多数情况下都是不受欢迎的POV VWC仍然对VSCode发誓……这实际上是个人喜好问题)。 我开始注意到业内其他人也使用它,并推荐它使用其他任何方法。 我以为“赶时髦的人”是“人为捆绑,穿着室内围巾的人,在凉爽的洗漱包前应有尽有”,徒劳地试图把它从我的脑海中扑出来……但我嫉妒我的同事生产力最终使我变得更好(而且,我们所有人都在远程工作,所以当时,我真的不知道他们中是否有人有手枪……事实证明,没有,他们没有)。 我启动了Vim,并开始学习它。

我注意到的第一件事是,与我的同事们相比,我的安装看上去比以前更加稀疏。 实际上,Vim实际上只是一个简单的基于终端的文本编辑器,它需要大量的爱和配置,才能将其塑造为成熟的IDE。 我在其他编辑器中理所当然的事情,例如行长定界符,文件浏览器,制表整个选择,代码完成,括号关闭,语法高亮…所有这些都需要作为插件和配置选项添加。 我不会撒谎……要使Vim像一个成熟的IDE一样工作,需要付出很多努力,而且术语也有所不同,因此,如果您来自UI,那么制表符就不会像您认为的那样起作用基于的编辑器。 但是,回报是巨大的。 结合tmux终端多路复用器,我可以为自己提供一个完全定制的开发环境,该开发环境专门针对我的需求和品味进行了完全符合我的要求的开发,并且减少了资源,因为它没有图形用户界面。渲染。 在任何给定的时间,我都可以在Vim中打开3–4个项目,我可以使用简单的键盘快捷键在它们之间进行切换,每个项目都可以将打开的多个文件保持在一定程度,如果尝试保持相同数量的打开将导致系统故障在我以前使用的任何其他编辑器中。

甚至更多的击键命令使我能够快速导航和编辑代码,而无需将手从键盘上移开……这是一个节省时间的hack,我确实没想到会对我有多大好处,因为我是一个臭名昭著的猎手,啄打字员。 甚至这种情况开始发生变化……随着我学会减少对鼠标的依赖,我的打字实际上得到了改善。 然后又发生了另一件奇怪的事情……当我切换回VSCode时,我发现自己试图使用我为Vim学习的键盘快捷键,并且在键盘上按yy时感到烦恼,只是键入“ yy”而不是复制行。 我变成了我以前嘲笑的东西……一个完全迷上了被我忽略的软件的人,因为我认为它太旧了,仍然无法使用。 事实是,Vim一直以来都是开发社区的支柱,因为它是您所用的……一种工具,可让您完全自由地自由选择自己想要的外观,感觉,并表现出来。 现在,我在工作时拥有一个可以全屏永久运行的终端,几乎不需要离开即可完成任何工作。 我的工作效率已经提高到可以打开基于UI的IDE并等待它启动的程度,这让我感到非常不耐烦,并且随着我打开越来越多的文件而观看它开始陷入困境,这让我感到有些畏缩。 我的机器上仍然安装了VSCode,但事实是,我从未使用过它,只是为了向我所指导的人们保持最新的功能。 我已经学会了热爱终端机及其所提供的所有自由和力量,而且我认为我永远也回不去。