发布于 2026-01-06 0 阅读
0

如何成为一名软件开发人员:我在IT公司学到的7件事

如何成为一名软件开发人员:我在IT公司学到的7件事

帖子配图。

软件开发实习生不可能在短短一年内就成为一名值得信赖的专业人士。然而,你编程生涯的第一年可能会为你带来许多宝贵的经验和感悟。如果你刚刚踏上编程之路,应该期待些什么?新手开发者每天都能从资深同事那里听到哪些建议?这就是我们今天要探讨的内容。

让我先简单介绍一下自己。我大约一年前开始接触软件开发。当时我决定学习编程,于是申请了Mad Devs的实习职位。作为一名实习生,我第一次体验到了在实际项目中进行软件开发团队合作。之后,我继续以初级前端开发人员的身份参与公司内部和商业项目。

本文并非面向所有开发新手的指导手册。我并非经验丰富的导师,无法指导新程序员。我自己也还是一名新手程序员。但是,如果您刚刚开始从事IT行业,或者正在考虑进入这个行业,我的经验或许能对您有所帮助。

第一课:与团队沟通

或许你仍然抱有“IT行业不需要沟通技巧”这种常见的误解。许多人仍然认为编程就是写代码。事实上,并非如此。让我们来探究一下原因。
软件或应用程序开发是一个复杂的过程,涉及众多人员:前端和后端开发人员、DevOps工程师、设计师、项目经理、QA专业人员以及客户。每个人都需要了解工作的总体方向,讨论具体任务的细节,确定截止日期,有时还需要解决冲突。

开发人员一天中近 50% 的工作时间都花在了沟通上:软件工程师要参加站会、团队电话会议和在线工作会议。这些同步机制确保开发工作以最快、最高效的方式进行。即使是自由职业开发人员也需要与客户通话,商定项目细节。
如果沟通不是你的强项,别担心,你可以学习弥补不足。沟通是一项可以(也应该!)培养的技能。下面我们将讨论团队合作中一些具体的沟通问题。现在,我想推荐两本能帮助你掌握沟通技巧的书籍:

  1. 《非暴力沟通:生命的语言》,作者:马歇尔·B·罗森伯格
  2. 关键对话:高风险情况下的沟通工具,作者:R·麦克米伦

《非暴力沟通:生命的语言》(马歇尔·B·罗森伯格著)和《关键对话:在关键时刻进行沟通的工具》

第二课:承担责任

这是鲍勃大叔在他的著作《代码整洁之道》中对责任的描述:

“专业精神是一个含义丰富的词。它当然是一种荣誉和自豪的象征,但同时也是责任和担当的标志。这两者当然是相辅相成的。你不可能为自己无需承担责任的事情感到自豪和自豪。
做一个非专业人士要容易得多。非专业人士不必为自己的工作负责——他们把责任推给雇主。如果非专业人士犯了错误,雇主会收拾残局。但如果专业人士犯了错误,他会自己承担责任。”

当开发人员从待办事项列表中选择一项任务时,他/她必须完成它。“完成”指的是将功能部署到生产环境,供真实用户使用。换句话说,即使任务已经提交测试,也并不意味着它已经完成。只有当变更经过测试并部署到生产环境后,任务才算真正完成。只有当你的功能对最终用户可用时,它才算真正交付,在此之前都不算交付。

这意味着开发人员要对功能的整个开发过程负责。他/她需要找到解决方案,与后端开发人员沟通,为其创建任务,进行测试,并将解决方案发送给相关负责人进行测试。此外,他/她还需负责及时报告问题,向资深同事寻求帮助,提醒他们检查拉取请求,并在需要延长截止日期时发出通知。

一般来说,这类东西可以从经验丰富的资深程序员同事那里学习并奉为圭臬。当然,你也应该读读鲍勃大叔的博客和书籍。例如,这是他著名的演讲,他在演讲中阐述了程序员的誓言。

第三课:寻求帮助

作为一名初级开发人员,我经常向同事寻求建议、帮助或反馈。有时,我甚至会因为事事都问个不停而显得很烦人。
在这种情况下,我面临一个选择。第一个选择是不要打扰同事,尝试自己解决问题。但通常情况下,这会耗费大量时间,而且往往会导致项目延期。在有明确截止日期的实际项目中,这并非最佳方案。第二个选择是克服打扰他人的恐惧,以更高效、更快捷的方式解决问题。

团队沟通。

以下是正确寻求帮助的简要说明

  1. 尝试自行解决问题。很可能您会在谷歌搜索结果中找到足够好的答案。不要花费超过 30-60 分钟的时间。

  2. 试着像向同事解释问题一样描述问题。在这个阶段,答案可能会突然出现。这种方法叫做“鸭子调试法”。不要在这个步骤上花费超过 60-90 分钟。

  3. 如果你自己找不到解决办法,可以写信给你的同事,询问他/她当天是否有空帮忙。简要地向他/她说明你遇到的问题。

  4. 当你的同事同意帮忙后,请更详细地向他/她说明问题。尽可能提供所有相关信息,包括控制台消息、日志等等。分享你广泛搜索的结果,并解释你已经尝试过哪些解决方案。

  5. 你也可以描述问题,然后将其发送到团队的图表或 #development Slack 频道。或许你的其他软件工程师同事会帮助你找到解决方案。

多问问题,弄清楚问题。如果你不明白,不要害怕显得自己很笨,要反复追问,直到完全理解为止。这样既能节省你自己的时间,也能节省他人的时间。毕竟,如果你不明白某个问题,又没有向团队请教,之后就不得不重新审视,花费更多时间寻找解决方案。

反馈是另一个重要方面。初级程序员无法客观地评价自己的工作。因此,你应该定期向队友和资深同事寻求反馈。这将帮助你发现自身的优势和劣势,并了解需要改进哪些方面来提升编程技能。

开发人员资历级别如何影响软件开发成本。

第四课:谈论问题

在软件开发团队中,及时沟通问题至关重要。你越早提出困扰你的问题,就能越早获得帮助来解决问题。

这意味着当你:

  • 意识到你无法完成这项任务,

  • 在某项具体任务上花费了太多时间。

  • 要知道你快要错过截止日期了。

  • 完全不知道从何入手,

  • 因环境或其他团队成员原因而受阻

说出来就行了

团队会议。

软件开发流程旨在及早发现并解决潜在问题。每日站会和定期团队电话会议有助于确保所有成员步调一致,并及时采取行动。

站立会议是一种汇报昨天工作内容、今天工作计划以及当前面临问题的实践。“问题”栏的存在是有原因的。你的任务是汇报问题。团队中所有工作流程和个人角色(例如项目经理)的任务是帮助你解决这些问题。


每当你把问题藏在心里的时候,总有一个总理在某个地方哭泣——那就是你的总理。


第五课:害怕犯错

我有个问题——我害怕犯错。我害怕错过截止日期,害怕让同事失望,害怕让客户失望。这种恐惧让我不敢开始新的任务,因为我怀疑自己能否胜任。我的职业发展也因此停滞不前,因为我害怕承担那些需要大量研究的陌生任务。

如果你也害怕某些事情,这很正常。你需要明白几件事。这些事看似微不足道,但它们能帮助你冷静下来,允许自己犯错。

首先,人不可能了解所有事情。尤其是在当今瞬息万变的IT行业。

其次,错误总是难免的。开发者不是机器人,他们不可能一直写出完美的代码。但努力追求完美,从错误中吸取教训,避免重蹈覆辙,这一点至关重要。

第三,职业发展离不开犯错。正是通过犯错,我们才能积累宝贵的经验。本文中提到的所有经验教训,都是我和我的程序员同事们从自身犯下的错误中总结出来的。

罗伯特·马丁在他前面提到的那本书《代码整洁之道》中写到了代码错误:

“您当然是对的。软件太复杂了,不可能完全没有漏洞。”

很遗憾,这并不能让你免责。人体极其复杂,我们无法完全了解,但医生仍然宣誓不伤害病人。如果他们都不能这样免责,我们又怎么能呢?

“你是说我们必须做到完美吗?” 我听到你们反对了吗?

不,我的意思是,你必须为自己的不完美之处负责。代码中肯定会出现错误,但这并不意味着你无需为此负责。编写完美软件几乎是不可能的,但这并不意味着你无需为这些不完美之处负责。

第六课:努力取得成果

在软件开发中,为了优化团队协作,人们使用了许多不同的工具和方法。您可能听说过OKR敏捷开发Scrum以及其他许多软件开发方法。对某些人来说,所有这些方法可能看起来多余且耗时。然而,您需要确保整个团队始终专注于既定的目标和优先级。这才能使开发过程既灵活又结构化。

团队应该理解工作目标,明白自己要解决什么问题,以及能带来什么价值。否则,就只是在做无意义的工作——为了工作而工作,坐在办公室里等着下班。

因此,即使你的经理没有主动与你沟通,你也应该始终努力了解项目的业务目标。主动发起对话,深入了解客户的问题。设想更多反映最终用户行为的场景。深入研究产品的各个方面,找出还可以做些什么来改善最终用户体验。

根据我资深同事的建议,我经常问自己“我现在做的事情是不是一团糟?”我觉得这或许对你也有用。

帖子图片

第七课:任务估算

评估任务的能力是一门艺术,很难掌握。然而,有一个简单的做法可以解决你一半的任务估算难题——永远不要答应你没有把握的截止日期

让我们再次翻阅《代码整洁之道》这本书,鲍勃大叔在书中举例说明了开发人员和经理之间关于截止日期的对话。

迈克:“宝拉,我需要明天之前把登录页面做好。”
宝拉:“不行,迈克,那得花两周时间。”

迈克:“两周?建筑师估计三天就能完工,现在都五天了!”

宝拉:“建筑师们搞错了,迈克。他们在产品营销部门拿到需求之前就做了估算。我至少还得花十天时间才能完成这项工作。你没在维基上看到我更新后的估算吗?”

迈克:(神情严肃,沮丧得浑身颤抖)“这可不行,宝拉。客户明天要来做演示,我得让他们看到登录页面能正常运行。”

Paula:“你们明天需要登录页面的哪个部分正常运行?”

迈克:“我需要登录页面!我需要能够登录。”

宝拉:“迈克,我可以给你做一个登录页面的模拟版本,你可以登录。我已经把它做出来了。它不会验证你的用户名和密码,也不会给你发送忘记密码的邮件。页面顶部不会显示公司新闻横幅“时代广场”,帮助按钮和悬停文本也不会生效。它不会存储 cookie 来记住你下次登录,也不会限制你的权限。但你可以登录。这样可以吗?”

迈克:“我能登录吗?”

Paula:“是的,你可以登录。”

迈克:“太好了,宝拉,你真是我的救星!”(一边挥舞着手臂一边说“耶!”)

不要高估自己,也不要过度承诺,​​否则你会失眠、加班加点,还会惹恼你的首相。

后记

这七条经验是我在IT行业的第一年里总结出来的,也是我第一次加入软件开发团队。这一年充满挑战,但也让我受益匪浅,它为我打开了一个全新的奇妙世界。一切就此开始,但接下来会怎样呢?目前看来,前景一片光明。

此前发表于maddevs.io

文章来源:https://dev.to/maddevs/how-to-become-a-software-developer-7-things-that-i-learned-in-the-it-company-2mph