现代程序员的能力从不同的角度

嗨,我叫帕夏! 我在Mad Devs工作,我认为仅仅编程不足以成为一名优秀的专家。


我希望这种材料不会伤害别人的感受。 该材料试图从不同角度揭示现代程序员的技能体系。 不用了


程序员是软件链中必不可少的环节。 没有它,就无法创建新软件。 程序员所做的事情如此重要? 因为他是如此不可替代,所以他负有什么责任。


我想立即引起您的注意,程序员的责任取决于历史时间表。 我们将在20年前返回。


图片


这个模因与现代开发人员的形象无关。 不过,让我们讨论一下这位出色的专家所负责的事情。 他很有可能正在开发一个运行不稳定的系统。 该软件的用户当时是所谓的高级个人计算机用户。 那时,只有高级用户才能使用文本编辑器以外的软件。


这样的专家的责任是什么? 它应该只用一种编程语言编写代码。 这位专家自豪地称自己为C ++-程序员(替代了当时流行的另一种编程语言)。 通常,他的领导并不完全了解他在做什么。 在这方面,他有机会创造自己希望的活动形象。 这种形象可能是负面的,那时程序员没有得到多少报酬,这就是他们生气的原因。 这可能是积极的,他可以通过领导力解决问题并创造有用的魔法。 我的一些同事仍然认为,保持负面专家的形象是常态。 在他们的公司中,管理人员仍然不了解他们在做什么,而这些专家对他们周围的整个世界绝对持否定态度。 但是它们并不多-很高兴。 无论如何,在我看来,IT公司就是那些经理们了解现代行业中正在发生的事情的公司。 对我来说,这足以成为一家IT公司。


在这方面,问题是:现代程序员的责任是什么? 这个问题可以回答很长时间,但是我会尽力揭示它,并立即丢弃那些重要的东西,但可以将这种材料延伸到无限远。 我们将开始以现代程序员所具备的能力来揭示它。


任何行业中的现代专家的能力分为三大类:


  • 硬技能;
  • 软技能;
  • 数字技能。

逻辑建议每位专家应平等地开发所有类型的技能。 它们彼此互补。


我不会透露这些条款,因为在俄语中它们甚至没有永久性名称。 许多教育专业人员对这些技能的理解有所不同,因此有时会使听众感到困惑。 我将提请您注意这些名称的对应表。


主键我将使用的名称其他同义词在卢布尔什为此而杀
硬技能专业技能精深的技巧硬技能,硬技能硬技能
软技能专业技能软技能,一般技能软技能,软技能软技能
数字技能数字技能数字技能,数字技能数字技能

如果名字有问题,用的定义甚至更多。 我只给出今天讨论所需的那些概念。


简而言之。 每个专家都只需要一种专业技能 :程序员-进行编程,建造者-建造,外科医生-手术(不当的笑话),等等。 此技能包括专家拥有的无限知识。 对于程序员来说,这包括理解每个人都应该知道的非常好的基础,理解他的编程语言的原理等等。


对于大多数专业而言, 数字技能是另一回事。 因为IT如今已渗透到所有行业。 今天很难找到一个没有数字化的行业:在另一个时候,我会说这是一种宗教,但是没有! 因此,对于大多数专业领域的专家来说,数字技能是一本单独使用的文章。 对于程序员来说,出于明显的原因,数字技能和专业技能会重叠。 尽管我是每个程序员,但我认为我应该是高级软件用户。 我的意思是,使用不同的服务来组织您的生活,尝试打造智能家居,将现代应用程序用于生活等等。 它会更多地发展数字技能。 毕竟,成为一个好的供应商,成为一个好的消费者真是太好了。


过分专业的技能 -这是我们将更详细讨论的事情。 与专业技能相比,每位专家都需要几种(最好是很多)超专业技能。 专业技能的示例:时间管理,寻找资源,使用资源,谈判技巧,沟通技巧,管理人员,公开演讲等。


为什么需要这些技能? 我用React写! -会听到观众的声音。


这就是20年前的程序员与如今的程序员之间责任截然不同的地方。 今天,我们是未来的供应商;没有我们,软件开发是不可能的。 我们公司的同事(经理,产品所有者,销售人员,利益相关者,营销人员和其他人员)需要我们的帮助。 我们的能力(即专业技能)以及我们如何运用它们的能力有时在产品开发中起决定性作用。 为什么这样 我在一篇有关Habré上实际全栈的文章中进行了描述。 它描述了您需要比我们大多数人更需要应用专业技能的地方。 实际上,我现在要写的技能只是结合了我们在Mad Devs中开发的非常酷的品质-客户亲和力(对客户的亲近感)。


