我不是花钱雇你来写代码的!

  很多人对于软件工程师这一职位,有很深的误解。

  我不是花钱雇你来写代码的!_第1张图片  

  他们认为:软件工程师 = 写代码的

  

  但是,想做一名成功的软件工程师,却不能只停留在会写代码这么简单,除了掌握扎实的coding能力,他们还必须要具备:

  Soft Skills

  可我在工作中,还是会遇见很多年轻工程师,不重视也不知道如何提升自己的Soft Skills。

  因此,这篇文章将从以下几个方面,好好为你解读:

  Soft Skills到底指的是什么?

  为什么软件工程师必须掌握Soft Skills?

  软件工程师必学Soft Skills有哪些?


01 Soft Skills是什么?

  谈Soft Skills之前,我们首先要聊聊Hard Skills。

  Hard Skills = 技术技能

  举个例子,对于程序员来说,编写代码,就是你们必须掌握的Hard Skill之一。

  Soft Skills = 非技术技能。

  指的是沟通能力、倾听能力、说服能力、自我激励的能力、影响力、团队建设的能力等等一系列与社会、社交领域相关的技能。


02 我懂技术就行了,学什么Soft Skills

  这样的想法,当然是错误的。

  首先,你得明白一点:

  公司雇佣你,是为了让你solve problems (解决问题),而coding,只是你解决问题的一个手段。

  如果一个程序员徒有专业的技术水平,而缺乏必备的Soft Skills,那么,在员工评估时,TA也会被认为是:poor professional(业务能力差)。

  我不是花钱雇你来写代码的!_第2张图片

  随着程序员这个职业的火热和兴起,越来越多的人开始加入这个职业,竞争也越来越激烈。

  因此,作为自己竞争力的一部分,Soft Skills将变得越来越重要

  当然,你必须要有solid的coding功底和硬实力,才能帮你拿到这份工作。

  但之后的职业发展生涯中,Soft Skills的培养,不可忽视。

  我不是花钱雇你来写代码的!_第3张图片

  03软件工程师必学的Soft Skills有哪些?

  我不是花钱雇你来写代码的!_第4张图片

  Communication 沟通能力

  这是最重要的一项Soft Skill。

  我知道,很多软件工程师,喜欢把自己“包装”成一匹独狼。

  他们并不介意在自己的世界里埋头苦“码“。

  但是,对于程序员来说,代码只是工具,而不是事业。

  而产品或服务,才是你应该关心的重点。

  在解决产品/服务问题的过程中,你必然会涉及到与人交流、沟通的问题。

  首先,你得学会如何表达自己想要传达的;其次,你还得学会如何轻松地与你的team member沟通和交流,兼顾好他们的感受和意见。

  在老板眼里,会沟通的程序员,意味着:

  1. 他们对自己的工作上心,关心自己在做什么。

  2. 他们善于团队合作,是推动工作前进的极好润滑剂。

  我不是花钱雇你来写代码的!_第5张图片

  Adaptability 对新事物的适应性

  Adaptability指的就是一个程序员对新事物的接受程度和适应程度。

  科技行业日新月异,在你工作过程中,你可能会遇到新的语言、新的产品、新的framework,甚至新的team member....

  因此,你必须要保持一颗好奇心、一个开放的心态学习的习惯

  这些,是让你在这个行业步步为营、节节高升的重要法则。

  通常,我在面试新人时,最常问的一个问题是,

  “What do you read?(你平时都看什么书/技术博客?)”

  自己业余时间的研究和学习,是程序员这一职业的重要组成部分。

  我不是花钱雇你来写代码的!_第6张图片

  Critical Thinking批判性/反权威思维

  Critical Thinking是一项非常重要的Soft Skill,尤其是在做Code Reivew的时候。

  我对Critical Thinking的理解是,敢于对权威提出自己的质疑并多角度地看待问题。

  在工作中,拥有Critical Thinking能力的软件工程师,在解决一个问题时,不会妥协于普通的解决方案,而是会寻求最佳解决方案

  我不是花钱雇你来写代码的!_第7张图片

  Big Picture Thinking 大局观

  我强调了很多次,不要将写代码当做你的终极目标,写代码只是一个简单的执行环节。

  Focus on the Business as the End Goal

  在面试时,我很喜欢让求职者描述他们system design背后的逻辑。

  当我听到他们设计的出发点都是从顾客的角度出发时,就会特别“打动”我。

  我不是花钱雇你来写代码的!_第8张图片

  Discipline 自律能力

  很多人误以为Discipline就是指按时上下班,好好工作别偷懒。

  其实不然。Discipline指的是,在工作细节上严格要求自己。

  由于程序员的工作性质,他们并不需要做到朝九晚五、每天工作8个小时。

  他们的工作时间相对自由,但这并不意味着,他们可以马虎对待工作和任务。

  一个好的程序员在做一项任务时,对其中的每个步骤,都有自己的一套Discipline。

  这个道理看似简单,但实际操作中,反映的是一个程序员对细节的思考和认真负责。

  一个有Discipline的程序员,在工作中会注意做好方方面面的细节,比如代码质量,良好的提交/分支习惯,良好的命名习惯,高效的归档,良好的沟通,自发性的工作任务等等。

  一句话总结,就是成为其他程序员的榜样。

  我不是花钱雇你来写代码的!_第9张图片

  Add Value:Offer Strong Ideas and Stick By Them提出想法并坚持执行的能力

  好的软件工程师,从不害怕站出来表达自己的观点。

  这项工作需要涉及到很多团队协作的部分,所以公司特别需要能够提出自己的想法,并能把这个想法坚持下去,并推进执行的人。

  我不是花钱雇你来写代码的!_第10张图片

  单纯地遵循命令的人很多,但能够给团队增加价值的人却很少。

  另一方面,提出自己想法的同时,敢于直面和接受有建设性的批评也很重要。

  以上这些,就是我这些年来,总结出的程序员需要掌握的Soft Skills,希望能给大家一些启发。

  记住,you're not paid to wirte code.



  作者:Vinicius Brasil

  EBANX后端软件工程师

  更多科技求职咨询,请关注“来Offer网”

你可能感兴趣的:(求职面试,程序人生)