scala语言的底层是java实现的_2020了,每个程序员都该学习的 5 种开发语言

8e962afbabb22e2230678473bcd2cca3.png

我曾在某处读到过(可能在《代码大全》,但我不敢确定),程序员应该每年学习一门新的编程语言。但如果做不到,我建议,你至少学习以下 5 种开发语言,以便你在职业生涯有很好的表现。

每个公司都喜爱精通多种编程语言并且多才多艺的程序员。一个既能很麻利地写脚本,也能编写复杂的Java程序的程序员,确实相当有价值。所以实际上,对于高级开发者来说,学习不止一种编程语言,几乎就是必然的要求。

目前而言,面试官越来越看重那些拥有多种编程语言经验的工程师。比如,同时有C++ 和Java的经验就很不错,Python和Java也是。我个人喜欢那些在C++ 或者Java方面有着丰富经验,而且能用Groovy、Perl或Python写脚本的软件工程师。

很多时候,写一个小脚本就足以快速搞定一些专有任务。我不想我的程序员们花上一整天用Java 去写一个读取 CSV 文件的程序,或者在 TCP/UDP 端口抓取信息的程序,这是很浪费时间的一件事情。

为什么我在文章中选择这 5 种语言呢?我的理由简单且实际。我是基于这些语言的用途、编程范式和流行度及代表性来选择的。

例如,如果你想找一份应用开发的工作,就不能忽视Java。同样,做与web相关的事情,就得知道无处不在的JavaScript。

在开发者职业生涯的早期,我强烈建议学习 C 语言。它能帮助开发者贴近系统底层,知晓那些编程的关键概念,这是隐藏在 JVM 或 CLR 底下的东西。

对于脚本语言,我的选择是 Python,尽管你也可用 Perl 或 Groovy 代替。但在扩展支持方面来看,Python 的表现无疑是最棒的。有很多 Python 模块可供选择,帮你能分分种搞定各种任务。

学习一种面向对象的语言的同时,也学习一种像 Haskell 或 Scala 这样的函数式编程语言,这能拓展你的思维和编程认知。你可以在本文找到学习这 5 种语言的更多理由。

言归正传,下面就是我列出的 5 种每个程序员或软件开发者都该尝试学习的编程语言。

它包含了语言的大杂烩,比如[面向对象的]语言,函数式的语言,脚本语言,提供了对底层的控制,也涵盖了广泛用于服务端开发的语言。

1. Java

Java 是近二十年来最流行的语言之一。它统治着全球的服务端应用开发,同时在基于 Anroid 开发的移动应用和游戏市场,以及企业 Web 开发领域,也占有相当一部分比重。

Java 最初的构想是一次编写各种平台均能运行(Write Once Run Anywhere)。随着时间的推移,它确实做到了运行在各个平台的各个角落。

你应该学习使用 Java 构建健壮的、可扩展的服务端应用。你可以用 Java 构建多种复杂度的工程。与之相伴的,有很棒的工具、技术和社区支持。

为什么你应该学 Java 呢?你会学到如果专注于应用层面和代码结构的设计,而不用关心特定系统的细节和内存管理。JVM 帮你搞定了后面这些。

如果你已经决定开始学习 Java 了,那么 Udemy 上的 The Complete Java Master Class 教程就很棒,用它作为入门教程很好,它包含了 Java 的所有核心概念,很详细。

6c1f0aa7ba2fceb76c846c7f591cde47.png

顺便一提,如果你想要更多选择,而且不介意使用免费的课程学习,那可以看看这上面给新手提供的课程。

Java 被许多世界上的大型组织所使用。而且能够向众多用户展示你用 Java 开发的 Android 应用。

2. Python

在全球范围的学校和院系,Python 是教授最多的语言之一。在美国,许多学术课程中,Python 已经取代了 Java 成为接触编程的首选语言。你将从学习 Python 中得到什么呢?——那将非常多。

Python 既能用于写脚本,也能作为一种面向对象的语言编写大型工程。

许多流行的网站,比如 Reddit,就使用基于 Python 的框架来构建,比如 Django。近段时间,许多大型组织也转向使用基于 Python 的框架了。

