我可以成为软件开发人员吗?

旧级别 05 - 1海洋原则指出:如果你找到身体合适的男人或女人,你可以让他或她成为一名独特的战士,为他们提供正确的培训和教育。编程就像弹吉他、游泳或骑自行车一样。人们不是天生的骑自行车的人。当我看到我的朋友们,他们的工作比我多一倍,而挣的钱却比我少四倍时,我开始了以下对话:-你想成为一名程序员吗?你真聪明。也许,您根本不在自己的位置上?

为什么要开发软件?

在开始教一个人编程之前,我们最好弄清楚编程给他或她带来了什么。

1 简单而有趣的工作。

软件工程师是一份简单而有趣的工作。它有很大的创造空间。我喜欢它。起初,我为自己喜欢做的​​事并因此获得报酬而发疯。但后来我最终习惯了。

2 报酬丰厚。

我只是喜欢看着我的朋友们在 5 年的工作中为自己买车买房。

3 灵活的时间。

严格的工作时间表是一件令人讨厌的事情。凡是有过上下班高峰期堵车或迟到5分钟被罚款的人都可以证实这一点。上午 11 点上班下午 5 点下班怎么样?对于大多数程序员来说,这是一个通常的时间表。只做你的工作,没有人会说错话。在大多数公司,您甚至可以在家工作。您始终可以与您的雇主达成合理的协议。

4 专业成长。

在大多数公司中,您需要攀登职业阶梯才能获得丰厚的报酬。软件开发人员只需要是软件开发人员。您不必从开发人员到经理重新获得资格,也不必试图占据领先地位。您需要做的就是专业成长。拥有 5 至 10 年经验的开发人员可获得高额报酬。

5 国际流动性高。

世界上收入最高的三种职业:律师、医生和软件开发人员。这对在国外工作的律师来说是一个真正的挑战:不同的法律、判例法等。医生必须学习语言、其他医学标准并通过考试。开发人员无需额外学习任何内容。同一种语言。相同的标准。在大多数情况下,甚至客户都是相同的。

为什么选择Java?

以下三个因素的总和使我为 Java 开发人员重新培训人员。

1. Java — 是最容易学习的语言之一。

一个刚毕业的人可以在 3 到 6 个月内学会它,这取决于基础知识和投入学习的时间。

2、劳动力市场需求旺盛。

您可以在没有经验的情况下找到工作。公司热切地雇用实习生并不断教育他们。

3. 该领域最高的薪水。

最高之一。这对于初级开发人员尤其重要。  

编程是一种技能

旧级别 05 - 2你不可能读完一本书就成为一名计算机程序员。你至少需要500小时的练习。就像拳击一样。您不能简单地观看比赛并成为职业选手。你需要训练多年。(这就是 CodeGym 有这么多实际任务的原因)。所有教你如何在 10 小时内编程的提议与教你如何在 10 小时内装箱的提议相同。然后把你扔进拳击台!不要那样做。有时,当新手在论坛上询问如何成为一名软件开发人员时,他被告知要为自己发明任务并执行它们。那行不通的。问题是一个人不能完成超出他知识范围的任务。你要么知道某事,要么你不知道。只有精通该主题的人才能为您创建连续的任务集,每个任务都会教给您新事物,并且不会花费数周时间来解决。这就是我在 CodeGym 中所做的。

新的创新教学方法

CodeGym 教育以不同于大学教育的方式进行。你很快就会注意到它。它更有效。你在大学的学习可能是这样的:长时间的讲座和练习来确定你所学的内容。按照这种方法,您可以提高知识,而不是技能。老实说,你这样学到的技能,几乎一文不值。我有另一种方法。我相信一个人应该先提出问题,然后才能得到答案。问题前的回答没有价值。我的讲座是对您问题的回答。所以首先,我给你一些用你现有的知识难以解决的实际任务。这些任务提出问题,然后你会收到我的答案,即知识和讲座。我分三个阶段向您介绍新知识:
  1. 介绍(最低限度的理论和一些实际任务)

  2. 主块知识(你应该完全理解主题)

  3. 细节和细微差别(我在这里填补空白)

