algorithm interview mafia – Telegram
algorithm interview mafia
1.42K subscribers
50 photos
30 videos
1 file
12 links
اینجا قرار با هم برای مصاحبه های الگوریتمی اماده شیم ^^
توضیحات کامل دوره رو از اینجا میتونی بخونی
https://docs.google.com/document/d/1235El4FzZMA5UHviUWJ0eEN2zLl3cWpliLRTGj6-j2E/edit?usp=sharing
Download Telegram
48👍9
26👍5
22👍5
17👍3
——————————-
این ویدیو دو تا نکته مهم داشت. اول خیالمون رو از بابت زبونی که داره باهاش کد میزنه راحت کرد. اینطوری بود که درسته که داریم با JS کد میزنیم اما یادتون باشه ما داریم مباحث پایه ای علوم کامپیوتر رو مرور میکنیم و خیلی کاری به سینتکس و استفاده از ویژگی های خاص هر زبون نداریم! کلا با حلقه ها و شروط و متغیر این ابزار های اولیه کار میکنیم پس نگران بلد نبودن زبون نباشید. از طرفی میتونی به این لینک ها ( فایلش رو در ادامه اپلود کردم ) مراجعه کنی که اومدن همه کد های دوره رو به زبون های دیگه هم بازنویسی کردن

چندتا محیط ساده برای کد زدن و اجرای الگوریتم هامون هم معرفی می کنه

replit.com
glot.io
Chrome console
text editor ( like vsCode )

#day1
@algorithm_interview
1
12👍3
11👍3
11👍3
————————————
اینجا شاهد یه شروع نیمچه طوفانی از مبحث Big O هستیم😂
قرار یکم مشتقامون کنه که چرا Big O مهم هست. اخه واقعا هم خیلی موضوع مهمی هست و یجورایی پایه خیلی چیزا توی این دوره خواهد بود. چه شرکت های خفنی مثل گوگل و امازون و متا و ... چه شرکت های ناخفن :)) همه از این مبحث تو سوالای مصاحبه های الگوریتمی میپرسن! چرا ؟ چون اخه در طول روز و زمانی که داری یه الگوریتمی برای حل مسئله میدی با دونستنش میتونی الگوریتم های داغون و اشغال رو از زیبارویان و دلبران جدا کنی 😌

ایده اینه که انقدر درموردش صحبت کنیم و مرورش کنیم که وقتی تو مصاحبه ازت پرسیدی اینطوری باشی که " بیگ او ؟؟ من خداااشم😎 هرچی میخوای بپرس "

#day1
@algorithm_interview
👍102
👍141
——————————————
به چه کدی میگیم "کد خوب" ؟

کدی که دو تا ویژگی مهم داشته باشه
1- خوانایی
2- اسکیل پذیری (مقیاس پذیری)

اینجاست که Big O بدردمون میخوره. چون با کمکش میتونیم بفهمیم که کدمون اسکیل پذیر هست یا نه ؟

در ادامه برامون یه مثال از کیک پزی میزنه 😋. میگه برای اینکه بخوایم یه کیک بپزیم خب تو قدم اول به یه دستور پخت نیاز داریم. قدم به قدم از روش میریم جلو و تو محیط اشپزخونه بعد از طی یه مدت زمانی کیکمون رو میپزیم و بووووم. کیکمون اماده است! حالا برنامه نویسی هم خیلی شبیه این دنیاست. اون برنامه ای که داریم منویسیم همون دستور پخته. کامپیوتر همون محیطی هست که توش برنامه مون رو میپزیم و در نهایت هم میرسیم به خروجی

امااااااااا !

همونطور که برای پختن کیک یه دستور پخت واحد نداریم. برای رسیدن به یه خروجی واحد هم یه برنامه مشخص نداریم و میشه از راه های مختلف برنامه مون رو حل کرد. حالا نکته اصلی اینجاست که کدوم برنامه مارو در زمان کمتر و راحت تر به نتیجه میرسونه ؟ کدوم دستور پخت هست که اگر بخوایم شیرینی فروشی بزنیم، هم سریع تر و هم ارزون تر مارو به کیک میرسونه و مخصوصا اگر بخوایم کلللللی کیک بپزیم ! اینجاست که big O کمک میکنه بتونیم بهترین دستور پخت رو انتخاب کنیم!

#day1
@algorithm_interview
👍172
👍151
👍111
👍111
—————————————-
algorithm interview mafia
Photo
این ویدیو خیلی بمب شروع میشه. میخواد بهمون نشون بده که کجا بدون Big O گیر میکنیم. میاد یه کد خیلی ساده میزنه. یه حلقه تعریف میکنه که میاد روی یه ارایه پیمایش میکنه تا ببینه که خونه ای از این ارایه وجود داره که مقدار داخل "nemo" باشه یا نه ؟

میاد با کمک یه متد JS مدت زمان اجرای این کد رو اندازه میگیره. جالبه که هربار کد رو اجرا میکنه ، مدت زمان اجرای همون قطعه کد با همون ورودی متفاوت هست ( راستی این داستان ربطی به زبان برنامه نویسی هم نداره). و یه سوال باحال میپرسه 👀

میگه دوستم اقا داوود بهم زنگ زده و گفته که اونم یه برنامه نوشته مشابه برنامه من که همین خروجی رو میده منتها برخلاف برنامه من که 3 ثانیه طول میکشه، مال اون 1 ثانیه طول میکشه. حالا میتونیم بگیم برنامه داوود بهتر از مال منه ؟

واقعیت تلخ اینه که نه 😂
وقتی داریم طول مدت اجرا رو اندازه میگیرم. خطای بزرگمون اینه که محیط اجرامون و کلللی پارامتر دیگه رو حساب نمی‌کنیم. مثلا ممکنه راه حل داوود خیلی اشغال باشه ولی داره روی یه cpu شونصد هسته ای نسل اخر اجراش میکنه ولی مال من رو یه cpu تک هسته ای ده سال پیش. حالا اتفاق باحال اینه که تقریبا همیشه خدا اون کدی که ما برنامه نویس ها داریم میزنیم رو داریم روی کامپیوتر خودمون اجرا میکنیم درحال که نسخه نهایی روی سروری با مشخصات متفاوت اجرا میشه!

حالا اینجاااا ما نیاز به یک روش سنجش داریم که نه تنها بتونیم دو تا الگوریتم و راه حل رو با خطای خیلی کم با هم مقایسه کنیم، بلکه بتونیم پیش بینی کنیم در scale های بزرگ تر که مثلا قرار کللللللی چیز رو پردازش کنیم. الگوریتم و راه حلمون توی اون شرایط چطوری عمل میکنه ؟

حالا اینجاست که میتونیم تعریف کنیم Big O چیه و چطوری بهمون کمک میکنه که پیشنهاد میکنم حتما ویس هام برای ایم ویدیو رو یدور گوش کنی ☺️

#day1
@algorithm_interview
👍101