职业:后端开发人员

没有理由停止- 
我正在行走,滑行。
而且在世界上没有这样的高峰,
什么也不能采取。
维索斯基


如果这篇文章不是在哈布雷(Habré)上发表,而是在教育杂志上发表,我将这样开始:“记住您喜欢的站点,这些站点具有便捷的导航和漂亮的界面。但这是冰山一角吗?”但是大概所有关于哈布雷的知识都知道,因此没有歌词。任何Web项目的后端都是一个复杂的系统,它使应用程序可以快速运行,高效搜索,快速向用户提供信息,安全地存储数据,并在必要时与其他外部系统一起工作。就像瑞士的手表一样:他们购买时是为了获得样式和铭牌,但鉴赏家们知道,在受限的表盘下,有着发条的神奇世界。后端开发人员是机制,生物,肠道,内脏或Web应用程序中所称的魔术师。嗯,没有歌词是不可能的! 

简而言之,今天我们正在分析“专业...”系列中的另一专业。那么,如果您去后端开发人员怎么办? 


后端总是有点痛苦

是谁呀?


从学术上来讲,后端开发人员是负责网站或Web应用程序以及其他软件和信息系统的内部和计算逻辑的程序员。严格来说,后端不仅适用于Web解决方案,还适用于台式机和移动应用程序,因为实际上,后端就是与服务的硬件和软件有关的所有内容。但是从历史上看,后端和前端在Web开发中开始变得特别清晰。而且,由于这也是当前最受欢迎的领域,因此我们将专门讨论Web(对于台式机,许多论点也将是有效的,但我们将在其中一个问题中单独讨论移动开发人员)。

后端开发人员创建可通过界面访问应用程序或站点的用户的组件和功能。简而言之,支持者是程序员,他们开发用户看不见且不直接接触的所有内容。也就是说,漂亮的数据输入表单或在线商店的篮子是前端,并且将数据存储在DBMS,一堆注册表单字段和篮子,与支付网关的集成,自动信件,加载和更新内容都是后端。因此,如果注册表格开始出现数据库错误,则错误是...测试人员:-)(为什么-我们还将在下一个系列中讲述)。

后端开发人员负责什么:

  • 确保网站所有功能及其计算逻辑的正确运行;
  • 通过DBMS组织和使用数据库;
  • 开发基本逻辑和应用运算算法;
  • API
  • 与外部服务的必要整合;
  • 测试和调试应用程序以及各个组件。

通常,该网站的大脑和血液在后端开发人员的良心上。只是不需要认为这是一切发展的上帝和国王,而过程中的其他参与者会因为预期他的行为而冻结-这不是完全正确的(嗯,几乎)。


前端开发人员将灯漆成黄色,并擦拭后端,以便灯可以工作,但只能在白天使用。


后端开发人员对每个人在这些灯泡上遇到的问题感到惊讶,回想起他忘记把光放到数据库中了,冷静下来,并责怪前端。

在哪里需要?


与前端开发的情况一样,绝对在任何地方都存在与Web上的用户进行交互的网站或应用程序。每个人都需要不同级别的后端,这是另一回事:在有条件的社交网络或大型公告站点的办公室中,后端开发人员不仅必须具有基本技能,而且还必须具有高负载,微服务架构和容器化(Docker,Kubernetes),了解监控系统( (例如Zabbix,Grafana)具有Scrum技能(特定公司可选)。对于一个小型的在线商店,一堆需要PHP-Ajax的DBMS-一些HTML就足够了,有时甚至更少。显然,工资和经验要求也完全不同。 

传统上在哈布雷职业生涯我们发现后端开发人员有444个空缺,几乎比前端空缺多2倍。在hh.ru上-大约1800。通常,前端供应商在工作站上等您,该站点的搜索需要两个小时才能完成:-)但是,严重的是,该公司每个前端可能有2-3个后端开发人员,特别是在我们正在谈论具有复杂内部逻辑和业务逻辑(在线商店,CRM-ERP,公司门户等)的应用程序。

平均工资


