程序员必须掌握的6种软技能

程序员必须掌握的6种软技能

如果你想要开启作为 web 开发人员的职业生涯,那么你需要涉及的不仅仅是知道如何写代码。

有一些通用的软技能几乎可用于每个领域——包括技术行业。

成为软件开发人员涉及的不仅仅是编写代码。自从我开始我的第一份作为软件开发人员的工作之后,我很快就知道了这一点。如果你想要在这个领域茁壮成长的话,那么你需要学习“特定的技能系列”。

你看,每一家公司都有一个大局。除了写代码,你需要利用其他技能,使自己更有影响力,从而赚取更多的 money。

在我作为一名开发人员的任职期间,我学会了除了编程之外还需要掌握的技能。下面我将分享 6 种技能,作为一个有抱负的开发人员你一定不能不会。

技能#1:书面沟通

在开始每天的工作之前,你可能需要先回复邮件。电子邮件迅速成为了生产力的死亡陷阱。与此同时,电子邮件也是展示你对别人有多大价值的门户。书面技能依然是事实业务沟通的领头羊。

既然书面沟通技巧是如此之重要,于是我花了很多时间来掌握发送电子邮件并快速得到回复的技术。

我所有的电子邮件不但设计友好,而且会尽快切入正题。这是我在邮件中要求技术需求的 4 个步骤:

  1. 感谢对方发送电子邮件。这适用于每封电子邮件。例如:感谢你与我联系。
  2. 强调他们的要点并说明你已了解。例如,“如果我理解正确的话,你是想……”。
  3. 提出问题,以确保你理解他们想要什么。
  4. 在他们回答你的问题之后,按照步骤 2 的方式回复以确认你理解的内容。

这些步骤将提前节省你大量的时间,让你突出于那些没有做到位的人。书面交流是开发者武器库中一项最被低估的技能。当然要想正确表达自己的想法需要多年的实践,但用好这个武器往往会有“杀人于无形”的奇效。

技能#2:教学相长

如果你是一个初学者,那么你可能认为你没什么可以教人的。但现实情况是,你也许可以。

当我开始我的第一份 web 开发工作时,我认为我需要花更多的时间向别人学习。但不是所有的情况都是如此。事实上,我做到了学习与教学的结合。我们公司已决定从 SVN 转移到 Git。而我得到这份工作也是因为我的主要卖点就是大量的 Github 代码仓库。

当我加入的时候,我发现这是一支正在蓬勃成长的团队,并且转移到 Git 对于我们而言是有压力的,因为它是一个更好的协作工具。

这真是一个超现实的体验,因为,这是我人生中第一次不得不用标记来武装自己以及在白板上画图。虽然只是一些简单的图表,用来演示 git 是如何工作的以及它如何与 Github 互动。还有解释如何最佳利用分支。

请记住:这只是在公司待满一个月之后。从那以后,我一直是头脑风暴会议的一部分,解释 Rails 中一切的工作原理,从会话到嵌套表单。

在你第一份开发工作中,通过教学,你可能最终会给人一种你比他们更知识渊博的印象。即使你不认为自己是“专家”或“高级开发者”。

在每一家公司里,总有共享的知识池。当我教人的时候,我会对此作出贡献,同时带走别人的经验和见解。

基本上说来,每个人都会贡献自己的经验和观点到这个知识池中。而这便是大规模的教学相长。

技能#3:专注

任何职业,无论是画家还是作家,专注于小细节才有可能一步步累积至伟大。如果你想产出令人惊艳的工作,那么你得小心注意并调整方法。

如果你对细节的关注还不到位,那么关键是要具备处理专注的能力。

完全专注于一项任务的能力在我们当前这个世界里是呈现递减状态的。Twitter,Facebook 和 Reddit 正在不断诱惑我们的注意力。Cal Newport 在他的《Deep Work》一书中指出,为了有一个有影响力的就业,人们必须放弃浅层的工作并拥抱深层的工作。

浅层工作被定义为只有短期利益的工作。例如,你可以花一天用来撰写和回复邮件,但会因此而错过深层工作。深层工作是需要全神贯注并最终导致实际成果的工作。

作为一个开发者,这个技能不能被低估。我们的工作是建立有用的东西。而创造有价值的东西是需要大量时间的。少一点消费者的心态,多一点生产者的心态。

可能会有用的一种技术手段是番茄工作法。

下面是它的工作原理:

  • 设置 25 分钟的定时器
  • 专注于一个任务 25 分钟
  • 25 分钟结束后,休息 5 分钟
  • 任何浮现出来和任务无关的想法,你可以先写下来以便于以后来关注。
  • 你重复循环四次(或更多)

这种技术之所以伟大是因为它使你一次专注于一件事情。它可以帮助你产出更有意义的工作,而不是每隔几分钟查看 Twitter 或 Facebook。

