速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

  • 2020-05-04
  • 本文字数:3292 字

    阅读完需:约 11 分钟

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 等技术和服务,现在设计、开发、部署和监控软件的工作变得更简单。


所以,现在的软件工程师需要与时俱进,保证自己的技能不会落伍。以下是开发者应该在今年开始学习的五项技能。

1.云服务


不仅大企业在使用云服务,现在连小型企业都在用云。云服务不仅有助于减低企业整体运营成本,而且能帮助客户更高效地处理运维工作。


然而,随着这项新技术的出现,开发人员也需要学习相应的新技能。但是,要跟上这个领域的所有技术趋势,还要学会用各种方式来运行代码、存储数据和托管基础架构。这看起来是一件不可能的事。


很多时候,我们感觉自己终于摸清一个云服务,却发现有另一个云可以替代它,或者服务又添加了新功能。既然如此,我们至少应该了解哪些技术?


AWS、Azure 和 GCP:提到云服务,AWS 在美国拥有最大的市场份额,它可以说提供了最广泛的服务种类,从 IaaS、PaaS 和 SaaS 无所不包。它提供了 S3、RDS、Redshift和 DynamoDB 等数据存储服务,以及 EC2 和 Lamda 等计算服务。虽然 Auzre 和 GCP 仍然落后于 AWS,但是它们的使用量都在快速增长。这就意味着开发人员需要掌握更多技能。

2.容器化


在软件世界,熟悉容器变得非常重要。简而言之,容器将代码及其依赖项打包,以便可以在不同的环境中可靠、高效地运行。


容器化是指将一个应用程序与它需要的库、依赖关系和配置文件打包在一起,以便在多个计算环境中有效运行。


无论是本地环境还是云环境,都可以轻松地部署基于容器的应用程序。市面上有很多容器技术的代表,最突出的要数 Docker。如果你想了解更多关于 Docker 的信息和Kubernetes,你可以看看这个YouTube视频

3.应用程序和服务器监控(Nagios)


对每套系统、每个网络和每一片基础设施进行监控,这是非常困难的,尤其考虑到现在的应用程序被用在许多不同类型的硬件上。


Nagios 监控是一种开源技术,它可以帮助监视 DevOps 中的应用程序和业务流程。Nagios 几乎可以监控一切,从 HTTP、SSH、SMTP、内存使用、微处理器负载到服务器等。只要你能说出来个类型,Nagios 就能进行监控。


在 2020 年,开发人员将需要使用Naigios这样的框架,以打造一个全天候的监控系统。这意味着我们需要熟悉像 Naigios 这样的工具,才能成为一名高效的开发人员。

4.Jenkins,Bamboo CI/CD


许多工程师新人可能不知道,一个没有 CI/CD 的世界是什么模样。但是,这并不是说很多传统的 deployment shops 不存在了。然而,使用 CI/CD 等辅助工具的趋势将持续增长。


很多公司都在研究或使用关于 CI 的第三方工具,其中有两个很好的例子就是 Jenkins 和 Bamboo。Jenkins 是一个开源工具,而 Bamboo 则是一个商业工具。


Bamboo 提供了很多功能,这些功能通常取决于你的预算,并且很容易与 Jira 和 Bitbucket 集成。但是,这三者的结合创建了一个可以帮你轻松部署代码,并提供检测代码中的错误等功能的 CI/CD 系统。


Jenkins 是一个持续集成(Continuous Integration)开源服务器,它具有编排和执行一系列操作的能力。Jenkins 可以在 JAVA 的帮助下执行,并具有监视项目和检测可能出现错误的能力。Jenkins 的检测率相当高,这也是其迅速普及的原因之一。关于这些工具的更多知识请参考此处

5.数据库


作为一名开发人员,了解数据库和数据存储系统的各种选项是个人技能的一个重要组成部分。选择如何在后端支持应用程序的决策会显著影响性能和功能。


长期以来,大多数应用程序的数据库选项都局限在应用程序端的关系型数据库上。然而,随着服务器和计算机的存储能力和性能提升,现在已经出现很多新型的数据存储系统。

DynamoDB

例如,DynamoDB 是一个与标准 MySQL 实现非常不同的数据库。DynamoDB 使用它所称的属性、条目和表作为用户经常使用的核心部分。它允许开发者自由使用非结构化数据集,这种数据集并不总是需要相同的值。


此外,还有像 Hadoop/HDFS/Hbase 这样的技术栈,它们也允许更少的结构化和更分布式的数据存储。所有这些只会让开发人员的工具箱变得更加复杂。