这样,您至少会遇到同一个主题三次。甚至不值得一提的是,一切都密切相关,如果不解释前面的话题,就不可能完全解释一个话题,至少是部分解释。有些学生甚至反感有些任务太难了,说他们还没学过。这样的任务让我们停下来思考:你如何利用你目前的知识水平来解决它们?您可以花一两个小时来解决这些任务,但稍后您会很高兴找到新的原创方法或优雅的解决方案。事实上,在现实生活中,你首先会在工作中接到一项任务,然后你才会找到解决它的知识。这就是现实生活,孩子们。因此,您越早习惯这种方法越好。

5级

旧级别 05 - 3

1 艾莉谈班级

- 嘿,阿米戈! - 嗨,艾莉! - 今天我想向您解释一下课程是什么。-解释#1。我将从一个类比开始。我们宇宙中的所有事物都是由原子构成的。它们可以是不同的类型:氢、氧、铁、铀……结合原子可以创造出各种各样的东西或物体。- Java 的世界也是如此。这里的程序由不同类型的对象组成(其中类是一种类型):整数、字符串、文件、对象……组合对象可以创建各种网络服务或程序。- 不同的原子有不同的内部结构。它们包含许多电子、质子和中子。- 不同的类(Java 中的对象类型)也有不同的内部结构。它们包含各种变量和方法。 - 是的,我对原子结构有一个大概的了解。我是机器人,不是吗? - 让我们把程序看成一个整体:对象就像构成程序的积木。类是那些块的类型。不同类型的块是不同类的对象。 - 我有点明白了。 -解释#2。 当我们需要一种新类型的对象时,我们创建了一个新类。在这个类中,我们描述了对象的期望行为。 - 好吧,我明白了一些,但我不确定这一点。 - 考虑到内部结构,该类由执行某些操作的类方法和方法存储共享数据的类变量组成。 ——简单的说,类就是一组方法? - 几乎,更具体地说,类是一组一起工作的方法和变量,方法存储不同的值以共享。 - 是的。要创建一个新类,我们需要编写这些方法...... - 是的。我们还需要决定哪些变量是不同方法共享的,然后从一个方法中取出变量到类中:把方法变量变成类变量。- 类按以下模式创建: 1程序员决定他还需要什么其他对象。 2程序员根据这些对象的作用将它们分为不同的类型。 3程序员为每种类型编写一个单独的类。 4在类中,他声明了必要的方法和变量。 5个必须在每个方法中编写命令,以便该方法执行程序员希望它执行的操作。 6类已准备就绪,现在您可以创建其对象。 - 惊人的!这是一个有趣的计划。我会记住的。 - 你必须记住它,它会有用。将程序划分为对象的编程方法称为面向对象编程OOP)。- Java 是 OOP 方法的经典示例,因为在 Java 中一切都是对象。- 学习Java包括两大任务:学习编写自己的类学习使用别人的类. 今天我们从最简单的事情开始。您将学习编写简单的类,当然还有创建它们的对象。对象通常称为类的实例。这些是同义词,无论哪种方式都是正确的。 - 知道了。 - 总而言之,我可以说这个类是一个小程序:一组数据和使用这些数据做某事的函数。类的一个重要特性是能够创建这些类(对象)的实例。 - 要创建类对象,您需要在代码中编写«new class_name()»旧级别 05 - 4- 类对象有两个有趣的特征: -第一。 每个类对象都存储自己的类变量副本。所以,如果在类中声明了变量x、y,并且创建了这个类的10个对象,那么每个对象都有自己的变量。更改一个对象的变量不会影响另一个对象的变量。 -第二。 创建新对象时,可以向其传递各种参数。这些就是所谓的“启动值”。这几乎就像在出生时给一个名字。如果不传递此类参数,则无法创建许多对象。 - 我明白一点。你对类变量说了什么? - 每个对象都有其数据副本(类变量)。 旧级别 05 - 5

2 Risha 谈论包裹

