MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 366.79 MB | Duration: 1h 6m
Concurrency related terms like process, thread, multitaksing, parallelism, multithreading, etc. explained in brief.
What you'll learn
Basic concepts needed to use multithreading
Operating system and harware interactions that make multithreading possible
Analysing problems than could be solved using multithreading
A programming language independent overview of concepts to help dive deeper into code and operating systems internals.
No programming experience needed.
Willingness to followup on the concepts and apply in personal projects.
The course is designed to help you understand the basics of concurrency, without diving into coding-related details.Concurrency is a powerful concept in computer science, and it's becoming increasingly important as we develop applications that run on multiple processors and multiple machines. Whether you're building a web application, a mobile app, or any other kind of software, concurrency is an important topic to understand.In this course, we'll cover the fundamental concepts of concurrency, including threads, processes, and synchronization. We'll discuss the challenges of concurrent programs, such as race conditions. We will not explore techniques for addressing these challenges.Throughout the course, we'll focus on the bigger picture of concurrency, without getting bogged down in language-specific details. This will allow you to gain a solid understanding of the concepts, and then follow up with the syntax in a language of your choice.By the end of this course, you'll have a strong foundation in concurrency and be well-equipped to take your programming skills to the next level. So, whether you're a beginner or an experienced programmer looking to expand your skills, join us for Concurrency for Beginners and get ready to unlock the power of concurrency!Learning concurrency early in your career can be incredibly beneficial for several reasons:Future-proofing your career: As computing power continues to increase, concurrency is becoming more and more important. By learning concurrency early in your career, you'll be better equipped to work on applications that can take advantage of multiple processors and multiple machines. This will make you more valuable to employers and help future-proof your career.Solving complex problems: Concurrency can help you solve complex problems more efficiently. By learning how to use threads and processes effectively, you can write programs that can perform multiple tasks at the same time, making your code more efficient and easier to maintain.Improving performance: By using concurrency, you can improve the performance of your applications. For example, if you're building a web application, concurrency can help you handle multiple requests simultaneously, making your application faster and more responsive.Avoiding common pitfalls: Concurrency can be challenging to get right, but by learning it early in your career, you'll be better equipped to avoid common pitfalls like race conditions and deadlocks. This can save you a lot of time and frustration down the line.In summary, learning concurrency early in your career can help you future-proof your career, solve complex problems more efficiently, improve performance, and avoid common pitfalls. So, if you're interested in pursuing a career in software development, or if you're already a developer looking to expand your skills, learning concurrency is definitely worth your time and effort.
Section 1: Introduction
Lecture 1 Getting over the myths around concurreny
Lecture 2 Do generic solutions for concurrency exist?
Section 2: Concepts
Lecture 3 Multitasking, Multithreading, Concurrency, Parallelism as concepts
Lecture 4 Process, Thread, Heap, Stack concepts
Lecture 5 Cores of a processor
Lecture 6 Concept of a resources and race condition
Lecture 7 End to end journey of language standard to execution. Example C++ language
Lecture 8 Concurreny from a hardware perspective
Lecture 9 The concept of context switch. Overview no operating systems details needed.
Lecture 10 Concurrency/Multithreading related challenges in production systems
Lecture 11 Amdahl's Law and basic of scalability all software developers must understand!
Section 3: Conclusion
Lecture 12 When to unleash concurrency, responsibly.
Lecture 13[Bonus Lecture]
Beginner developers who have recently learned some programming language,Developers curious about concurrency and seeking an easy way to get started,Beginner Python developers curious about concurrency concepts,Beginner C++ developers looking for multithreading details beyond syntax