لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش C++20 در عمل: مبتدی تا مهندس نرم افزار
C++20 in Action: Beginner to Software Engineer
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
C++11 تا C++20، مبانی، کلاسها، اشارهگرها، STL، الگوها، مفاهیم، محدودهها، کانتینرها، تکرارکنندهها، همزمانی C++ مبانی: مفاهیم اصلی شامل متغیرها، انواع دادهها، عملیاتهای حسابی و ورودی/خروجی اولیه را درک کنید. . انواع خود را طراحی کنید: هنر تعریف انواع سفارشی با استفاده از کلاس ها، ساختارها، اتحادیه ها و شمارش ها را بیاموزید. درک ماژولاریت: کد خود را به طور موثر با استفاده از فضاهای نام، فایل های منبع و سرصفحه ها سازماندهی و ساختار دهید. آشنایی با ویژگی C++20 Modules. وارد OOP شوید: با دنیای برنامه نویسی شی گرا در C++ آشنا شوید و کلاس ها، سازنده ها، توابع اعضا و بارگذاری بیش از حد را درک کنید. درک عملیات اساسی: رمزگشایی معناشناسی کپی و جابجایی و پایه گذاری قانون سه/پنج. از قدرت الگوها استفاده کنید: با الگوهای ++C به برنامهنویسی عمومی بپردازید و از ایمنی نوع بدون محدودیت اطمینان حاصل کنید. مفاهیم (C++20) و برنامه نویسی عمومی: در حصول اطمینان از ایمنی نوع در زمان کامپایل از طریق مفاهیم عمیق تر شوید. کتابخانه C++ را کاوش کنید: با کتابخانه استاندارد C++، از کانتینرها و الگوریتمها گرفته تا چندین ابزار کمکی آشنا شوید. رشتهها و فراتر از آن: عملیات رشته، string_view (C++17) را مسلط کنید و از قدرت عبارات منظم استفاده کنید. با جریان های ورودی/خروجی آشنا شوید: برای عملیات ورودی-خروجی کارآمد و فرمت شده، در دنیای جریان های ورودی/خروجی پیمایش کنید. تسلط Container: کلاس های کانتینری قدرتمند مانند بردار، لیست و نقشه را کاوش کنید. مهارت الگوریتمی: تفاوت های ظریف نحوه کار الگوریتم ها با کانتینرها و تکرارکننده ها را درک کنید. C++ Utilities: خود را به دانش در مورد اشاره گرهای هوشمند، ابزارهای زمان/تاریخ و موارد دیگر مجهز کنید. همزمانی و موازی سازی: با دنیای همزمان C++ شروع کنید و در مورد رشته ها، وظایف و مکانیسم های همگام سازی یاد بگیرید. پیش نیازها:آگاهی برنامه نویسی پایه مورد انتظار است. مثال: سوالاتی مانند "متغیر چیست؟"، "پردازنده چیست؟" و غیره در دوره پاسخ داده نخواهد شد. دسترسی به مرورگر مبتنی بر دسکتاپ برای تکمیل تمرینات کدنویسی و دسترسی کامپایلر آنلاین نیز الزامی است. راهنمای دوره در مورد استفاده از محیط کامپایلر آنلاین و از این رو استفاده از هیچ برنامه IDE را توضیح نمی دهد یا انتظار نمی رود.
قفل قدرت C++ را با این دوره جامع که برای مبتدیان و کسانی که به دنبال تجدید نظر هستند، باز کنید. در پایان این سفر، شما با دانش نوشتن برنامه های C++ معنی دار و اشتیاق به کاوش بیشتر مسلح خواهید شد.
این دوره به گونه ای طراحی شده است که یک تور مختصر و در عین حال جامع باشد. اگرچه جامع نیست، اما نقطه شروع ایده آلی برای هر کسی است که به برنامه نویسی C++ علاقه دارد. شما ابزار و اعتماد به نفس برای شروع موضوعات و پروژه های پیشرفته تر را تا پایان خواهید داشت. به ما بپیوندید و بیایید این سفر هیجان انگیز را با هم شروع کنیم!
چرا C++ یا CPP را یاد بگیریم؟
CPP به دلیل ترکیب بینظیر عملکرد، تطبیق پذیری و قابلیتهای شی گرا، جایگاهی متمایز در زبانهای برنامهنویسی دارد. یادگیری CPP توسعه دهندگان را با درک عمیقی از معماری کامپیوتر، مدیریت حافظه و الگوهای طراحی نرم افزار پیشرفته مجهز می کند. علاوه بر این، نقش اساسی آن در توسعه بسیاری از زبانها و سیستمهای مدرن به این معنی است که دانش CPP اغلب به درک شهودیتری از سایر فناوریها تبدیل میشود. چه برای برنامههای کاربردی با کارایی بالا، توسعه بازی، سیستمهای تعبیهشده یا نرمافزارهای سیستمی، تخصص CPP میتواند به طور قابل توجهی افق توسعهدهنده را گسترش دهد، مهارتهای حل مسئله را افزایش دهد و درها را به روی فرصتهای شغلی مختلف در صنعت فناوری باز کند.
رنسانس C++ مدرن: کیفیت، ایمنی و کارایی هزینه (C++11 تا C++20)
C++ مدرن فراتر از پسوندهای زبانی صرف تکامل یافته است و به عنوان یک نیروی دگرگون کننده با تأکید بر ایمنی، بیان و تطبیق پذیری ظاهر شده است. ارائه ویژگیهایی مانند اشارهگرهای هوشمند، حلقههای مبتنی بر محدوده، و استنتاج نوع، توسعهدهندگان را تشویق میکند تا از هکهای سنتی C-که اغلب مملو از خطاهایی هستند که منجر به خرابیها و آسیبپذیریهای زمان اجرا میشوند- به شیوههای کدنویسی قابل پیشبینیتر معاصر منتقل شوند. این تغییر صرفاً زیبایی شناختی نیست. این یک ضرورت اقتصادی است. نرمافزار ضعیف میتواند متحمل هزینههای جبرانی سنگینی شود، اعتماد کاربران را به خطر بیندازد و حتی منجر به از دست دادن درآمد شود. پذیرش C++ مدرن فقط بهروز ماندن نیست. این یک حرکت استراتژیک به سمت تولید نرمافزار انعطافپذیر است که از اعتبار برند و نتیجه نهایی محافظت میکند.
چرا این دوره آموزشی به سبک مصاحبه را با هکهای سریع و ویژگیهای منسوخ C-Style که هنوز کار میکنند، هدف قرار نمیدهد؟
اتخاذ یک طرز فکر با محوریت رشد شغلی بلندمدت در بازار کار غیرقابل پیشبینی امروز، که با اخراجهای غیرمنتظره و تغییرات سریع مشخص میشود، ضروری است. فراگیرانی که با کنجکاوی و تعهد واقعی به مطالعات خود می پردازند، خود را به دانش و درک عمیق اصول و مفاهیم اساسی مجهز می کنند. هدف آنها درک "چی"، "چرا" و "چگونه" موضوع خود است، و اطمینان حاصل می کند که تخصص آنها در چالش های مختلف دنیای واقعی مرتبط و سازگار باقی می ماند. به عنوان مثال، در عواقب یک رکود اقتصادی قابل توجه، متخصصانی که درک عمیقی از آنها دارند، احتمالاً به طور یکپارچه در انتقال شغل پیش می روند. در عین حال، کسانی که برای اهداف کوتاهمدت، مانند پاک کردن یک مصاحبه، صرفاً به حفظ کردن اتکا کردهاند، ممکن است خود را برای انطباق بیمهارت ببینند. چنین آماده سازی سطحی ممکن است به دستیابی به اهداف فوری کمک کند، اما می تواند چشم انداز شغلی بلند مدت و عملکرد در محیط های کاری پویا را به خطر بیندازد. این دوره فراگیران را تشویق میکند تا رویکرد قبلی و جامع را پذیرفته و آنها را برای موفقیت پایدار آماده کنند.
سرفصل ها و درس ها
معرفی
Introduction
بررسی اجمالی دوره: مروری بر هر بخش برای درک بهتر محتوا
Course Overview : A walkthrough of each section to understand the content better
[اختیاری] قبل از شیرجه زدن به دوره، دیدگاه مربی را بدانید
[Optional] Know the instructor's perspective before diving into the course
دست گرمی بازی کردن
Warm-up
برنامه ++C چیست؟
What is a C++ program?
Hello World: ساده ترین برنامه ++C
Hello World: The simplest C++ program
مروری سریع بر ابزار توسعه آنلاین Compiler Explorer
Quick overview of the online development tool Compiler Explorer
بررسی سریع
Quick Check
شروع با تمرینات Udemy Coding
Getting started with Udemy Coding exercises
شروع با برنامه Hello World.
Getting started with a Hello World program.
ویژگی های اساسی C++ موجود در همه برنامه های C++
Basic Features of C++ present in all C++ programs
توابع: اعلان و نحو اولیه
Functions : Declaration and basic syntax
تمرین کدگذاری تابع پایه
Basic function coding exercise
توابع: تغییرات احتمالی در نحو برای پشتیبانی از ویژگی های بیشتر
Functions: Possible variations in syntax to support more features
تغییرات عملکرد
Function variations
انواع و متغیرها در C++
Types and variables in C++
استفاده از انواع برای ایجاد متغیرها در یک برنامه
Using types to create variables in a program
عملیات حسابی با انواع فاندامنتال در C++
Arithmetic operations with Fundamental types in C++
عملگرهای حسابی
Arithmetic operators
مقداردهی اولیه و کلمه کلیدی خودکار در C++
Initializations and auto keyword in C++
مقداردهی اولیه متغیرها
Initialization of variables
با استفاده از کلمه کلیدی خودکار
using auto keyword
محدوده و طول عمر موجودیت ها در برنامه های C++
Scope and lifetime of entities in C++ programs
محدوده و زمان عمر اشیا در برنامه ها
Scopes and life times of objects in programs
ثابت ها در برنامه های C++: const، constexpr، consteval
Constants in C++ programs : const, constexpr, consteval
Const درستی
Const correctness
آرایه ها، اشاره گرها و مراجع در C++
Arrays, Pointers and References in C++
ارجاعات نشانگرهای آرایه
Array pointers references
اشاره گرهای تهی در C++ مدرن
Null pointers in Modern C++
با استفاده از nullptr
Using nullptr
درک اشاره گرها و مراجع از دیدگاه سخت افزاری
Understanding pointers and references from a hardware perspective
تست و انتخاب گردش کار مبتنی بر عبارات شرطی و حلقه
Testing and selection based workflows with conditional statements and looping
اظهارات در غیر این صورت
if-else statements
بیانیه های موردی را تغییر دهید
Switch case statements
استفاده از حلقه های while
Using while loops
آزمون بخش
Section Quiz
انواع تعریف شده توسط کاربر در C++ مدرن
User Defined Types in Modern C++
مقدمه ای بر انواع تعریف شده توسط کاربر
Introduction to User Defined Types
جستجوگر نوع ساخته شده به کارگیری اصول اولیه.
Builtin type checker. Applying the basics.
ساختارها در C++
Structures in C++
استفاده از ساختارها در C++
Using Structures in C++
مقدمه ای بر کلاس های C++ مدرن
Introduction to Classes in Modern C++
کار با کلاس ها
Working with classes
آشنایی با Enumerations در C++
Understanding the Enumerations in C++
کار با Enumerations در C++ مدرن
Working with Enumerations in modern C++
مفهوم اتحاد و انواع در C++
Concept of Union and Variants in C++
استفاده از std::variant
Using std::variant
آزمون بخش
Section Quiz
مدولار بودن
Modularity
قانون مقدمه و یک تعریف
Introduction and One Definition Rule
کار با std::variant و std:: اختیاری (C++17)
Working with std::variant and std::optional ( C++17 )
آزمون بخش
Section Quiz
ابزارهای ارائه شده توسط کتابخانه استاندارد C++
Utilities provided by C++ standard library
معرفی
Introduction
Time , Chrono Utilities
Time , Chrono utilities
استفاده از ابزارهای chrono در برنامه های خود
Applying chrono utilities in your programs
سازگاری عملکرد
Function adaption
اعمال سازگاری تابع
Applying function adaption
توابع را تایپ کنید
Type functions
استفاده از توابع Type در برنامه های خود
Using Type functions in your programs
ویژگی مکان منبع
Source location feature
معناشناسی حرکت و جلو
move and forward semantics
کار با معناشناسی حرکت و جلو برای استفاده از قدرت C++ مدرن
Working with move and forward semantics to leverage the power of Modern C++
نمای کلی ابزارهای دستکاری بیت
Bit manipulation utilities overview
راه های خروج از برنامه ها به صورت قابل پیش بینی
Ways of exiting programs predictably
آزمون بخش
Section Quiz
اعداد در کتابخانه استاندارد C++
Numerics in C++ standard library
معرفی
Introduction
مروری سریع بر الگوریتم های عددی و توابع ریاضی در کتابخانه ++C
Quick overview of numerical algorithms and mathematical functions in C++ library
استفاده از الگوریتم های عددی موجود در کتابخانه استاندارد C++
Utilizing the numerical algorithms available in C++ standard library
امکانات اعداد تصادفی ارائه شده توسط کتابخانه استاندارد
Random number facilities provided by standard library
با استفاده از امکانات اعداد تصادفی ارائه شده در C++ مدرن
Using random number facilites provided in modern C++
وکتور حساب و سایر امکانات ارائه شده توسط کتابخانه استاندارد
Vector Arithmetic and other facilities provided by standard library
استفاده از valaray در برنامه های C++ برای محاسبات برداری
Using valarray in C++ programs for vector arithmetic
آزمون بخش
Section Quiz
مقدمه ای بر Concurrency با استفاده از C++ مدرن (تا C++20)
Introduction to Concurrency using Modern C++ ( upto C++20)
معرفی
Introduction
مفهوم وظیفه و رشته ها
The notion of task and threads
یک برنامه همزمان ساده با استفاده از ساختارهای همزمان C++ مدرن
A simple concurrent program using Modern C++ concurrency constructs
ارسال آرگومان ها و برگرداندن مقادیر از رشته ها
Passing arguments and returning values from threads
انتقال داده ها و برگرداندن نتایج از برنامه های همزمان در C++
Passing data and getting back results from concurrent programs in C++
به اشتراک گذاری داده ها بین رشته ها
Sharing data between threads
استفاده از mutex و lock برای به اشتراک گذاری داده ها بین رشته ها بدون خرابی.
Using mutex and lock to share data between threads without corruption.
انتظار برای رویدادها با استفاده از متغیر شرط
Waiting for events using condition variable
استفاده از متغیرهای شرط در برنامه ها
Using condition variables in programs
جایگزین هایی برای به اشتراک گذاری داده ها و معناشناسی سطح پایین با استفاده از Futures.
Alternatives to sharing data and low level semantics using Futures.
استفاده از قراردادهای آتی در برنامه های ++C
Using futures in C++ programs
مقدمه ای کوتاه بر Corutines
A brief introduction to Coroutines
من Subodh (36) هستم، یک برنامه نویس با MS در مهندسی برق و مقیم هند.
من روی پروژههایی در حوزههای متعددی مانند بیمه، ایمیل، سیستمهای تعبیهشده برای پزشکی از راه دور، توزیع سینمای دیجیتال، سیستمهای توزیعشده، و ساختن نقشه کار کردهام.
از کاوش در ارتباط بین چگونه و چرا در مورد هر مشکل فنی لذت می برم. در طول سالها متوجه شده ام که تحقیق یک سبک زندگی است و مهندسی یک نگرش است.
من از ایجاد محتوا و ویرایش ویدیو همراه با مطالعه مرتبط با تجارت، امور مالی شخصی، اقتصاد، بیوگرافی، تاریخ و برنامه نویسی/مهندسی نرم افزار لذت می برم.
ایده ها و پیشنهادات شما همیشه مورد استقبال قرار می گیرد.
نمایش نظرات