您正在科罗拉多州博尔德市Google园区的前台等待编码面试的开始。在大厅里,您对面坐着另外两位候选人:
一个有魅力的 airpods 开发者,他可以让房间里的任何人都着迷,但需要痛苦的 8 个小时才能让链表工作
一个用汇编编写游戏的编程神童,但他是个大混蛋,反正没人会玩他们的游戏
他们中的哪一个会为职位提供更激烈的竞争?让我们解决这个古老的问题:对于程序员来说,硬技能还是软技能哪个更重要?
首先,我会烦人地解释什么是硬技能和软技能,然后我们将深入探讨我想写这篇文章的原因:矩形类比。这个类比将帮助您了解您应该将时间花在改进的地方,以最大限度地提高您找到工作的机会。
首先,什么是硬技能?这些是您完成工作所需的有形的、可衡量的能力。作为开发人员,您需要:
硬技能是您编程生涯的基础。它们是大多数编程职位的绝对要求,它们展示了您的技术能力。事实上,如果你只能拥有一种技能,那么硬技能会更重要。毕竟,如果不真正知道如何编码,就很难编写代码。
科技世界以极快的速度发展,如果你不不断提高你的硬技能,你就会被淘汰。请记住,罗马不是一天建成的,您的编程专业知识也不是一天建成的。随着时间的推移,投入时间和精力学习新的语言、工具和技术。
您不需要成为所有方面的专家,但您需要知道如何交付能够解决您领域内实际问题的工作代码。如果你想成为后端开发人员并在 SaaS 公司工作,那么你至少应该:
另一方面,软技能是无形的人际交往能力,可以为您的职业生涯锦上添花。它们可能不像硬技能那样容易量化,但它们几乎同样重要。软技能包括:
软技能是可以将您的职业推向新高度的秘诀。它们促进协作和团队合作,使您更容易与他人合作并完成工作。此外,拥有扎实的软技能可以提高您的整体工作满意度和职业发展。毕竟,没有人愿意与同时也是个混蛋的天才一起工作。
硬技能是在技术领域找到工作的必要条件,但假设两名候选人之间的硬技能差距相似,我实际上看到更有魅力和讨人喜欢的候选人比技术能力稍强的候选人获得这份工作。为什么?管理者也是人,人们喜欢和他们喜欢的人一起工作。
如果你有一个蹩脚的个性,不要太担心。你不需要成为出色的演说家或文字大师才能找到一份代码猴子的工作。第一条规则应该很容易遵循:不要混蛋。如果你这样做,你就成功了一半。
相关的后续规则是平衡自信和谦逊。如果您是一个善良、思想开放的开发人员并且知道您在说什么,那么您会做得很好。
现在我们已经探索了硬技能和软技能,让我们深入研究矩形类比以了解它们如何协同工作。想象你的硬技能是矩形的长度,而你的软技能代表宽度。
这个矩形的面积对应于你找到工作的概率。区域越大,找到适合您技能的演出的机会就越大。
这意味着你的工作概率方程是:
hard_skills * soft_skills = job_probability
为了以最少的努力最大化job_probability
,花更多的时间在你往往缺乏的技能上。正方形的面积大于具有相同周长的斜长方形的面积。
如果你认为这听起来有点像龙与地下城的角色表,你只能分配有限数量的技能点,那么现实世界并不是这样运作的。在现实世界中,你可以获得更多的技能点。您可以在硬技能和软技能方面都表现出色。
如果你努力工作并尽力而为,你既可以成为一个伟大的程序员,也可以成为一个伟大的人。这不是非此即彼的情况。用希亚·拉博夫 (Shia LaBeouf) 不朽的名言来说,“Just do it!”