若是你想要开启做为 web 开发人员的职业生涯,那么你须要涉及的不只仅是知道如何写代码。git
有一些通用的软技能几乎可用于每一个领域——包括技术行业。程序员
成为软件开发人员涉及的不只仅是编写代码。自从我开始个人第一份做为软件开发人员的工做以后,我很快就知道了这一点。若是你想要在这个领域茁壮成长的话,那么你须要学习“特定的技能系列”。web
你看,每一家公司都有一个大局。除了写代码,你须要利用其余技能,使本身更有影响力,从而赚取更多的 money。编程
在我做为一名开发人员的任职期间,我学会了除了编程以外还须要掌握的技能。下面我将分享 6 种技能,做为一个有抱负的开发人员你必定不能不会。框架
技能#1:书面沟通工具
在开始天天的工做以前,你可能须要先回复邮件。电子邮件迅速成为了生产力的死亡陷阱。与此同时,电子邮件也是展现你对别人有多大价值的门户。书面技能依然是事实业务沟通的领头羊。学习
既然书面沟通技巧是如此之重要,因而我花了不少时间来掌握发送电子邮件并快速获得回复的技术。设计
我全部的电子邮件不但设计友好,并且会尽快切入正题。这是我在邮件中要求技术需求的 4 个步骤:开发
这些步骤将提早节省你大量的时间,让你突出于那些没有作到位的人。书面交流是开发者武器库中一项最被低估的技能。固然要想正确表达本身的想法须要多年的实践,但用好这个武器每每会有“杀人于无形”的奇效。get
技能#2:教学相长
若是你是一个初学者,那么你可能认为你没什么能够教人的。但现实状况是,你也许能够。
当我开始个人第一份 web 开发工做时,我认为我须要花更多的时间向别人学习。但不是全部的状况都是如此。事实上,我作到了学习与教学的结合。咱们公司已决定从 SVN 转移到 Git。而我获得这份工做也是由于个人主要卖点就是大量的 Github 代码仓库。
当我加入的时候,我发现这是一支正在蓬勃成长的团队,而且转移到 Git 对于咱们而言是有压力的,由于它是一个更好的协做工具。
这真是一个超现实的体验,由于,这是我人生中第一次不得不用标记来武装本身以及在白板上画图。虽然只是一些简单的图表,用来演示 git 是如何工做的以及它如何与 Github 互动。还有解释如何最佳利用分支。
请记住:这只是在公司待满一个月以后。从那之后,我一直是头脑风暴会议的一部分,解释 Rails 中一切的工做原理,从会话到嵌套表单。
在你第一份开发工做中,经过教学,你可能最终会给人一种你比他们更知识渊博的印象。即便你不认为本身是“专家”或“高级开发者”。
在每一家公司里,总有共享的知识池。当我教人的时候,我会对此做出贡献,同时带走别人的经验和看法。
基本上说来,每一个人都会贡献本身的经验和观点到这个知识池中。而这即是大规模的教学相长。
技能#3:专一
任何职业,不管是画家仍是做家,专一于小细节才有可能一步步累积至伟大。若是你想产出使人惊艳的工做,那么你得当心注意并调整方法。
若是你对细节的关注还不到位,那么关键是要具有处理专一的能力。
彻底专一于一项任务的能力在咱们当前这个世界里是呈现递减状态的。Twitter,Facebook 和 Reddit 正在不断诱惑咱们的注意力。Cal Newport 在他的《Deep Work》一书中指出,为了有一个有影响力的就业,人们必须放弃浅层的工做并拥抱深层的工做。
浅层工做被定义为只有短时间利益的工做。例如,你能够花一天用来撰写和回复邮件,但会所以而错过深层工做。深层工做是须要全神贯注并最终致使实际成果的工做。
做为一个开发者,这个技能不能被低估。咱们的工做是创建有用的东西。而创造有价值的东西是须要大量时间的。少一点消费者的心态,多一点生产者的心态。
可能会有用的一种技术手段是番茄工做法。
下面是它的工做原理:
这种技术之因此伟大是由于它使你一次专一于一件事情。它能够帮助你产出更有意义的工做,而不是每隔几分钟查看 Twitter 或 Facebook。
技能#4:了解大局
那些主要产品围绕代码的开发人员须要执行一种当心以及平衡的行为。一方面,从发布到产品来帮助企业成长。另外一方面,你要保证不会给你未来的同事留下难以维护的代码。并且以及固然,用户也得享受于软件。
可是,首先,此刻你能作的就是编写代码。当你开始做为一个开发人员提升本身的时候,你将——回过头去重构原先的代码。让你的软件更适应未来在上面工做的开发人员。
有一个伟大的概念是 DRY(don’t repeat yourself)原则。其基本思想是写一个只须要改变一次的代码片断,若是你决定未来更改它的话。这种方法既是程序员的福音,也有利于企业。
然而,所谓的大局并不只仅涉及到代码。大多数的大公司遵循 Peter Drucker 的原则。若是你学过 MBA,那么你必定据说过 Peter 和他的管理原则。若是没有,那么建议阅读他写的书。
Peter 对西方公司产生了深远的影响。他提出的最重要的概念之一是成本中心和利润中心。在销售和市场营销工做的人被认为是企业的利润中心。他们增长收入。必须控制企业成本以最大限度地提升收入。做为开发人员,你既能够是利润中心也能够是成本中心。
管理你的职业生涯的最佳方式是了解你适合企业内部的哪一个位置。这会附加你的价值,并让你的职业生涯走得更远。
技能#5:社交技巧
许多人认为,像 Google 这样的公司创造了一种从自上而下的文化。不过,你和你的同伴也在创建文化。而培育这种团队范围的文化的最佳方式是经过你本身的社交技巧。
回想一下你的现实生活,而不是工做生活。你的朋友圈中有没有这样一我的是每一个人都期待看到的?他们的存在能够带来欢笑和深入的讨论。他们不传播流言和谣言。在有人须要帮助时他们会及时伸手。总而言之,他们被描述为是一个够意思的哥们或菇凉。
这样的人也存在于工做场所。而你的目标应该是尝试成为那样的人。
成为一个每一个人都期待看到的人。创建用一种建设性的心态说出意见的勇气。这与你认为本身是一个内向或外向的人无关。
慢慢的,你的事业、你的技术技能将和这个领域中的其余人相同。可是若是你想在职场中得到成功,那么你须要成为团队成员。你必须可以和他人交流,能激励他人,并值得信赖。由于在一天结束时,若是你不能与别人进行联系,那么你将永远没法让别人接受你的想法,不管多大或多小。最终你只能接受其余人的想法,而不是给出你的想法。
技能#6:发现并处理问题
程序员的做用是解决问题。但要解决问题,首先必须去发现问题到底是什么。
世界上最容易的事情是记住一堆命令或复制和粘贴在 Stackoverflow 上的代码。真正的能力是知道发生了什么事的大局观。若是你正在解决工做中的一个大问题,那么最好是把它分解成微小的可编辑的片断。
先查看问题自己。想一想代码试图解决的问题。
而后,看一下当前的解决方案(若是存在的话)。最后,考虑当前的解决方案是如何解决这个问题。(若是它能解决的话)。
一旦你高度归纳了这个应用程序,那么你就能够进入应用程序的功能部分。利用问题、解决方案和细节技术来进一步分解问题。这些框架步骤帮助我理解了不一样的开源项目,例如 Disourse。
结论
某些工做技能是广泛的,不管你是否是在高科技职业。例如,沟通和团队合做。我真心但愿我能在干第一份 web 开发的工做以前就意识到这些软技能的重要性。
对于程序员须要学习的软技能,你也能够看看这篇文章:对程序员很是重要的 24 个软技能。