- 嘿,阿米戈!现在我告诉你关于包裹的事。- 计算机中的文件被分组到文件夹中。Java 中的类(每个类都在一个单独的文件中)按包分组,这些包是光盘上的文件夹。这不是什么新鲜事。但有两点说明。-首先«一个唯一的全类名»是«包名» + «类名»。示例: 旧级别 05 - 6- 完整的类名始终是唯一的!-每次都 很难写一个长名称,例如java.util.ArrayList 。因此,在您的代码中,您可以使用其他类的简称。但为此你需要使用一些魔法。 - 什么魔法? - 您可以使用语句«import java.util.ArrayList;»- 在类的开头,在声明包之后,您需要指定代码中使用的ArrayList类 的全名。假设您在代码中使用了 java.util.ArrayList、sun.generic.ArrayList 和 com.oracle.ArrayList 类。您可以在导入中指定其中之一(例如 sun.generic.ArrayList;)并使用其简称。它只考虑一个班级。 - 为什么这么复杂?可以有相同名称的类吗? - 是的,在不同的包中可以有同名的类。但是我们不能将两个同名的类导入到我们的类中,因此我们必须为其中一个应用全名。- 这是另一个类比。你的团队中有 Bill,沟通没有任何问题,因为每个人都知道他是谁。但是如果有三个法案,那么您将不得不使用它们的完整唯一名称来区分它们。-其次最好将类放入包中,而不是放在src根文件夹中。类少的时候没有问题,类多的时候就很容易搞混。因此,始终只在包中创建类。Java 中的规则是为类和包提供不言自明的名称。许多公司生产他们的库(类集),并且为了避免混淆,在公司/网站之后命名这些类的包: 旧级别 05 - 7

3 金秀视频教程

- 嘿,阿米戈!这里有几个视频教程,如何创建类和包:
- 我们已经做到了! - 你会在你的机器人生活中做一千次。所以习惯吧。现在,你需要练习! 创建 Java 类 创建包

4 Elly,对象创建,对象引用

- 所以,我们上次学习了课程。今天我想告诉你如何创建对象。很简单:写关键字new和我们要创建的对象的类名: 旧级别 05 - 8- 不过我以前听过。 - 我知道,但请听好。- 创建新对象时,可以在大括号中传递各种参数。今天晚些时候我会解释一下。让我们考虑 Cat 类: - 这些gettersetter旧级别 05 - 9是什么? - 不能从其他类访问的变量在 Java 中是常见的做法。通常,在类中声明的变量具有修饰符private - 要访问私有变量,您应该创建两个方法:get设置方法 get 的目标是将变量的当前值返回给调用它的人。 方法集的目标是设置一个新值。 - 这有什么意义呢? -如果我们不想让任何人改变我们的对象变量的值,我们可以不写任何方法set,或者将其设为private您还可以向此方法添加额外的数据检查。如果新传递的值无效,则不要更改任何内容。 - 那很有意思。 - 由于类中可以有很多变量,所以方法名getset通常包括他们使用的变量的名称。- 如果变量名为fullName,则方法应命名为getFullNamesetFullName。以此类推。 - 知道了!总体而言,这是一种可以理解的方法。 - 以下是如何使用新创建的对象的几个示例: 旧级别 05 - 10

5 Diego,创建自己的类和对象的任务

- 嘿,阿米戈!以下是创建类和对象的一些任务:
任务
1个 创建类 Cat
创建类 Cat。一只猫必须有它的名字 (name, String)、年龄 (age, int)、体重 (weight, int) 和强度 (strength, int)。
2个 实现方法fight
实现方法boolean fight(Cat anotherCat):根据猫的体重、年龄和力量实现一种战斗机制。自己补一个依赖。该方法应确定当前猫(调用其 fight 方法的对象)或另一只猫是否赢得了战斗,即如果当前猫赢了则返回 true,如果没有赢则返回 false。必须满足以下条件:

if cat1.fight(cat2) == true, then cat2.fight(cat1) == false
3个 Dog 类的 getter 和 setter <
创建一个 Dog 类。一只狗必须有一个名字 - String name 和 age - int age。
为 Dog 类的所有变量创建 getter 和 setter。
4个 创建三个Cat类型的对象
在main方法中创建三个Cat类型的对象,并填充数据。
使用第一个任务的类 Cat。不要创建类 Cat。
5个 在猫之间举行三场双打比赛
使用类别 Cat 创建三只猫。
在猫之间进行三对配对。
不要创建类 Cat。对于战斗,使用方法 boolean fight(Cat anotherCat)。
显示每场战斗的结果。

