Kotlin 威胁Python 逆袭,2018 年程序员需要升级哪些技能?
Posted CSDN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin 威胁Python 逆袭,2018 年程序员需要升级哪些技能?相关的知识,希望对你有一定的参考价值。
关键时刻,第一时间送达!
近日,著名的技术书籍出版商 PACKT 基于 8000 名开发人员以及技术专家的工作经验进行了调查研究,最终发布了《2018 年开发者技能提升报告》,旨在追踪开发者的工具使用情况以及最新的技能趋势,确保开发者做出正确的学习选择。
本技能提升报告从 App 开发、Web 开发、安全和系统管理、数据科学四大方面入手,一窥 2018 年开发者最受欢迎的工具以及更能获得高薪的技能。
▌App 开发:Java 坐稳霸主之位、ios 应用开发更能获高薪
编程语言:Python 受高薪程序员青睐、Java 在移动开发中大显身手
2018 年以来,Java、javascript、Python 开始争夺编程语言界的头把交椅。不过,霸主依旧是霸主,无可比拟,Java 仍占榜首,据报告显示,有 40% 的开发者使用 Java 进行 App 研发。而 JavaScript 和 Python 稍逊一筹,JavaScript 占 36.85%,Python 占 36.47%,后两者之间相差不到 1%,流行度可谓不分伯仲。
除此之外,用于 App 开发的编程语言 Top 10,还有 C#、SQL、C++、C、php、Swift、Go。
据调查结果显示,Python 最受高收入的 App 程序员的青睐;C# 适用于企业和桌面应用程序的开发,也在游戏开发中大显身手,因此最受此领域的开发者们喜爱;而 Java 最受移动开发者的欢迎。
对于 App 开发,我们已经看到基于 C 语言的开发支持已经越来越少。且只有在桌面开发人员和游戏脚本编写人员中,C#仍然占据着榜首位置,这意味着更多的开发者都在尝试新的方法来构建浏览器以及移动端应用。
移动开发工具:android Studio 稳操胜券
Android Studio 是移动设备端(39%)开发时的主导工具,其使用量比Xcode(16%)多出一倍以上。总体上来看,Android 开发者的数量比 iOS 要多得多。
但是,使用 Xcode,iOS SDK 或 macOS 进行开发的开发者中,有 50% 的人薪酬为 70000 美元甚至更高,所以想要在移动开发中挣取更多的薪酬,具备 iOS 技能看起来更容易实现这一目标。
游戏开发工具:Unity 猛超 Unreal,成为游戏开发首选引擎
对所有开发者而言,Unity 是游戏开发的首选工具。据调查报告显示,26% 的受访者使用 Unity,同等类别的第二大受欢迎的游戏开发引擎为 Unreal,占比 11%。
企业和桌面应用开发工具
.NET、Visual Studio 和 Java EE 无疑为企业和桌面应用开发工具的前三甲。
mysql 成为最受欢迎的数据库
MySQL,SQL Server 和 SQLite 是最常用的数据库。
技能提升方向
机器学习:过去一年,经过数据科学、人工智能等领域的洗礼,机器学习技术成为 App 开发者学习的下一个重要内容。将算法智能集成到 App 中的目标极具挑战性,并且与 App 开发的诸多功能(如会话式 UI)密切相关。基于此,受访者还将 TensorFlow 和深度学习列为他们正在学习的新技能,这意味着 App 开发者正在学习一些最复杂、最强大的机器学习工具和技术。
Python:如果 App 开发人员正在深入探索机器学习技术,那么其正在使用 Python 进行学习。 由于其适应性、并从机器学习算法到 GUI 能够构建任何内容,2018 年的 Python 正成为开发者当之无愧的选择。 这也是高收入的 App 开发者青睐的语言。
Web 技术:如今 App 开发和 Web 开发之间的差距正在逐渐消失。诸如 React Native 证明了将本机 App 的可用性与 Web 应用程序的交互性相结合的体验比以往的更强大。同样,后端和前端之间的关系也在改变。 随着微服务和无服务器架构成为常态,Web 开发人员和 App 开发者开始共享非常相似的工具链。
区块链:根据今年的调查,我们发现很多 App 开发者正在转型区块链,这也成为 App 开发者须关注的领域之一。虽然区块链对电子商务等主流 App 是否有影响还有待观察,但在不久的将来,区块链更多细分的应用将会更加明显。
Kotlin:诞生于 2011 年,但直到最近才开始真正吸引工程师的特别青睐。Google 在 2017 年宣布 Kotlin 在 Android Studio 3.0 中完全获得支持,使之成为 Android 开发语言之一。预计到今年年底,Kotlin 将与 Java 展开激烈竞争。
Rust:已经有一段时间了,但 Mozilla 去年专门成立一个团队来继续开发。他们希望将 Rust 定位为连接前后端的关键性语言——wasm-bindgen,使 Rust 与 JavaScript 可互操作。
▌Web 开发:Angular、React、Vue 不分伯仲
随着越来越多的应用程序迁移到浏览器和云端,网站变得越来越复杂,Web 开发也成为企业的重中之重。那么,为了保持在 Web 开发中的领域地位,身为开发者需要了解什么?在顶尖 JavaScript 框架的争夺战中,谁更胜一筹?开发者是否仍使用 JavaScript 语言呢?
当被问及时,近 2000 名受访者表示其正在从事 Web 开发。
编程语言:JavaScript 仍然是 Web 的重点语言
令人惊讶的是,JavaScript 仍然是 Web 的重点语言。但是继 html / CSS 之后的第三和第四名争夺战中,Python 以 3% 的差距落败于 PHP。
然而,要论 Web 开发者学会哪种编程语言更能获得高薪?以下这个最受欢迎的编程语言排行榜并不意味着开发者可获薪酬的高低。据报告显示,收入超过 7 万美元的 Web 开发人员更可能使用C#(37%)、Java(32%)和 TypeScript(29%)。
谁赢得了 JavaScript 框架的 NO.1?
有 40% 的开发者表示他们经常使用 Angular,与之相对的是 25% 的开发者使用 React,20% 的开发者使用 Vue。但 React 的使用率正在逐日增长,特别是在薪水较高的 Web 开发人员中,他们更有可能成为 React 用户。
有趣的是,当被问及“谁应该赢得前端工具的 NO.1?”时,开发者的支持率几乎持平。Angular 和 React 支持者的比例相差不到 1%,Vue 也获得了 20% 的好评。
在后端开发中,Node 仍然是开发人员最喜欢的工具。 但是,位居第二的 ASP.NET Core 使用率正快速增长,目前有 25% 的受访者使用。
在研究收入最高的 Web 开发者青睐的工具时,ASP.NET Core 的受欢迎程度进一步提高,超过 35% 的受访者经常使用它。
技能提升方向
机器学习:对于机器学习技术进入 Web 开发领域的事实并不令人感到意外。作为 IT 从业人员,只需查看一些受欢迎的网站即可随处见到个性化推荐正在塑造更好的用户体验。与此同时,随着聊天机器人和会话式 UI 作为数字体验的重要部分迅速兴起,Web 开发者必须尽快了解该技术。此外,领先的云平台已经开始构建机器学习解决方案,以便开发人员构建和部署算法。今年早些时候发布的 TensorFlow.js 也标志着在浏览器上运行机器学习系统将会更简单。
React:React 为复杂管理和拥有大量数据的 App 创建提供了一种简单的方法。它的速度也非常快,因为虚拟 DOM 是 React 的 USP 之一。可以说 React Native 已经巩固了 React 作为权威的前端 JavaScript 库的地位,从而可以轻松构建跨平台。
Angular:它是一个完全成熟的框架,相比 React,它有更多的工具套件。而且由于它是 Google 创建的,因此可以确信它始终适合 Web 用户的需求。
Golang:它是一种非常高效的语言,可以解决现代 Web 开发中的一些痛点,如单页面 Web 应用程序和部署在云上。
AWS:2018 年,云已经成为主流,而 AWS 对于 Web 开发者越来越重要的原因始于其正在向云端转型。AWS 是一个云平台,其在设计时考虑到了持续交付和 DevOps。
GraphQL:在今年年底,GraphQL 作为 2018 年最重要的工具之一。 我们对 Web 开发人员开始关注它并采用它并不感到惊讶——Facebook 的数据查询语言正在帮助塑造 API 设计的未来。 随着 React 的知名度不断提高,GraphQL 将会整齐地融入到 Web 开发工具链中。
▌安全和系统管理:Linux 独占鳌头
过去一年里,科技圈经历前所未有的恶意软件攻击和数据泄露事件之后,强大的网络安全和良好的管理系统的愈发。但是安全和专业的系统人员每天都在使用哪些工具?
当被问及时,超过 1500 名受访者表示他们正在从事安全和系统管理工作,诸如系统管理员、DevOps 专家、安全专家、IT 支持、后台开发者等等。
编程语言:Python 更具安全性
作为安全和系统管理中最常用的脚本语言,Python 和 Bash 位居一二。这对于从事安全以及网络和系统管理工作的受访者而言,这两方面都同样重要。
顶级安全工具
Wireshark 和 Nmap 是安全工具的首选。 但仅有不到 50% 的受访者使用 Kali Linux,它仍然是安全或系统专业人员库中最重要的测试工具。
顶级的系统管理员和虚拟化工具
不出所料,最常用的操作系统是 Linux、WindowsOS。 但是,作为一个重要的行业工具,以快速为优势的是 Docker。 超过 45% 的受访者表示他们定期使用 Docker。
技能提升方向
机器学习:对于专业的安全人员来说,机器学习已经提供了识别漏洞和安全威胁的有效方法。对于系统管理员来说,机器学习可能看起来像是一种威胁,但实际上它将重塑角色。 没错,系统管理员可能需要提高技能,但随着软件基础设施变得越来越复杂,它需要人工智能来成功管理其集成和维护。
Kubernetes:它在 2018 年构思了集装箱化的未来。随着 Docker 现在通过在企业版中提供支持来认可 Kubernetes 在集装箱化领域的实力,可以说 Kubernetes 在集装箱业务方面是同类中最好的。随着集装箱化持续发展,Kubernetes 将变得越来越重要,它在大规模部署中提供的控制级别令人印象深刻。
Python :一种多功能语言。 作为脚本语言,它为测试人员和 DevOps 工程师提供了大量的控制权——可以帮助他们解决问题。通过机器学习,Python 也将发挥重要作用,使其不再是来自数据科学特定背景的工程师。
AWS 和云:在云计算领域,Google、微软、亚马逊竞争非常激烈。但是相比之下,AWS 似乎确实成为许多人选择的云解决方案。它是否能够维持其知名度还有待观察 - 随着企业和工程师寻找更多定制的云平台,我们可能会开始看到混合云解决方案脱颖而出。
Ansible:Ansible 可能是最权威的配置管理工具。Ansible 在过去几年的崛起主要归功于它的自动化功能。 并且随着对工程师和系统管理员面临持续的时间压力,自动化成为必要的需求。
▌数据科学:Python 逆袭 R,使用率高达 77%
2018 年,数据分析是否会侵入 IT 领域的方方面面?
在 Skill Up 数据调查中,App 以及 Web 开发者均谈到机器学习以及其他顶尖的数据技术对于其未来成功的重要性。那么对于数据而言,运用的编程语言有哪些?数据分析师常用的库和工具是什么?在此过程中,数据分析师最关心的是什么?
数据科学的第一语言——Python
整体来看,Python 俨然成为数据科学的第一语言。相比它的传统竞争对手 R,Python 的使用率高达 77%,是 R 的两倍还多。Python 的易用性、功能强大的工具和库、以及在数据领域之外通用可以快速使用,种种因素使其在 2018 年几乎成为每位开发者必备的编程语言技能。
令人惊奇的是,在数据科学领域,JavaScript 比 Java 更为常用。究其根本原因,是因为随着构建基于 Web 可访问的商业项目的需求不断增长,越来越多的数据科学专家需要掌握 Web 技术。
库、工具、框架
撇开传统的 Excel 之后,十大最常用的数据工具中的八个是从 Python 中派生出来的。这也是导致 Python 崛起的关键优势之一。
技能提升方向
TensorFlow、深度学习和机器学习:进一步推进机器学习算法将成为未来一年及以后每个数据科学人员面临的主要挑战之一。 对于某些人来说,这意味着要深入研究难以置信的复杂 AI 系统。对于其他人,特别是那些从数据分析开始的人来说,通过 TensorFlow 熟悉深度学习将是深入学习的重要一步。
区块链:数据专家是最有可能将区块链视为革命性的组织。这是有道理的,特别是在 2018 年对数据的焦虑的情况下。通过区块链,数据更安全;分布式分类账可以让数据科学专家更清楚地了解数据的来源和收集时间。 从分析和信任的角度来看,这都是好消息。
云:如果今天的软件基础架构都是基于云,那么数据科学专家的前景将无可限量。云不仅改变了数据存储的方式,也可使分析人员和科学家更容易接触数据,此外,一些云解决方案开始具备机器学习功能。这消除了数据分析师面临的一些挑战,最重要的是,节省了大量时间。
Spark:将 Spark 归于技能提升源于其两个关键因素——规模和速度。 没有其他数据平台可以让开发人员以极快的速度处理大量的数据。
▌总结
根据 2018 年开发者技能提升报告整体来看,Java 在编程语言中虽占据主导地位,但是受 Google 支持的 Kotlin 发展趋势也不容小觑。与此同时,Python 成为众星中最闪烁的一颗,在 App 开发、Web 开发、安全和系统管理、数据科学中,它均为必备技能之一。
最后,随着 Google Duplex 聊天机器人等高级人工智能助理的不断升级,机器学习技术的广泛运用,或许我们正处于另一场真正技术革命的边缘。
2018 技能提升报告:https://www.packtpub.com/skill-up-2018
征稿啦!
————— 推荐阅读 —————
点击图片即可阅读
以上是关于Kotlin 威胁Python 逆袭,2018 年程序员需要升级哪些技能?的主要内容,如果未能解决你的问题,请参考以下文章