Python 也越来越多地用于像机器学习、人工智能、数据科学这样的新一代技术中。这也难怪,因为有基于 Python 的非常棒的机器学习库,比如 TensorFlow、Scikit-Learn以及其他。

我个人倒是在用 Python 写脚本。这能很快地完成一些有用的事情,比如,你可以用 Python花 5 分钟写一个 UDP 消息的监听器,相比较,用 Java 可能就要花20分钟。忘掉“编译、打包,然后才能使用”这些步骤。你可以直接为特定任务编写Python脚本。如果你有兴趣学习Python,那么 The Complete Python BootCamp 就是个很好的开始。

66ce5622606d528625b51fea7e905f8c.png

如果你需要更多选择,而且不介意使用免费的课程学习,那也可看看这上面给新手的课程。

并且,如果你困惑于不知道该从Java还是Python开始,看看这个,它比较了两者。

3. JavaScript

你可以用 Java 替代 C++,用 Python 替代 Ruby,但是,坦率地讲,当前没有 JavaScript 的替代品。在最近5年,JavaScript 完全统治了世界。

它不再仅仅是客户端脚本语言。有了 Node.js 这样的库,和Angular、React这样的框架,你可以在服务端做用户界面的开发。

JavaScript 的巨大成功,有一部分要归功于 jQuery。它真正改变了人们在客户端使用JavaScript 的方式。

作为一个在工作中使用 JSP 和开发基于 Servlet 的应用的程序员,我有许多机会同时使用jQuery 和 JavaScript。

有了此语言的知识,可以帮助我们决定哪些功能应该在服务端实现,哪些该在客户端实现。比如,许多服务端的校验逻辑,就被我们迁移到了客户端。

如果你想从头开始深入学习 JavaScript,那 Udemy 上的 The Complete JavaScript 就是你可加入的最佳在线课程。

188498e2074ab40c4119f073f55d2da2.png

如果你想要更多选择,且不介意跟着免费的课程学习,那么可以看看这里为web开发者提供的课程。

4. C 和/或 C++

如果不知道 C 或 C++,你就不能成为真正的程序员。这听起来有点苛刻,但是我的经验之谈。

了解 C 的工程师或者开发者,就是比不了解 C 的程序员要优秀。这可不是简单的巧合。

这是你必须要了解的编程语言之一。我在求学期间学习的 C 语言,并在那时学到了关于编程的许多关键概念,比如结构体、数组、指针、内存管理等等。

C 仍然是操作系统编程方面最受欢迎的语言,并且在这两年,给排名榜首的 Java 带来了强劲地冲击。如果你想学习这门美妙的语言,那 C Programming for Beginners就是个很好的开始。

e8fd14ecbd5c414950a6f2ce53854bc8.png

它同样是最古老的主流语言之一,已经存在了四十多年。

C++ 和 C 很像,都允许你为系统和驱动编写底层代码。如果你想学习 C++ 而不是 C,可看看我为新手列出的免费 C++ 课程。

5. Scala

Scala 是基于过去 20 年来的最佳实践而创造的语言。它是一种函数式编程语言,提供了一种跟面向对象语言不同的编程范式。这能改进你的思维和代码认知。

虽然有许多函数式编程可供选择,比如 Haskell。我选择 Scala,因为作为一名 Java 开发者,我发现学习 Scala 比 Haskell 更容易。

有人也可以把学习 Haskell 当作一个挑战。但是从实际的角度讲,我认为学习 Scala 对于 Java 开发者来说更有意义。

对于 C++程序员,学习 Haskell 可能更合理。坦率讲,你可以选择任何一门函数式编程语言,但请选择一门有商业需求的比较好。

作为一名职业开发者,我倾向于把时间投资在那些对我的职业有帮助的事情上。如果你想学习Scala,那么 Beginning Scala Programming 是个很好的入门课程。

08470f6a4da99ca49ca862744f37b012.png

无论你学习了多少种编程语言,你需要遵从 Bob Martin 在《代码整洁之道》给出的编码和设计原则,才能成为一名专业的程序员。它是在你的编程职业生涯能给与你最大帮助的技能。

以上所有清单的内容,列出了每个软件工程师都该学习的 5 种编程语言。你们中有些人可能已经发现了,这是 Java 开发者应该学习的 5 个编程语言。也正是如此。

学习能提供不同编程范式的语言,是提升编码技能的最佳途径。它能帮你有效地解决日常任务。

理想情况下,一个程序员的工具集里,应该包含一个接近底层系统的语言,比 C 或 C++;一个面向对象的语言,比如 Java,Python 或 C++;一个函数式编程语言,比如 Scala 或Haskell;一个强大的脚本语言,像 Perl、Python、Ruby 和 JavaScript。

本文由葡萄城技术团队翻译,转载请注明出处:西安葡萄城。原文出处:
5 Programming Languages Every Programmer Should Learn - DZone Web Dev​dzone.com
ac9d513c1e98f031f976b87ecb2a4815.png

结语

最后,感谢各位阅读这篇文章。如果你喜欢这些编程语言,请与你的朋友和同行分享。

如果你有任何问题或反馈,或其他任何你认为什么编程语言也应该值得每个程序员都应该学习,也欢迎发在评论区和我们讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

热议:大脑功能磁共振数据不可靠?杜克大学教授对自己15年的工作提出质疑...

来源:brainnews作者:brainnew创作团队杜克大学的研究人员对功能磁共振数据进行了重新测评,对自己15年的工作提出了质疑。脑部图像显示了不同的两天完成3个任务所对应的功能磁共振成像。图中,暖色显示一组人激活级别的一致性&#…

cvc降噪和主动降噪_1MORE 主动降噪圈铁耳机图集

1MORE在今年推出了一款主动降噪耳机,这款耳机定价虽然稍高达到1299元,不过它还是相比其他主流价位的主动降噪耳机有很多的不同点。1MORE主动降噪耳机使用的似乎是高通蓝牙SoC的方案,使用了动铁动圈的扬声器组合。支持前馈反馈的双Mic主动降噪…

北约科技组织展望未来20年军事新兴与颠覆性技术趋势

来源:创新研究2020年5月4日,北约科技组织(NATO Science & Technology Organization)发布《科技趋势:2020-2040》(Science & Technology Trends 2020-2040),分析评估未来20年…

feign 整合sentinel_SpringCloud实战五-Sentinel上

场景微服务会划分出多个模块,模块之间的调用频率可能比较高,这时可能会存在服务雪崩(一个服务失败,导致整条链路的服务都失败的情形)的,如图:随着时间的推移,从刚开始的C不可用变成了…

计算机院校人气排名,2019高校人气排行榜_最具人气大学排行榜7月榜单发布 清华大学排第一...

最具人气大学排行榜7月榜单发布 清华大学排第一JPG,395x289,231KB,342_249大学人气排行榜 你的大学上榜了吗JPG,392x290,231KB,337_250大学人气排行榜 你的大学上榜了吗JPG,596x447,…

170905-MyBatis中的关系映射

关系映射 参考文档复习:1对1,1对多,多对多 1.映射(多)对一、(一)对一的关联关系 1).使用列的别名 ①.若不关联数据表,则可以得到关联对象的id属性 ②.若还希望得到关联对象的其它属性。则必须关联其它的数据表 …

【AI-CPS】【工业互联网】从观望到行动:全球工业物联网市场生态全景观察

以下文章来源于资本实验室 ,作者齐达在当前,诸如5G,物联网、边缘计算、人工智能、机器人、区块链、增材制造和虚拟现实/增强现实等技术正在加速融合到工业物联网(Industrial Internet of Things,IIoT)的肥沃…

光华科技光刻胶_光刻胶领衔国产替代,20只相关优质个股曝光,快看看有没有你的...

光刻胶(3.78%)领涨股:扬帆新材(300637),上涨家数:20,下跌家数:4,涨停家数:320只光刻胶概念优质股20只光刻胶优质股,按涨跌幅大小排序,分别为&…

考虑玩家移动速度的射击