我们还将研究Haber Career的工资。不管特定堆栈的所有权如何,都可以获取2019年下半年的数据。 
专家级
平均工资
实习生(Intern)
35345擦。
初级
55241擦
中间
105048擦
资深
168350擦。
主持人(负责人)
185335擦。

如果与前端招标的薪水相比,增长幅度不大,从几百卢布到六千卢布。(在中间)。但是这些实际上是非常平均的值,很大程度上取决于编程堆栈,其他技能,经验和主要的开发语言。顺便说一下,PHP对于后端开发人员的所有级别来说都是第一位的,我们将对此进行更多讨论。

基本专业要求


后端的要求比前端对公司的功能及其业务流程更加敏感。有时乍一看可能很奇怪,例如“了解鱼冷藏柜作为企业的原理”,“对销售基础知识或销售经验的了解”,“对JavaScript,CSS和HTML的精通知识”。但是,只有采用第一种方法,它看起来才是疯狂和令人反感的。实际上,后端开发人员确实更加沉浸在业务流程中,不仅必须按照业务流程开发代码,还必须针对特定任务调整某些内容,从内部了解其工作方式。如果您从未见过销售漏斗并且不了解垃圾的种类,那么您将永远无法与过滤器,切片和转换一起开发其逻辑(即使您拥有出色的技术规格,也很难弄清楚)。好吧,在具有“ JavaScript,CSS和HTML的丰富知识”的示例中,一切都很简单:经理可能并不真正信任他的其他开发人员,并准备重新考虑他的开发方法。这通常发生在小型公司中。 

但是,后端开发人员在几乎所有工作中都会看到一些基本要求。

  • 至少了解一种“服务器”编程语言:PHP,Go,ASP.NET,C / C ++,Python,Ruby,Java。在某些情况下,对后端(Node.js)的JavaScript知识就足够了,但这不仅仅是一个优点。
  • 了解API(REST,SOAP-越来越少)。
  • 了解Apache,NGINX,IIS和其他服务器的原理。
  • 编写单元测试和用测试覆盖代码的技能。
  • 网络安全的基础知识以及确保安全的工具知识。
  • 流行的Web框架知识,可以解决开发特定应用程序的问题。
  • 编写数据库查询和数据库设计的技能。
  • 了解前端的基础知识不是一个加分,而是必不可少的,否则您将很难设计和编写应用程序。

简历和您的实际工作都将获得的巨大收获将是另一套知识。

  • UNIX管理或Linux知识(您可以使用任何一种分发工具包)。
  • 了解HTTP工作原理(缓存,授权,消息结构,标头,响应代码等)
  • OSI模型。 
  • 准备和评估职责范围(TOR)的技能是一项非常重要的技能,对于收集有关软件要求的最准确信息是必需的。 

“是的,发疯!” -你会说,你会是对的。但是,我有一个好消息:后端开发工具的更改比前端更改的速度慢得多,而且需求已过时了很长时间。因此,我精通了一次,阅读了摘要,以了解最新信息,但尤其不要沸腾,因为扁平化设计已经变得时尚起来,而且您网站上的产品卡已经两天没什么趋势了:)

顺便说一下,由于后端开发是一门精确的科学,因此后端支持者中有许多优秀而强大的数学家,并且结果的质量在很大程度上取决于如何验证所选和应用的算法,模式,周期,函数等。
实习生(Intern)
初级
中间
资深
主持人(负责人)
  1. C ++
  2. C #
  3. 高朗
  4. 的SQL
  5. 。净

  1. p
  2. 蟒蛇
  3. 爪哇
  4. Java Spring框架
  5. PostgreSQL的

  1. p
  2. 蟒蛇
  3. 爪哇
  4. PostgreSQL的
  5. Java Spring框架

  1. p
  2. 爪哇
  3. 蟒蛇
  4. PostgreSQL的
  5. Java Spring框架

  1. p
  2. 爪哇
  3. 的MySQL
  4. PostgreSQL的
  5. 高负荷系统

-- 
+ OOP,框架

+ OOP,框架,Docker
+高负载系统,OOP,框架,Docker
+ Linux,OOP,框架,Docker
根据“ Habr Career”的说法,专家需要的前五项技术是2019年下半年,最重要的是“附加”技能。

形成列表的原则是:用户输入工资数据,指出他们具有优先权的技能(他们可以做什么!)。也就是说,这些不是用人单位的要求,而是每个类别中专家的技能。

如您所见,公司已经准备好接受基础大学C,C ++和C#的实习生,但是在将来,他们更喜欢具有“工作集”后端的专家。注意对集装箱化和重载系统的兴趣。 

顺便说一句,这是适合您的另一条路线图,但已经适用于开发人员的后端(其他站点也在该站点上-我认为,这是我在该主题上看到的最好,最系统的站点之一)。查找,打印并转发到后端顶部。 


重要的个人素质


备份很好,它可以是一个内向的人:)它与用户的工作领域最小化,基本上是与经理或同事的所有工作联系。这些人经常从事传统知识工作,并按照文档中的描述或以获取与目标尽可能接近的条件的方式来做所有事情(传统知识也很不完善,甚至根本没有...)。

但是,有一些特质,没有这些特质,您不应该考虑后端的方向。在您看来,他们似乎像“年轻且不断发展的团队”所需的员工素质,但不,这是关于内部要务的要求,不仅要做好工作,而且要内在舒适(而不是“滚蛋”)。 ”)。

  • . , : , , , .. , — (, - - - CRM-).
  • . , , .
  • . — , , , « » , , - ( ).
  • . .
  • , . — .
  • . , . , . — . 
  • . — . , , . — ( ).
  • . , , , , , , , . , , — «» , « ».


这是为前端开发人员编写的。

对于任何程序员而言,非常希望至少具有中级水平的英语,并且在技术英语方面存在偏见。因此,您可以阅读原始的Google和其他公司关于最佳开发的大量建议(大量有用的文档!),借助国外讲座进行自学,在论坛中与同事进行交流,提出问题,以及阅读有关可用性和设计的书籍,其中包括许多很酷的英语和尚未翻译的版本。 

后端也是如此,甚至更多。在对上一篇文章的评论中,他们注意到,对于IT专家来说,高中级水平太大了,低级水平已经足够。我根据自己和教科书的水平来判断。可以说,从中级到中级,该步骤看起来并不像捕手,“闲聊”的级别很容易采取。但是从上到下-深渊,复杂性和词汇量。但是,如果您阅读规则并了解自己正在以不同的水平阅读,那么没人会带您参加考试,而是使用它。 

在哪里学习


原则上,同一所技术大学,课程,自我教育和公司大学。但是有一些细微的差别。

  • - (, , .), . - — , . , , , .. 
  • — - (, PHP Java) - -, , ( ).
  • , / . , .
  • open source , .
  • , , (-), . , , , , . , , - , - , .. ( / ). 



有必要在特定时刻基于所选的编程语言和当前堆栈来选择培训工具。一般建议如下。

  • 关于您的编程语言的基础书籍-我喜欢O'Reilly版本,许多版本由Peter翻译。 
  • 同样,基础书籍也很丰富。 
  • 按语言和公司推荐编写的食谱,博客文章等。
  • Beck Kent,极限编程。从原则上讲,通过测试进行开发对于任何开发人员来说都是一本好书,但对于后端而言尤其如此。进入TDD哲学是很昂贵的。
  • Joel H. Spolsky-您可以阅读他的博客,但仍可以在Runet电子书“ Joel about programming”(有关编程的Joel)中找到-俄语博客文章集。
  • « », « » — «» , .
  • « » — «» , .
  • , Youtube . , , . , . 
  • webref.ru — , , . 
  • codecademy.com — , , , . 
  • ITc | 程序员社区 -包含课程,讲座和其他内容的组织信息车。阅读评论,轻松确定最适合的学习方式。
  • 程序员的图书馆 -一堆关于任何IT主题的书籍。

