آموزش تسلط بر مهارت های مهم برای برنامه نویسی مصاحبه های C++: قسمت 1

Mastering critical SKILLS for Coding Interviews C++: Part 1

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: بخش ساختارهای داده: حل متداول ترین مسائل مصاحبه FAANG از LeetCode مهارت های حل مسئله خود را تقویت کنید بیش از 70 سطح متوسط ​​مشکلات مصاحبه مکرر احتمال مشاهده مشکلات مشابه در مصاحبه را افزایش دهید چندین نکته نه فقط کل راه حل بعد از دوره: سایر موارد ~100 مسئله برای حل خود شما ارائه شده است کدهای فشرده به خوبی نوشته شده 2 سبک آموزشی: سبک کلاسیک مبتنی بر موضوعات و سبک مبتنی بر کور (دوی سرعت 10 مسئله) نیازها: شرکت در دوره برنامه نویسی با کیفیت بالا شرکت با کیفیت بالا دوره ساختارهای داده شرکت در دوره الگوریتم با کیفیت بالا

به یکی از دوره های منحصر به فرد و ویژه مصاحبه های کدنویسی خوش آمدید.


این دوره در مورد حل مسئله الگوریتمی برای مشکلات عمدتاً از وب سایت Leetcode است. به طور خاص، مشکلات مصاحبه مکرر سطح متوسط. هدف این دوره تقویت مهارت های حل مسئله برای کمک به شما در مصاحبه های کدگذاری ACE از شرکت های FAANG است. در طول دوره، نه تنها یک مشکل و راه حل آن به شما ارائه می شود، بلکه یک سری نکات و رویکردهای فکری برای مقابله با مشکلات ارائه می شود.


من در این دوره ساختار داده یا الگوریتم تدریس نمی کنم. شما باید این دوره ها را از منابع باکیفیت مطالعه کنید و بسیاری از مشکلات را حل کنید تا مهارت های اساسی حل مسئله را به دست آورید. مشکلات این دوره در حد متوسط ​​است. بدون پیش زمینه و مهارت های مناسب، یادگیری مطالب سخت خواهد بود.


محتوای قسمت 1

  • بخش اول ساختارهای داده را پوشش می دهد:

    • آرایه ها: مجموع پیشوند، پنجره کشویی (اندازه ثابت و متغیر) 2 نشانگر، و جایگشت.

      • آموزش‌ها فقط برای این موضوعات ارائه شده‌اند، زیرا در دوره‌های DSA پوشش داده نمی‌شوند.

    • رشته

    • ماتریس

    • صف پشته و اولویت

    • فهرست پیوند شده و درختان باینری

    • جدول هش

  • حوزه موضوعات: پوشش مصاحبه.

    • توجه: از شما انتظار می‌رود که مشکلات پیاده‌سازی این موضوعات را در طول دوره ساختار داده حل کنید. به عنوان مثال، معکوس کردن یک لیست پیوندی یک سؤال رایج در مصاحبه است. من آن را پوشش نمی دهم. این عمدتا یک کار اجرایی است. برای مشکلات اصلی DFS درختی باینری نیز همینطور است. من چنین سوالاتی را در درس ساختار داده و الگوریتم های خود پوشش می دهم. این دوره در مورد چالش های حل مسئله است.

  • اگرچه تمرکز این بخش بر روی ساختارهای داده است، اما همچنان پیشینه شما در الگوریتم ها مورد نیاز است.

    • مهم: پیچیدگی، بازگشت و مرتب سازی

    • کوچک: چند بار به موارد زیر اشاره می کنم: جستجوی دودویی، تقسیم و تسخیر و برنامه نویسی پویا

    • به طور کلی، بیشتر مشکلات به مهارت های الگوریتمی جدی نیاز دارند


سطح دوره:

  • بیشتر مشکلات این دوره سطح Leetcode MEDIUM است که 85 تا 90 درصد سوالات واقعی مصاحبه را نشان می دهد.

  • برای مؤثرتر بودن، طبق وب‌سایت LeetCode، سؤالات عمدتاً متداول‌ترین سؤالات مصاحبه هستند.

  • این یعنی؛ علاوه بر به دست آوردن مهارت های حل مسئله، شانس ملاقات با مشکلاتی را که قبلاً در مصاحبه ها حل کرده اید، افزایش می دهید!

  • بدون مهارت های پیش زمینه مناسب ⇒ یادگیری این دوره سخت خواهد بود


پیش نیازها:

  • مهارت های برنامه نویسی قوی دانش/مهارت های DSA (از 3 دوره)

    • یک دوره برنامه نویسی با کیفیت بالا شامل:

      • پوشش خوب برای برنامه نویسی + تمرین های زیاد در مورد موضوعات آموخته شده

      • درک/استفاده صحیح از الگوریتم‌های داخلی/DS (مانند C++ STL/مجموعه‌های جاوا)

      • اختیاری: چندین پروژه برای راحت بودن با کدنویسی طولانی

    • یک دوره آموزشی ساختار داده با کیفیت بالا: پوشش خوب + تمرینات زیاد

    • یک دوره آموزشی الگوریتم‌های با کیفیت بالا: پوشش خوب + تمرین‌های زیاد

    • این بدان معناست: شما قبلاً موارد زیادی را حل کرده و کدنویسی کرده اید. زمان حرکت به سمت چالش های متوسط ​​فرا رسیده است.

      • اگر مهارت های اساسی حل مسئله را ندارید به این دوره نپیوندید


زبان برنامه نویسی دوره

  • همه کدهای اسلایدها بر اساس C++

    هستند
    • عمدتاً C++11. من قصد دارم از C++

      بسیار مدرن استفاده نکنم
      • بسیاری از افراد بعد از C++11 مطالعه نمی کنند

      • درک کد برای سایر زبان های برنامه نویسی آسان تر خواهد بود

    • کد ++C بسیار شبیه به جاوا و سی شارپ است. تا حد زیادی شبیه جاوا اسکریپت.

  • برگه بحث LeetCode راه حل هایی برای بسیاری از زبان های دیگر دارد

    • 80٪ از مشکلات: راه حل های برخی از زبان های دیگر (پایتون، جاوا) را دانلود خواهم کرد.

      • قول نیست، اما چند بار دانلود برای جاوا اسکریپت و چند سی شارپ

      • هنگامی که کد دانلود می شود، انتظار تفاوت در ساختار کد را داشته باشید. ابتدا باید سخنرانی را به طور کامل درک کنید.


دوره زبان طبیعی:

  • این دوره فقط به زبان انگلیسی با لهجه مصری است

  • زیرنویس‌های انگلیسی برای آسان‌تر کردن آن در صورت وجود ارائه شده است. تطبیق لهجه مصری

    آسان است


چرخه حل مسئله ویدیوها:

  • ارائه مشکل

  • تأیید مفروضات و موارد آزمایشی

  • تلاش برای ایجاد بی رحمانه مشکل

  • در صورت امکان، نیروی بی رحم را بهینه کنید

  • یا تجزیه و تحلیل مشکل و موارد آزمایش

  • چند نکته تکراری ارائه شده است. یک کلید آموزشی گم شده در منابع دیگر

  • کدهای خوب نوشته شده.


2 سبک آموزشی با مواد امکان پذیر است.

  • یک سبک مبحث محور که در آن بر یک موضوع خاص تمرکز می کنید و بسیاری از مشکلات آن را حل می کنید. این سبک یک نقطه ضعف بزرگ دارد. شما دسته راه حل را می شناسید (مثلاً یک مشکل پشته)، که یک راهنمایی بزرگ است.

  • یک سبک مبتنی بر کور که در آن مشکلات سرعتی ارائه می شود. هر اسپرینت 10 مشکل برای حل دارد.

    • شما دسته مشکل را نمی دانید.

    • این تجربه تطبیق بیشتری با تجربه مصاحبه واقعی دارد.

    • این سبک توصیه شده است.

  • بعد از دوره، مشکلات بیشتری در اختیار شما قرار می‌گیرد که می‌توانید به تنهایی حل کنید تا مهارت‌های خود را افزایش دهید.

    • شما باید خیلی چیزها را حل کنید تا شانس خود را برای قبولی در مصاحبه ها افزایش دهید.


نام مشکل با

شروع می شود
  • E برای سطح آسان از 1 تا 3

  • M برای سطح متوسط ​​از 4 تا 7

  • H برای سطح سخت از 8 تا 10

تشکر و قدردانی: "مایلم از رابرت بوگان برای کمک او در تصحیح اسلایدهای این دوره تشکر کنم"


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

شروع شدن Getting Started

  • پیش نیازها Prerequisites

  • استفاده موثر از دوره 1 Effective usage of the course 1

  • استفاده موثر از دوره 2 Effective usage of the course 2

  • داور آنلاین - LeetCode Online Judge - LeetCode

  • زبان های پشتیبانی شده و تبدیل زبان ها Supported Languages and Languages Conversions

  • منابع و جامعه دانشجویی Resources and Students Community

  • یادداشت مهم Important Note

چرخه حل مسئله Problem-Solving Cycle

  • درک مشکل Problem Understanding

  • موارد آزمون Test Cases

  • بی رحمانه آن را به زور Brute-force it

  • به سوی راه حل مورد نظر Toward Intended Solution

  • کد و تست Code & Test

  • تحلیل پیچیدگی Analyze Complexity

  • بیایید با یک مشکل مقابله کنیم - دو مجموع Let's tackle a problem - Two Sum

دوره های سرعت حل مسئله Course Problem-Solving Sprints

  • اسپرینت چیست و چرا What and Why Sprints

  • سرعت 1 Sprint 1

  • اسپرینت 2 Sprint 2

  • اسپرینت 3 Sprint 3

  • اسپرینت 4 Sprint 4

  • اسپرینت 5 Sprint 5

  • اسپرینت 6 Sprint 6

  • اسپرینت 7 Sprint 7

  • اسپرینت 8 Sprint 8

آرایه ها: پیشوند Sum Arrays: Prefix Sum

  • آموزش - مشکلات آرایه Tutorial - Array Problems

  • آموزش - پیشوند جمع Tutorial - Prefix Sum

  • E3 مشکل شماره 1 E3 Problem #1

  • M5 مسئله شماره 2 A M5 Problem #2 A

  • M5 مسئله شماره 2 B M5 Problem #2 B

  • M5 مسئله شماره 2 C M5 Problem #2 C

آرایه ها: پنجره کشویی Arrays: Sliding Window

  • آموزش - پنجره کشویی با اندازه ثابت Tutorial - Fixed-size Sliding Window

  • E3 مشکل شماره 1 E3 Problem #1

  • آموزش - پنجره کشویی با اندازه متغیر 1 Tutorial - Variable-size Sliding Window 1

  • آموزش - پنجره کشویی با اندازه متغیر 2 Tutorial - Variable-size Sliding Window 2

  • آموزش - پنجره کشویی با اندازه متغیر 3 Tutorial - Variable-size Sliding Window 3

  • M4 مسئله شماره 2 A M4 Problem #2 A

  • مشکل M4 شماره 2 ب M4 Problem #2 B

  • M6 مسئله شماره 3 A M6 Problem #3 A

  • M6 مسئله شماره 3 ب M6 Problem #3 B

  • M6 مسئله شماره 3 C M6 Problem #3 C

آرایه ها: 2-نشانگر Arrays: 2-Pointers

  • آموزش - 2-نقاط Tutorial - 2-Pointers

  • E2 مشکل شماره 1 E2 Problem #1

  • M4 مشکل شماره 2 M4 Problem #2

  • M5 مشکل شماره 3 M5 Problem #3

  • M6 مشکل شماره 4 M6 Problem #4

  • M7 مشکل شماره 5 M7 Problem #5

  • M7 مشکل شماره 5 - به روز رسانی M7 Problem #5 - Update

  • M5 مشکل شماره 6 M5 Problem #6

  • M5 مسئله شماره 6 B M5 Problem #6 B

  • M6 مشکل شماره 7 M6 Problem #7

آرایه ها: Ad-hoc Arrays: Ad-hoc

  • E3 مشکل شماره 1 E3 Problem #1

  • M5 مشکل شماره 2 M5 Problem #2

  • آموزش - جایگشت 1 Tutorial - Permutations 1

  • آموزش - جایگشت 2 Tutorial - Permutations 2

  • H8 مسئله شماره 3 A H8 Problem #3 A

  • H8 مسئله شماره 3 ب H8 Problem #3 B

رشته String

  • E2 مشکل شماره 1 E2 Problem #1

  • E2 مشکل شماره 2 E2 Problem #2

  • M4 مشکل شماره 3 M4 Problem #3

  • M4 مشکل شماره 4 M4 Problem #4

  • M4 مشکل شماره 5 M4 Problem #5

  • M5 مشکل شماره 6 M5 Problem #6

  • M6 مشکل شماره 7 M6 Problem #7

ماتریس Matrix

  • M5 مشکل شماره 1 M5 Problem #1

  • M6 مسئله شماره 2 A M6 Problem #2 A

  • M6 مسئله شماره 2 B M6 Problem #2 B

  • M6 مسئله شماره 3 A M6 Problem #3 A

  • M6 مسئله شماره 3 ب M6 Problem #3 B

  • M5 مشکل شماره 4 M5 Problem #4

  • M4 مشکل شماره 5 M4 Problem #5

  • M5 مسئله شماره 6 A M5 Problem #6 A

  • M5 مسئله شماره 6 B M5 Problem #6 B

پشته Stack

  • E3 مشکل شماره 1 E3 Problem #1

  • E3 مشکل شماره 2 E3 Problem #2

  • M5 مشکل شماره 3 M5 Problem #3

  • M6 مشکل شماره 4 M6 Problem #4

  • M6 مشکل شماره 5 M6 Problem #5

  • M6 مشکل شماره 6 M6 Problem #6

  • M6 مسئله شماره 7 A M6 Problem #7 A

  • M6 مسئله شماره 7 B M6 Problem #7 B

  • M7 مسئله شماره 8 A M7 Problem #8 A

  • M7 مسئله شماره 8 ب M7 Problem #8 B

صف اولویت Priority Queue

  • M5 مشکل شماره 1 M5 Problem #1

  • M6 مسئله شماره 2 A M6 Problem #2 A

  • M6 مسئله شماره 2 B M6 Problem #2 B

  • M7 مشکل شماره 3 M7 Problem #3

  • M6 مسئله شماره 4 A M6 Problem #4 A

  • M6 مسئله شماره 4 ب M6 Problem #4 B

  • M5 مسئله شماره 5 A M5 Problem #5 A

  • M5 مسئله شماره 5 B M5 Problem #5 B

  • M7 مسئله شماره 6 A M7 Problem #6 A

  • M7 مسئله شماره 6 B M7 Problem #6 B

لیست پیوند شده Linked List

  • E3 مشکل شماره 1 E3 Problem #1

  • M4 مسئله شماره 2 A M4 Problem #2 A

  • مشکل M4 شماره 2 ب M4 Problem #2 B

  • M4 مشکل شماره 3 M4 Problem #3

  • M5 مسئله شماره 4 A M5 Problem #4 A

  • M6 مسئله شماره 4 ب M6 Problem #4 B

  • M6 مسئله شماره 4 C M6 Problem #4 C

  • مشکل M6 شماره 4 D M6 Problem #4 D

  • M5 مشکل شماره 5 M5 Problem #5

  • M6 مسئله شماره 6 A M6 Problem #6 A

  • M6 مسئله شماره 6 B M6 Problem #6 B

  • M6 مسئله شماره 7 A M6 Problem #7 A

  • M6 مسئله شماره 7 B M6 Problem #7 B

درخت دودویی Binary Tree

  • M5 مشکل شماره 1 M5 Problem #1

  • M5 مشکل شماره 2 M5 Problem #2

  • M6 مسئله شماره 3 A M6 Problem #3 A

  • M6 مسئله شماره 3 ب M6 Problem #3 B

  • M6 مسئله شماره 4 A M6 Problem #4 A

  • M6 مسئله شماره 4 ب M6 Problem #4 B

  • M6 مسئله شماره 4 C M6 Problem #4 C

  • M5 مسئله شماره 5 A M5 Problem #5 A

  • M5 مسئله شماره 5 B M5 Problem #5 B

  • M5 مسئله شماره 5 C M5 Problem #5 C

  • M5 مشکل شماره 5 D M5 Problem #5 D

  • M6 مشکل شماره 6 M6 Problem #6

  • M7 مسئله شماره 7 A M7 Problem #7 A

  • M7 مسئله شماره 7 B M7 Problem #7 B

  • H8 مشکل شماره 8 H8 Problem #8

جدول هش Hash Table

  • M5 مسئله شماره 1 A M5 Problem #1 A

  • M5 مسئله شماره 1 B M5 Problem #1 B

  • M5 مسئله شماره 1 C M5 Problem #1 C

  • M7 مسئله شماره 2 A M7 Problem #2 A

  • M7 مسئله شماره 2 B M7 Problem #2 B

  • M7 مسئله شماره 3 A M7 Problem #3 A

  • M7 مسئله شماره 3 ب M7 Problem #3 B

  • M7 مسئله شماره 3 C M7 Problem #3 C

  • M7 مسئله شماره 3 D M7 Problem #3 D

  • M7 مسئله شماره 3 E M7 Problem #3 E

  • H8 مشکل شماره 4 H8 Problem #4

  • M6 مسئله شماره 5 A M6 Problem #5 A

  • M6 مسئله شماره 5 B M6 Problem #5 B

  • M6 مشکل شماره 6 M6 Problem #6

اسپرینت های حل مسئله بعد از دوره AfterCourse Problem-Solving Sprints

  • یادداشت های مهم Important Notes

  • سرعت 1 Sprint 1

  • اسپرینت 2 Sprint 2

  • اسپرینت 3 Sprint 3

  • اسپرینت 4 Sprint 4

  • اسپرینت 5 Sprint 5

  • دوی سرعت 6 Sprints 6

  • دوی سرعت 7 Sprints 7

  • اسپرینت 8 Sprint 8

  • اسپرینت 9 Sprint 9

  • اسپرینت 10 Sprint 10

متشکرم Thank You

  • جایزه Bonus

نمایش نظرات

آموزش تسلط بر مهارت های مهم برای برنامه نویسی مصاحبه های C++: قسمت 1
جزییات دوره
17.5 hours
145
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,846
4.8 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Mostafa Saad Ibrahim Mostafa Saad Ibrahim

مربی ، مهندس نرم افزار ، دانشمند ، مربی رقابتی من برای بسیاری از دانشجویان در زمینه علوم کامپیوتر و برنامه نویسی رقابتی در حال آموزش ، آموزش و مربیگری بوده ام. من در مسابقات برنامه نویسی ICPC 2005-2011 شرکت کردم (رتبه 3/2/2 در ACMC ICPC منطقه ای و فینالیست جهانی در 2011). پس از آن ، من نقش هایی مانند مسابقه دهنده ، مربی ، مشکل ساز ، داور و قاضی ارشد را بازی کردم. علاوه بر این ، من ترکیبی از تجربه در مهندسی نرم افزار ، تحقیقات هوش مصنوعی / بینایی رایانه و طراحی الگوریتم ها را دارم. من دکتري هستم دارنده دانشگاه Simon Fraser در کانادا. برای کسب اطلاعات بیشتر در مورد سوابق من ، به نمایه Linkedin من مراجعه کنید.

CSGetSkilled Academy CSGetSkilled Academy

دوره های CS با کیفیت بالا با تمرین فشرده