6 Risha谈对象初始化

- 我想告诉你关于对象初始化的事情。当一个对象被创建时,需要给它的变量分配启动数据,以避免当你试图访问一个对象时,它没有数据来正常工作的情况。- 让我们考虑一个文件类型的对象。文件的最少必要信息是它的名称。没有名字的文件是无稽之谈。 - 假设您正在编写自己版本的 File 类(例如 MyFileClass)来处理文件。此类的每个对象需要什么信息? - 该对象将使用的文件的名称? - 这是正确的。这就是为什么我们将方法initialize()添加到我们的类中。它看起来像这样: 旧级别 05 - 11- 我们添加了方法初始化,以便能够使用对象 - 调用其方法。这可以在调用方法 initialize 后立即完成。如果你不能使用一个对象,它被称为无效,否则它是有效的。方法 initialize 的主要目标是将所有必要的数据传递给对象以使其有效。 - 知道了! - 现在让我们把任务复杂化。或者更确切地说,简化。取决于你如何看待它。想象一下,对于另一个将使用我们的类的程序员来说,传递一个目录和一个短文件名而不是完整文件名会更容易。我们可以使用另一种方法initialize来实现此功能(Java 允许创建具有相同名称的多个方法). 那么我们的类将如下所示: 旧级别 05 - 12- 而且,通常需要在当前文件的旁边创建一个临时文件副本。 - 我们可以为这种情况制定一个方法吗? -当然,看看这个: 旧级别 05 - 13-那么,我可以根据需要制作尽可能多的这些方法吗? - 当然,在合理范围内。但是,实际上,随心所欲。 - 什么时候需要调用初始化方法? - 创建对象后立即将其变为有效对象: 旧级别 05 - 14- 这个方法 getFolder() 是什么? - 从它的名字就可以看出,这个方法是返回一个字符串,里面是我们的文件所在的文件夹的名字。但是我们并没有在这里写它的实现,它只是为了展示。

7 Diego,对象初始化任务

- 嘿,阿米戈!没有我们的课我很无聊。下面是一些对象初始化任务:
任务
1个 创建类 Friend
创建类 Friend 具有三个初始化器(三种方法初始化):
- Name
- Name, age
- Name, age, sex
2个 创建一个Cat类
创建一个Cat类,有五个初始化器:
- Name
- Name, weight, age
- Name, age (标准体重)
- Weight, color, (姓名、地址和年龄未知,是一只野猫)
- Weight,颜色,地址(是别人的家猫)
Initializer的任务是让一个对象有效。例如,如果重量未知,则需要指定一些平均重量。猫根本没有任何重量,年龄也是如此。但它可以没有名称(null)。这同样适用于地址 - 可以为空。
3个 创建一个 Dog 类
创建一个 Dog 类,包含三个初始值设定项:
- Name
- Name, height
- Name, height, color
4个 创建一个 Circle 类
创建一个 Circle 类,具有三个初始值设定项:
- centerX, centerY, radius
- centerX, centerY, radius, width
- centerX, centerY, radius, width, color
5个 创建类 Rectangle
创建类 Rectangle。它的数据将是顶部、左侧、宽度和高度。为它编写尽可能多的初始化 (...) 方法示例


- 应设置 4 个参数:left、top、width、height
- 宽度/高度未设置(均等于 0)
- 高度未设置(等于宽度),创建一个正方形
- 创建另一个矩形的副本(它在参数中传递)

8 Elly 谈构造函数

- 是时候告诉你构造函数了。这很简单:程序员发明了一种用于对象创建和初始化的速记符号: 旧级别 05 - 15- 但我只是理解了那些初始化器...... - 别难过。细看。使用构造函数更方便也更节省空间。 - 是的,看起来好多了。但是有一个问题:我知道如何在类中编写初始化方法,但是如何在类中编写构造函数呢? - 首先,看一个简单的例子: 旧级别 05 - 16- 在类中声明构造函数非常容易。构造函数类似于初始化方法,但有两点不同:
  • 构造方法的名称与类名相同(而不是initialize)。
  • 构造函数方法没有返回类型(根本没有指定类型)。
