如何成为一个非软件公司的程序员
如何成为一个非软件公司的程序员
原文:https://medium.com/hackernoon/how-to-be-a-programmer-for-a-non-software-company-80c499bd9bd5

Pick Your Poison
作为程序员,在寻找并最终决定一份工作时,我们会面临很多决定。在这样一个竞争激烈的市场中,薪酬很重要。一个人必须看福利和假期。工作环境也非常重要,尤其是因为软件行业与其他领域不同,充满了有趣和令人兴奋的工作环境。
一旦一家公司看起来合适,我们就必须确保满足通常非常严格的条件。我们熟悉这项技术吗?公司是否参与了相关的最佳实践?这不是一件容易的事情,需要花费数周的计划和研究来找出哪些公司是合适的。
一旦对某个职位感兴趣,我们就必须做一项最重要也是最古老的工作,那就是研究公司本身。当然,这对于申请任何公司都是很好的建议,但软件开发人员必须问自己一个额外的问题:这是一家软件公司,还是恰好写软件的公司?
这个概念在学校系统中肯定没有被提及很多,这是初级和高级开发人员都需要问的问题。像谷歌和脸书这样的软件公司 100%投资于软件和开发软件的开发者。对于那些从软件本身以外的其他产品中获取利润的公司来说,情况并非总是如此,程序员在这种情况下需要非常小心。
有什么区别?
在软件公司工作有很多好处。最显而易见的是,参与其中的每个人要么了解软件,要么如果不了解,他们就不会长久。每个人都在谈论软件,并且理解创造软件所带来的挑战和现实。
早在 2007 年,Joel Spolsky 做了一个关于这个主题的演讲。他说的更多的是开发内部工具,但是同样的原则也适用于创建软件,它也是达到其他目的的一种手段。他表示,最大的抱怨之一是:
你永远不会用正确的方式做事。你总是得用权宜之计做事。
这是有意义的,因为最终,并不是软件本身带来了最大的投资回报。那么,您使用最佳实践就不那么重要了。忘记 TDD、文档、持续集成或自动化测试。快点搞定。向前看。软件公司很少会牺牲质量,其他公司会。
在软件公司工作的另一个优势是程序员的价值。因为软件与赚钱直接相关,所以开发人员更受重视,并且通常在公司比其他人有更光明的未来。被困在这种类型的团队中会很痛苦。
拥抱现状
就这样,永远不要为非软件公司工作,对吗?没那么快。这里也有优势,如果有合适的公司和合适的团队,这将比仅仅是另一个团队更令人愉快和有益的经历。
成为软件开发的倡导者
对为非软件公司工作的编程团队有帮助的一件关键事情是成为软件开发的倡导者。如今,你可能不需要为软件本身辩护。软件被视为解决企业当时面临的任何问题的神奇工具。然而,开发过程却不太清楚。
花些时间向企业解释技术债务。解释为什么存在最佳实践,以及实施它们将对整个项目产生什么影响。你永远无法证明仅仅为了“合适”而给一个项目增加两周是合理的。它必须解决业务需求,并带来某种货币价值。
当倡导适当的开发实践时,您需要以业务理解的方式呈现信息。在一家软件公司,或者甚至在其他开发人员的内部,你可能会在喝咖啡的时候,在一个简短的会议或者一封详细的电子邮件中解释一些事情。对于非程序员来说,你需要做的更多。

你可能需要拿出你在学校学到的那些幻灯片技巧。这取决于组织,但大多数组织都有典型的沟通方式。以我的经验,是幻灯片。拼凑出一个专业的幻灯片。公司里的其他人都这样推销他们的想法,程序员不应该期望有任何不同。
鼓励但限制合作
正如我前面提到的,软件可以被看作是解决问题的神奇的解决方案,但是经常远离日常用户,让他们感到害怕。鼓励公司的其他人参与进来。鼓励他们在项目开发过程中提交想法并提供反馈。
作为软件开发人员,我们知道能够想到一些东西,然后立即去实现它是多么值得。想一想,然后看着它被实现,这同样是值得的。这真的可以让一个组织对软件开发感到兴奋,更重要的是,对过程感兴趣,而不仅仅是最终结果。
尽管如此,一旦有人尝到了能够影响开发过程的滋味,这可能是一件危险的事情。通过打开发展的渠道,这可能会让大量善意的请求涌入,而不知道这对最后期限会有什么影响。这就是倡导这一过程如此重要的原因。每个人都必须知道“仅仅一个快速的小特性”会对整个项目产生什么影响。
沟通是关键
和往常一样,当谈到让公司对软件充满热情时,沟通可能是最重要的部分。如果一个软件团队仅仅被视为一个创造产品然后消失的外部团队,那么他们永远不会被重视。

让每个人都了解情况。向他们解释延误的原因。分享里程碑和成就。通过付出努力,你无疑会成为他们合作过的最好的沟通软件团队之一,这具有巨大的价值。
结论
是不是去软件公司工作比较好?这真的要看情况。当然有很多优势,对于希望在职业生涯中一帆风顺的程序员来说,他们可能应该坚持去软件公司。然而,对于那些愿意付出努力,愿意致力于软技能并稍微走出 IDE 一步的人来说,为非软件公司工作可能是真正有益的经历。
如果你正在找新工作,仔细想想公司卖什么样的产品。如果他们不关注软件,请确保在面试过程中重点讨论这一点。如果你不能保证软件开发会是优先考虑的事情,那就跑吧。如果你目前在一家非软件公司工作,尽你所能证明其价值,并教育公司的其他人。
我已经说过一次了,我还要再说一次:编码是容易的部分。与他人互动才是挑战。如果你在一家非软件公司工作,接受挑战并付出努力,它会让你成为更好的程序员。



