英文原文:作为初级开发者犯过的错误—以及如何避免它们。 编者按:初入职场时职场,一切都是未知数,你会遇到各种各样的挑战。摸着石头过河,应该最能形容你这个阶段的感受。本文的作者JackFinlay是一名软件开发人员。在这篇文章中,他总结了早期在软件开发领域所犯的错误以及他的想法。想进入软件开发领域的新人可以以此为鉴,避免犯这些错误,少走弯路。 当你刚开始从事软件开发工作时,一切都是未知的,一切都让人望而生畏。离开大学校园,进入真正的工作环境是一个很大的转变,路上可能会经历很多坎坷,直到找到自己的节奏,建立起足够的自信。也有可能你对自己的能力已经很自信了,那么我想问你一个问题,“在这之前你犯过多少错误?” 进入软件开发行业,也是掌握一门技能的开始。就像任何其他职业领域一样,你会发现你会在这里受到挑战,你会有机会改正自己,有时你会发现你所做的是完全错误的。这篇文章是对我在软件开发生涯早期所犯错误的反思,同时我也根据自己的经验给出了如何避免这些错误的建议。 求职过程 大学毕业找到第一份工作不是一件容易的事。确保它适合您。公司必须适合你,带你走向你想去的职业方向。 找到你的价值 我在这方面犯了两个错误。我在大二那年找到了第一份软件开发工作,因为当时我的经济拮据,所以我欣然接受了第一份工作。我当时的想法是我应该接受这份工作,因为与我微薄的学生福利相比,薪水很高。那时,我根本不知道这份工作的薪水。结合这个职位和公司所在地,其实远低于当时的市场薪资标准。 正如我之前所说,我犯了两个错误。另一次是刚毕业,我在别处找到了一份工资比当时高25%的工作。但即便如此,按照市场标准,新工作的薪酬处于低端。我的价值被严重低估了,但当时我并不知道,还欣然接受了这份工作。当时我几乎没有意识到并非所有权力都掌握在雇主手中。 也可以要求自己的工资。如果我事先花时间做一些市场薪资调查,我就会发现我真正应该得到什么报酬。我建议你可以参考PayScale之类的网站了解这些信息,甚至可以在谈薪资时直接参考一些类似的网站。 浏览员工评价 Glassdoor是一个很好的资源。公司员工会非常重视对公司的评价。一般来说,就员工在公司工作的好坏经历而言,评论可能会出现两极分化。您需要搜索正面和负面评论并找到中间立场。如果我早知道这些评价,我应该可以避免在面试和后续工作过程中遇到一些不好的经历。 知道自己实际从事什么工作如此渴望去那里工作,以至于我忘了问我到达那里后实际上会从事什么样的工作。原来我和朋友不在一个部门,虽然在同一栋楼,但不在同一个办公区,甚至不在同一楼层。当时,我什至没有事先想过这份工作是否真的适合我。 还有,我对应聘的软件开发环境、使用的工具、语言等问的不够多,又是一个错误。所以,在那之后我余下的职业生涯中,在接受一份新工作之前,我将确保我理解以下问题: 1。版本控制策略和工具 是否符合行业标准?是Git、TFS、SVN还是Mercurial?如果你以前听过,你应该没问题。 2。CI/CD工具和环境是否到位? 部署应该尽可能自动化,这会让你的生活更轻松。 3。部署频率是多少? 4。我将使用什么框架/语言工作? 5.你使用什么工具?哪个集成开发环境? VisualStudio、Rider或IntelliJ是一些不错的选择。 6。我将从事什么样的项目? 7。公司下一步计划采用哪种技术?这些变化主要是为了什么样的发展前景?这些技术还需要多长时间才能被公司投入日常使用? 在工作中 一旦开始工作,挑战就会不断出现。你会发现自己每天都面临着一些新的挑战。 代码永远不会自注释 “我的代码是自注释的,不用再注释了。”这就是我****开始专业编程时的想法。但我再也不会犯那样的错误了。对于任何一种语言,评论都是最大的特色,它可以传达你当时的想法,你需要在评论中体现这一点。 我看了无数的代码片段,发现一个简单的注释往往可以让复杂的代码和算法更容易理解,更容易更新。 但是如果一段代码被过度注释,那还不如没有注释。当您处于深度探索模式时,试图弄清楚某些东西是如何工作的,您会发现过度注释的代码只会让您更难探索。如果你过度注释一行代码,下一个看到它的人可能不明白你为什么这样做。 因此,请务必谨慎处理您的注释。高质量的注释内容不仅可以减轻认知负担,还可以帮助您发现错误。如果它看起来与评论不符,那很可能是错误的,或者它会给你一个机会将下面的部分付诸实践。 有问题趁早 不要等到掉进兔子洞,错误已经犯了才求助。不寻求帮助可能会导致您得出错误的结论,或者更糟的是,破坏某些东西。尽早提出问题,即使是可以通过Google搜索快速回答的问题。也许你需要问问题,但你不想问,因为你害怕自己看起来像个白痴,而最终的结果是你正在做一些完全错误的事情。 提出问题可以帮助您学习新事物并快速参与项目。如果你在需要的时候不问问题,你可能在做一些错误的假设。 不要做任何假设 假设是您在处理项目时决定需要构建什么的重要部分。当您设计解决方案时,并非所有内容都必须符合您之前所做的假设。只有正确的假设才能帮助您找到正确的解决方案。 我有过花费数小时编程的经历,结果却出了问题,而我构建错误只是因为我做出了错误的假设。通常,从业务分析师那里获得的任务非常具体,但经常会遗漏一些部分。除非您事先告诉他们或您已经问过他们,否则不要做出假设。 在家工作 您可以偶尔要求在家工作,不要害怕提出这个要求。有时,这是摆脱办公环境的压力和干扰并让自己集中注意力的好方法。有些企业的整个员工团队都在远程工作,这显然很有效。 当然,也有一些公司坚决反对远程工作模式。我在澳洲的一家公司工作了一年多,办公室在新西兰。无论是团队之间的协作,还是与客户的合作,实际上都是通过网络进行的,无论是电子邮件、即时聊天还是传统的电话形式,距离不再是你与他人协作的障碍。也就是说,无论我是在办公室工作还是在家工作,实际上并没有什么区别。但无论如何,公司就是不允许远程工作模式的存在。 因此,您可以留意合适的工作,让您有机会在家或办公室以外的地方工作。 实际编程时间 不幸的是,您不能将整个工作周都花在编程上。虽然,你可能对这种情况感到苦恼,但也不全是坏事。毕竟,编程并不是100%的时间都在编写代码。 其中,你的很大一部分时间会花在会议项目上,而这些会议通常是为了减少你需要花在特定编程上的时间。这也是确保您可以通过编写尽可能少的代码来设计最佳解决方案的有效方法。 工作之外的 有人可能会说没关系,但也有人认为你在工作之外所做的与你在工作中所做的一样重要。 利用我的业余时间发展更多的编程技能 一旦我意识到我在当前工作中使用的专有工具和语言是多么令人沮丧,我将开始研究我知道会得到的那些我还有另一家公司的技能。 如果你发现自己困在同类型的工作环境中,了解一些更主流的技术信息将帮助你找到新的出路。虽然这方面有两极分化的趋势,但相信利用业余时间发展专业技能,一定能让你在未来抓住更多机会。 阅读 既然我自己读了一些书,我希望我读得更多。因为我们可以从书本中学到无穷无尽的知识。您可以在休息时间或工作日拿起几本书阅读。大部分人都是坐车上下班,这段时间可以用来看看书。 写作 写作是促进职业发展的好方法,也是我现在正在尝试做的事情。这不仅仅是一条建议,而是我自己反思的结果。将遇到的困难或问题记录在博客中,以后再次遇到类似问题时,本博客将对您有所帮助。 一开始这样做可能看起来很奇怪,但是把这些写下来是减压和释放情绪的好方法。我的大部分工作都是直接向公众开放的,但你不必这样做。 运动 第一份工作的前两年,我没有经常运动,身体很快就开始不堪重负。我们都知道,作为一名程序员,大部分时间都坐在电脑前,一动不动,盯着面前的屏幕。当然,你不可能整天都在编程,但是起床去会议室开会显然是不够锻炼的。所以,我的建议是尽量让自己多运动。 休假 虽然让自己有空工作是一个重要的品质,但要知道时不时地休假也很重要。如果你自己负担不起长假,你可以把假期和周末结合起来,或者时不时地休息几天。公司对假期和休息日有不同的福利政策,确保您能尽可能地享受这些福利。 我之前犯的一个错误就是积累了很长一段时间的休假时间,但最终没有派上用场。那在经济上是不错的,省钱了,但显然不利于我的身心健康。
