چگونه کشیدن یک صفحه شطرنج بزرگترین درس کدنویسی من شد

وبلاگ او در ابتدا در Substack منتشر شد. برای دریافت پست های هفتگی رایگان در “نامه هایی به کدنویسان جدید” مشترک شوید.
در عرض چند هفته از شروع برنامه علوم کامپیوتر دانشگاهم، به یک “بلاک کدگذار” بسیار تضعیف کننده برخورد کردم.
این سکسکه در آن زمان عذاب آور بود – اما در نهایت یکی از بزرگترین درس هایی را که در حرفه برنامه نویسی آموختم به من داد. من امروز این درس را به اشتراک میگذارم به این امید که از استرس احتمالی در طول سفرتان خلاص شوید.
صفحه شطرنج
در یکی از دوره های مقدماتی CS من، به ما تکلیفی داده شده بود که a تخته شطرنج یا چکرز: یک تخته 8×8 مربع سیاه و سفید.
در آن زمان، من روی چیزی کار می کردم که به آن سیستم عامل دیسک (یا DOS) می گویند. این یک پنجره فقط متنی بود، بدون کتابخانه گرافیکی برای فراخوانی. همانطور که به متن روی صفحه خیره شدم، نمیتوانستم نحوه تجسم یک صفحه شطرنج را محاسبه کنم.
این مشکل بیش از یک هفته مرا گیج کرده بود.
در نهایت، من به پیشرفتی دست یافتم – اما تنها پس از اینکه در نهایت به راه حل نگاه کردم.
پیشرفت در واقع به خود راه حل مربوط نمی شد (که، همانطور که معلوم شد، تمام مدت زیر بینی من بود). چیزی که متوجه شدم این بود که مشکل واقعی من با این تکلیف یک مورد فلج کننده از شک به خود بود.
با کمال تعجب، شک به خود حتی در مورد مهارت های برنامه نویسی من هم نبود. این بیشتر از ناامنی من در طراحی نشات می گرفت.
من همیشه در طراحی وحشتناک بوده ام. (من خیلی بد هستم که دوستانم فقط برای اینکه به من بخندند با من Pictionary بازی می کردند – شوخی نمی کنم). از کودکی هرگز نتوانسته بودم چیزی را به خوبی بکشم، حتی یک چیز ساده مانند صفحه شطرنج.
اگر خودم نمی توانستم آن را بکشم، چگونه قرار بود بتوانم به رایانه بگویم این کار را انجام دهد؟
بنابراین من کمی تقلب کردم و به راه حل نگاه کردم. و تنها پس از اینکه به راه حل نگاه کردم، توانستم ببینم که رویکرد حل مسئله صفحه شطرنج مانند حل هر مشکل کدگذاری است.
راه حل این است که مشکل را به مراحل کوچک تقسیم کنید.
در این مورد، من یک صفحه شطرنج بزرگ داشتم که باید به بخش های کوچکتر تقسیم می شد. صفحه شطرنج چه شکلی است؟ این یک مربع بزرگ است… متشکل از مربع های کوچک.
تنها کاری که باید انجام می دادم این بود که ترکیبی از مربع های سفید و سیاه متناوب ایجاد کنم. و چون صفحه DOS سیاه بود، برنامه از نظر فنی نیازی به چاپ چیزی برای مربع های سیاه نداشت.
بنابراین راه حل این بود که بین دو مرحله به طور متناوب عمل کنید:
- یک مربع سفید چاپ کنید
- از یک مربع بگذرید (برای ایجاد توهم مربع سیاه)
- … و غیره پاسخ آسان بود. صحبت کردن درباره شک و تردیدم بخش سختی بود.
درک ریشه شک و تردید به خود
اگر به عنوان یک کدنویس جدید دچار شک و تردید می شوید، در شرکت خوبی هستید.
شک به خود بر بسیاری از توسعه دهندگان جدید تأثیر می گذارد. (بسته نزدیک آن، سندرم Imposter، حتی با تجربه ترین توسعه دهندگان را تحت تاثیر قرار می دهد، اما این موضوع برای یک روز دیگر است). زمانی که فکر می کنید برای چیزی به اندازه کافی «باهوش» یا «خوب» نیستید، شک به خود مقصر معمول است.
اگر لایهها را جدا کنید تا به زیر آن نگاه کنید، احتمالاً متوجه میشوید که در مورد توانایی خود در یادگیری برنامهنویسی شک دارید:
-آیا من به اندازه کافی در ریاضیات خوب هستم؟
-آیا من به اندازه کافی باهوش هستم؟ (که در آخرین پستم آن را رفع کردم)
- آیا می توانم کار پیدا کنم؟ و غیره (در مورد تخته شطرنج این بود: “آیا من به اندازه کافی هنرمند هستم؟”)
شک به خود ربطی به منطق ندارد. اغلب ریشه در تجربیات و سوگیری های گذشته دارد که می تواند به باورهای غیرمنطقی یا محدودکننده منجر شود. با تخته شطرنج، معتقد بودم که موفقیت من به مهارت های هنری من متکی است، نه اینکه از ساختارهای برنامه نویسی که قبلاً در اختیار داشتم استفاده کنم.
تنها پس از برداشتن یک قدم کوچک به عقب بود که توانستم یک قدم بزرگ به جلو بردارم. مکث برای ارزیابی مجدد مشکل هرگز آزاردهنده نیست – و همیشه تمام تلاش خود را برای به چالش کشیدن باورهای اساسی در مورد توانایی های خود انجام دهید.
چگونه گیر بیفتیم
گیر افتادن چیز بدی نیست. در واقع، بخش مهمی از سفر یادگیری است.
تمام معنی آن این است که شما با شکاف دانشی مواجه شده اید و در آستانه پیشرفت هستید.
اگر در حال برنامه نویسی هستید و گیر کرده اید، در اینجا چند استراتژی وجود دارد که می تواند به شما کمک کند:
یک قدم به عقب بردارید و مشکل را دوباره ارزیابی کنید
مشکل را به اجزای آن تقسیم کنید
سعی کنید هر گونه تعصب یا باور محدود کننده ای را که ممکن است مانع پیشرفت شما شود، شناسایی کنید
به پاسخ نگاه کنید (بله، این می تواند یک استراتژی مفید باشد)
اگر دلیل گیر افتادن شما تردید به خود است، مهم است که ب*آگاه شدن* از آن زودتر از دیرتر.
توانایی شناسایی شک و تردیدهایی که شما را عقب نگه می دارند می تواند به شما کمک کند تا خود را از قید آنها باز کنید. مهم نیست که چه شکی شما را آزار می دهد، به یاد داشته باشید که موفقیت شما در یادگیری کدنویسی تنها به یک چیز بستگی دارد: متعهد شدن و انجام کار سخت.
شما می توانید تن از دوره های مبتدی و تعاملی و پروژه هایی با پلتفرم آموزش کدنویسی یاد بگیرید. (و در حالی که مشکل شطرنج را پیدا نمی کنید، می توانید دست خود را در پازل های منطقی مشابه با Taste of Code رایگان امتحان کنید).
یادگیری مبارک!
– فهمیده شد