关于如何开始开发人员职业生涯的 7 个残酷真相
1. 你其实并不知道自己需要的一切。
2. 你将无法获得所需的足够帮助。
3. 技术只是成功的一半;软技能同样重要。
4. 你不需要重新发明轮子才能有所作为
5. 你最终可能不会去谷歌或脸书。
6. 你不可能完全理解你正在做的所有事情。
7. 你的评估指标发生了变化
如果你刚刚结束学业(无论是自学、大学学位还是训练营),那么你需要知道,你对科技行业职业生涯的期望可能与实际的行业实践和文化不符。
让我们来剖析科技行业职业生涯中的7个“残酷真相”,并提供一些切实可行的建议,助你走向成功。不妨这样理解:这些都是我希望在我职业生涯初期有人告诉我的事情。
以下是您在科技行业实际会遇到的情况以及如何做好准备。
简要说明:我承认这份清单带有主观性。实际情况可能因人而异;每个开发者的经验都不同。我并不想给人造成这是唯一真理的印象。
1. 你其实并不知道自己需要的一切。
你或许受过高等教育,能力出众,但你不可能了解你所在的行业的一切。事实上,最好假设你几乎一无所知。
-
首先,这个行业瞬息万变,这意味着你需要不断努力才能跟上时代的步伐。
-
其次,你的教育很可能带有偏见。教授不可能教会你所有东西。即使是你掌握的编程语言、工具和理论,也难免带有个人方法或经验的痕迹。
-
第三,你还不了解最佳实践!那些从事编程多年的人已经养成了一些技巧、模式和习惯,使他们的工作高效可靠。
所以,没错,你学识渊博,能力出众,但你并非事事都懂。这对你意味着什么呢?
你需要持续投入学习。学位或训练营只是个开始。记住,教育远不止于纯粹的技能或课程。你还可以通过论坛、聚会、博客文章和在线课程来学习。积极参与在线讨论区,了解其他人的学习和实践。阅读文章,也撰写文章。
除此之外,科技行业一个残酷的现实是,所有现有技术很快都会过时。程序员的知识是有保质期的。仅仅五年前,我们还在使用一些现在看来已经非常古老的框架。
大学教育未必能让开发者做好应对技术知识竞争的准备。许多新入行的开发者都感到焦虑,因为他们没有意识到为了在这个行业保持竞争力,需要付出多少努力。拥有学位并不意味着学习的结束,更不意味着你比周围的人更有准备。计算机科学学位如今已不再等同于成功的计算机科学职业生涯。
2. 你将无法获得所需的足够帮助。
在大学里,你很可能拥有一个朋友圈,或者从一开始就有导师为你提供帮助和指导。但在职场上,情况并非如此。你需要自己寻求帮助,无论是来自导师还是其他方面的帮助。有些管理者可能会承担顾问的角色,但你很可能需要找到一位值得信赖的人,更重要的是,一位真正关心你成功的人。导师对于你职业生涯早期阶段的成功和成长至关重要。他们可以教你如何避免陷阱、如何忽略压力以及需要培养哪些技能。
我会建议你找一位经验比你高出5到10年的人。经验再丰富一些的人可能就不是最相关的了,而经验更浅的人往往和你的情况差不多。导师关系不一定非得是正式的师徒关系;即使只是建立起可以坦诚提问的良好关系,也是一个很好的开始。如果你还在上大学,不妨考虑和教授们保持良好的关系,这种关系应该延续到毕业之后。现在就建立人脉,对你未来的成功大有裨益。
3. 技术只是成功的一半;软技能同样重要。
社交和软技能与技术技能对你的职业生涯同样重要。许多学生过于注重技术技能,却忽略了职业沟通和人际关系才是职场命脉。如果你想在公司获得发展,软技能往往是最终决定成败的关键。
简单来说:如果技术技能可以被替代,你就需要其他特质来脱颖而出。你需要成为别人愿意与之共事的人,能够与他人营造高效工作氛围的人。
在大学里,你的大多数同学都处于相似的人生阶段;当你的同学年龄相仿、住在同一个校园、作息时间也相同时,更容易建立牢固的人际关系。然而,在大学里拥有良好的人际关系并不意味着你就具备了职场所需的专业技能。
在职场中,你会接触到各个年龄段、不同生活方式和经验水平的人。你会与来自不同国家和社会经济背景的人共事。你需要学会提问、倾听他人发言、适应复杂的日程安排,以及与你可能不了解的人合作。
培养在这种规模下维系人际关系的能力,将有助于你在职业生涯初期取得成功。不要像大学时那样沉迷于电脑,忘记了科技行业需要成熟的人际沟通来解决实际的问题。你不再是一座孤岛了。
4. 你不需要重新发明轮子才能有所作为
毫无疑问,教育令人振奋。许多应届毕业生步入职场,渴望改变世界。虽然这是一个重要的目标,但你也需要明白,在职业生涯的最初几年,耐心往往比创新更为重要。重新发明轮子绝非你改变世界的唯一途径。
年轻人常常为了追求所谓的“更好方法”而摒弃既定的做法。探索、发明、创造固然重要,但切勿妄想单凭一己之力改变整个行业,从而危及自己的职业生涯。你所掌握的知识是成千上万人共同努力、探索和解决问题的成果。要与他们携手学习,而不是与他们背道而驰。
如果你不明白某件事为什么会以某种方式完成,你的第一反应不应该是推翻重来。相反,在你职业生涯的最初几年,你的目标是了解他人的思考过程。首先尝试理解事情为何如此进行。这其中或许有合理的理由,而通过寻求知识,你就能提升自己。
科技行业流传着一种普遍的迷思,认为变革应归功于少数天才。史蒂夫·乔布斯、埃隆·马斯克等人的故事被大肆渲染,助长了“孤胆英雄”的叙事,这会让那些可能终其职业生涯都在团队中度过的新晋开发者感到失望。的确,事实上,大多数(如果不是全部)改变世界的重大项目都是在团队中完成的。你不仅不太可能成为孤胆天才,这根本不可能!更成功的程序员往往是那些与他人合作的人。iPhone 不是一个人发明的,特斯拉也不是一个程序员设计的,而是成千上万才华横溢的人在一个社区和生态系统中共同努力的成果。融入团队,不要为了一个迷思而孤立自己。
5. 你最终可能不会去谷歌或脸书。
开发人员的就业机会非常广泛且多样化。事实上,大多数开发人员的职位都来自非科技公司。如今,几乎所有公司都需要优秀的开发人员来帮助他们解决问题。医疗保健、新闻、教育、工业建设、电子商务、银行业等等,所有这些行业以及更多其他行业,都是开发人员大展拳脚、蓬勃发展的理想之地。事实上,据Monster统计,近89%的软件开发人员甚至不在硅谷工作。
不幸的是,人们过于关注FAANG(Facebook、Apple、Apple、Google)等大型科技公司开发者的文化和习惯。这意味着人们对科技的定义和期望存在偏差和误解。这导致人们对大型科技公司的技术工作存在一种隐性偏见,因为这些公司的文化在很大程度上定义了新开发者眼中“正统的技术工作”。你对科技行业的预期,无论是好的还是坏的,都无法完全反映出行业内工作的多样性,也忽略了其他行业工作的诸多方面、乐趣和成就。不要被普遍认知所蒙蔽,不要将自己局限于大型科技公司,认为只有它们才值得你投入时间和精力。
6. 你不可能完全理解你正在做的所有事情。
对于新开发者来说,一个残酷的现实是,你必须习惯于在信息不全的情况下工作。在学习期间,你可能很少会对自己正在做的工作一无所知。你有评分标准,有清晰的作业大纲。你甚至可能知道它在你的成绩中所占的具体百分比。但在实际工作中,这种情况非常罕见。开发者在完全理解软件的集成方式之前就必须开始发布软件,这非常普遍。不要因为无法立即理解每个组件的功能而感到沮丧。你可能只能获得部分信息。
你可能会浪费时间试图了解全局。事实上,你并不需要掌握全部知识才能成功。学会如何在不完全理解代码库的情况下也能自如地工作。一种方法是将代码视为黑盒。先处理好每个任务,然后在工作中逐步构建整体框架。
你将要处理的许多代码库都会杂乱无章、陈旧过时,或者与你通常的处理方式截然不同。你的工作可能不会像你期望的那样高效或及时。有时,由于速度限制或代码库本身的局限性,你不得不交付“足够好”的代码。现在你要明白,驾驭庞大的代码库并掌握分散的知识本身就是一项技能,而这项技能你可能在学校里并没有学到。
但这并不意味着你应该气馁。关键在于你要学会做出哪些妥协,以及在遇到困难时找到合适的求助对象。这一切都与我之前提到的耐心有关:在这个阶段,耐心比技巧更重要。投入时间,相信过程,随着时间的推移,你的知识会不断扩展,从而对你的工作流程和代码库有更全面的理解。
7. 你的评估指标发生了变化
进入职场意味着评判你的标准发生了变化。在大学里,你的主要目标是完成作业,并根据作业的准确性进行评估。但对于初级开发人员来说,情况并非完全如此。毕竟,你在职场中的目标并非个人的成功,而是产品的成功,而这款产品将被成千上万的陌生人使用。
你不再身处大学那种封闭的体系中,教授或助教只会测试代码的准确性。如今你已步入职场,需要考虑人为因素引入代码后可能出现的所有问题。客户在使用你的产品时会遇到各种各样的情况。他们可能会失去网络连接,可能会无意中输入错误的数据,也可能故意输入错误的数据。诸如此类的情况不胜枚举。
这意味着,仅仅依靠“完成作业的心态”已经不足以让你在职场中脱颖而出。你需要减少学生的思维方式,更多地像问题解决者一样思考。了解测试基础设施的运作方式至关重要。尽早学习如何测试你的代码。集思广益,思考可能干扰组件运行的人为因素。积极主动,超越完成作业和获得成就感的执念。现在,你有更重要的事情要做。
归根结底,从事科技行业既令人兴奋又充满成就感,这些现实情况不应该阻碍你追求目标。保持专注、耐心和求知欲。向你的同事和导师寻求指导。
Fahim 是Educative的联合创始人。我们正在为软件工程师和教师打造新一代学习平台。学习者可以通过互动式文本课程进行学习。教师可以使用我们的课程构建器创建和发布互动课程。如果您有兴趣发布课程或了解更多信息,欢迎随时联系我们。
文章来源:https://dev.to/educative/7-hard-truths-about-starting-a-career-as-a-developer-4fg3