CodeGym /Java 博客 /随机的 /选择编程语言
John Squirrels
第 41 级
San Francisco

选择编程语言

已在 随机的 群组中发布
我第一次接触编程是在学校,在计算机科学课上。其中包括对 n 进制数系统如何工作的一些乏味的解释。当然,还有一项测试要求您编写自己的网站。当时,在我看来,没有比这更无聊的职业了。我错了!不幸的是,高中计算机科学课程并没有提供 IT 工作的全貌,也没有解释如何选择编程语言。在问“我应该学习哪种编程语言?”之前,初学者应该熟悉现有的语言以及它们之间的区别。 选择编程语言 - 1

入门门槛:高、低、中

程序员经常谈论“入门门槛”——这个概念反映了任何给定的“初级开发人员”充分掌握编程语言以编写他或她的第一个正式程序并找到工作所需的工作量。“入门门槛”包括以下知识:
  • 语言的句法特性和细微差别
  • 图书馆
  • 算法和数据结构。
在 Excel 中工作甚至可以称为一种编程。顺便说一句,这个熟悉的办公程序并不像看起来那么简单。对于一个用户,进入门槛可能是创建表的能力。另一方面,它可能是复杂公式和宏的知识。在任何一种情况下,这个阈值都很小。接下来是准语言,例如1C编程。然后是最简单的语言来学习,例如PHP。此外,我们有不需要您处理内存管理的具有本地语法(通常源自英语)的语言,例如JavaJS。还有一些语言需要非常小心地处理内存、数据结构和算法,例如CC++。年轻的多范式语言,例如Scala,可能具有最高的入门门槛,因为掌握它们需要您深入研究如此多的编程范式。但在选择语言之前,您应该决定下一步要做什么:为 Web、企业、桌面或移动设备开发。

网络还是非网络?

网络

Web程序员可以分为前端开发人员和后端开发人员。您应该了解这些术语的含义。前端开发人员参与客户端,即用户看到的内容。“后端”是关于操作和存储数据——在服务器上运行的服务的一部分。对于决定学习哪种编程语言的前端开发人员来说, JavaScript和 JavaScript 框架(Angular JS、React 等)是必不可少的。JS 方言,如 CoffeeScript 和 TypeScript,不像它们的母体那样流行,但它们也很有用。还有Flash AS,以前还有JScript和VBScript,不过只有恐龙才记得这个=)除此之外,你还需要懂HTMLCSS选择编程语言 - 2许多初学者认为 JavaScript 和 Java 几乎是一回事。不要混淆这些语言。JS旧称“LiveScript”,只是因为“Java”这个词的流行而得现在的名字。对于Web 后端开发人员,PHP、Python、Ruby、Perl 和 Java 是合适的。在这里我想重点介绍 PHP(我们稍后会讨论其他语言)。PHP是最容易学习的语言之一,入门门槛低。根据对知名 Web 开发人员的一项调查,Ruby 正在缓慢但稳步地流行起来——它因其简洁和美观而受到喜爱。

非网络(企业、桌面、移动)

我特意将以下编程语言以一个奇怪的名称归入此类。您可以使用它们中的大部分来编写企业、桌面甚至移动应用程序。 Python是一种易于理解的面向对象的编程语言,最近由于机器学习(ML) 的增长而变得异常流行:ML 开发人员广泛使用 Python。 毫升是 IT 中一个相当新的领域,虽然我们已经看到它取得成果,但在选择编程语言时我不会急于进入这个行业。首先,您需要对数学有出色的理解。其次,流行的浪潮可能会像“区块链”或“纳米技术”那样过去。也就是说,您可能还记得 Python 用于 Web 开发。 C++: 一种经典语言,一切都建立在“plus-plus”运算符之上。这种语言是所有流行的面向对象编程语言的始祖,初学者一定要注意它。许多流行的应用程序都是使用它编写的。但是“搬起石头砸自己的脚”的绝好机会和难以理解的语法使初学者掌握这个编程巨齿象的可能性为零。 科特林,就像潮人的 Java,是 OOP 和函数式编程的疯狂组合。它最近很流行,因为有经验的开发人员从 Java 切换到 Kotlin 可以显着提高他或她的工作效率。经验丰富的开发人员会很快熟悉这种编程语言。顺便说一句,同样的事情也适用于 Scala,但 Kotlin 在 Android 世界中很流行。 Java对于初学者来说很容易学习。特别是在CodeGym的帮助下=) Java 语法是可以理解的,尽管存在“搬起石头砸自己的脚”的风险,但这并不重要。

面向对象还是流行?

程序方法

面向过程的方法涉及编写一个由顺序语句组成的程序,这些语句可以组合成一个统一的整体,以有效地解决一组特定的问题。这些语言包括CPureBasicPascal。也就是说,给高中生和本科生带来绝望的语言。还有比较年轻的GO语言。也就是说,熟悉过程语言对潜在的开发人员非常有用。我沉浸在过程语言中来自 Wolfram Mathematica 系统和大学研究。正确的算法和简单的程序,从程序的开始到结束呈线性移动,使我能够计算出与现代理论物理学相关的值。这种“顺序”编程语言只是帮助您理解有时编写手动执行计算的代码更容易。学习面向过程的编程 (POP) 可以提供良好的算法培训,雇主几乎总是希望在求职者身上看到这种培训。绝对是 IT 中的一切都建立在过程语言的基础上,所以不要低估它们。顺便一提,决定学习哪种编程语言的初学者通常认为只有 OOP 语言支持多线程。这不是真的。过程编程语言也允许并行计算。 选择编程语言 - 3

