Duration
4 Days
24 CPD hours
This course is intended for
This course is geared for experienced skilled Java developers, software
developers, data scientists, machine learning experts or others who wish to
transtion their coding skills to Scala, learning how to code in Scala and apply
it in a practical way. This is not a basic class.
Overview
Working in a hands-on learning environment led by our expert instructor you'll:
Get comfortable with Scala's core principles and unique features, helping you
navigate the language confidently and boosting your programming skills.
Discover the power of functional programming and learn techniques that will make
your code more efficient,maintainable, and enjoyable to write.
Become proficient in creating dynamic web applications using the Play Framework,
and easily connect to databases with the user-friendly Slick library.
Master concurrency programming with Akka, empowering you to build scalable and
fault-tolerant applications that excel in performance.
Enhance your testing skills using ScalaTest and ScalaCheck, ensuring the
reliability and quality of your Scala applications, while having fun in the
process.
Explore the fascinating world of generative AI and GPT technologies, and learn
how to integrate them into your projects,adding a touch of innovation and
intelligence to your Scala solutions.
If your team requires different topics, additional skills or a custom approach,
our team will collaborate with you to adjust the course to focus on your
specific learning objectives and goals.
Discover the power of Scala programming in our comprehensive, hands-on technical
training course designed specifically for experienced object-oriented (OO)
developers. Scala is a versatile programming language that combines the best of
both OO and functional programming paradigms, making it ideal for a wide range
of projects, from web applications to big data processing and machine learning.
By mastering Scala, you'll be able to develop more efficient, scalable, and
maintainable applications. Fast Track to Scala Programming for OO / Java
Developers is a four day hands-on course covers the core principles of Scala,
functional programming, web application development, database connectivity,
concurrency programming, testing, and interoperability between Scala and Java.
Additionally, you'll explore cutting-edge generative AI and GPT technologies,
learning how to integrate them into your Scala applications for intelligent
suggestions or automation. Throughout the course you?ll explore the latest tools
and best practices in the Scala ecosystem, gaining valuable knowledge and
experience that can be directly applied to your day-to-day work. With 50% of the
course content dedicated to hands-on labs, you'll gain practical experience
applying the concepts you've learned across various projects, such as building
functional web applications, connecting to databases, designing modular
components, and implementing concurrency. Upon completing the course, you'll
have a solid understanding of the language and its features, empowering you to
confidently apply your new skills in data science and machine learning projects.
You'll exit well-prepared to create efficient, scalable, and maintainable Scala
applications, regardless of the complexity of your projects.
INTRODUCTION TO SCALA
* Scala features and benefits
* Comparing Scala with Java and other OO languages
* Installing Scala and setting up the development environment
OBJECT-ORIENTED PROGRAMMING IN SCALA
* Classes and objects
* Traits, mixins, and inheritance
* Companion objects and factories
* Encapsulation and polymorphism
FUNCTIONAL PROGRAMMING BASICS
* Pure functions and referential transparency
* Higher-order functions and currying
* Immutability and persistent data structures
* Pattern matching and recursion
HAVING FUN WITH FUNCTIONAL DATA STRUCTURES
* Lists, sets, and maps in Scala
* Folding and reducing operations
* Stream processing and lazy evaluation For-comprehensions
BUILDING WEB APPLICATIONS IN FUNCTIONAL STYLE
* Introduction to Play Framework
* Functional web routing and request handling
* JSON handling with Play-JSON
* Middleware and functional composition
CONNECTING TO A DATABASE
* Introduction to Slick library
* Database configuration and setup
* Querying and updating with Slick
* Transactions and error handling
BUILDING SCALABLE AND EXTENSIBLE COMPONENTS
* Modular architecture and design patterns
Dependency injection with MacWire
Type classes and type-level programming
Implicit parameters and conversions
CONCURRENCY PROGRAMMING & AKKA
* Introduction to Akka framework and Actor model
* Actor systems and message passing
* Futures and Promises
* Supervision and fault tolerance
*
BUILDING CONFIDENCE WITH TESTING
* Introduction to ScalaTest and ScalaCheck
* Unit testing and property-based testing
* Test-driven development in Scala
* Mocking and integration testing
*
INTEROPERABILITY BETWEEN SCALA AND JAVA
* Calling Java code from Scala
* Using Java libraries in Scala projects
* Converting Java collections to Scala collections
* Writing Scala code that can be called from Java
USING GENERATIVE AI AND GPT
* Technologies in Scala Programming
* Overview of GPT and generative AI
* Integrating GPT with Scala applications
* Use cases and practical examples