进入门槛:高、低、中
在程序员中,你经常可以听到“入门门槛”这个概念,这个概念反映了一个“初级”个体要在足够的水平上掌握一门编程语言以编写他的第一个正式程序并找到一份工作所需的努力程度。“入门门槛”由知识组成:- 语法特征和语言的细微差别;
- 图书馆;
- 算法和数据结构。
网络还是非网络?
网络
Web程序员可以分为前端开发人员和后端开发人员。值得理解这些术语的含义。“前端”开发人员处理所谓的客户端——用户将看到的内容。“后端”是服务的软件和硬件部分——在服务器上运行。对于决定选择哪种编程语言的前端开发人员来说,必须具备JavaScript及其框架:Angular JS、React 等。JS 方言不如其父方言那么流行,但也很有用:CoffeeScript、TypeScript。还有flash AS,之前有JScript和VBScript,但只有恐龙记得=)另外,你需要了解HTML和CSS。非网络(企业、桌面、移动)
我特地将这些编程语言归为一个名称如此奇怪的类别。它们中的大多数可用于编写企业、桌面甚至移动应用程序。 Python是一种易于理解的 OOLP,最近由于机器学习的发展而变得异常流行:它的追随者广泛使用 Python。ML在IT领域是一个相当年轻的领域,虽然已经收到了第一批成果,但在选择编程语言时我不会急于进入这个行业。首先,你需要非常擅长数学。其次,流行浪潮可能会与“区块链”或“纳米技术”一样。此外,正如您所记得的,Python 用于 Web 开发。 C++:经典,一切都是建立在“优点”的基础上的。这种语言是所有流行的 OOLP 的鼻祖,初学者绝对应该关注它。许多流行的应用程序都是基于它的。但“搬起石头砸自己的脚”的高概率和难以理解的语法否定了初学者掌握这种编程的可能性。 Kotlin - 时尚人士的 Java - OOP 和函数式编程的疯狂组合。最近很受欢迎,因为经验丰富的开发人员从 Java 切换到 Kotlin 显着提高了他的工作效率。经验丰富的开发人员会很快习惯这种语言。顺便说一句,Scala 也是如此,但 Kotlin 在 Android 中更流行。 Java对于初学者来说很容易学习。其中,感谢JavaRush:正是在这里,我明白了如何选择编程语言 =) Java 语法清晰,有可能“搬起石头砸自己的脚”,但并不关键。面向对象还是流行?
程序方法
面向过程的方法涉及编写由顺序语句组成的程序,这些顺序语句可以组装成一个整体,以有效地解决特定范围的问题。这些语言包括:C、PureBasic和Pascal。同样给高中生和初中生带来沮丧。还有一个比较年轻的GO。然而,熟悉过程语言对于潜在的开发人员来说非常有用。对我来说,沉浸在过程语言中与 Mathematica 系统(Wolfram)和大学研究活动相关。得益于正确的算法方法和简单的程序,从程序的开头到结尾线性移动,我能够计算出与现代理论物理相关的值。正是由于这些“顺序”语言,你开始明白,有时编写代码比依靠自己更容易。学习 PPP 可以提供良好的算法培训,雇主在招聘时几乎总是希望在候选人身上看到这一点。IT 中一切事物和每个人的基础都是建立在过程语言之上的,所以不要低估它们。顺便说一句,决定选择学习哪种编程语言的初学者常常认为多线程是 OOP 的专有特权。这是错误的。过程编程语言还允许您执行并行计算。面向对象的方法
那些从过程语言开始的人通常都对数学、算法和数据结构有很好的了解(这是由于技术大学对这些知识领域的重视)。然而,在现代现实中,成功的程序员往往是那些很好地掌握了另一种编程方法——面向对象的人。OOP 思想使得构建真正的全球系统成为可能。 这种方法的独特之处在于它与现实世界的相似性:- 各种物体既相互影响又相互独立存在。
- 对象具有层次结构,并且能够采用或改变其祖先的行为。
- 您可以使用抽象概念进行操作,但只有真正存在的对象才能交互。
例子 面向过程的语言是解决特定问题的工具。如果您的任务发生了变化,即使是很小的变化,您很可能必须花费时间和精力重写所有算法。 Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:
И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода. Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения. А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми. |
- ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.
- Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.
- Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
-
Кроссплатформенность.
Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
最广泛的文档库:Oracle 官方文档、培训门户、不断开发的社区。开发过程中出现的大多数问题都可以在几分钟内找到答案,主要是了解要在搜索引擎中输入什么内容 =)
-
人气。
Java 是世界上最流行的编程语言:除了上面提到的 Android 和 Web 开发人员之外,几乎每个初次企业开发人员都用 Java 编写。Enterprise是满足大公司需求所必需的内部开发。
每年都有仇恨者预测“Java之死”,他们说:“甲骨文将停止支持它,总的来说你是在胡说八道。” 这是错误的!Java 的新版本承诺每六个月发布一次。可以在此处阅读最新版本最重要的创新和功能。
对我来说,Java 8 中的 lambda 是一场革命和发现,更不用说新版本了!现在我正在做一个“逆行”项目,所以我不去深究创新,但Java存在的事实是事实。
-
安卓。
Android在过去 4 年里自信地占据了80% 以上的手机市场;电视、媒体播放器甚至汽车媒体系统都在这个操作系统下运行。该操作系统的开发主要是用Java 进行的。想象一下前景如何。当我找到一份 Android 开发人员的工作时,我开始感兴趣:我正在开发的产品要多少钱?事实证明,每年的价格约为 5 美元。一个合理的问题出现了:这个办公室的资金从哪里来,工资、饼干、乒乓球桌、机器人和其他“好东西”?这是数量问题:我们的应用程序有 2000 万用户。
-
工资。
甜点是:Java 开发人员的薪水是业内最高的之一。你学习编程是为了一个特定的目的:找到一份好工作。
编程语言的流行度
在选择编程语言时,你需要考虑学习的最终目标——获得第一份工作。为了评估不同语言的受欢迎程度,我访问了一个受欢迎的招聘门户网站,开始查看莫斯科各种要求的职位空缺数量。您可以在下面看到结果。爪哇: | 第277章 |
Python: | 227 |
php: | 188 |
C#: | 147 |
c++: | 131 |
红宝石: | 40 |
标量: | 24 |
科特林: | 20 |
结果
初学者在选择编程语言时应该注意以下几点:- 流行度(Java始终占据领先地位);
- 进入门槛(对于Java - 平均:雇主要求的能力范围相当广泛);
- 可用材料(没有类似于俄语JavaRush的门户网站,因此,手掌去猜谁=));
- 应用领域:可以使用编程语言的行业越多,市场上需要的专家就越多。我已经谈到了跨平台,但我不会厌倦重复它。
还有什么要读的: |
---|
GO TO FULL VERSION