2020 年开发者应该关注的五大技能


2020 年开发者应该关注的五大技能

文章插图
 
2020 年的今天 , 如果你是一名开发人员 , 那么你可能看到一些包含大量技能要求的职位招聘描述 。以下面一份 Indeed 网站上的真实招聘要求为例 , 它列出的技能不少 , 甚至阅读期间都要中途休息一下 。
职位描述:
  • 有使用 Jenkins 和 Terraform 管理 AWS 基础架构的经验;
  • 有 AWS 服务的相关经验(ECR、Lambda、SQS、CloudWatch、Route53);
  • 用 Elixir、Python 和 JAVA 进行过实际编程;
  • 熟悉支持工具(Docker、Git、Bash、AWS CLI);
  • 具有通过 ETL 和 asynchronous pipelines 进行生产环境开发的经验;
  • 熟悉关系型数据库(Postgres/RDS)和 nosql 数据库(DynamoDB);
  • 具备积极参与设计复杂系统的能力;
  • 熟悉生产环境网络运维者优先;
  • 了解机器学习原理 , 拥有 NLP 经验 , 有 Kaggle 竞赛经验者优先;
  • 有数据科学开发库(Scikit、NLTK、Gensim、TensorFlow、Keras)的经验 。
你具备所有这些技能吗?显而易见 , 这份工作是在寻找一个“多面手” , 既是软件工程师、数据工程师 , 又是机器学习工程师和 DevOps 工程师 。从某方面说 , 这个要求有点“荒谬” 。
现在的软件工程师真需要掌握所有这些技能吗?说句实话 , 差不多 。这其中的很多技术都只是第三方工具 。如果你是一名软件工程师 , 那么你很可能在某些情况下用过这些技术或与之类似的技术 。
在我看来 , 招聘经理认为你不能胜任工作 , 仅仅因为你用过 MySQL 但从未在 RDS 上使用过 MySQL , 这非常荒谬 。总而言之 , 幸好有 AWS、Docker、NagIOS 等技术和服务 , 现在设计、开发、部署和监控软件的工作变得更简单 。
【2020 年开发者应该关注的五大技能】所以 , 现在的软件工程师需要与时俱进 , 保证自己的技能不会落伍 。以下是开发者应该在今年开始学习的五项技能 。
1. 云服务
2020 年开发者应该关注的五大技能

文章插图
 
不仅大企业在使用云服务 , 现在连小型企业都在用云 。云服务不仅有助于减低企业整体运营成本 , 而且能帮助客户更高效地处理运维工作 。
然而 , 随着这项新技术的出现 , 开发人员也需要学习相应的新技能 。但是 , 要跟上这个领域的所有技术趋势 , 还要学会用各种方式来运行代码、存储数据和托管基础架构 。这看起来是一件不可能的事 。
很多时候 , 我们感觉自己终于摸清一个云服务 , 却发现有另一个云可以替代它 , 或者服务又添加了新功能 。既然如此 , 我们至少应该了解哪些技术?
AWS、Azure 和 GCP:提到云服务 , AWS 在美国拥有最大的市场份额 , 它可以说提供了最广泛的服务种类 , 从 IaaS、PaaS 和 SaaS 无所不包 。它提供了 S3、RDS、 Redshift 和 DynamoDB 等数据存储服务 , 以及 EC2 和 Lamda 等计算服务 。虽然 Auzre 和 GCP 仍然落后于 AWS , 但是它们的使用量都在快速增长 。这就意味着开发人员需要掌握更多技能 。
2. 容器化
2020 年开发者应该关注的五大技能

文章插图
 
在软件世界 , 熟悉容器变得非常重要 。简而言之 , 容器将代码及其依赖项打包 , 以便可以在不同的环境中可靠、高效地运行 。
容器化是指将一个应用程序与它需要的库、依赖关系和配置文件打包在一起 , 以便在多个计算环境中有效运行 。
无论是本地环境还是云环境 , 都可以轻松地部署基于容器的应用程序 。市面上有很多容器技术的代表 , 最突出的要数 Docker 。如果你想了解更多关于 Docker 的信息和 Kubernetes  , 你可以看看这个 YouTube 视频 。
3. 应用程序和服务器监控(Nagios)
2020 年开发者应该关注的五大技能

文章插图
 
对每套系统、每个网络和每一片基础设施进行监控 , 这是非常困难的 , 尤其考虑到现在的应用程序被用在许多不同类型的硬件上 。
Nagios 监控是一种开源技术 , 它可以帮助监视 DevOps 中的应用程序和业务流程 。Nagios 几乎可以监控一切 , 从 HTTP、SSH、SMTP、内存使用、微处理器负载到服务器等 。只要你能说出来个类型 , Nagios 就能进行监控 。


推荐阅读