Scala for Java Developers (in Russian)

Узнайте, как начать программировать на современном объектно-функциональном языке программирования Scala "с нуля".
4.5 (122 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
497 students enrolled
$50
Take This Course
  • Lectures 136
  • Contents Video: 15 hours
    Other: 1 hour
  • Skill Level All Levels
  • Languages Russian
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 3/2015 Russian

Course Description

Данный курс посвящен гибридному объектно-функциональному языку программирования Scala.

Он рассчитан на программистов на Java уровня от твердый Junior или Middle. Возможен также переход из других объектно-ориентированных языков - Python, C#, PHP.

Для прохождения курса потребуется около трех месяцев при затратах 6-10 часов в неделю при условии, что Вы хорошо понимаете базовые идеи современного промышленного программирования: шаблоны проектирования, generics, рекурсивные алгоритмы, XML/JSON, Объектно-Ориентированное Программирование (наследование, композиция, агрегация, инкапсуляция, сокрытие информации, полиморфизм).

Учебный материал состоит из 20 разделов, которые включают 200 небольших лекций и 50 тестов.

Курс серьезно насыщен терминологией современного программирования: continuation passing style, tail call optimization.

Scala включает несколько разделов, которые встречаются в других современных промышленных языках: higher-kind types, path-dependent types, macroses, parser combinators.

Платформа позволяет вести чат. Студентам рекомендуется задавать интересующие их вопросы в нем. Это позволит ответить как преподавателю, так и другим студентам.

Около 25% материала посвящено математике (алгебра, теория множеств, комбинаторика). Причина в том, что функциональные языки программирования особенно хороши при работе на стыке computer science и математики. Математический уклон позволяет показать многие глубокие идеи языка.

Курс снабжен большим количеством тестов. Их задача состоит как в проверке усвоения материала.

Удачи в изучении Scala!

What are the requirements?

  • Установить JDK
  • Установить Scala SDK
  • Установить какую-либо Scala IDE (JetBrains IDEA, Eclipse, ...)

What am I going to get from this course?

  • Разберетесь с тем, что такое Функциональное программирование
  • Поймете наиболее "темные" уголки языка: Generics, Macroses, Path Dependent Types

What is the target audience?

  • Этот курс предназначен для уже состоявшихся программистов на каком-либо из современных объектно-ориентированных языков программирования (Java, C#, Python, ...)

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Intro
Материалы по Scala
Article
Материалы по Математике
Article
HelloWorld in Scala
Preview
16:04
JRE, Java, JVM, Reflection API and Scala
13:21
Base entities: class, object, trait, var, val, def
Preview
06:47
Важные источники по Scala
Preview
Article
Section 2: OOP - I: No inheritance
Intro
04:06
Fields: var/val implementation
10:12
Fields: override accessor/mutator
06:06
Fields: Java bean style getter/setter
03:17
Constructor: primary
06:08
Constructor: auxiliary
08:00
Object: Intro
02:48
Object: Utility functions / constants
01:56
Object: Companion object
08:36
Object: Singleton
05:24
Methods: Simplification
07:26
04:46

Также вы можете почитать

"Programming in Scala", 2ed, глава 10.3 "Defining parameterless methods"

или онлайн 1ed = глава 10.3 "Defining parameterless methods" = http://www.artima.com/pins1ed/composition-and-inheritance.html#10.3

Methods: "Procedure" style
05:28
Imports
05:58
Материалы по OOP - I: No inheritance
Article
Section 3: OOP - II: "operator overloading"
Operators: Intro
05:11
Method call: infix notation (basic)
06:06
"Pointless" vs "point-free" (basic)
04:14
"Operators": "Pointless" vs "Point-free" style (basic)
4 questions
"Operator" precedence (medium)
08:26
"Operators" precedence (basic)
7 questions
"Operator" associativity (medium)
07:42
"Operators": associativity (basic)
5 questions
"Operators": precedence + associativity (medium)
4 questions
"Operators": precedence + associativity (hard)
10 questions
Infix types (hard)
08:03
Infix types (hard)
6 questions
Prefix operators: +, -, !, ~
02:54
Methods: "operator style" - material
Article
Материалы по OOP - II: "operator overloading"
Article
Section 4: Type - I. Scala Type Hierarchy
Muddle in terms: Kind, Type, Class
05:24
Type terms in Java
08:37
Type terms in Scala
05:46
Scala class hierarchy
04:25
Type Any, universal trait
06:49
Top Types: Any, AnyVal, AnyRef
12 questions
Types Nothing, None, Nil, Null
Preview
14:58
Bottom types: Null, null, Nothing
3 questions
Материалы по Type - I. Scala Type Hierarchy
Article
Section 5: Control - I: buil-in control flow structures, expression-oriented programming
Expression-oriented programming
09:42
Statements and Expressions in Scala
Preview
10:05
Assignment: basics
Preview
23:17
Assignment: syntax sugar
08:26
Code block
04:56
Keyword 'if'
04:19
Keyword 'if' (BASIC)
5 questions
While, do-while loops
05:40
For loop
05:23
Материалы по Control - I
Article
Section 6: Set theory - I: Множество, Отношение, операции над множествами
Set definition, predicative and generative forms
21:02
Set definition, predicative and generative forms (материал)
Article
Cartesian product, binary relation
10:05
Cartesian product, binary relation (материал)
Article
Function as binary relation
11:20
Function as binary relation (материал)
Article
Operations on functions - I
5 questions
Operations on functions - II
5 questions
Equality as binary relation (материал)
Article
Operations on equivalence relations
4 questions
Section 7: Functional Programming - I: Syntax
What is 'Function'?
11:21
Functional literal and Functional value
13:12
Partially defined functions - API
14:18
Partially defined functions - With Collections
13:00
Eta-expansion: Intro
08:21
Eta-expansion: Syntax
08:24
Eta-expansion: Method Reference in Java 8
Preview
08:43
Curring: Math - I
10:30
Curring: Math - II
07:33
4 questions

Данный тест проверяет, понял ли слушатель как работают конструкторы множеств 'Cartesian product' и 'Function' и базовые формулы вычисления мощности множеств (количество элементов, cardinality).

Set constructors, cardinality (MIDDLE)
4 questions
Math of curring (MIDDLE)
4 questions
Tupling / untapling
20:29
Материалы по Functional Programming - I
Article
Section 8: Generics - I: without higher-kind types
Co-variance, contra-variance, non-variance
05:26
Java arrays
07:47
Scala generics vs Java generics
07:20
Producer, co-varian position
Preview
03:42
Consumer, contra-variant position
Preview
02:56
Pipe, non-varian position
Preview
04:39
Field, co-varian or non-variant position
03:53
Co-variant / contra-variant positions (basic)
10 questions
Tuple example
04:30
Function example
05:26
Higher-order function example
04:46
Subtype / supertype (basic)
10 questions
Материалы по Generics - I: without higher-kind types
Article

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Гражданин Ivan Golovach, Java/Scala техлид

Программирую и преподаю более 10 лет на Scala, JavaEE, Java ME, C/C++. Руковожу образовательной компанией в области Java и Scala. Большой опыт выступлений на различных конференциях и семинарах. Обучил более 200 человек. На мой видео канал подписано более 12.000 человек. С радостью научу Вас до уровня Middle Scala Developer.

Опубликовал курсы "Программирование на Java с нуля" и "Scala for Java Developers".

Ready to start learning?
Take This Course