初级开发人员生存指南:成功的三大支柱
第一部分:成功的三大支柱
第二部分:工作中需要注意的十大危险信号
第三部分:给你的钱包加点小贴士
第 4 部分:初级开发人员资源指南
你是刚从计算机科学专业毕业,刚刚开始初级开发人员的工作吗?还是一位自学成才的开发人员,正在寻找新的工作机会?你正处于每个软件开发人员的起步阶段!初级开发人员的职业生涯既有其独特的乐趣,也有挑战。今天,我们将为你讲解成为一名初级开发人员所需的一切知识。我们的目标是涵盖技术教程中不常见的主题。让我们立即开始吧!
以下是我们今天要介绍的内容
-
第一部分:初级开发人员成功的三大支柱
-
第二部分:工作中需要注意的五个危险信号
-
第三部分:十个值得你牢记的小建议
-
第四部分:初级开发人员完整资源指南
第一部分:成功的三大支柱
一头扎进科技行业可能会让人不知所措。为了帮助你顺利起步,让我们来了解一下初级开发人员职业成功的三大支柱。我们希望你能在工作中获得满足感并不断成长!
支柱一:专业精神
在现实商业世界中,技术技能只能帮你走这么远。即使你是班里的尖子生,你也可能还没准备好应对职场的严苛。无论你的长期目标是什么,专业素养都是初级开发人员生存的关键。专业素养可以粗略地定义为一系列行为、态度和习惯,它们体现了专业人士的特质,并与公司价值观相一致。让我们将初级开发人员的专业素养分解为五个关键点。
1. 当我不明白某事时,我会提问
承认自己不懂并不容易,尤其是在需要的时候,知道如何提出正确的问题更是难上加难。但那些假装无所不知的业余爱好者或初学者,往往会故态复萌,落后于时代,甚至最终显得愚蠢。专业精神意味着诚实地对待你的工作、你的知识以及你渴望进步的心态。善于提问是职业成功的关键。
无论您现在是否意识到,在您刚开始时,您的知识中不可避免地存在差距,而提出问题可以使您继续学习并更加专业地满足公司的需求。
如果你遇到难题或感到困惑,你可能会担心同事会认为你笨或缺乏教育。但实际上,人们都乐于助人。此外,提问还能体现出你渴望在团队中取得好成绩。
虽然确实没有愚蠢的问题,但提问的方式有好有坏,学习如何提出好的问题可以节省你的时间并避免沮丧。
首先问问自己,
- 我是否已经尽我所能理解了代码?
- 我是否已经查阅过像 StackOverflow 这样的可靠来源?
- 我是否使用过调试程序来帮助我解决这个问题?
如果您已经尽力自行解决问题,那么是时候寻求帮助了。提问的最佳方式是将问题具体化,并向提问者解释您的流程。请准确指出您出错的地方、您认为哪里出了问题以及您是如何解决问题的。如果您想更详细地了解如何针对代码提出正确的问题,请参阅这篇文章。
2. 我寻求经验丰富的开发人员的指导
拥有一个支持系统不仅能让你成为更优秀的员工,还能让你成为一个更有成就感的人。身边有人提供帮助、建议,甚至只是倾听你的心声,都能改变你的工作环境。专业的导师关系能为你创造一个与你所在领域的专业人士互动的空间。
你可能不会像在大学时那样被指派导师,所以寻求一位真正关心你成功的导师至关重要。这不必是正式的关系;即使只是与经验丰富的开发人员定期聊天,也是一个很好的开始。而且,由于你们将在同一家公司工作,你从这些盟友那里学到的一切都将扎根于公司代码库和文化的实际应用中。
如果你不确定如何建立导师关系,不妨先关注一下其他人的工作,建立联系。另一个寻求导师的简单方法是分享你的里程碑。让其他人参与你的进步,他们就会希望看到你取得成功。
专业提示:我们建议您找一位经验水平与您相差 5 到 10 年的导师,这样他们就能获得宝贵的见解,而不会与您的工作直接竞争。
3. 我所做的每件事都会征求反馈
专业精神意味着对职业发展抱有积极的态度。作为一名初级开发人员,你的目标并非追求完美,而是不断学习新技能。这意味着你会在过程中犯错。提问固然重要,但直接寻求反馈也同样重要,尤其是在你的公司尚未建立技术评审系统的情况下。寻找反馈机会是展现专业精神的一种方式,能够以行动为导向。
你不应该只询问工作技术层面的反馈,也应该询问你的日常习惯和实践。关于你在职场中的角色的反馈,涵盖了你与同事的相处方式、你的沟通方式以及如何安排时间。
寻求建设性批评的关键在于做好诚实的准备。不要把反馈误认为是表扬的机会。不妨考虑提出以下问题:
- 我可以做哪些不同的事情来为我们的团队增加价值?
- 您希望我停止做什么?
- 您希望我开始做什么?
4. 我的工作和时间安排井然有序
在任何领域,组织能力都是专业素养的关键,尤其是在软件开发领域!那些无法掌控工作或时间的人,在雇主和经理眼中无疑是个危险信号。让我们来探讨一下初级开发人员如何保持井然有序的两种简单方法。
做笔记。在工作中,你每天都会学习,纠正错误,听到你可能不认识的术语。做笔记是确保这些新知识不被遗忘的好方法。从记录你需要回答的问题,到回顾与导师的对话,再到写下你不认识的单词,从长远来看,做笔记将增强你和你的职业生涯。做笔记没有绝对正确的方法,也绝对不必是一个正式的体系。即使只是一本小笔记本,用来记录你的想法或问题就足够了。
积极练习时间管理。众所周知,时间管理对各个级别的开发人员来说都极具挑战性,所以在职业生涯的早期就开始培养这项技能吧。时间管理的关键在于有效的沟通。尽早表达你的需求,切勿做出无法兑现的承诺。由于你正处于职业生涯的早期,不妨考虑策略性地追踪你的工作,以获得有条理、以行动为导向的数据。你可以阅读我们的文章,了解更多相关技巧。
5. 我保持健康的工作界限。
专业精神意味着在时间、职业道德和承诺方面设定清晰的界限。设定健康的工作界限意味着对自己的行为和态度负责,而不对他人的行为或错误判断负责。能够协调这些差异是一项需要时间和实践才能掌握的技能。
作为初级开发人员,你可能还不清楚自己的工作界限在哪里,这没关系。关键在于在遇到问题时及时沟通并关注自己的情绪。以下是一些关于如何设定健康工作界限的建议。
深入了解自己:每个人都有不同的价值观、触发因素和需求。在职业生涯早期了解自己的价值观、触发因素和需求,能够极大地提升你的能力,并使沟通更加顺畅。不妨尝试一些性格测试,例如 Strengthsfinder、九型人格测试、DiSC 或 True Colors 等。
尽早清晰地沟通:不要等到情绪爆发才表达你的感受。学习如何有效地表达自己的想法是初级开发者职业生涯的关键。
保持工作结构:制定议程可以让你获得成功,并防止他人利用你的时间或迷失在琐事中。
做好应对可能出现问题的准备:职场环境并非完美无缺,这很正常。当事情出错或界限被打破时,这是一个重新调整、沟通和练习更好地设定界限的机会。
支柱二:软技能
技术技能对于你作为开发者的潜力和抱负至关重要,但如果你只专注于技术技能,你就会落后。普通员工和专业人士之间的区别就在于软技能。
为什么软技能如此重要?让我们来探讨三个原因。
你会在非开发者面前脱颖而出。你需要学会用非开发者的语言交流。仅仅拥有热门的技术技能并不能让你走得更远,因为非开发者不一定能理解你,也不一定能理解它带来的价值。软技能,比如沟通、团队建设等等,是通用的,可以让其他部门的人注意到你,关心你的工作,并对你的角色产生投入。
技术技能会不断变化,而且可以被取代。如果你想长期从事这一行业,你需要具备一些新技能。你倾注所有精力的热门新事物,几年后可能就变得无关紧要了。但培养对团队的乐观、支持的态度呢?这可是永不过时的技能。如果你想长期发展并寻求晋升,就不要被最炫酷的新技术所吸引。转向那些经典的软技能,扎根你的根基。
你会成为一个问题解决者。开发人员说到底只是一个问题解决者。只擅长硬技能,技术技能,意味着你可能不了解你工作的更广泛应用,你可能会错过一些东西。专注于软技能,可以让你调整思维,以人为本。你很可能会为你的客户或公司创造更直观、更实用的产品。
那么,成为一名优秀的初级开发人员需要哪些软技能呢?让我们来讨论一下其中的五项。
团队合作。
成为一名开发人员并不意味着你独自坐在地下室里对着电脑。你几乎总是在一个团队中工作,与他人交叉检查你的工作,并协作解决问题,即使你是远程工作。团队合作意味着认可他人的优势并尊重彼此的界限。
适应性。
你参与的每个项目都会有所不同:不同的框架、不同的设置、不同的目标、不同的团队成员。适应能力强会让你成为一个更快乐、更高效的员工,而且不用再为后续工作操心!
好奇心。
你需要对事物运作良好或不顺利的原因保持好奇心,以便修复或改进它们。好奇心会引领你找到最佳实践、创造性的解决方案和新的热情。那些喜欢尝试和探索的人往往是顶尖的开发者。
聆听。
倾听他人的意见对于开发人员的成功至关重要,尤其是当您与非开发人员一起工作时,他们可能不懂相同的术语,但对您的工作有重要的要求或想法。
批判性思维。
批判性思维的核心在于解决问题。批判性思维会在直接找到答案之前,先思考问题的“为什么”。为什么会发生这种情况?如何改进?这项技能可以帮助你分析自己的工作、代码库等,避免仓促得出无效或不完整的解决方案。
支柱三:技术能力
培养技术技能是职业生涯的基石。请记住:作为一名开发者,你需要随着行业的变化不断更新和重新掌握技能。所以,让我们来探讨一些可以帮助你快速开启技术之旅的方法。
1. 选择您的语言
关于初级开发者最适合掌握哪些语言,网上有很多讨论。许多初级开发者因为缺乏编程语言知识而担心自己能否被录用。今天,让我们来解答这些担忧。
事实很简单:你掌握什么语言确实很重要,但原因可能与你想象的不一样。
使用易于阅读的语言。作为初级开发人员,你会有很多技术评审,因此选择语法更简单的语言通常可以节省你的时间,让你的工作更轻松。
使用许多同事/同行都在使用的语言。热门语言之所以受欢迎是有原因的。通常,使用同事熟悉的编程语言是个好主意,因为它可以促进协作。你也可以根据自己的职业志向来选择编程语言。以下是一些领域最常用的编程语言:
- Web 开发:PHP、HTML、JavaScript、Java
- 桌面程序:.NET、C++、Java
- 游戏开发:C#、C++、Python
- 机器学习:Python、C++、R
使用具有大量酷炫插件的语言。有些编程语言比其他语言拥有更多功能,作为初级开发者,使用这些语言可以节省时间和精力。内置开发工具的语言意味着你可以更轻松地完成一些酷炫的事情。
使用一门你熟悉的语言。作为一名初级开发人员,你已经有很多东西需要学习和掌握,因此使用一门让你感觉很自然的语言会让你的工作更轻松、更愉快。
2. 比语言能力更重要的事情
是的,你的语言技能很重要,但作为一名初级开发人员,你还需要具备其他技术技能。这些技能将助力你的职业生涯发展。让我们来讨论一下,在职业生涯的这个阶段,你还应该在哪些技术方面投入精力。
软件/计算机架构:这些技能对于未来成功的职业生涯至关重要。这些知识能帮助你更全面地了解自己在团队中的角色。对于所有想要更上一层楼的开发者来说,了解计算机的工作原理至关重要。在这个阶段,你应该学习 UML 图表、MVC 模式、RAM 和 CPU。
系统设计:系统设计知识使您成为更具就业能力的开发人员,因为它展示了更多的通才技能。
数据库:
数据库可以为初级开发者带来巨大的灵活性和价值。如果你想超越(有时是随意的)“初级”头衔,你需要一些 SQL 知识。这将帮助你理解代码的扩展和性能,而且至少它很有趣!
3. 编写和导航代码
编写更短的方法。初级开发人员往往会编写冗长的函数和方法,这会阻塞代码,并且可能无法在高层级运行。冗长的方法难以让外部读者理解或理解,还会降低生产速度。学习如何编写简短的方法从长远来看可以节省您的时间。最简单的方法是从长方法开始,将其分解为私有方法,以消除不必要的步骤,从而生成更简洁、更易读的代码。
通过你的副业项目学习。副业项目为你提供了一个探索、培养热情和积累经验的平台,无需设定时间限制或承担任何后果。编程技能是通过实践获得的,没有什么比完成一个很酷的、充满热情的项目更让人感觉良好了。你可以创建一个互动作品集,或者根据你的餐厅偏好定制一个应用程序。思考生活中的小问题,并尝试以探索的方式解决它们。你将学到宝贵的技能,增强自信,并创造出一些有趣的东西。
认真对待代码审查。代码审查一开始可能会让人望而生畏,所以务必记住,这并非批评,而是建设性的改进机会。如果你在大学接受过教育,你可能会觉得这是在为你的工作打分,但事实并非如此。试着抛开评分标准的眼光,像一个正在学习如何更高效解决问题的问题解决者一样思考。这样,你就能深入了解新的方法、公司实践以及你需要改进的地方。
致力于使用 IDE/文本编辑器来提高生产力。你对工具越熟悉,工作效率就越高。你会了解快捷键,并更好地适应你的工作流程。花时间在文本编辑器上,它能帮助你取得成功。学习快捷键;利用 IntelliJ 或 Eclipse 等现代 IDE 提供的代码改进建议。用更聪明的方式工作,而不是更辛苦地工作。
学习如何放远视野。当你尝试解决问题或调试代码时,很容易让自己的注意力变得狭窄,但重要的是要记住,你所做的一切都需要融入整个系统。这会对代码产生什么意想不到的副作用?这是否与代码库的其余部分一致?经验丰富的开发人员知道,放远视野是成功的关键。所以,当你作为初级开发人员开始工作时,请记住放远视野,尤其是在你遇到困难或沮丧的时候。
学会识别优秀的行业代码。多阅读。作为一名初级开发人员,你不需要从头开始编写所有内容。你会使用很多其他人编写的代码,因此知道如何识别优秀的行业代码非常重要。优秀的行业代码应该具备三个特点:可读性强、防御性强、优化性强。
博览群书的人往往写作水平更高。开发者也是如此。阅读他人的代码会让你的代码更优秀。你会学到一些自己可能想不到的技巧和简化方法。识别优秀的代码;阅读它;从中学习。
使用可视化来解决问题。如果你遇到困难,可以尝试使用可视化来解决问题。有时,你的大脑只需要换个角度理解逻辑,就能理解解决方案。使用可视化工具、白板或隐喻来找到完美的解决方案。
4. 投资于你的持续教育。
你可能听说过,持续学习对于你的职业生涯至关重要。这个行业瞬息万变,而且由于开发人员正在解决人类面临的实际问题,我们需要始终积极寻求最佳解决方案。没有一种万能的方法来保持学习,但这里有一些简单的方法可以帮助你保持对技术技能的专注。
阅读博客和论坛。开源资源是你最好的朋友。你应该每周阅读博客和文章。阅读免费内容可以让你了解行业趋势、新技术、创新解决方案等等。查看下面的资源列表,了解一些精彩的免费博客。
参加在线课程。在线课程是一种轻松便捷的持续学习方式。您可以在家中学习一门新语言、一个新的开发工具,甚至尝试机器学习之类的技术。查看Educative 的在线课程,获取可靠、轻松的必学主题课程。
为开源贡献力量。学习的最佳途径之一就是教导他人。随着你的职业生涯不断前进,分享你的故事、你的成功和你的想法。你会惊讶地发现,你学到的东西真的太多了!
尝试结对编程。一个让你持续学习的简单方法就是通过观察他人来学习。与其他程序员结对,看看他们如何解决具有挑战性的问题。一定要在学习过程中提出问题!
第二部分:工作中需要注意的十大危险信号
没有一份工作是完美的,但有些工作远不如其他工作完美。为了提升你作为初级开发人员的能力,我们想分享在公司工作时需要注意的 10 个危险信号。请记住,这些信号可能很难察觉。所以,当然,仅仅因为出现了危险信号,并不意味着你应该逃跑或辞职。让我们开始吧。
-
公司不提供继续教育的机会。如果公司认为继续教育只是开发人员“闲暇”时间应该做的事情,那就要小心了。这表明公司没有为你的长期发展进行投资。
-
公司不提供同行/技术评审。这很可能表明领导层不愿意接受反馈,这可能会导致不良的工作氛围。这也可能表明他们对你的错误缺乏灵活性。
-
该公司只使用最热门、最新的技术。这很可能表明他们的系统存在漏洞,或可能遭受不必要的更改。明智的做法是使用久经考验的方法作为基础。
-
这家公司缺乏多元化。这很容易理解,但缺乏多元化的公司很可能在核心层面存在着深层次的问题。多元化可以表现为多种形式(例如性别、种族、能力、生活方式等),任何群体都需要不同类型的人,否则我们就会陷入老套的模式,解决同样的问题,即使我们并非有意为之,最终也会造成巨大的伤害。
-
公司不会主动给你安排入职。入职不充分可能会给你的工作带来灾难和不安全感。即使没有合适的入职流程,也应该至少为你安排一个可以解答你疑问的负责人/顾问。
-
公司用最后通牒来“激励”你。最后期限和最后通牒之间是有区别的。你永远不应该觉得自己被操纵而加班,或者做出无法兑现的承诺。
-
公司依赖间接沟通或默契规则。这可不是《好人寥寥》那种模式。公司规则和期望应该从第一天起就对你清晰明确。这可能是消极被动管理的表现,这种做法通常不是什么好时机。
-
公司依赖非技术人员做出所有技术决策。这种情况在任何公司都时有发生,但如果一个组织不尊重技术团队的专业知识或意见,可能会导致灾难。要警惕那些高度自上而下导向的公司。
-
技术团队回避文档。团队层面的组织不善会导致困难、额外工作、压力等等。有些公司可能只是没有建立完善的系统,这虽然可行,但你得警惕一支懒惰的开发人员团队,他们回避文档。这种情况会适得其反,而且不会带来好结果。
-
公司控制着你的工作流程。作为一名初级开发人员,你绝对需要学习工作流程和最佳实践,但这与被控制是两码事。每个人的工作方式都不一样。如果你的团队或经理对你的工作方式过于严格,这可能表明他们缺乏灵活性。
第三部分:给你的钱包加点小贴士
-
熟悉编码术语,对这个领域更有信心
-
通过一些小型的、充满热情的项目来丰富你的简历
-
在推销自己时,避免称自己为程序员或初级开发人员
-
学习一些设计理论、讲故事的技巧和图形艺术技巧,以提高您的批判性思维和开发酷炫产品的能力。
-
不要忽视工作之外的世界——你不仅仅是一名开发人员!
-
为开源做出贡献
-
尽量减少社交媒体的使用,尤其是当你想学习新东西的时候
-
接受调试工作——它能让你成为更好的开发人员
-
考虑公开你的薪水,以消除薪酬不平等
-
熟悉SOLID开发原则
第 4 部分:初级开发人员资源指南
成为初级开发人员的一大优势在于,你可以免费获取大量信息。如果你有疑问,需要建议,这些信息肯定唾手可得。你只需要开口问。我们整理了一份可靠的资源清单,帮助初级开发人员更好地生存。
图书
-
Robert C. Martin 的《代码整洁之道》:关于如何编写可读、可维护的代码以及在工作中设定界限
-
当我说“不”时,我感到内疚——曼努埃尔·J·史密斯:如何有效地维护自己的权利
-
Martin Fowler 的《重构》:重构应用程序的指南和技术
-
软技能:软件开发人员的生活手册(作者:John Sonmez):如何努力实现开发人员的平衡生活
-
John Sonmez 撰写的《软件开发人员职业完整指南》:如何在工作场所内外养成健康的习惯
-
Edmond Lau 的《高效工程师》:如何管理时间并提高效率
-
Steve McConnell 撰写的《代码大全》:编写可维护代码的技巧
在线课程
文章
- 关于开启开发者职业生涯的 7 个残酷事实
- 思考更高层次:成为高级开发人员的途径
- 开放的心态是事业成功的关键
- 为什么 FAANG 公司可能不适合你
- 哪些软件技术能为您带来最高薪水?
- 你可能不会想到申请的软件开发人员职位