- 事实上,它是相同的方法初始化,但有一些不同。我有点明白了。

9 Diego,构造任务

- 我想你已经休息了。美好的。以下是一些构造函数创建任务:
任务
1个 创建类 Friend
创建类 Friend 具有三个构造函数:
- Name
- Name, age
- Name, age, sex
2个 创建一个Cat类
创建一个Cat类,有五个构造函数:
- Name,
- Name, weight, age
- Name, age (标准体重)
- Weight, color, (姓名、地址和年龄未知。它是一只野猫)
- Weight,颜色,地址(是别人的家猫)
Initializer的任务是让一个对象有效。例如,如果重量未知,则需要指定一些平均重量。猫根本没有任何重量,年龄也是如此。但它可以没有名称(null)。这同样适用于地址 - 可以为空。
3个 创建一个类 Dog
使用三个构造函数创建一个类 Dog:
- Name
- Name, height
- Name, height, color
4个 创建类 Circle
创建类 Circle 具有三个构造函数:
- centerX, centerY, radius
- centerX, centerY, radius, width
- centerX, centerY, radius, width, color
5个 创建类 Rectangle
创建类 Rectangle。它的数据将是顶部、左侧、宽度和高度。为它创建尽可能多的构造函数:

示例:
- 设置了 4 个参数:left、top、width、height
- 宽度/高度未设置(均等于 0)
- 高度未设置(等于宽度),创建一个正方形
- 创建另一个矩形的副本(它在参数中传递)

10 教授、班级和建设者

- 又是我。我们的讲座简直太棒了。我不会给你链接到无聊的讲座。这是优秀内容的链接!- 你还在吗?快走,读书,我必须去实验室。CodeGym 第 5 讲讨论

11 胡里奥

- 嘿,阿米戈!我有点累。让我们休息一下,然后开始上课。我发现了一个新的情节:

12 约翰松鼠

- 你好,士兵! - 早上好先生! - 我有一些好消息要告诉你。以下是加强您的技能的任务。每天都这样做,你的技能会很快提高。任务是专门为在 Intellij IDEA 中执行而设计的。
在 Intellij Idea 中完成的其他任务
1个 1. 三个类
1. 类比Duck 创建Cat 和Dog 类。
2. 想一想 Cat 和 Dog 类中的 toString 方法应该返回什么。
3.在方法main中,在每个类中创建两个对象并显示它们。
4. Duck 类对象创建并显示。
2个 男人和女人
1. 在解决方案类中创建公共静态类男人和女人。
2.类必须有字段:name(String), age(int), address(String)。
3. 创建构造函数以将所有可能的参数传递给。
4. 使用构造函数为每个类创建两个包含所有数据的对象。
5.以[姓名+“”+年龄+“”+地址]的格式显示对象。
3个 3. 创建公共静态类 Dog 和 Cat。
根据您的选择向每个类添加三个字段。
尽可能多地为汤姆和杰瑞卡通人物创建对象。

示例:
Mouse jerryMouse = new Mouse(“Jerry”, 12 (height, cm), 5 (tail length, cm))
4个 4. 显示当前日期
以类似于 «21 02 2014» 的形式在屏幕上显示当前日期。
5个 5. 从键盘读取数字并计算它们的总数
从键盘读取数字并计算它们的总数,直到用户输入单词 «total»。在屏幕上显示总数。
- 这些任务是针对果岭的。我添加了更复杂的奖励任务。仅限顶级枪支。
奖励任务
1个 1.程序没有编译运行。修理它。
任务:程序应该从键盘读取两个数字并显示它们的总数。
2个 2. 为程序添加新功能。
旧任务:添加一个新函数,从键盘读取两个数字并显示它们的最小值。
新任务:添加一个新函数,从键盘读取五个数字并显示它们的最小值。
3个 3.学习和练习算法。
任务:编写一个程序
1. 从控制台读取大于零的数字 N
2. 然后从控制台读取 N 个数字
3. 显示输入的 N 个数字中的最大值。