与 Mike Meinz 的程序员访谈





5.00/5 (26投票s)
欢迎来到我们持续进行的 CodeProject 面试系列,在此系列中,我们与开发者们交流他们的背景、项目、兴趣和烦恼。在本期中,我们采访了 Mike Meinz,他分享了 45 年行业生涯中的一些亮点。
欢迎来到我们持续进行的 CodeProject 面试系列,在此系列中,我们与开发者们交流他们的背景、项目、兴趣和烦恼。在本期中,我们采访了 Mike Meinz,他分享了 45 年行业生涯中的一些亮点。
你是谁?
我叫 Mike Meinz,于 2010 年 9 月从 通用磨坊 退休。我在那里的最后一个职位是信息系统部门的战略规划与治理高级总监。
我于 1967 年 3 月开始在通用磨坊担任计算机操作员。90 多天后,我收到了征兵通知,并加入了海军。
新兵训练营结束后,我被派往 新伦敦海军潜艇基地 康涅狄格州新伦敦。
1971 年退役后,我回到通用磨坊担任程序员/分析师。在 20 世纪 70 年代末,我晋升为主管/管理职位。我偶尔也会为创新项目进行编程。
我目前为位于 明尼苏达州布鲁克林公园 的 NW 社区电视台 进行一些 VB.NET 编程。
我曾担任 NW 社区电视台董事会主席多年,并多年担任 NW 郊区有线通信委员会委员。杰西·文图拉(当时是摔跤手、演员、布鲁克林公园市市长)最初任命我加入有线委员会。我在 NW 社区电视台做志愿者。我曾指导过几个有线电视节目,并开发了他们的软件套件。
您做什么?
在通用磨坊,我开发了第一个计算产品包装上 营养标签 营养信息的计算机系统。
作为通用磨坊一名热情的年轻程序员,我开发了许多供公司其他开发者使用的标准函数。在 20 世纪 70 年代中期,我使用 COBOL 为 B6700 计算机开发了通用磨坊的 总账 和月度费用报告系统。1978 年,在一台 HP3000 上,我开发了一个会议日历应用程序(在 Schedule+ 和 Outlook 之前)。在 20 世纪 80 年代初,我创建了一个简单的文档存储库应用程序(在 HTML 和网络之前)。
1998 年,我与一位同事合作,使用微软的 Windows Media Server 创建了通用磨坊的第一个流媒体视频功能。
我注册了通用磨坊的第一个域名,并参与了通用磨坊的第一个网站:BettyCrocker.com、GeneralMills.com、Cheerios.com、Wheaties.com、YouRuleSchool.com、Boxtops4Education.com 等。
多年来,我还做过一些有趣的兼职项目,反映了不断变化的计算环境和开发工具。在 20 世纪 70 年代初,我为明尼苏达州的 Culligan 软件使用 BAL 在 Univac 9300 上创建了一个送盐票据应用程序。我还为 Valley Fair 游乐园 创建了团体票销售、游乐统计和商店销售统计应用程序,同样是在 Univac 9300 上。
在 20 世纪 80 年代初,我使用 MAI Basic Four 计算机及其内置的 BASIC 语言,构建了一个木材期货跟踪应用程序。然后,我为明尼苏达州教育部开发了一个统计数据库查询程序生成器应用程序和一个学区税收限制应用程序。这两个都运行在 Burroughs B6800 上,使用了 ALGOL、COBOL 和 DMSII 数据库。
虽然我已从通用磨坊的全职工作中退休,但我仍然作为合同开发者和志愿者进行一些编程工作。如前所述,我为 NW 社区电视台做志愿者,多年来参与了多个项目。其中包括演播室和编辑套件调度、固定资产库存管理、直播电话节目提词器和跟踪、节目库存和播放管理以及联系人管理应用程序,这些最初都用 CA Clipper 编写,然后又用 VB.NET 重写。我还为 TRMS Cablecast 应用程序构建了一个 WinForms 前端,并用 VB.NET 制作了一个 StudioTimer。就在本月,我完成了 NW 社区电视台一个全新的应用程序,该应用程序将从明尼苏达州州务卿 FTP 网站下载选举结果,并将其输入 VIZ 文字发生器,以便在选举之夜直播期间显示。
您的开发环境是什么?
您可能已经注意到,我的职业生涯中穿插了一些计算机历史。在我高中时期,我作为新手程序员使用 IBM 1620 和 1130 计算机以及 Fortran II。
在职业学校,我学习了电路板接线,包括 IBM 402、407、514、519、548、088 和 188,以及 IBM 1401 符号编程系统 和 Autocoder。
在海军服役期间,我在基地供应部担任操作员,然后是程序员,使用了 IBM EAM 机(402、407、088、188、085、514、519)和 IBM 1401(使用 SPS 和 Autocoder)。作为程序员,我在美国海军潜艇学校使用 COBOL 操作了一台 Honeywell 800,并在美国海军水下声音实验室使用 COBOL 操作和编程了一台 Univac 1108。
在通用磨坊,我最初是 Honeywell 200 和 1800 的操作员。作为程序员,我开始使用 Univac 9300,然后转向操作 Burroughs 6700、6800、6900 和 A 系列。我使用这些机器担任过各种职务,包括程序员、数据库管理员和技术服务经理,使用 COBOL、ALGOL、ESPOL(ALGOL 60 的 Burroughs 特有方言)、NEWP 和 DMS II 数据库系统。
我还使用了通用磨坊的 HP 3000,运行 MPE,使用 SPL、Pascal、COBOL 和 HP IMAGE/3000 数据库。
多年来,我还使用了 dBase、CA Clipper、Visual Basic 的各种版本(从 3.0 到当前版本的 VB .NET)以及 SQL Server。
您对哪些新工具、语言或框架感兴趣?
除了最近为 NW 社区电视台所做的工作,我还一直在学习一些您可能更熟悉的新工具,包括最新的 Visual Basic 版本(Visual Studio 2012)和 SQL Server 2012。
您最讨厌的编码习惯是什么?
不阅读手册或查看帮助文件,然后说某个功能不起作用的程序员。
我使用匈牙利命名法,但并不严格。我更喜欢全大写的常量。我想我的代码格式应该类似于 K&R。
我喜欢我的程序格式整洁。在 VB.NET 2012 中,我喜欢使用“编辑 | 高级 | 格式化文档”。在通用磨坊,我曾用 ALGOL 编写了一个 COBOL 源格式化程序。在该程序中,我将连续的 IF 语句块和行续接缩进了四个字符。这也是一个很好的学习机会,因为我使用了递归来处理嵌套语句。
您是如何开始编程的?
在我高中最后两年(1965-1966 年),我们中的几个人被允许进入明尼阿波利斯市中心的 IBM 测试中心。那里是 IBM 客户可以试用新计算机的地方。我们被允许使用 IBM 1130 和 IBM 1620 编写 Fortran IV 程序。有一天,当我们在那里时,IBM 员工正在搬运一堆箱子,里面装着一台新计算机——传奇的 IBM 360。
高中毕业后,我去了 明尼苏达大学技术学院。当时还没有计算机科学、MIS 或计算机工程专业,所以我读的是数学专业。全职在医院厨房工作和上课让我应接不暇,我只读了一个季度。
然后我去了编程系统学院学习了 18 周,在那里我学会了 IBM 402、407、514、519、548、088、188 的电路板接线以及 IBM 1401 SPS 和 Autocoder 编程。
在职业学校之后,我在通用磨坊找到了一份操作员的工作。在通用磨坊工作了三个多月后,我收到了征兵通知,并立即志愿参军。
在伊利诺伊州大湖市完成新兵训练营后,我被派往康涅狄格州新伦敦海军潜艇基地的供应部数据处理部门。海军说,我的职业学校所教的知识不亚于甚至多于 海军“A”学校,所以我直接被分配到一个海军数据处理技术员职位。
在我们的部门,有一些文职人员和一些军人。文职人员负责应用程序开发和其他一些行政职能。海军士兵负责操作。几个月后,我从操作岗位调到与文职程序员一起工作。我开发了主要与潜艇基地所有仓库的库存控制相关的软件。为此,我获得了海军成就奖章。
我接到了去航空母舰的命令,一年后又接到了去越南的命令,但海军潜艇基地领导层两次恳请海军人事局将我留在潜艇基地。因此,我最终在潜艇基地度过了海军生涯的剩余时间。
1971 年 8 月回到通用磨坊后,我开始在 Univac 9300 上进行软件开发。从那时起,随着技术的变化,我也相应地调整了我的技能。
开发者社区是如何影响您的编码的?
退休后,我加入了 CodeProject。我迄今为止已经贡献了一篇文章和几个小技巧。我在“快速问答”区域回答了大量的 VB 和 SQL Server 问题。
当我在以前没做过的事情上需要帮助时,我会搜索网站查找代码示例和函数。我也有可以请教的朋友。
我喜欢:包含解释的完整示例。
我不喜欢:提问者明显没有自己做任何研究就提出的问题。
您会对一个新兴的程序员提供什么建议?
当你需要使用新的语言特性、API 或其他功能时,编写一个小的测试程序来试验它。不要直接将其放入应用程序的中间,期望它第一次就能正常工作。在小型隔离程序中进行调试和学习要容易得多。
学会使用交互式调试器来查看变量值和调用返回的结果。
如果你能提供一个能重现问题的简小程序,你从支持团队(供应商、内部或开发者社区)那里获得的最佳结果。
设计你的程序时要考虑到它们会发生变化。
预见用户未来的需求。
在你的程序中编写良好的注释。几个月后你会需要它们。