0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

美国程序员讲述自己写代码获得陆军嘉奖奖章的故事

工程师人生 来源:网络整理 作者:工程师吴畏 2018-11-16 16:18 次阅读

2005年,作为“伊拉克自由行动”的一部分,我所在的国民警卫队被派往伊拉克。我的MOS(军事专业)是 92A,这基本上是一个后勤供应工作。我负责订购和收拾机械的零部件,并退还旧器件,管理危险品紧急处理小组,分派/回收任务车辆,并办理许可证。其实还做一些其他的事情,只是现在不记得了。总之,当时这个系统的核心是一个叫ULLS-G(部队级物流系统 – 地面)的工具。我说“当时”,是因为我们回来不久后 SAMS-E(标准陆军维护系统 – 增强型)替换了ULLS-G,它使用了Oracle作为后端数据库。比起 SAMS-E,ULLS-G简直就是恐龙。被派遣前,我在军队足足使用四年之久,从头到尾都是噩梦。 ULLS-G是一个DOS应用程序(是的,MS-DOS),我在军工厂使用的大多数计算机只能运行DOS系统(这时是21世纪初,所以DOS系统很常见)。到我被派遣时,多数计算机都运行WinXP/2K或类似的系统,所以可以使用”MS-DOS兼容模式”运行ULLS-G。

正如我前面提到的,使用ULLS-G是很痛苦的。作为DOS下的应用,你不能使用鼠标,只能通过键盘进行交互。记得在任务快结束时,我已经记住了按键,甚至不用看键盘,只需输入它们就可完成工作。没有任何形式的批处理功能,是该系统令人感到可怕的地方。比如说你得打印士兵的许可证,就不得不一个一个去检查并打印。你得在一个屏幕前,输入他们的许可证号,加载出许可证,然后打印。我们部队大约有150名士兵,为了打印所有人的许可证,我不得不逐个查找每个士兵。如果你要为士兵添加一个车辆认证,同样得逐一去做。其实这还不是最让人恼火的,因为每次只需处理部分内容。但我们是专门为某一任务成立起来的(我们的士兵分别来自第180炮兵团第1营的四个连,组成了第180炮兵团第1营第1旅部与旅部连),这意味着这个ULLS-G系统里没有士兵的认证。所以一开始,我不得不手动输入每个士兵的认证,然后打印出他们的许可证,基本上要花费大半个小时。在正规部队,情况会更糟糕。离开之前,我们在华盛顿州刘易斯堡有预动员训练。士兵要进行多项车辆训练(M-1114, 5-ton, deuce-and-half,等等)。这些都是交错进行的,所以每次训练任务结束后,我都不得不添加认证并重新打印许可证。

不用说,我很恼火。我甚至得到消息,到伊拉克后,将会有更多的车辆认证,这意味着我将不得不全部重新添加认证并打印许可证。现在作为一名程序员,我不断地想发设法简化工作。我不想坐在那一个一个地添加认证、打印许可证了。一是我懒得弄,二是这件事情效率太低了,所以我决定使这个过程自动化。我做的第一件事就是尝试找出ULLS-G数据文件的格式。不幸的是,我一点都没弄出来,主要因为时间不够 (所有的军事训练都在进行)。不过令人意外地是,我偶然发现了一个页面,上面有ULLS-G的ODBC驱动程序。这意味着我可以运行SQL查询ULLS-G数据文件。有了这些,我开始编写Perl脚本查询数据。我们达到了伊拉克的时候,我有一个可以生成所有士兵文本文件形式许可证的脚本。脚本运行只花了一两秒,最长的部分就是打印出许可证。但我还没有完成,所以令人恼火的是不得不手动添加驾照。所以我又写了一个脚本,以使驾照可以全部一起添加给驾驶员。脚本还有一个配置文件,允许把指定的某种认证添加到某人。

到了部队以后,我又不得不打印每个人的证件,我仍记得二十分钟后当我拿着一堆刚刚从打印机打印出来还温热着的许可证时,电机中士那疑惑的表情。他问道:“这个需要很长时间吗?”,于是我开始和他谈论脚本,可是当我刚说出几句关于Perl、SQL和 ODBC 连接时,他就不再听了,点着头把许可证放到 TOC,或许他没有问我太多问题是好事,因为我做的事是不太被批准的,只有取得执照的技术人员(另一种MOS岗位) 才能安装,至少在部队眼中,我是不合格的。

在伊拉克时,我发现我们必须每天向TOC发送报告(最终发送到军营)。这些报告包括车辆的情况(报废还是完好)和一些其他信息。几乎所有的部队都是手动向Excel表中输入信息,然后打印出来并送到TOC。手动输入总是出错,每天早上我都得花20-30分钟修正报告,确保它是最新的,最后打印出来,送到TOC。我记得有一两次因为信息出错被批评了,从那以后变得倍加小心。我又生气了,这些事情需要有一个更好的方式来做,而且确实是有的。Excel可以使用在Windows中注册的ODBC连接,而且我已经用ULLS-G的Perl脚本注册了一个。

所以,我使用Excel宏简单地复用了同一个连接,这个宏指令可以帮我高效地计算表格中的所有项。棒极了,它能够自动更新报废汽车单,同时也包括了其他部队没有上报的信息,像所有车辆的服务状态及其行驶里程。以前的话,当它被从调度返回时,我们不得不手动查找每个车辆的维修状态,所以说服务状态位在日常工作中是非常有用的。现在,我只需要查找Excel表格就能了解到需要维护的车辆。