E4自带第一人称射击模板中的射击在玩家移速较慢的情况下没有明显问题,但如果玩家在高速移动时候(例如骑摩托车或者开车),就会发现子弹的速度很奇怪,没有考虑到玩家本身的移动速度,因此本身也是不符合物理规…

荐读:五月最值得阅读的15篇人工智能文章

本文经授权转载自学术头条( ID: SciTouTiao),转载请联系出处来源:学术头条作者:吴婷婷在过去一个月中,15篇最值得阅读的AI文章(附链接):1、沃森的创造者想教人工智能一个…

计算机网络IP分配大题,2018年IP分片网络大题

【知识回顾】(1)分片的数据长度必须是8B的整数倍(2)路由器端口号也需要占用该子网中的一个IP地址。【真题】第一问:IP地址【解析】因为192.168.1.0/24这个IP均分给两个部门,所以可以销售部的网络号为0,技术部的子网号为128.即技术部子网地址为…

lte核心网由哪些设备组成_投影地面互动的实现由哪些设备组成?「振邦视界」...

地面互动投影技术是比较受大众欢迎的多媒体展示技术,新奇的互动体验让人们流连忘返,地面互动投影目前也被运用到各个行业领域中,对品牌的宣传有着很大的作用,是一种新型的利益化手段。那么地面互动投影的实现是由哪些设备组成的呢…

张首晟谈牛顿的《自然哲学的数学原理》

出版于1729年的第一英文版牛顿名著《自然哲学的数学原理》本文转载自丹华资本(DanhuaCapital )2016-01-28公众号张首晟文章。了解我的朋友都知道我最不欢喜礼品,总觉得物质生活越简单越好。所以每逢圣诞佳节,天伦之乐,…

前端填空题_一年前端面试总结|入职字节|2020.8

站在未来看现在你当像鸟飞向你的山前言普通本科,软件工程专业,2019年毕业进入奇安信集团(前360企业安全),实习期间遇到一群可以一起嗨的朋友,感觉很幸福,也很庆幸能够遇到hin nice的导师&#x…

分数怎么在计算机上关,电脑如何在注册表上关闭AutoRun功能

AutoRun是微软的windows系统的一种自动运行的文件命令,主要用于对于移动设施的自动运行。一些用户反馈说电脑运行AutoRun功能,导致系统很卡,有什么方法可以关闭AutoRun功能?其实关闭AutoRun功能方法简单,我们可以通过注…

【一图看全】北京新基建行动方案中的30大要点

转自:行业研究报告6月10日,北京市印发《北京市加快新型基础设施建设行动方案(2020-2022年)》(以下简称“行动方案”),其中提出聚焦“新网络、新要素、新生态、新平台、新应用、新安全”六大方向…

docker port如何增加端口_docker部署redis实战

原创首发于公众号:编程三分钟“ 换电脑的时候不想再搭建开发环境了!——编程三分钟”什么是dockerDocker是一个用来管理容器的应用程序,而容器就是模拟运行应用程序所依赖环境的一个服务。一般一个容器内只安装一个程序,在容器内的…

Android Studio配置GreenDAO 3.2.0和使用方法

我相信,在平时的开发过程中,大家一定会或多或少地接触到SQLite。然而在使用它时,我们往往需要做许多额外的工作,像编写SQL语句与解析查询结果等。所以,适用于Android ORM框架也就孕育而生了,现在市面上主流…

收件服务器主机名未响应,邮箱收件服务器主机名是什么

邮箱收件服务器主机名是什么 内容精选换一换FTP/SFTP连接适用于从线下文件服务器或ECS服务器上迁移文件到OBS或数据库。当前仅支持Linux操作系统的FTP 服务器。连接FTP或SFTP服务器时,他们的连接参数相同,如表1所示。FTP/SFTP连接参数参数名说明取值样例…

数字孪生技术,让酷炫的智慧城市不再遥不可及

物联网智库 整理发布智慧城市对于不同的人,不同的角色所处不同立场都会有不同的定义。在普通人眼中“上班不拥堵,下班走近路”是智慧城市......在老年人眼中“独自在家遭遇危险,能有人及时提供帮助”是智慧城市......在消防员眼中“火情在苗头…