为什么我专注于书籍?首先,他们很专业,其次,可以方便地随身携带它们,做笔记和粘贴贴纸,快速返回所需的信息。这是一种方便易用的格式,用于向大脑展示信息。如果您还没有测试过自己,请务必尝试一下,玩得开心!

后端的未来


后端的未来是非常清晰和有希望的。

  • : junior , middle , senior , , , team lead .. , , , , .
  • : - Java, /++ « », , , , .. , .
  • -: .
  • DevOps, DevSecOps, — - , .
  • , . 
  • — . - ( -).

我会告诉你更多:如果您在2020-2022年学习SQL和任何“后端”编程语言,那么到2032年对您来说将是件好事。这里的重点不是传统支持,而是事实上还没有像Web这样的替代品看来后端有更大的机会将其堆栈放下。

对您不利的主要事情是成为一个糟糕的开发人员,同时依靠一些有趣的东西。事实是,每个公司都希望后端承担责任(想象银行应用程序代码,某些关键GIS或在线监视系统中的错误-您可以立即将其变成灰色)和合理的工作方法。不太可能过滤或说“它是有意的”-由于后端的所有外部隐身性,后端的故障最明显。

专业的神话


▍后端很难


有争议的点。一些开发人员声称,由于开发工具,无数的库和低动态性,它更容易实现,而其他开发人员则害怕从原则上接近后端。但是,就像往常一样,在中间:相反,后端开发人员堆栈是多样化的并且具有异构组件,但是,首先,项目中不需要所有内容,其次,值得一件事,现在所有的关系都是显而易见的,即知识串在一根杆上。无论如何,您都需要在后端进行尝试-即使您转身选择其他类型的开发,所获得的知识也将对您的工作有所帮助。


▍后端开发人员获得数百万美元


这通常是关于编程的普遍神话。我不得不亲眼看到的俄罗斯开发商的最高实际工资是54万卢布。每月(C / C ++,国外项目,计算机视觉系统,博士学位,远程),第二个从它-40万卢布。 (德尔福,乌达伦卡,外国企业,德国人为母语)。其余部分与我从“ Habr Careers”中获得的车牌号非常相似。只有融合后,您才能收到数百万美元的信息:精湛的语言知识+才干+经验以及在狭窄领域内的独特技能+准备支付那么多钱的项目。这些家伙只有几个,我不会说他们的命运真美:他们99%的生活是工作,1%是梦想。因此,重要的是要实现另一个论点:后端开发人员需求旺盛,并且比许多专家更好地赚钱。手段值得一试。

▍PHP-r @ vno,PHP已死,PHP必须消亡


我喜欢这个霍利瓦尔!但是同时,我知道初学者是如何害怕他的,并试图绕过这种强大且方便的语言和框架。事实是,在2000年代至2010年代初期,PHP是自由职业者和其他IT幸运先生非常流行的编程语言。它说到了很多糟糕的业余网站和应用程序-并不是因为语言不好,而是因为这些人无法优雅,胜任地使用它。关于“坏”的这些神话从那里消失了。

当然,PHP易于学习,比所有现有的PHP更活泼,成千上万的项目,设计项目和项目工程师都在其上编写和支持,并且可以使用很长时间。根据Stackoverflow的统计,PHP被25.8%的专业开发人员所选择。是的,Octoverse GitHub语言在项目数量方面非常稳定:


顺便说一下,真正优秀的PHP程序员在各个方面都受到高度重视。

主要提示


后端没有更好的语言,此外,我将告诉您,没有什么比这更好的编程语言了。学习您或您将来的雇主所需要的语言(您可以提前学习),然后便可以快速而优雅地解决分配给您的任务。您不应该从“所有人都跑,我都跑”的原则中学习一些技术。然后,您才能成为真正独特的,有思想的,赚钱的专家。当然,这将决定它的条件是最好的。 

好吧,读者中是否有经验丰富的后端?如何?您为什么选择这个特殊的开发方面? 是的:专业:前端开发人员专业:系统管理员







All Articles