如何成为卫星和其他关键任务软件的软件开发人员?
我想知道……有人在编写前往火星、卫星控制系统、核设施的代码。他们进行了什么样的培训?他们的职业道路是什么?
I was wondering... There are people out there who code stuff going to mars, satellite control systems, nuclear facilities. What kind of training did they do ? What is their career path ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我有一个朋友,在获得光学工程学士学位后,前往 Perkin-Elmer 工作,主要负责磨削哈勃镜。在空闲时间,他编写了软件来计算地球抛射体的轨迹,并自学了轨道力学。他的兴趣和成就给美国宇航局的人们留下了深刻的印象,以至于他们雇用了他,他的职业生涯包括管理航天飞机模拟器的软件开发,并在几次航天飞机任务中担任任务专家。
我与洛斯阿拉莫斯国家实验室的工作人员进行了讨论,他们说,为了在那里工作,你必须找到已经这样做的人,然后每周给他们打电话,持续至少两年,这可能会导致面试。
换句话说,要有兴趣并坚持不懈。
I have a friend who, after graduating with a BS in optical engineering, went to work for Perkin-Elmer, grinding among other things, the Hubbel mirror. In his free time, he wrote software to calculate the trajectories of earth projectiles and teaching himself orbital mechanics. His interest and accomplishments so impressed people at NASA that they hired him and his career included managing SW development for the space shuttle simulator and acting as mission specialist on a couple shuttle missions.
I have had discussions with people working at Los Alamos National Laboratory and they say that in order to work there, you find someone who already does and then call them every week for at least two years and that may lead to an interview.
In other words, be interested and persistent.
一个反问 - 你是在谈论研发还是生产代码?
上面的许多答案都适用于研发团队开发新想法以增强现有发明,或实现以前不可能的新科学冒险 - 在这些情况下我同意。
但仍然有很多人编写实际与硬件一起部署的代码。与任何重大努力一样 - 你不希望提出激进解决方案的有远见的梦想家成为真正实施可能危及人类生命的事情的人。这是两个不同的焦点和两个不同的职业。
我同意你所说的研发团队的学术研究方法。
但如果您想编写生产代码,请熟悉流程以及质量控制和保证实践。所有提到的领域都涉及与政府签订的开发合同,这将需要最高程度的尽职调查和谨慎,因为它们花费巨额资金,可能会冒至少一些人的生命危险,并且就核设施而言 - 它们可能会摧毁全体人口。您要确保代码经过了大量的审查和测试!
要加入开发团队,请学习一些高端开发流程和实践 - CMMI、六西格码。尽可能多地了解测试和生命周期。从事与该领域接近的实习工作,特别是如果实习将向您提交许可 - 您提到的很多工作可能需要国防许可,如果您在大学毕业时获得许可,那么这将是一个巨大的优势。
A counter question - are you talking about R&D or production code?
Alot of the answers above apply to the R&D teams developing new ideas to enhance existing inventions, or to enable new scientific adventures that were not previously possible - in those cases I agree.
But there's still a slew of people writing the code that actually gets deployed with the hardware. As with any major endeavor - you don't want the visionary dreamers who came up with the radical solution to be the guys actually implementing the thing that could risk human life. It's two different focuses and two different careers.
I agree with the Academic, research approaches you're talking about the R&D teams.
But if you want to write the production code, get familiar with process and quality control and assurance practices. All of the fields mentioned involve development contracts with the government which will require the highest degree of due diligence and care, since they cost huge money, may risk at least a few human lives, and in the case of a nuclear facility - they could destroy entire populations. You want to make sure that code went through plenty of review and testing!!
To get on the development teams, learn some of the high end development processes and practices - CMMI, Six Sigma. Learn as much as you can about testing and lifecycles. Work in an internship close to this field, particularly if the internship will submit you for a clearance - a lot of the work you mentioned may require defense clearances, and it's a huge leg up if you graduate college with a clearance in hand.
涉及到几十种甚至几十种不同类型的工作。有些做更多的物理、模拟、GUI、命令和控制等工作。这个问题是“我如何开始这条职业道路?”或者“我很好奇,这些人是谁?”
There are dozens or perhaps many dozens of different types of jobs involved. Some do more physics, simulation, GUIs, command and control, and so on. Is this question "How do I get started down this career path?" or "I'm curious, who are these people?"
这些类型的领域需要物理和数学方面的教育(可能至少是硕士学位),其中编程是次要技能。
Those type of fields require an education (probably through at least masters) in Physics and Mathematics, where programming is a secondary skill.
典型的路径可能是这样的:
The typical path probably looks like: