آموزش دوره برنامه نویسی C پیشرفته

Advanced C Programming Course

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: استاد واقعی زبان برنامه نویسی C شوید - با اطمینان برای مشاغل یا قراردادهای C در زمان واقعی یا جاسازی شده درخواست دهید! درک و قادر به اعمال مفاهیم پیشرفته زبان برنامه نویسی C برای ایجاد برنامه های کاربردی پیشرفته C باشد. توابع و نشانگرهای دوگانه، بازگشت، دستکاری بیت، ماکروها، سیگنال ها و بارهای بیشتر را بدانید (برنامه درسی را در این صفحه برای لیست کامل بررسی کنید). همه چیز را در مورد رشته ها و شبکه با سوکت ها بیاموزید. بر هنر حل مسئله در برنامه نویسی با استفاده از روش های کارآمد و اثبات شده مسلط شوید. قادر به اعمال مفاهیم پیشرفته C در سایر زبان های برنامه نویسی باشید. چگونه کد C با کیفیت بالا بنویسید، تا خود را برای موقعیت های برنامه نویسی سطح بالاتر بازاریابی کنید و برای موقعیت های برنامه نویسی بلادرنگ/جاسازی شده درخواست دهید. پیش نیازها: دانش اولیه زبان برنامه نویسی C (به طور ایده آل پس از اتمام دوره مبتدیان در Udemy). رایانه ای که سیستم عامل مایکروسافت ویندوز، لینوکس یا مک را اجرا می کند. حداقل 4 گیگابایت رم در رایانه شما.

در این دوره چه چیزی یاد خواهید گرفت؟

زبان برنامه نویسی C در سال 2020 هنوز یکی از محبوب ترین و پرکاربردترین زبان ها است. داشتن مهارت های برنامه نویسی C به شما گزینه های شغلی بسیار خوبی می دهد، اما یادگیری زبان C، به ویژه برخی از مسائل پیشرفته پیچیده تر می تواند واقعا دشوار باشد.

این دوره برای ارتقای مهارت های پایه C شما به سطح بعدی و کمک به شما طراحی شده است. شما با کمک به درک مفاهیم پیشرفته زبان برنامه نویسی C بر زبان تسلط پیدا می کنید و به شما امکان می دهد با استفاده از روش های کارآمد و اثبات شده بر هنر حل مسئله در برنامه نویسی مسلط شوید.

می‌آموزید که چگونه کد C با کیفیت بالا بنویسید و خود را برای موقعیت‌های برنامه‌نویسی سطح بالاتر بازاریابی کنید.

فقط برخی از موضوعات این دوره آموزشی عظیم 28 ساعته عبارتند از Threads، Function اشاره گرها، نشانگرهای دوگانه، بازگشت، شبکه با استفاده از سوکت ها، دستکاری بیت، ماکروها، سیگنال ها، کلاس های ذخیره سازی و بارهای دیگر. برنامه درسی موجود در این صفحه را برای جزئیات کامل آنچه در این دوره بسیار جامع گنجانده شده است بررسی کنید.

در پایان این دوره، با مهارت های جدید خود، می توانید برای زمان واقعی درخواست دهید/موقعیت های برنامه نویسی C تعبیه شده یا هر شغلی که نیاز به تسلط بر زبان برنامه نویسی C دارد و بتوانید مهارت های جدید خود را در توسعه برنامه های پیشرفته C خود به کار ببرید.

تفاوت این دوره چیست؟

Jason Fedin مربی شما در این دوره است و این دوره مهارت هایی را که در آن دوره آموخته اید به سطح بعدی می برد.

این دوره بر جزئیات و درک کامل کلیه مفاهیم برنامه نویسی پیشرفته C تمرکز دارد. این فقط یک دوره آموزشی نیست، بلکه یک "چرا؟" است. دوره.

شما یاد خواهید گرفت که چگونه مفاهیم پیشرفته خاص C مانند چند رشته ای و اشاره گرهای دوگانه را پیاده سازی کنید، علاوه بر این یاد خواهید گرفت که چرا آنها بهترین رویکرد هستند و چگونه شما را به یک برنامه نویس C با کیفیت تبدیل می کنند.

مثال‌ها، چالش‌ها و آزمون‌های بسیاری ارائه شده است تا درک شما از هر مفهومی را که یاد گرفته‌اید آزمایش کند.

این دوره از این نظر که جزئیات و چرایی آن برای دوره‌های دیگر اینجا در Udemy منحصربه‌فرد است. توضیح داده می شوند. ما فقط پروژه‌ها را مرور نمی‌کنیم و نحوه انجام آن را ارائه نمی‌دهیم.

هدف این دوره برای چه کسانی است؟

این دوره مبتدی نیست. فرض بر این است که شما دانشی در مورد زبان برنامه نویسی C دارید، ترجیحاً دوره مبتدی ما (اینجا در Udemy) یا آموزش مشابه و/یا تجربه برنامه نویسی تجاری در C یا یک زبان مشابه را گذرانده باشید.

شروع به کار

اگر برای شروع آماده هستید، روی دکمه ثبت نام یا افزودن به سبد خرید در این صفحه کلیک کنید و شروع به ارتقاء مهارت های زبان C خود به سطح بعدی کنید.


سرفصل ها و درس ها

معرفی Introduction

  • به کلاس خوش آمدید! Welcome to Class!

  • سازمان کلاس Class Organization

  • استاندارد C99 The C99 Standard

  • استاندارد C11 The C11 Standard

نصب نرم افزارهای مورد نیاز Installing Required Software

  • بررسی اجمالی Overview

  • نصب کامپایلر C (ویندوز) Installing the C compiler (Windows)

  • نصب کامپایلر C (Mac) Installing the C compiler (Mac)

  • نصب بلوک کد (ویندوز) Installing Code Blocks (Windows)

  • نصب CodeLite (ویندوز) Installing CodeLite (Windows)

  • نصب CodeLite (Mac) Installing CodeLite (Mac)

  • نصب کد ویژوال استودیو (ویندوز) Installing Visual Studio Code (Windows)

  • نصب کد ویژوال استودیو (لینوکس) Installing Visual Studio Code (Linux)

  • نصب کد ویژوال استودیو (مک) Installing Visual Studio Code (Mac)

شروع به نوشتن کد Starting to Write Code

  • کاوش در محیط کد بلوک Exploring the Code Blocks Environment

  • ایجاد پروژه در بلوک های کد Creating a Project in Code Blocks

  • کاوش در محیط کد ویژوال استودیو Exploring the Visual Studio Code Environment

  • ایجاد یک Workspace و پیکربندی کامپایلر در Visual Studio Code Creating a Workspace and configuring the compiler in Visual Studio Code

کار با برنامه های بزرگتر Working with Larger Programs

  • بررسی اجمالی Overview

  • کامپایل چندین فایل منبع از خط فرمان Compiling multiple source files from the command line

  • فایل های ایجاد شده Makefiles

  • ارتباط بین فایل ها Communication between files

  • استفاده موثر از فایل های هدر Using Header files effectively

  • تخصیص حافظه پشته و پشته Heap and Stack Memory Allocation

کلاس های ذخیره سازی Storage Classes

  • متغیرهای خودکار Automatic Variables

  • خارجی External

  • استاتیک Static

  • ثبت نام Register

  • (مسابقه) (Quiz)

  • (چالش) (Challenge)

انواع داده های پیشرفته Advanced Data Types

  • عبارت #define (ثابت) The #define statement (constants)

  • با استفاده از typedef Using typedef

  • آرایه های با طول متغیر Variable Length Arrays

  • (چالش) آرایه های با طول متغیر (Challenge) Variable Length Arrays

  • اعضای آرایه انعطاف پذیر Flexible Array Members

  • (چالش) اعضای آرایه انعطاف پذیر (Challenge) Flexible Array Members

  • انواع اعداد مختلط Complex number types

  • (چالش) انواع اعداد مختلط (Challenge) Complex number types

  • آغازگرهای تعیین شده Designated Initializers

  • (مسابقه) (Quiz)

  • (تظاهرات) راه حل های چالشی (Demonstration) Challenge solutions

نوع واجد شرایط Type Qualifiers

  • پایان const

  • فرار volatile

  • محدود کردن restrict

  • (مسابقه) (Quiz)

دستکاری بیت Bit Manipulation

  • اعداد و بیت های باینری Binary numbers and bits

  • (چالش) اعداد و بیت های باینری (Challenge) Binary numbers and Bits

  • (نمایش) اعداد و بیت های باینری (Demonstration) Binary numbers and Bits

  • عملگرهای بیتی (منطقی) Bitwise Operators (Logical)

  • عملگرهای بیتی (Shifting) Bitwise Operators (Shifting)

  • (چالش) عملگرهای بیتی (Challenge) Bitwise Operators

  • (نمایش) عملگرهای بیتی (Demonstration) Bitwise Operators

  • بیت ماسک ها Bitmasks

  • استفاده از عملگرهای بیت برای بسته بندی داده ها Using Bit Operators to pack data

  • (چالش) تنظیم و خواندن بیت (Challenge) Setting and Reading bits

  • (تظاهرات) تنظیم و خواندن بیت (Demonstration) Setting and Reading bits

  • استفاده از Bit Fields برای بسته بندی داده ها Using Bit Fields to pack data

  • (چالش) استفاده از فیلدهای بیت برای بسته بندی داده ها (Challenge) Using Bit Fields to pack data

  • (نمایش) استفاده از فیلدهای بیت برای بسته بندی داده ها (Demonstration) Using Bit Fields to pack data

  • (مسابقه) (Quiz)

جریان کنترل پیشرفته Advanced Control Flow

  • بیانیه goto The goto statement

  • (چالش) بیانیه goto (Challenge) The goto statement

  • بیانیه صفر The null statement

  • عملگر کاما The comma operator

  • توابع setjmp و longjmp setjmp and longjmp functions

  • (چالش) توابع setjmp و longjmp (Challenge) setjmp and longjmp functions

  • (نمایش) جریان کنترل پیشرفته (Demonstration) Advanced Control Flow

  • (مسابقه) (Quiz)

ورودی و خروجی Input and Output

  • توابع کاراکتر (ورودی) char functions (input)

  • توابع کاراکتر (خروجی) char functions (output)

  • (چالش) توابع کاراکتر (Challenge) char functions

  • (نمایش) توابع کاراکتر (Demonstration) char functions

  • توابع رشته string functions

  • (چالش) توابع رشته (Challenge) string functions

  • (نمایش) توابع رشته (Demonstration) string functions

  • توابع قالب بندی Formatting functions

  • (چالش) توابع قالب بندی (Challenge) Formatting functions

  • (نمایش) توابع قالب بندی (Demonstration) Formatting functions

  • (مسابقه) (Quiz)

مفاهیم عملکرد پیشرفته Advanced Function Concepts

  • توابع متغیر Variadic Functions

  • va_copy va_copy

  • (چالش) توابع متغیر (Challenge) Variadic Functions

  • (نمایش) توابع متغیر (Demonstration) Variadic Functions

  • بازگشت Recursion

  • (چالش) بازگشت (Challenge) Recursion

  • (تظاهرات) بازگشت (Demonstration) Recursion

  • توابع درون خطی Inline Functions

  • _توابع Noreturn _Noreturn Functions

  • (مسابقه) (Quiz)

اتحادیه ها Unions

  • بررسی اجمالی Overview

  • تعریف اتحادیه Defining a Union

  • دسترسی به اعضای اتحادیه Accessing Union Members

  • (چالش) اتحادیه ها (Challenge) Unions

  • (تظاهرات) اتحادیه ها (Demonstration) Unions

  • (مسابقه) (Quiz)

پیش پردازنده The Preprocessor

  • بررسی اجمالی Overview

  • تدوین مشروط Conditional Compilation

  • شامل گاردها و #undef Include guards and #undef

  • #پراگما و #خطا #pragma and #error

  • (مسابقه) (Quiz)

ماکروها Macros

  • بررسی اجمالی Overview

  • ماکروها در مقابل توابع Macros vs. Functions

  • ایجاد ماکروهای خود Creating your own Macros

  • اپراتورهای پیش پردازنده Preprocessor Operators

  • ماکروهای از پیش تعریف شده Predefined Macros

  • (چالش) کلان (Challenge) Macros

  • (تظاهرات) ماکرو (Demonstration) Macros

گزینه های پیشرفته اشکال زدایی، تجزیه و تحلیل و کامپایلر Advanced Debugging, Analysis, and Compiler Options

  • گزینه های کامپایلر GCC (قسمت 1) GCC Compiler Options (part 1)

  • گزینه های کامپایلر GCC (قسمت 2) GCC Compiler Options (part 2)

  • اشکال زدایی با پیش پردازنده Debugging with the preprocessor

  • اشکال زدایی با gdb (قسمت 1) Debugging with gdb (part 1)

  • اشکال زدایی با gdb (قسمت 2) Debugging with gdb (part 2)

  • فایل های اصلی core files

  • پروفایل کردن Profiling

  • تجزیه و تحلیل استاتیک Static Analysis

  • (چالش) (Challenge)

  • (تظاهرات) (Demonstration)

اشاره گرهای پیشرفته Advanced Pointers

  • نشانگرهای دوتایی (نشانگر به یک اشاره گر) Double pointers (pointer to a pointer)

  • نشانگرهای دوگانه (نشانگر به یک اشاره گر) قسمت 2 Double pointers (pointer to a pointer) Part 2

  • (چالش) دو نشانگر (Challenge) Double pointers

  • (تظاهرات) دو نشانگر (Demonstration) Double pointers

  • نشانگرهای تابع Function pointers

  • (چالش) نشانگرهای تابع (Challenge) Function pointers

  • (نمایش) نشانگرهای تابع (Demonstration) Function pointers

  • نشانگرهای خالی void pointers

  • (مسابقه) (Quiz)

کتابخانه های ایستا و اشیاء مشترک Static Libraries and Shared Objects

  • بررسی اجمالی Overview

  • ایجاد کتابخانه ایستا (آرشیو) Creating a Static Library (archive)

  • (چالش) کتابخانه ایستا (Challenge) Static Library

  • (نمایش) کتابخانه ایستا (Demonstration) Static Library

  • ایجاد یک کتابخانه پویا (شیء مشترک) Creating a Dynamic Library (Shared object)

  • (چالش) کتابخانه پویا (Challenge) Dynamic Library

  • (نمایش) کتابخانه پویا (Demonstration) Dynamic Library

  • بارگذاری پویا یک شی مشترک Dynamically loading a shared object

  • (چالش) بارگذاری پویا (Challenge) Dynamic Loading

  • (نمایش) بارگذاری پویا (Demonstration) Dynamic Loading

کتابخانه های مفید C Useful C Libraries

  • ادعا کنید Assert

  • خدمات عمومی (stdlib.h) General Utilities (stdlib.h)

  • خدمات عمومی (stdlib.h) قسمت 2 General Utilities (stdlib.h) part 2

  • ابزارهای عمومی (stdlib.h) قسمت 3 General Utilities (stdlib.h) part 3

  • توابع تاریخ و زمان Date and Time functions

  • (چالش) (Challenge)

  • (تظاهرات) (Demonstration)

  • (مسابقه) (Quiz)

ساختارهای داده Data Structures

  • انواع داده های چکیده Abstract Data Types

  • لیست های پیوندی (نمای کلی) Linked Lists (Overview)

  • لیست های مرتبط (پیاده سازی) Linked LIsts (Implementation)

  • (چالش) لیست های پیوندی (Challenge) Linked Lists

  • (نمایش) لیست های پیوندی (Demonstration) Linked Lists

  • پشته ها (نمای کلی) Stacks (Overview)

  • پشته ها (پیاده سازی) Stacks (Implementation)

  • صف ها (نمای کلی) Queues (Overview)

  • صف (اجرا) Queues (Implementation)

  • درختان باینری (نمای کلی) Binary Trees (Overview)

  • درختان دودویی (پیاده سازی) Binary Trees (Implementation)

  • (مسابقه) (Quiz)

ارتباطات بین فرآیندی و سیگنال ها Interprocess Communication and Signals

  • ارتباطات بین فرآیندی Interprocess Communication

  • سیگنال ها (نمای کلی) Signals (Overview)

  • بالا بردن یک سیگنال Raising a Signal

  • مدیریت یک سیگنال با استفاده از عملکرد سیگنال Handling a Signal using the signal function

  • مدیریت سیگنال با استفاده از سیگاکشن Handling a Signal using sigaction

  • فراخوانی سیستم fork(). The fork() system call

  • (چالش) (Challenge)

  • (تظاهرات) (Demonstration)

موضوعات Threads

  • بررسی اجمالی Overview

  • ایجاد یک موضوع Creating a thread

  • ارسال آرگومان ها و برگرداندن مقادیر Passing arguments and returning values

  • توابع Thread مشترک Common Thread functions

  • مفاهیم همگام سازی موضوع Thread Synchronization Concepts

  • Mutexes Mutexes

  • متغیرهای شرط Condition Variables

  • (چالش) (Challenge)

  • (تظاهرات) (Demonstration)

  • (مسابقه) (Quiz)

شبکه (سوکت) Networking (Sockets)

  • بررسی اجمالی Overview

  • Socket API The Socket API

  • ایجاد سوکت سرور Creating a Server Socket

  • ایجاد سوکت مشتری Creating a Client Socket

  • (چالش) (Challenge)

  • (تظاهرات) (Demonstration)

نتیجه Conclusion

  • خلاصه دوره Course Summary

اطلاعات اضافی - کد منبع و موارد دیگر Extra Information - Source code, and other stuff

  • کدهای منبع Source Codes

  • سخنرانی و اطلاعات پاداش Bonus Lecture and Information

نمایش نظرات

آموزش دوره برنامه نویسی C پیشرفته
جزییات دوره
28 hours
169
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
26,429
4.4 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Tim Buchalka's Learn Programming Academy Tim Buchalka's Learn Programming Academy

برنامه نویسان و معلمان حرفه ای - 1.75 میلیون دانش آموز

Jason Fedin Jason Fedin

مدرس/توسعه دهنده نرم افزار