Table of Contents
تعیین اهداف و محدودیت های زمان
قبل از شروع هر جلسه برنامه نویسی، اهداف خاص و قابل اندازه گیری را به جای یک هدف مبهم مانند الگوریتم های عمل تعریف کنید، آن را تجزیه کنید: سه مشکل آرایه ای متوسط را در عرض 25 دقیقه حل کنید یا یک مشکل برنامه نویسی پویا را در کمتر از 40 دقیقه کامل کنید. اهداف پاک کننده عمل شما را متمرکز نگه می دارند و از سرگردانی در مجموعه های مشکل جلوگیری می کنند.
به همان اندازه مهم است که محدودیت های زمانی دقیق را تنظیم کنید. بسیاری از مهندسان مشتاق در تنظیمات زمان شکست می خورند نه به این دلیل که نمی توانند مشکل را حل کنند، بلکه به این دلیل که زمان خود را بر روی جزئیات غیر ضروری هدر می دهند، از تایمر شمارش معکوس برای هر مشکل استفاده می کنند و آن را به عنوان یک مهلت سخت درمان می کنند، این نظم و انضباط مغز شما را به طور موثر تخصیص می دهد.
انتخاب محیط مناسب تمرین
تنظیمات فیزیکی و دیجیتال شما به طور مستقیم بر عملکرد شما تأثیر می گذارد. Mimic Real Test Conditions تا حد امکان به طور دقیق.استفاده از یک فضای کاری تمیز با حداقل صدا. خاموش کردن اعلان های تلفن، زبانه های مرورگر نزدیک و غیر مرتبط و غیرفعال کردن Slack یا ایمیل.
یک پلتفرم برنامه نویسی را انتخاب کنید که تایمر های داخلی و بازخوردهای زنده را ارائه می دهد. LeetCode و ، مسابقات زمان بندی شده و مصاحبه های مسخره ای را ارائه می دهد که به دقت محیط های ارزیابی واقعی را شبیه سازی می کنند.
تمرین با مشکلات واقعی
با مشکلاتی که با سطح مهارت فعلی شما مطابقت دارند شروع کنید.اگر برای مصاحبه های فنی آماده می شوید (به عنوان مثال، FAANG)، روی موضوعات متداول مورد سوال تمرکز کنید: آرایه ها، رشته ها، نقشه های هش، درختان، نمودارها، برنامه نویسی پویا و بازگشت به آن ها، از پریدن به مشکلات بسیار سخت اجتناب کنید؛ این می تواند اعتماد به نفس و زمان هدر رفتن را به تدریج افزایش دهد.
هنگام انتخاب مشکلات، اولویت بندی کسانی که نیاز به تفکر انتقادی و انتخاب الگوریتم دارند، از مشکلات ناچیزی که می تواند با نیروی بی رحم در دو دقیقه حل شود، اجتناب کنید.یک مشکل خوب تمرین زمان باید شما را مجبور کند تا بین پیچیدگی زمان، پیچیدگی فضا و خوانایی، به عنوان مثال، مشکلی که از شما می خواهد برای پیدا کردن طولانی ترین زیرمجموعه بدون تکرار شخصیت ها می تواند با یک راه حل کشویی (O2) حل ساده لوحی (O2) حل ساده لوحی ساده لوحی که در آن ها شکست می دهد.
استفاده از آزمون های گذشته و Mock
هیچ چیز شما را مانند یک شبیه سازی کامل از امتحان واقعی آماده نمی کند، بسیاری از سیستم عامل ها مشکلات رقابت گذشته یا سوئیت های مصاحبه مسخره را ارائه می دهند. تنظیم یک تایمر برای مدت دقیق آزمون هدف خود و تکمیل مجموعه ای کامل از مشکلات بدون هیچ وقفه پس از جلسه، بررسی هر راه حل - هر دو درست و نادرست.
در طول بررسی، از خودتان بپرسید: وقت خود را تلف کردم؟ آیا من بیش از حد به فکر کردن در مورد مشکل کردم؟ آیا من به دلیل نا آشنای زبان خیلی آهسته کد زدم؟ از این بینش ها برای تنظیم استراتژی خود استفاده کنید، به عنوان مثال، اگر متوجه شدید که همیشه پنج دقیقه اول را دوباره خواندن سریع، خودتان را برای استخراج محدودیت های کلیدی در کمتر از یک دقیقه صرف می کنید.
استراتژی های مدیریت زمان کارشناسی ارشد
مدیریت زمان موثر فراتر از تنظیم تایمر است.یاد بگیرید که زمان خود را عاقلانه در یک مشکل واحد اختصاص دهید.یک قاعده رایج که در مصاحبه های برنامه نویسی استفاده می شود قانون 5 دقیقه ای است: 5 دقیقه اول را صرف درک مسئله و برنامه ریزی سطح بالا کنید - هنگامی که یک برنامه روشن دارید، کد 15 تا 20 دقیقه، سپس 5 تا 10 دقیقه آخر را برای تست و اشکال زدایی صرفه جویی کنید اگر به یک راه حل جدید ضربه بزنید - اغلب از اینکه یک راه حل ناقص است و شروع کنید، شروع کنید، شروع کنید، و شروع به کار کنید.
اولویت بندی مشکلات با دشواری
در یک آزمایش چند منظوره (مانند یک هکر یا یک دور برنامه نویسی رقابتی)، به سرعت تمام مشکلات را اسکن کنید.این اولین بار برای ایمن کردن نقاط و ایجاد حرکت، سپس به مشکلات سخت تر حرکت کنید.این استراتژی مانع از خرج کردن ۴۰ دقیقه در یک مشکل سخت در حالی که نقاط آسان روی میز باقی می ماند.
استفاده از تکنیک “دو-Pass”
برای مشکلات پیچیده، رویکرد دو جانبه را در نظر بگیرید: ابتدا یک راه حل brute-force را پیاده سازی کنید که به درستی کار می کند، حتی اگر زمان اجازه دهد، آن را بهینه سازی کنید، داشتن یک راه حل کار (اما کند) بسیار بهتر از یک راه حل ناتمام است.در مصاحبه ها گاهی اوقات مصاحبه کنندگان یک نیروی مناسب را می پذیرند و سپس در مورد بهینه سازی های کلامی، صرفه جویی در زمان کد گذاری ارزشمند بحث می کنند.
آمادگی ذهنی و کنترل فشار
محیط های زمان باعث استرس می شوند که می تواند عملکرد شناختی را کاهش دهد، آماده سازی ذهنی را در روتین خود ترکیب کند. تمرین تمرینات تنفسی عمیق یا مدیتیشن ذهن آگاهی کوتاه قبل از هر جلسه.
تکنیک دیگر شبیه سازی فشار دقیق با تمرین با فشار خارجی است، مانند داشتن یک دوست که شما را کد می بیند یا استفاده از یک وب سایت برای ضبط خود.هر چه بیشتر شما خودتان را در معرض احساس تماشا قرار دهید، مصاحبه واقعی کمتر ترسناک خواهد بود.
توسعه یک Pre-Session Ritual
یک مراسم سازگار قبل از هر جلسه زمانی ایجاد کنید: چند راهنمایی سریع را بررسی کنید، به یک آهنگ انرژی زا گوش دهید یا یک مشکل گرم سازی بی اهمیت را حل کنید، این مراسم به مغز شما نشان می دهد که وارد حالت فوکوس شود.این یک تمرین مشترک در میان ورزشکاران حرفه ای و نوازندگان است و به خوبی ترجمه می کند.
نقد و بررسی عمیق
بررسی پس از جلسه جایی است که رشد واقعی برای هر مشکل اتفاق می افتد، به پایین:
- کجا گیر کردم؟
- اول چه رویکردی را امتحان کردم؟ آیا این کار بهینه بود؟
- آیا خطایی بی دقت مرتکب شده ام؟
- آیا پرونده های حاشیه ای ( ورودی خالی، اعداد بزرگ و غیره) را اداره می کنم؟
- چقدر وقت صرف اشکال زدایی در مقابل نوشتن کد جدید کردم؟
از یک صفحه گسترده یا یک مجله برای ردیابی این معیارها در طول زمان استفاده کنید، بعد از 10 تا 20 جلسه، الگوهای ظاهر می شوند.به عنوان مثال، ممکن است متوجه شوید که شما به طور مداوم 5 دقیقه به دلیل نامگذاری متغیر ضعیف از دست می دهید یا اغلب فراموش می کنید که ورودی های null را به طور خاص در بلوک بعدی خود کنترل کنید.
یادگیری از راه حل های رسمی و بحث ها
پس از حل یک مشکل، راه حل خود را با سرمقاله رسمی و راه حل های جامع رتبه بالا مقایسه کنید. توجه به سبک برنامه نویسی، انتخاب الگوریتم و مدیریت لبه را بررسی کنید.اگر تکنیک ای را که نمی دانید، آن را در انزوا قبل از جلسه بعدی خود مطالعه کنید، این یادگیری هدفمند به سرعت شکاف ها را پر می کند.
ثابت بمانید و به تدریج افزایش سختی
سازگاری بیش از شدت است.یک جلسه تمرین روزانه 30 دقیقه ای برای پنج روز در هفته نتایج بهتری نسبت به یک ماراتن چهار ساعته در تعطیلات آخر هفته ایجاد می کند. جلسات خود را در همان زمان برای ساخت یک عادت برنامه ریزی کنید.استفاده از تقویم یا یک برنامه پیگیری عادت برای پاسخگویی به خودتان.
همانطور که راحت می شوید، به تدریج چالش را افزایش دهید.زمان مجاز برای هر مشکل را کوتاه کنید.حرکت از آسان به متوسط به سختی دشوار است. موضوعات جدیدی را که کمتر با آن آشنا هستید معرفی کنید. محدودیت هایی مانند “هیچ کتابخانه خارجی” یا “کد در زبانی که به ندرت استفاده می کنید” این بار به طور مداوم مغز شما را سازگار می کند و از صفحاتau جلوگیری می کند.
استفاده از Code Templates و Snippets
در محیط های زمان بندی شده، هر شمارش دوم، یک کتابخانه ذهنی از الگوهای کدگذاری مجدد را ایجاد کنید: قالب های جستجوی باینری، پیاده سازی های لایه بندی پنجره، دیگ بخار شیشه ای، درخت عبور و گراف BFS /DFS زمانی که شما یک مشکل را شروع می کنید، می توانید بلافاصله اسکلت را بدون باز کردن آن بنویسید.
اکثر IDE های مدرن و ویرایشگران آنلاین به شما اجازه می دهند تا یک فایل قطعه خصوصی را نگه دارید، در حالی که بسیاری از آزمایشات زمان بندی شده منابع خارجی را ممنوع می کنند، دانستن قالب های قلب مجاز است. تمرین این الگوها به سرعت در طول جلسات گرم کردن، بنابراین آنها تبدیل به حافظه عضلانی می شوند.
تحلیل متریک های عملکرد
فقط به احساسات روده تکیه نکنید، از داده ها از جلسات تمرینی خود برای شناسایی نقاط ضعف استفاده کنید.
- زمان برای اولین شخصیت کد (برنامه ریزی سرعت)
- زمان برای اولین بار ارسال صحیح (سرعت رمزگذاری)
- تعداد تلاش های شکست خورده (تحریم کردن)
- زمان صرف اشکال زدایی در هر شکست
پلتفرم هایی مانند InterviewBit اغلب آمار زمان را در مورد مشکلات ارائه می دهند، از این بینش ها برای اولویت بندی سریع تر استفاده کنید، اگر زمان اشکال زدایی شما بالا باشد، نوشتن کد تمیزتر و استفاده از بیانیه های چاپی یا لاگین های کنسول به صورت پراکنده باشد.
آخرین کلمه در Timed Coding Mastery
تسلط بر برنامه نویسی تحت فشار زمان یک استعداد ذاتی نیست – این یک مهارت است که از طریق عمل آگاهانه ساخته شده است. تعیین اهداف روشن، شبیه سازی محیط های واقعی، مدیریت زمان خود را در سطوح مختلف، و منعکس کننده دقیق در هر جلسه با گذشت زمان، سرعت و دقت شما بهبود خواهد یافت، و ساعت به جای یک دشمن تبدیل خواهد شد.
برای منابع اضافی، بررسی دوره سقوط مصاحبه (FLT:1) توسط FreeCodeCamp و GrandFront End برای چالش های زمانی خاص جلو، نگه داشتن محدودیت های خود را، و شما در هر سناریوی برنامه نویسی زمان بندی رشد خواهد کرد.