2020 年开发人员需要的 5 项技术技能:基于职位描述
如果您是 2020 年的开发人员,那么您可能已经看到过一份包含大量技术技能要求的职位描述。
例如,让我们看一下从 Indeed.com 上摘取的一份真实职位描述中所需的这组技术技能。
阅读过程中您可能需要休息一下。
职位描述
- 具有 Jenkins 和 Terraform 管理 AWS 基础设施的经验。
- 具有 AWS 服务(ECR、Lambda、SQS、CloudWatch、Route53)经验。
- 使用 Elixir、Python 和 Java 进行编程。
- 熟悉支持工具(Docker、Git、Bash、AWS CLI)
- 具有 ETL 和异步管道的生产经验。
- 具有关系数据库(Postgres/RDS)和 nosql 数据库(DynamoDB)使用经验。
- 表现出积极参与复杂系统设计的能力。
- 熟悉生产网络操作者优先。
- 了解 ML 原理和 NLP 经验,参加过 Kaggle 竞赛者优先。
- 具有数据科学库(Scikit、NLTK、Gensim、TensorFlow、Keras)的经验。
你拥有所有这些技能吗?
因此显然这份工作需要一名软件工程师、数据工程师、机器学习工程师和 DevOps 工程师。
从某些方面来说,这有点荒谬。
如今软件工程师真的需要所有这些技能吗?
说实话,是的,有点。
但是,也...有点不行。
一体化工程师的理念似乎正在不断渗透到每一家公司。
说实话,其中许多技术都是第三方工具,如果您是一名软件工程师,您可能在各种情况下与这些技术或其对应工具进行过交互。
就我个人而言,最荒谬的是招聘经理认为你不能胜任这份工作,因为你使用过 MySQL,但从未在 RDS 上使用过 MySQL。
但总的来说,如今由于 AWS、Docker、Nagios 等技术和服务,设计、开发、部署和监控软件变得更加简单。
所以,2020 年的软件工程师确实需要保持技能。以下是开发人员今年应该开始学习的 5 项技能。
这篇文章包含附属链接;如果您通过本文提供的不同链接购买产品或服务,我可能会收到报酬。
云服务
云服务已经从仅仅被价值数十亿美元的大公司使用发展到帮助支持小型企业(我们已经与多家使用 EC2、RDS、S3 等的小型企业合作)。
云服务有助于降低总体运营成本,并可以帮助您更有效、更高效地运营。
然而,这项新技术也带来了开发人员需要学习的新技能。要跟上所有技术以及各种运行代码、存储数据和托管基础设施的方式,感觉似乎不可能。
很多时候,我们感觉好像终于了解了一项云服务,却发现现在有另一种云服务可以替代它,或者只是添加了新的功能。
综上所述,您至少应该对哪些技术有较高的了解呢?
AWS、Azure 和 GCP:亚马逊网络服务 (AWS) 在美国拥有最大的云服务市场。它提供的服务种类也非常丰富,涵盖了 IaaS、PaaS 和 SaaS 等各个领域。它提供的数据存储服务包括 S3、RDS、 Redshift和 DynamoDB,计算服务包括 EC2 和 Lamda,您可以点击此处了解其他服务。
Azure 和 GCP 的使用率都在快速增长,尽管仍然落后于 AWS。但这也意味着开发人员需要掌握更多技能。
如果您想了解更多关于这些云提供商的信息,这里有几门课程可以帮助您快速入门。 其中许多课程在Coursera上是免费的。
集装箱化
在软件世界中,熟悉容器已变得至关重要。容器的作用简单概括就是将代码及其依赖项打包,以便代码能够在不同的环境中可靠高效地运行。
容器化是指将应用程序与跨多个计算环境高效运行所需的库、依赖项和配置文件捆绑在一起。
无论环境是本地还是云端,基于容器的应用程序都可以轻松部署。容器技术的例子有很多,但目前最突出的可能是 Docker。如果您想了解更多关于 Docker 及其之上的众多技术层(例如 Kubernetes) ,请观看此 YouTube 视频。
应用程序和服务器监控(Nagios):
监控每个系统、网络和基础设施非常困难,尤其是在应用程序在许多不同类型的硬件上使用的现代世界中。
Nagios 监控是一项开源技术,有助于在 DevOps 环境下监控应用程序和业务流程。Nagios 几乎可以监控一切,包括 HTTP、SSH、SMTP、内存使用情况、微处理器负载、服务器等等。只要你能想到的,它都可以设置监控。
2020 年的开发人员需要使用 Naigios之类的框架 来提供全天候的监控系统。这意味着你可能需要熟悉 Naigios 之类的工具才能成为一名高效的开发人员。
詹金斯,Bamboo CI/CD
许多新晋工程师永远无法体验没有 CI/CD 的世界。这并不是说更传统的部署方式已经不存在了。
然而,使用工具协助 CI/CD 的推动力仍在不断增长。
许多公司正在研究或用于 CI 工作的两个第三方工具是 Jenkins 和 Bamboo。Jenkins 是一个开源工具,而 Bamboo 是一个商业工具。
Bamboo 提供了一系列 功能 ,通常仅受预算限制,并且可以轻松地与 Jira 和 Bitbucket 集成(哦不……还有更多技术需要学习)。但这三者的结合创建了一个 CI/CD 系统,可以帮助您轻松部署代码、检测代码中的错误等等。
Jenkins 是一个 CI(持续集成)开源服务器,能够编排和执行一系列操作。Jenkins 可以在 JAVA 的帮助下运行,并能够监控项目并检测可能的错误。Jenkins 的检测率很高,这也是它迅速流行的原因之一。花点时间了解更多关于这些工具的信息吧!
数据库
作为开发人员,了解各种数据库和数据存储系统是技能组合中至关重要的一部分。决定应用程序的后端支持方式会极大地影响性能和功能。
长期以来,大多数应用程序在应用端仅限于关系数据库。然而,随着服务器和计算机存储容量和性能的提升,许多新型的数据存储系统如今已成为可能。
DynamoDB
例如,DynamoDB 是一种与标准 MySQL 实例截然不同的数据库。DynamoDB 将其所谓的属性、项目和表作为用户常用的核心部分。这使得开发人员可以自由地创建并非总是需要相同值的非结构化数据集。
除此之外,像 Hadoop/HDFS/Hbase 这样的技术栈也允许结构化程度更低、分布式程度更高的数据存储。所有这些都进一步增加了开发人员的工具箱的复杂性。
学习 DynamoDB 的一个很棒的课程是这个组合课程,它教你有关 DynamoDB 和 Lambda 的知识。
传统 RDBMS
而且,仅仅因为有如此多的新数据系统并不意味着您可以忽略传统的 Mysql 和 SQL Server 关系数据库。
使用 关系数据库管理系统 (RDBMS) 仍然是设计应用程序数据层的一种非常流行的方法。所以,别忘了保持 SQL 和数据建模技能的水平。
编程语言
但作为一名程序员,你当然还是需要知道如何编程!但是,哪些知识呢?
作为开发人员,编程语言仍然是我们赖以生存的根本,大多数开发人员在行业中工作几年后就掌握了多种语言。
但是,如果你刚刚起步,那么你可能需要了解一下 Python 或 JavaScript 的“技术栈”。这两套语言在大多数工作中都被广泛使用。这并不是说 Java 和 C++ 等语言没有它们的地位。
但就职位角色而言,您可以从下图中看到,使用 Python 和 JavaScript 的职位在职位描述中都呈上升趋势。
那么为什么是 Python?
每个人都倾向于使用 Python,因为它简单易用,而且能够很好地处理大多数问题。现在,它通常无法像 C 或 C++ 那样进行微调,也不是原生的 Web 语言。不过,它确实做得很好,在任何方面都表现不错。
由于 Google 在 Tensorflow 等库上所做的工作,Python 经常与人工智能和机器学习等最新技术联系在一起。
如果你想快速编写一个网站,可以轻松使用 Django、Flask 和 __ 作为后端。相信我,这比尝试配置 Spring 框架站点要容易得多。
Python 轻松支持并行计算,减少了组织数据的麻烦。Pydoop 是 Python 集成的一个库,您可以在其中处理数据并借助 HDFS 集群进行呈现。
随着越来越多支持 Jupyter Notebook 的工具的开发,Python 也在数据分析领域找到了一席之地。
Python 的多功能性使得它如此受欢迎。
无论您是数据科学家还是开发人员,您都可以使用 Python 作为工具来开发网站或机器学习模型。
根据你想学的内容,有很多很棒的免费课程、书籍和速查表可以帮助你学习。 例如,这里有一个很棒的 YouTube 播放列表。
React.js
好的,现在 React 怎么样?
React.js 让前端开发变得“简单”。例如,使用 DOM API 可能很麻烦。然而,React 为开发者提供了在虚拟浏览器上开发的能力。这个虚拟浏览器本质上充当了开发者和真实浏览器之间的联络人。
React.js 的另一个核心概念是可复用组件。在 React 中,应用程序由所谓的组件构成。组件种类繁多,但其主要目的是 创建可轻松移植到应用程序中的代码片段。
最后,单向数据流非常棒,因为 ReactJS 中不允许组件发生变化,并且组件内的数据具有相同的属性。
当 ReactJS 监听来自上游的数据时,组件运行顺畅并保持同步。此功能实际上使 ReactJS 在构建用户界面方面更加高效。
要了解更多信息,请参阅 Youtube 上 freeCodeCamp 的另一个免费课程。
2020 年您将如何提升自己的技能?
总的来说,2020 年的开发人员需要掌握很多技能。说实话,如今大多数软件开发人员的职位描述似乎都要求一个人能够带领整个开发团队。从 DevOps、数据库管理、后端和前端开发,坦白说,其他所有方面都应有尽有。
你们正在寻找下一份软件工作,我们祝你们好运!继续保持这些技能。
Airbnb 的 Airflow 与 Spotify 的 Luigi
面向未来的五大大数据工具——从 Hadoop 到 Cassandra
文章来源:https://dev.to/seattledataguy/5-technical-skills-developers-need-in-2020-based-off-of-a-job-description-5gd9