传统 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 笔记本工具的开发,Python 在数据分析领域也占有一席之地。在我看来,Python 如此流行主要归于其多功能性。


无论你是数据科学家还是开发人员,你都能使用 Python 作为开发网站或机器学习建模的工具。针对你想学的东西,网上有很多的免费资料。例如,这里有一个很棒的YouTube播放列表

React.js


React 怎么样?无疑,它让前端开发变得非常简单。例如,使用 DOM API 可能是一件痛苦的事情。不过,React 为开发人员提供了在虚拟浏览器上开发的能力。本质上,这个虚拟浏览器是开发者和真实浏览器间的联络器。


关于 React.js 的另一个著名概念是可重用组件。在 React 中,应用程序由所谓的组件构成。有许多不同种类的组件,目的都是创建可以很容易移植到应用程序中的代码片段


最后,React 的单向数据流非常好用,因为组件不允许在 ReactJS 中更改,而且组件中的数据具有相同属性。当 ReactJS 监听从上游流出的数据时,组件会平稳运行并保持同步。这个特性实际上让 ReactJS 非常适合构建用户界面。

小结

说实话,软件开发领域,新技术不断出现,开发者要学习的东西越来越多。有时候,软件开发人员的职位描述看上去要一个人能干一个开发团队的活,从 DevOps、数据库管理到后台和前端开发,甚至无所不包。


英文原文:


5 Technical Skills Developers Need In 2020


2020-05-04 07:003798
用户头像

发布了 36 篇内容, 共 19.4 次阅读, 收获喜欢 55 次。

关注

评论

发布
暂无评论
发现更多内容

淘宝API接口与用户体验分析

联讯数据

体育数据API接口:观看足球篮球比赛直播视频,获取即时比分数据

软件开发-梦幻运营部

数字化转型新篇章:华为云耀云服务器L实例引领初创与成长型企业向前

平平无奇爱好科技

华为云耀云服务器L实例:企业建站与小程序开发的绝佳选择

轶天下事

高防服务器一般价格多少钱一台?

Geek_f19a80

服务器

【高效视频处理】一窥火山引擎多媒体处理框架-BMF

计算机魔术师

探索未来云计算,华为云耀云服务器L实例引领行业新动力

平平无奇爱好科技

华为云耀云服务器L实例:智能、高性能、低成本的数字化助手

轶天下事

MATLAB实战 | S函数的设计与应用

TiAmo

matlab

AI 与自然语言

天黑黑

大模型 LLM 提示词

责任等同于背锅?

BY林子

Nacos配置中心脱敏

姚秋实(Nacol)

安全 nacos 架构设计 jasypt 配置中心

2023-12-02:用go语言,如何求模立方根? x^3=a mod p, p是大于等于3的大质数, a是1到p-1范围的整数常数, x也是1到p-1范围的整数,求x。 p过大,x不能从1到p-1遍

福大大架构师每日一题

福大大架构师每日一题

ZooKeeper应用场景综述

极客罗杰

助力企业上云降本增效,华为云这款产品有妙招

轶天下事

华为云耀云服务器L实例:专为中小企业量身打造的高性能云服务器

轶天下事

企业数字化创新发展,华为云这款服务器助力一键飞跃数字化巅峰

轶天下事

3D模型材质编辑

3D建模设计

3D纹理 3D材质 模型渲染

数字化浪潮下云计算如何服务?华为云这款服务器用实力说话

平平无奇爱好科技

【云原生 | 最佳实践】一个实践驱动的云原生项目集—KubeWharf

计算机魔术师

字节跳动 云原生

解锁中小企业上云智选,华为云这款服务器你值得拥有

平平无奇爱好科技

性能卓越,部署无忧,华为云这款产品值得信赖

平平无奇爱好科技

CentOS 7.8编译安装python 3.7教程。

百度搜索:蓝易云

Python Linux centos 运维 云服务器

CentOS7如何使用fail2ban防范SSH暴力破解攻击?

百度搜索:蓝易云

Linux centos SSH 云服务器 Fail2ban

回顾2023,展望2024——小工程师的执着

工程师日月

#技术人的2023总结

CSS技巧:从高度0过渡到自动高度

南城FE

CSS 前端 动画

传输黑科技下的全景之旅—浅谈开源项目E3PO的思路与功能

计算机魔术师

数字化时代的利器:华为云服务器L实例助力初创企业稳健成长

平平无奇爱好科技

2020年开发者应该关注的五大技能_语言 & 开发_SeattleDataGuy_InfoQ精选文章