编程的角度来看,我做的并不是很出色。我只是找到了从ULLS-G数据库获取信息的方法。但却令我的领导印象深刻,尤其是我的班长和电机中士。大概两三个月后,来了一个新的大队电机员(如果没记错的话是CW2 Lee)。他对我做的事情非常感兴趣。有次我演示给他看后,他看着我说“你难道不知道不能这么做吗?”。一开始我担心我会有大麻烦,但他脸上却浮现出了笑容。他告诉我,他不会追究,因为我似乎知道自己在做什么,而且因为我提供了准确的报告,部队的效率也提高了。

接下来的几个月很快就过去了,还有一两个月后就要离开伊拉克了。除了遇到一些小问题,我的脚本和宏一直运行得不错。快结束时,部队有一个颁奖典礼。指挥官和军士长来到调配场发奖项。接到电话时我有点惊讶,我没期望我会得奖(我的工作地点主要在营地,虽然我觉得我工作得不错,但没认为它值得表彰)。授予我陆军嘉奖奖章(Army Commendation Medal)后,他们和我握了手并祝贺我。在我看到文书前,我认为这仅仅是一个一般性质的“优秀工作”奖。当我阅读文书,看到因为使用Perl脚本和Excel宏完成工作,班长SSG Lopez将我选为获奖者时,我很惊讶也很高兴。虽然我不是为了得到奖励而工作,但是自己的工作被赞赏,仍旧是一件很美妙的事情。

这就是我通过写代码获得部队奖章的故事。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4662

    浏览量

    67721
  • 程序员
    +关注

    关注

    4

    文章

    945

    浏览量

    29675
收藏 人收藏

    评论

    相关推荐

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    阿里云内部全面推行AI代码

    阿里云正在内部全面推行 AI 编程,使用通义灵码辅助程序员代码、读代码、查 BUG、优化代码等。
    的头像 发表于 04-07 09:22 452次阅读

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 275次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    GitHub Copilot:你的代码超级助手!程序员的最强福音

    今天小启给大家安利一款令人兴奋的AI工具——GitHubCopilot。它无疑是程序员们的最强福音!无论你是新手还是经验丰富的开发者,GitHubCopilot都将成为你的代码超级助手。想象一下
    的头像 发表于 03-05 08:04 807次阅读
    GitHub Copilot:你的<b class='flag-5'>代码</b>超级助手!<b class='flag-5'>程序员</b>的最强福音

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 664次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    陆军2024年完成IVAS头显测试,单兵AR头显项目加速发展

    自2022年起,美陆军分阶段购买了初期的IVAS 1.0和1.1版本,以供军事训练使用。据悉,2022年美陆军购买了5000套IVAS 1.0,2023年再购入5000套IVAS 1.1。这些设备被广泛运用于士兵培训,以提升他们对于新技术的理解与操作。
    的头像 发表于 01-02 10:38 730次阅读

    程序员表白程序

    电子发烧友网站提供《程序员表白程序.rar》资料免费下载
    发表于 11-21 10:41 0次下载
    <b class='flag-5'>程序员</b>表白<b class='flag-5'>程序</b>

    嵌入式程序员应知道的几个基本问题

    电子发烧友网站提供《嵌入式程序员应知道的几个基本问题.pdf》资料免费下载
    发表于 11-20 11:21 0次下载
    嵌入式<b class='flag-5'>程序员</b>应知道的几个基本问题

    代码即注释,注释即代码的概念是如何形成的

    "代码即注释,注释即代码"这个概念是如何形成的呢?记得之前看一些讨论,程序员应该如何代码的注释,大家的意见很多,不过我只对两句话记忆非常深
    的头像 发表于 11-18 16:52 591次阅读
    <b class='flag-5'>代码</b>即注释,注释即<b class='flag-5'>代码</b>的概念是如何形成的

    智能低代码洪流涌动程序员节,华为云 Astro 触发 1024 的乘法效应!

      从人工智能至量子计算,再到最新的云原生技术,越来越多的荣耀被程序员斩获。今年 1024 程序员节,华为云 Astro 向全民致敬:「低代码高产出 拓荒数字化版图——人人皆是程序员
    的头像 发表于 11-13 09:39 350次阅读
    智能低<b class='flag-5'>代码</b>洪流涌动<b class='flag-5'>程序员</b>节,华为云 Astro 触发 1024 的乘法效应!

    喜迎1024程序员节!祝各位开发者们“码”到“程”功!

    祝各位开发者们,节日快乐! 程序员(Programmer)是从事程序开发、维护的专业人员。 对于奋斗在一线的程序员们来说, 10月24日 是一个特殊的日子,这一天是属于程序员
    的头像 发表于 10-24 20:00 585次阅读
    喜迎1024<b class='flag-5'>程序员</b>节!祝各位开发者们“码”到“程”功!

    今天程序员节长沙出招 全国首个!长沙为程序员打造“1024街”

    今天10月24日,今天程序员节;先给程序员点赞,我们还看到有一些平台举办了程序员节;而在长沙,更有为程序员打造“1024街”。 昨天第四届“长沙·中国1024
    的头像 发表于 10-24 14:29 510次阅读

    程序员节 | 今年程序员们都想要的礼物竟然是……

    原文标题:程序员节 | 今年程序员们都想要的礼物竟然是…… 文章出处:【微信公众号:微软科技】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 10-24 10:35 398次阅读
    <b class='flag-5'>程序员</b>节 | 今年<b class='flag-5'>程序员</b>们都想要的礼物竟然是……

    16位MCU和DSC程序员参考手册

    电子发烧友网站提供《16位MCU和DSC程序员参考手册.pdf》资料免费下载
    发表于 09-25 14:51 9次下载
    16位MCU和DSC<b class='flag-5'>程序员</b>参考手册