Want to become the master of the multicore and distributed systems domain? Join Riccardo Terrell and learn how to build concurrent and scalable programs in .NET using the functional paradigm. Come and explore the powerful and accessible tool of parallel computation and learn how to optimize and maximize performance of an application, how to most effectively use multi-core computation and maximise the computational resources utilisation, which is used across a range of industries and applications.
Learn how to harness the powers of parallel computation and multicore computation to dominate peer applications in finance software, video games, web applications and market analysis. To yield the most performance, computer programmers have to partition and divide computations to maximize the performance while taking full advantage of multicore processors. Start your path from Padawan to Jedi.
Upon completion of this Functional Concurrency in .NET course, you return to work and have code bend to your will. This course introduces you to technologies and tools available to developers at every level who are interested in achieving exceptional performance in applications. This course is an intensive workshop in writing readable, more modular, and maintainable code in both C# and F#. These languages function at peak performance with fewer lines of code, resulting in increased productivity and successful programs.
Ultimately, armed with your new found skills, you will become an expert at delivering successful, optimized, high-performance solutions. These solutions can adapt resource consumption, whether running locally, on OnPrem, or on Cloud infrastructures. In this course, participants will have hands-on practice designing projects. By the end of the course, participants will know how to build concurrent and scalable programs in .NET using the functional paradigm.
Learn how to:
- Leverage multi-core computation, increasing the capacity and speed of their programs
- Apply the major functional theories and best practices in concurrent programming
- Design and exploit the key principles and techniques for concurrent and parallel programming
- Develop highly scalable and fault-tolerant applications using a combination of Asynchronous programming, Actor model and Reactive Extensions
- Design and implement highly-scalable and fault-tolerant distributed systems
- Why choose functional programming for concurrent programs
- Functional programming techniques and practices for concurrent programming
- How to overcome the concurrent pitfalls writing complex parallel application effortlessly
- Building high-performance concurrent systems that self-adapt the degree of parallelism based on the current resources available
- Integrating concurrent programming abstractions
- Handling and composing high-volume real-time event stream processing
- Design patterns for concurrent applications
- Choose and leverage the best concurrent patterns to solve problems (for example divide and conquer, Fork/Join, pipeline and so on)
- Accelerate sequential programs
- Creating a data-access layer to handle massive concurrent requests
- Asynchronous Functional Combinators to express complex flow in a declarative and composable style
- Applying Reactive Programming everywhere with Agents and Actors
- How to develop applications that scale up & out
- How to write scalable and robust server-side asynchronous code for the Cloud
- Designing and implementing highly-scalable, reactive and fault-tolerant distributed systems for the cloud
Are you a software engineer, developer or solution architect who wants to break the bonds of sequential programming and leverage the power of multi-core computers? Or are you know OO technologies but are interested in learning about 'Functional Programming'? Are you interested in combining different program paradigms and concurrent libraries to dramatically reduce bugs? Then this course is for you!
2-3 years of professional experience and a basic knowledge of a programming language. No experience in functional programming is necessary.
Bring your own hardware
To participate in this course, you are required to bring your own laptop, so you can develop with your own tools and languages, rather than something you are not familiar with.