Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Software Development Tools No-Code Development
Business
Entrepreneurship Communication Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certifications Network & Security Hardware Operating Systems & Servers Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Paid Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement & Gardening Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition & Diet Yoga Mental Health Martial Arts & Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Learning Teacher Training Test Prep Other Teaching & Academics
Web Development JavaScript React Angular CSS Node.Js Typescript HTML5 PHP
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Amazon AWS Cisco CCNA CompTIA Security+ Microsoft AZ-900
Microsoft Power BI SQL Tableau Data Modeling Business Analysis Data Analysis Data Warehouse Blockchain Business Intelligence
Unity Unreal Engine Game Development Fundamentals C# 3D Game Development C++ Unreal Engine Blueprints 2D Game Development Mobile Game Development
Google Flutter iOS Development Android Development Swift React Native Dart (programming language) Kotlin SwiftUI Mobile App Development
Graphic Design Photoshop Adobe Illustrator Drawing Canva Digital Painting InDesign Design Theory Procreate Digital Illustration App
Life Coach Training Neuro-Linguistic Programming Personal Development Personal Transformation Life Purpose Mindfulness Sound Therapy Emotional Intelligence Coaching
Business Fundamentals Entrepreneurship Fundamentals Freelancing Business Strategy Online Business Startup Business Plan Blogging Amazon Kindle Direct Publishing (KDP)
Digital Marketing Social Media Marketing Marketing Strategy Internet Marketing Copywriting Google Analytics Email Marketing Startup Advertising Strategy

DevelopmentProgramming LanguagesScala

Scala Advanced, Part 1 - The Scala Type System

Mutable State, Scala Type System In-Depth, Implicits
Rating: 4.6 out of 54.6 (330 ratings)
2,768 students
Created by Dick Wall
Last updated 11/2018
English

What you'll learn

  • Use the full Scala type system to correctly implement general purpose re-usable libraries and APIs for other Scala developers to use easily.

Requirements

  • A day-to-day working knowledge of the Scala language equivalent to completing Escalate Software's Scala Applied course is recommended before starting on the advanced course
  • You will need to set up your laptop with Scala, SBT and IntelliJ IDEA with Scala support by following the setup instructions
  • Experience with other statically typed languages (e.g. Java or C#) will be helpful but not required.

Description

Scala Advanced, Part 1

The Escalate Software Scala Advanced course is intended for experienced Scala developers looking to improve their skills, particularly for library and API design and development. It covers topics needed to be effective in producing high quality, correct, powerful and flexible Scala libraries that are still easy to use by others.

Part 1 provides in depth knowledge of the Scala type system, an important precursor to any library development. We start off with a look at the dangers, and safe use, of mutable shared state in Scala, covering properties and caching. From there we delve into the Scala type system including:

  • Generics
  • Co- and Contra-Variance
  • Upper and Lower Bounds
  • Type Inference
  • Type Parameters and Type Members
  • Path Dependent Types
  • Refinement Types
  • Structural Types
  • Recursive Types
  • F-bounded Polymorphism

The final two modules then move on to the secondary Implicits type system that augments the regular Scala type system, covering:

  • Simple Implicit Parameters
  • Type Classes
  • Implicit classes, objects and methods
  • Type Class Composition
  • Implicit Constraints
  • =:= and <:<
  • Implicit Class and Type Tags
  • Implicit Conversions
  • extends AnyVal

And more.

Parts 2 and 3 (available separately) cover topics like best practices, idioms, patterns, advanced functional programming, asynchronous programming, parser-combinators, macros, performance profiling and optimization, and much more. These parts rely on information presented during this advanced part 1 course.

Who this course is for:

  • Scala library and API developers, or Scala developers looking to improve their knowledge and skills

Featured review

Fedor Malyshkin
Fedor M.
36 courses
7 reviews
Rating: 5.0 out of 5a year ago
This course is definitely not for a beginner, however if know Scala at least a little bit - you'll be able to develop your skills dramatically. You'll be able understand HOW and WHY some "this-weird-scala" things work. Some review argue that not everything is explained perfectly, whereas I find everything is presented in an extremely straight way, and any misunderstanding are cleared out ofter some time of exercise with tasks. Is's shame that I found this course right now only.

Instructor

Dick Wall
Scala Developer
Dick Wall
  • 4.6 Instructor Rating
  • 6,226 Reviews
  • 30,549 Students
  • 7 Courses

Dick is a Scala Developer with over 12 years of Scala development experience, and over 10 years of Scala training experience. As well as consulting in Scala, Dick contributes to a number of open source Scala projects, libraries and tools, and is very active in the Scala developer community. He is also one of the Scalawags, a video podcast about the Scala language. He runs Escalate Software which provides Scala training services. Dick also won the inaugural Phil Bagwell Award for Service to the Scala Community, and managed the Scala Community Process in 2015 through 2016

Top companies choose Udemy Business to build in-demand career skills.
NasdaqVolkswagenBoxNetAppEventbrite
  • Udemy Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Investors
  • Terms
  • Privacy policy
  • Sitemap
  • Accessibility statement
Udemy
© 2022 Udemy, Inc.