技能#4:了解大局

那些主要产品围绕代码的开发人员需要执行一种小心以及平衡的行为。一方面,从发布到产品来帮助企业成长。另一方面,你要保证不会给你将来的同事留下难以维护的代码。而且以及当然,用户也得享受于软件。

但是,首先,此刻你能做的就是编写代码。当你开始作为一个开发人员提高自己的时候,你将——回过头去重构原先的代码。让你的软件更适应将来在上面工作的开发人员。

有一个伟大的概念是 DRY(don’t repeat yourself)原则。其基本思想是写一个只需要改变一次的代码片段,如果你决定将来更改它的话。这种方法既是程序员的福音,也有利于企业。

然而,所谓的大局并不仅仅涉及到代码。大多数的大公司遵循 Peter Drucker 的原则。如果你学过 MBA,那么你一定听说过 Peter 和他的管理原则。如果没有,那么建议阅读他写的书。

Peter 对西方公司产生了深远的影响。他提出的最重要的概念之一是成本中心和利润中心。在销售和市场营销工作的人被认为是企业的利润中心。他们增加收入。必须控制企业成本以最大限度地提高收入。作为开发人员,你既可以是利润中心也可以是成本中心。

管理你的职业生涯的最佳方式是了解你适合企业内部的哪个位置。这会附加你的价值,并让你的职业生涯走得更远。

技能#5:社交技巧

许多人认为,像 Google 这样的公司创造了一种从自上而下的文化。不过,你和你的同伴也在建立文化。而培育这种团队范围的文化的最佳方式是通过你自己的社交技巧。

回想一下你的现实生活,而不是工作生活。你的朋友圈中有没有这样一个人是每个人都期待看到的?他们的存在可以带来欢笑和深刻的讨论。他们不传播流言和谣言。在有人需要帮助时他们会及时伸手。总而言之,他们被描述为是一个够意思的哥们或菇凉。

这样的人也存在于工作场所。而你的目标应该是尝试成为那样的人。

成为一个每个人都期待看到的人。建立用一种建设性的心态说出意见的勇气。这与你认为自己是一个内向或外向的人无关。

慢慢的,你的事业、你的技术技能将和这个领域中的其他人相同。但是如果你想在职场中获得成功,那么你需要成为团队成员。你必须能够和他人交流,能激励他人,并值得信赖。因为在一天结束时,如果你不能与别人进行联系,那么你将永远无法让别人接受你的想法,无论多大或多小。最终你只能接受其他人的想法,而不是给出你的想法。

技能#6:发现并处理问题

程序员的作用是解决问题。但要解决问题,首先必须去发现问题究竟是什么。

世界上最容易的事情是记住一堆命令或复制和粘贴在 Stackoverflow 上的代码。真正的能力是知道发生了什么事的大局观。如果你正在解决工作中的一个大问题,那么最好是把它分解成微小的可编辑的片段。

先查看问题本身。想想代码试图解决的问题。

  1. 它使人更容易购买吗?
  2. 它做报告吗?
  3. 创建这个软件的目的是什么?

然后,看一下当前的解决方案(如果存在的话)。最后,考虑当前的解决方案是如何解决这个问题。(如果它能解决的话)。

一旦你高度概括了这个应用程序,那么你就可以进入应用程序的功能部分。利用问题、解决方案和细节技术来进一步分解问题。这些框架步骤帮助我理解了不同的开源项目,例如 Disourse。

结论

某些工作技能是普遍的,无论你是不是在高科技职业。例如,沟通和团队合作。我真心希望我能在干第一份 web 开发的工作之前就意识到这些软技能的重要性。

对于程序员需要学习的软技能,你也可以看看这篇文章:对程序员非常重要的 24 个软技能

时间: 2024-10-25 12:34:23

程序员必须掌握的6种软技能的相关文章

Java程序员必会的13种热门技能

一个程序员的受欢迎程度,要经过很多个维度的衡量,特整理了招聘人员.CTO.其他高层执行人员认为必须具备的技术,战略和软技能,找出今年最抢手的开发技能,供大家参考: 1.Java 2016年,开发人员掌握Java总不会错.Java能力是目前为止被高层执行人员和招聘人员誉为最频繁的追捧技能.Java已被证明是当今市场中高度可移植和宝贵的技能. 2.大数据 大数据相较于去年继续扩大,而且在这几年里也没有放缓的迹象.开发人员必须有全面的(商业智能)和分析产品,机器学习工具和其他可以转移.存储和汇总大量数