面向对象的方法

那些从过程语言开始的人通常精通数学、算法和数据结构(由于技术大学对这些领域的重视)。尽管如此,今天的现实是,成功的程序员通常是那些掌握了不同的编程方法的人:面向对象范式。OOP 思想让您构建真正的全球系统。这种方法的一个特点是它与现实世界的相似性:
  • 不同的对象相互影响,又相互独立存在。
  • 对象具有层次结构,可以采用或更改其祖先的行为。
  • 您可以使用抽象概念,但只有实际存在的对象才能交互。

例子

面向过程的语言是解决特定问题的工具。如果您的任务发生变化,即使变化很小,您也可能不得不花费时间和精力来重写所有算法。

想象一个程序,它描述了一家销售汽车和卡车的汽车经销店,包括新旧汽车。在过程语言中,您需要定义函数来处理每个实体的数据输入或输出:一辆新车、一辆新卡车、一辆二手车和一辆二手卡车。OOP 提供什么?使用面向对象的方法,我们只需要定义一个 Vehicle 基类来存储所有车辆类型共有的特征:

  • 制作
  • 发动机排量
  • 马力
  • 全新或二手
  • 价格

以及接收和发送信息的方法。然后我们创建继承 Vehicle 类特征的对象:Car 和 Truck。它们包含专门针对这些类型车辆的信息,以及输入/输出方法。

经销商的管理层突然决定通过提供摩托车来扩大阵容。在过程方法下,我们必须为新旧摩托车重新创建所有逻辑,而 OOP 语言让我们可以简单地创建一个新的 Motorcycle 类,该类继承 Vehicle 超类的所有特征并包含特定于摩托车的改进。

如果我们添加各种车辆会发生什么?程序实现比 OOP 需要更多的工作。更重要的是,阵容越大,涉及对象的操作就越少。

因此,OOP 是一种编程风格,可让您将数据和方法组合到一个实体中,并将​​它们作为一个统一的对象来使用。实体可以按层次结构排列并相互交互,而无需深入研究彼此的内部实现细节。 我将指出 OOP 对我来说是更进步的方法的三个原因:
  1. OOP 涉及独立开发单个模块,允许程序员或团队选择联系和信息交换的方法和边界。
  2. 分成小模块的代码比单一的程序更容易阅读。因此,局外人可以快速理解您的代码,同样,您可以在必要时加入新项目。
  3. 可以更改一个类而不影响另一个类的交互,但这样的更改会影响子对象的层次结构。一旦掌握了这种方法,扩展和修改程序就变得微不足道了。
请记住,一种方法与另一种方法并不冲突,但 OOP 在层次结构中仍然更高。 那么,我为什么推荐Java呢?我要强调以下原因:
  1. 跨平台。

    由于 Java 虚拟机 (JVM),Java 无处不在。这种语言的主要优点之一是它的跨平台特性:无需考虑要添加哪个库或特定处理器的体系结构。“一次编写,随处运行”。

  2. 文档。

    有一个庞大的文档库:官方 Oracle 文档、培训门户和不断发展的社区。开发过程中出现的大多数问题的答案都可以在几分钟内找到。最主要的是了解要输入搜索引擎的内容 =)

  3. 人气。

    Java 是世界上最流行的编程语言:除了前面提到的 Android 和 Web 开发人员之外,几乎每个企业开发人员都使用 Java 进行编写。企业是指企业内部发展所必需的大企业的需要。

    每年,仇恨者都预测“Java 已死”。他们说,“ Oracle 将停止支持它。您完全是在浪费时间。 ”这不是真的!他们承诺每六个月发布一次新版本的 Java。

    对我来说,Java 8 中的 lambda 表达式是革命性的,是一种启示,更不用说新版本了!我目前正在从事一个“遗留”项目,因此我不会深入研究最新的创新,但 Java 仍然存在是事实。

    选择编程语言 - 4
  4. 安卓。

    在过去的 4 年里,Android 一直占据着80% 以上的手机市场份额。电视、媒体播放器,甚至汽车信息娱乐系统都运行在这个操作系统上。这个操作系统的应用程序开发主要发生在 Java 中。想象一下正在打开的前景。当我找到一份 Android 开发人员的工作时,我想知道我开发的产品值多少钱?事实证明,价格约为每年 5 美元。这就引出了一个问题,“那么这个办公室、工资、小吃室、乒乓球桌、机器人和其他津贴的钱从哪里来?答案在于数量:我们的应用程序有 2000 万用户。

  5. 工资。

    而现在锦上添花的是:Java 开发人员的薪水在业内名列前茅。毕竟,您计划学习编程是为了一个特定的目的:找到一份好工作。

编程语言的流行

有官方的信息来源,所以让我们求助于他们。据TIOBE统计,截至 2019 年 10 月,Java 排名第一。在PYPL排名中,Java 排名第二,遥遥领先于 JS,与新潮的 Python 不相上下。

结论

初学者在考虑选择编程语言时,应该注意以下几点:
  • 流行度(Java一直占据领先地位)
  • 入门门槛(对于 Java,中等:雇主需要相当广泛的技能)
  • 可用资料(欢迎来到 CodeGym =))
  • 应用领域:使用编程语言的领域越多,市场上需要的专家就越多。我已经提到了 Java 如何支持跨平台开发,但我不厌其烦地重复它。
当然,陷阱无处不在,但谁先行一步:选择哪种编程语言只有你自己才能决定。祝学习顺利!
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION