苏格兰网站设计公司Media Surgery的首席开发人员John Macpherson将这种场景描述为他工作中真正的高潮之一:“当你测试你已经工作了几天或几个小时的部分时,它竟然工作了!”你觉得你是一个不可阻挡的超级大国,可以做任何事情。一种真正的欣快感。”他们也会意识到消极的一面:“当你已经工作了好几天,几个小时不工作。你觉得自己毫无价值,甚至质疑自己为什么会被雇佣。你觉得自己是个骗子。要么是欣快感,要么是冒名顶替综合症。这是一份奇怪的老工作,但在很大程度上是愉快的。”
我问开发人员、招聘人员和与他们一起工作的经理,他们喜欢自己的工作哪些方面,不喜欢哪些方面。答案各不相同,但有不少共同点。有时,就像Macpherson一样,软件开发的快乐和痛苦是同一枚硬币的两面。金博宝188手机网页
解决问题vs.重新发明轮子
最常见的主题之一是开发人员喜欢解决问题。计算机编程只是一种解决问题的方法。
全栈软件工程师、英国主机Hosting Data联合创始人珀西•格伦沃尔德(Percy Grunwald)总结道:“如果你不喜欢解决问题,你就不会喜欢开发软件。”反差安全公司的软件工程师Jacob Mages-Haskins也将软件开发比作解决谜题:“作为一名开发人员,我喜欢在代码中实现新功能的挑战。金博宝188手机网页就像我每天都有一个新的谜题要解决。”
另一方面,花很长时间在一个问题上,却发现已经有了解决方案,这可能会令人沮丧。软件开发公司wizpool的创始人兼首席执行官Zeeshan Arif说:“我不喜欢的一件事就是不断地重新发明轮子。金博宝188手机网页
这在编程中经常发生,因为有很多方法来做事情,每一种方法都有自己的权衡。您必须为您的应用程序选择哪些折衷方案是值得的。当你意识到你想做的事情别人已经做过了,你会很沮丧,但当你发现有另一种做事的方式似乎更适合你想要达到的目标时,你也会很兴奋。
格伦沃尔德建议,知道自己有能力超越其他开发者,这可能会激励你走向成功。“在软件金博宝188手机网页开发中,有很多方法来完成同样的任务,”他说,“想出最好的方法总是一个挑战。这样的挑战非常有趣。作为一名软件工程师,最重要的事情之一就是要有创造力,并尝试不同的选择。”
工艺vs.过程
大多数开发人员还从创建软件的过程中表达了一种满足感。正如惠兹浦的Arif所说,“我喜欢能够创造出其他人可以使用的东西。这就像一个工匠,只是用的是代码。”拥有10年开发人员和工程经理经验的Alexey Sutyagin用了一个更有力的比喻。“作为一名软件开发人员,最富有成效的部分是,当你从纯粹的思想中创造出新的东西时,你会有一种神奇的感觉,”他说。“我小时候就想成为一名巫师,而开发者看起来就像是现代世界的魔术师。”
就像工匠看到自己制作的桌子或柜子会感到特别的满足一样,开发人员也可以从看到自己劳动的最终产品中获得快乐。自由开发者网络Toptal的高级前端工程师教练丹尼尔·贾努(Daniel Jianu)说:“能够与机器交流就像是一种超能力。我多次使用它来帮助医疗系统中的患者,监测自然界中的放射性水平,并与朋友一起管理扑克比赛。”
“对我来说,最令人满意的感觉就是看到人们在世界上使用你的软件,”软件开发咨询公司Nexient的工程副总裁Nate Berent-Spillson说。金博宝188手机网页“我很少提起这一点,但当我走进一家运行我们软件的商店,看到柜台后面的人在敲击我们制作的屏幕,或者看到送货司机或零售工人在使用我们编写的移动应用程序时,我非常满意。”
另一方面,一些开发者提到他们的工作与他们的工艺感脱节。会议经常是一个痛点。格伦沃尔德说:“作为一名软件开发人员,经常要参加低效、重复和无关的会议。
Rajeev Bera是IT培训网站aCompiler的创始人,也是一家IT公司的高级开发人员,他表示赞同:“大多数时候,这些会议不会增加任何价值。”他接着说,“偶尔我必须创建文档,这是一种非创造性的写作,老实说,我不太喜欢这样。”
一般来说,企业环境越多,过程就越多,开发人员就越沮丧。金融科技招聘公司EC1 Partners的执行顾问基尚•帕特尔表示:“在一家大公司工作,有时会影响他们角色的自主性。”无尽的繁文缛节让开发人员在代码中表达自己的自由更少,灵活性也更低。”Nexient的贝伦特-斯皮尔森指出,当“我看到团队在策略而不是代码上较劲时”,他会感到沮丧。
Python开发公司STX Next的高级开发人员rafa沃格特科夫斯基(rafa沃格特科夫斯基)保持了平衡:“所有流程都阻碍了开发,但创建优秀软件需要一定程度的流程。”在他看来,关键是不要让流程失控,不要占用开发人员太多的时间。他说:“把每天15分钟的团队站立会议变成一个小时(或更长时间)的跨职能状态会议,是最常见的”有缺陷的流程。
团队合作的乐趣vs.合作的痛苦
工作的“过程”方面大多出现在团队和协作的环境中。对我交谈过的许多开发人员来说,与他人共事的友情是他们工作中最棒的东西之一。例如,Python开发人员兼网络安全工程师小Caleb Chandzamarda Junior说,他工作中最喜欢的部分是“思考和讨论设计,权衡利弊,以找到正确的答案,并致力于自己永远无法完成的酷产品。”
Toptal人才培训和人才运营总监Joe Guarascio表示:“特别是在公司层面,能够与许多不同类型的专业人士进行跨职能工作,对于日常和长期的职业发展都是非常有益和有趣的。”“我们的人才喜欢与项目经理、产品经理和业务运营人员一起工作的机会。”
也就是说,协作的日常现实会消耗大多数开发人员宁愿花在编码上的大量精力。Contrast Security的Mages-Haskins说道:“作为一名企业开发者,我讨厌沟通和协调的成本增长如此之快,即使只有几个团队在一起合作。正如已故的弗雷德·布鲁克斯在神秘的人月在美国,当参与一个项目的人数增加时,这些人之间的沟通途径就会激增——这当然是我在任何重要项目中的经验。”不过,他补充说,“每个人都需要确保这些功能是有用的,并为我们的客户提供价值。”
在最坏的情况下,原本应该合作的关系变成了同事之间更敌对的关系。苏佳金说:“在大公司,努力工作一整年是很常见的,但最终,你的项目被认为不重要而终止,或者你没有得到升职,因为你的影响太小了。”“所以你应该仔细选择项目。如果你的团队中有竞争对手,你应该说服他选择其他东西。我们可以说世界就是这样的。但这并不是我们成为软件工程师的原因。”
工作与生活的平衡vs.不平衡
不管你对软件开发有什么看法,但它不像在装配线上工金博宝188手机网页作。T金博宝188手机网页optal的瓜拉西奥说:“软件开发非常适合自由职业者和远程工作。“可以在世界上任何地方从事各种项目的自由,对我们的许多人才来说非常有吸引力。”
在过去几年里,这种灵活性只增不减。医疗分析公司LeanTaaS的高级软件工程师蒂娜·刘说:“我们有足够的自由来分配我们每天的时间。
Covid-19大流行改变了我们团队和公司的合作和沟通方式,使我们能够接受远程工作。我最近在2022年5月生了一个孩子,我很幸运能够在家工作。我可以在休息时间或会议间隙照看孩子。我可以在晚上宝宝睡觉的时候灵活地弥补时间,完成我的发展任务。我所拥有的自由让我妈妈嫉妒,因为她在事业上没有那种灵活性,白天她工作的时候也见不到我。她告诉我:“这才是真正的生活。”
但是,虽然没有严格的朝九晚五的时间表是件好事,但它也可能是一种负担。“软件开发人员的工作量很大。他们同时处理大量的项目,不断地从一个任务跳到另一个任务,”格伦沃尔德说。“他们被要求经常加班,并在晚上、周末和节假日等非传统的工作时间工作。”Burak Özdemir,字符计算器的创始人补充说,在很多情况下,“我们发现自己在电脑前工作了很长时间,很少与人交流。我们可能会觉得我们的工作永远不会真正完成,因为总有新东西要学,总有可以改进的地方。”
Özdemir指出,金博宝188手机网页虽然软件开发并不是最需要体力的工作,但它也有自己的问题。他说:“人体工程学也可能是一个挑战,因为我们经常整天趴在键盘上。”
“要说还有什么让我讨厌的,那就是整天盯着电脑,这对眼睛、脖子和上背部的肌肉都很不好受,这真的是不可避免的,”刘说。“所以我经常提醒自己休息一下,做一些运动来放松眼睛,缓解肌肉紧张。”
梦想中的科技工作vs.实际的工作
最后,作为一名开发人员,你所拥有的大部分经验将不是由概括性决定的,而是由你所处的具体位置决定的——这可能会对你的幸福和幸福产生巨大的影响。网站设计和搜索引擎优化公司Carbon Digital的首席执行官贾里德·莱德贝特说:“并不是所有的组织或部门都是平等的。
如果你所在的部门都是开发人员,那么它就有更高的可能性成为一个体面的地方。我所反对的是非开发人员的管理职位。那些希望现在就完成所有事情,但不想定义或建立过程的人。如果我建议我们使用像Jira或Azure DevOps这样的项目管理系统,这些不懂的经理会拒绝它,并指向MS Word/Excel/PowerPoint。或者,如果我建议我们需要利用敏捷/scrum这样的流程,它被认为是一个好主意,但你仍然被迫在瀑布模式下工作。
Chandzamarda也表达了类似的沮丧情绪,他指出,拥有“没有前瞻性思维的同事或经理——他们只关注现在,而不是我们如何展望这个产品的未来”——会让人感到压力很大。我们应该考虑我们现在可以采取什么步骤来为未来的道路做好准备。”
尽管如此,软件金博宝188手机网页开发仍然是一项高要求的技能,正如STX Next的Gatkowski所说,“毫无疑问的优势是很容易找到一份工作。”正如EC1的帕特尔所指出的,科技行业的薪酬也相当高,“在软件开发领域工作的经济回报和职业发展是首屈一指的。”金博宝188手机网页只要花一点时间和精力,大多数开发人员都能找到一份工作,让他们多做自己喜欢的事情,少做自己不喜欢的事情。