最新、程序员应该具备的12种能力!

  下面是我总结的一个合格程序员应该具备的 12种能力.中国软件行业的崛起,靠的是合格的程序员.任何华丽的管理制度都不能保证软件项目的成功交付,合格的程序员就是有力的保证,是项目成功的基 础.写下这些,是为了给刚刚进入程序员这个职业的新同学们一点参考.我一直以为,当程序员是很辛苦的,如果不是真正的喜欢,很难坚持下去.如果真的不喜欢 这个职业,也该尊重这个职业,尊重自己,赶紧改行. 1. 编程语言能力 不用多说,作为合格的程序员,精通一门语言是必须的.这种精通,不是说看了一本<24小时精通XXX>

程序员赚钱致富的6种方法

我认识一个朋友,也是程序员出身,他在一家还不错的外企上班,每个月工资收入也就差不多 15K,五年的工作经验了,在他面前,我算是小弟.那天我们几个朋友一起打完球就去附近的饭馆吃饭,环境还不错,于是就边吃边聊工作.赚钱的事情. 那天了解到,他不仅拿着 15K 的高薪,业余还有着更高的收入,从聊天中,我总结了几点程序员赚钱的技巧,分享给大家,也许你可以参考一下,哪天发财了记得回到这篇文章中来赞一下. 一.Google Adsense 利用 Adsense 可以将广告发布到你的网站上去,通过访客点击广告

程序员初学机器学习的四种方式

http://blog.jobbole.com/67621/ 本文由 伯乐在线 - XiaoxiaoLi 翻译.未经许可,禁止转载!英文出处:Jason Brownlee.欢迎加入翻译组. 学习机器学习有很多方法,大多数人选择从理论开始. 如果你是个程序员,那么你已经掌握了把问题拆分成相应组成部分及设计小项目原型的能力,这些能力能帮助你学习新的技术.类库和方法.这些对任何一个职业程序员来说都是重要的能力,现在它们也能用在初学机器学习上. 要想有效地学习机器学习你必须学习相关理论,但是你可以利用你

程序员都不知道的5种将死的编程语言

现在的开发人员都趋向于使用新的编程语言,那么旧的编程语言呢?它们的前途一般是这样两种:仍然可以使用,但逐渐不受大家欢迎,直接完全死去.程序员都不知道的5种将死的编程语言下面给大家说说: Perl 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"piecemeal"的编程语言,它的创造者似乎就只是将这个功能堆在另一个功能上面而已,并没有好好考虑将它们结合在一起.事实上,甚至是它的创造者也不得不承

程序员应该具备的11项基本技能

程序员应该具备的11项基本技能2011-03-14 10:56 陈皓 伯乐在线 字号:T | T软件开发是一个跨度很大的技术工作,在语言方面,有C.C++.Java.Ruby等等等等;在环境方面,又分嵌入式.桌面系统.企业级.WEB.基础系统,或是科学研究.但是,不管是什么的情况,总是有一些通用的基本职业技能.AD:2013云计算架构师峰会课程资料下载 这些最基本的职业技能通常决定了一个程序员的级别,能否用好这些技能,直接关系到了程序员的职业生涯.很多程序新手也是因为缺少.达不到或是不熟悉在这些

程序员应该具备的12种能力

1. 编程语言能力 不用多说,作为合格的程序员,精通一门语言是必须的.这种精通,不是说看了一本<24小时精通XXX>,抄了几个程序就能说精通的,要靠长时间的积累和浸淫. 2.编码能力 我曾经看多很多程序员写的代码,在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首字母的.就像一个菜市场,杂乱无比,估计10天后,他自己都无法看的懂.遵守编码规范,是一个程序员最基本的要求,可悲的是,很多程序员根本没有意识到这个问题的严重性.随意堆砌网上搜来的

Java程序员必须知道的几种系列辅助开发工具

集成开发环境 Eclipse是最有名也最广泛使用的Java集成开发环境(IDE),允许开发者结合语言支持和其他功能到任何的默认包中,而且Eclipse市场有许多定制和扩展的插件. IntelliJ已经引起了开发者的"追捧",甚至比Eclipse还受宠,有免费版和专业版.IntelliJ为众多Java EE框架提供了针对框架的编码帮助和提升生产效率的功能,还有大多数应用服务器的部署工具. NetBeans的也属于IDE类,允许开发者快速.简便地开发桌面应用.移动应用和Web应用.NetB

php程序员应具备的7种能力

一,php能力 1,了解阶段,您能写一些代码,因为那是在手册和google的帮助下,您才完成的.变量乱定义,N多函数不知道,做起事来很慢,想到什么写什么,代码写的比较乱,后期维护很麻烦. 2,熟悉阶段,经常查函数,手册估计也看过一,二遍了,常用的函数基本上您都了解了.后 期维护给您带来了不少痛苦,您开始发现自己的代码有很多不足,开始思考如果改进自己的代码,如何站在项目的角度来规划自己的代码,而不是想到什么写什么, 知道如何来减少冗余代码,使您的代码清晰,知道什么样的代码写出来让人看着舒服,基本的