正如我在上面所写,所有技能应在每位专家中平等地发展。 为了定性地将您的专业技能应用到我在上面链接中的文章中所描述的情况下,您还必须具备发达的超级专业技能。
具体哪个? 我将列出所有现代专家应具备的6大重要专业技能:


  • 时间管理 。 我想在这里,显然。 时间管理技能仅间接地与任务评估有关。 评估任务是一项专业技能。 程序员的时间管理是对时间进行编码,阅读文章,自我教育和聚会的逻辑分配。
  • 有团队合作的能力 。 几乎没有人一个人做项目。 团队合作的能力是绝对不可或缺的技能。
  • 教学能力 。 确切地说,是一种将与上下文相提并论的能力,可以与教学能力相提并论。 教书人的任务本质上是对上下文的介绍。 只有知识集才更广泛。 由于项目和团队的变化,程序员经常会更改上下文。 考虑到当今进入上下文的操作是多么昂贵,将同事介绍到上下文中,指出最重要的和省略不必要的细节的能力是一项非常重要的技能。 顺便说一句,该技能也用于指导。
  • 商业礼仪 。 从遵守俄语规则开始,到与客户沟通的基本规则结束。 一些商人忘记了他们不在gophers或Yai框架(替代您的技术)的闲聊中。 在某些公司中,商务礼仪在公司内部通过邮件通信很重要。 在Mad Devs,对于我们而言,业务礼节仅在对我们正在生产的产品重要的情况下才重要。 如果团队成员更容易理解这种交流,则将采用这种交流礼节。 但是至少与我一起工作的所有客户都是主要关注结果并更愿意进行认真交流的人。 在这里给自己每个人。 但是! 在情况需要时包含业务礼节的能力很重要!
  • 目标设定 。 两种。 个人和设计。 告诉我,程序员,五年后你会成为谁? 面试中的一个典型问题,但答案是有助于理解一个人与长期计划的关系。 我的个人观点(这意味着我不强加于任何人,这意味着毫无争议):尽管现代世界充满了熵,但仍需要,需要,需要长期规划! 无论发生什么情况,没人要求您坚持计划。 计划需要更改,这是成人的方式。 但是请牢记未来几年(最好是10年左右)的目标和任务集是制定决策的准则。 特别是,我发现与长期计划的人一起工作更容易。 您可以与他们一起投资和发展,而不必担心他们明天会下雨。 项目中的目标设定也很重要。 作为程序员,即使您抛弃了所有有关专业技能和知识的废话,您也要对项目的一部分负责。 您需要从长远角度计划项目的这一部分的开发。 将会出现什么抽象,哪些模块将单独生活以此类推。
  • 社交能力 。 与其他行业的同事交流的能力。 做出回应,帮助同事了解与我们的专业技能有关的问题。 当他们处于停顿状态等时,为他们提供救生员。 社交性也有助于建立与客户的联系,这对于任何项目总是有用的。

我认为,这些超专业技能将有助于充分展现您的专业技能。


当今程序员的主要信息不是代码打字机。 这是重要的作战单位:如果正确使用所有咒语,则可以决定战斗结果的单位。
为此,您不仅需要成为一名优秀的开发人员并能够编写代码,还需要具备一系列技能,乍一看可以远程帮助您履行职责,但事实并非如此。


我们回答这个问题:现代程序员的责任是什么。 在第一近似中,这是要编写的代码。 但是实际上,一个优秀的现代程序员在大多数情况下具有如此模糊的职责,就像当今专业技能的概念一样模糊。 除一切之外,这还取决于公司,团队,项目和团队负责人。


当然,每个开发人员都会决定自己应该是​​谁。 以及要开发什么技能,什么是重要的等等。 您可以继续成为代码拨号者,并且在未来几年中,您会感觉非常好。


的确,有专家会告诉我,狭窄的IT专家很快就会消失。 完全灭绝不会威胁到它们,但是以它们现在的形式,这些职业将不会永远存在。


有这样一个有趣的项目: 新职业地图集 。 仔细检查一下,看看新职业通常是IT +另一行业类型的职业。


JS-的职业中缺少某些东西。


我希望这种材料不会伤害任何人的感觉。 该材料试图从不同角度揭示现代程序员的技能体系。 不用了

Source: https://habr.com/ru/post/zh-CN451482/


All Articles