اشکالی نداره که چیزی رو بلد نباشی

در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون پنجم رو بهتر بشناسیم. این قانون بیان میکنه که از ندونستن و جستجو کردن نترسید. بهترین برنامه نویس‌ها هم از همین جستجوها شروع کردن.It's OK to not knowظاهرا برنامه نویس بودن یکی از حرفه‌هایی هست که بیشترین افراد مبتلا به سندروم ایمپاستر رو شامل میشه.سندرم ایمپاستر یک پدیده روانی هست که افراد مبتلا، حس می کنن دارن دیگران رو فریب میدن و اونقدری که نشون میدن، مهارت ندارن.سندروم ایمپاستربرنامه نویس‌هایی که اینگونه هستن، یه حس خود تخریب‌گر و انتقادی نسبت به خودشون دارن و دائما احساس می‌کنن که دیگران توی برنامه‌نویسی از اونها بهتر هستن. اگه شما هم این حس رو دارین، باید بدونید که تنها نیستید، چرا که مطالعات نشون میدن نزدیک ۷۰ درصد افراد دچار سندرم imposter هستن.توی سایت Quora یه نفر سوال پرسیده بود که اگه من توی گوگل یا یه شرکت بزرگ دیگه کار کنم و هنگامی که دارم از استک اورفلو به عنوان منبع استفاده می‌کنم، مچم رو بگیرن، اخراج میشم؟برنامه نویس‌هایی از گوگل، آمازون و چند تا شرکت بزرگ دیگه جواب‌های جالبی داده بودن. هرکسی که به عنوان یه توسعه دهنده کار کرده باشه، میدونه که به دنبال منبع نبودن و سرسری کد زدن اشتباه بسیار بدتریه. در حقیقت، فکر نمی‌کنم حتی یه برنامه نویس توی گوگل پیدا بشه که از stackoverflow استفاده نکرده باشه.بسیاری از برنامه نویس‌های تازه کار میترسن که در حال سرچ کردن منبع‌های مختلف دیده بشن یا اگه سوالی از کسی بپرسن، بقیه این طوری بهشون نگاه می‌کنن که اینها برنامه نویسی بلد نیستن.ولی اشتباه همین جا هست. هیچ کسی نمیتونه همه اطلاعات مرتبط رو توی مغزش جا بده. برای مثال این متد توی iOS رو در نظر بگیرید:- (id)initWithBitmapDataPlanes:( unsigned char **)planes pixelsWide:( NSInteger )widthpixelsHigh:( NSInteger )height bitsPerSample:( NSInteger )bpssamplesPerPixel:( NSInteger )spp hasAlpha:(BOOL)alpha isPlanar:(BOOL)isPlanarcolorSpaceName:( NSString *)colorSpaceNamebitmapFormat:( NSBitmapFormat )bitmapFormat bytesPerRow:( NSInteger )rowBytesbitsPerPixel:( NSInteger )pixelBits;تقریبا ۴۰۰ کاراکتر کد برای یک متد. در برنامه نویسی iOS بیش از ۸۰۰ کلاس و ۹۰۰۰ متد وجود داره که روز به روز هم داره به تعدادشون اضافه میشه!در طراحی وب، هر هفته یک فریمورک میاد بیرون. بنابراین هیچکی انتظار نداره که شما همه کدهای مورد نیاز رو از حفظ باشین. اصلا این دلیلیه که ما برنامه نویس‌ها وجود داریم. ما می‌تونیم کامپیوتر رو وادار کنیم تا کارهای کسل کننده رو به جای ما انجام بده. برای مثال، کدی که برای ضبط صدا توی iOS داریم، با یه سرچ ساده به دست میاد، بنابراین برای چی باید اون رو حفظ کنیم؟مهارتی که بیشتر کارفرماها دنبالش هستن، مهارت فکر کردن هست.دانش کامل در مورد یک کار وقتی ارزش داشت که کسب اطلاعات در مورد اون کار خیلی سخت بود. زمانی بود که فقط افراد از طبقه بالای جامعه به کتاب و معلم‌های خوب دسترسی داشتن. ولی الان، همه به هر اطلاعاتی که دنبالش باشن دسترسی دارن و همه اینها فقط با یک کلیک موس و یا تاچ گوشی باهاشون فاصله داره. بنابراین داشتن اطلاعات داره ارزشش رو از دست میده، ولی مهارت فکر کردن چیزیه که همیشه ارزش داشته و حالا حالاها هم ادامه خواهد داشت.بنابراین از سرچ کردن نترسید، از سوال کردن توی استک اورفلو یا پیدا کردن منبع برای حل کردن یه مساله نترسید. بهترین برنامه نویس‌ها هم این کار رو میکنن.مهارتی که لازم هست خودتون رو درش قوی کنید، پرسیدن سوال مناسب و فهمیدن جواب هست. هیچ نکته مثبتی در کپی کردن کد از استک اورفلو وجود نداره اگه شما نفهمید که اون کد چطوری کار میکنه.استک اورفلو بر اساس اعتبار، جواب هارو مرتب میکنه و سعی میکنه جواب‌هایی که از همه سرراست تر هستن رو به عنوان جواب درست علامت بزنه و بر اساس upvote ها اونها رو میاره بالا یا پایین.البته در بیشتر مواقع، این که در اولین فرصتی که گیر کردید برید سراغ stackoverflow اشتباهه. بلکه سعی کنید اول خودتون جواب درست رو پیدا کنید. مثلا برنامه شما الان جوری که انتظار دارید کار نمیکنه، ولی قبل از اینکه ۳ خط آخر رو تایپ کنید، همه چیز سر جاش بود. بنابراین باید ببینید چه چیزی در این سه خط باعث شدن برنامه از کار بیفته؟ هرچی با دیباگر بیشتر کار کنید، کدهاتون رو بهتر می فهمید و دفعات بعدی به طور پیشفرض اون اشتباهات رو انجام نمیدین.حالا اگه هرکاری کردید، نتونسید متوجه مشکل بشید، توی گوگل دنبال راه حل بگردید. دنبال یک کوئری مشابه بگردید یا ارورهایی که باگ، باعث نمایش اونها شده رو سرچ کنید. اگه تازه کار باشید، به احتمال بسیار زیاد،‌ قبل از شما یه نفر دیگه هم همین خطا رو داشته و براش یه آموزش ساده و سرراست نوشته باشه تا متوجه باگ بشید.البته رفته رفته که شما حرفه‌ای تر می‌شید، مشکلاتی که سر راهتون قرار می‌گیرن نامفهوم تر از قبل میشن. اما اگه نکات برنامه نویسی خوب رو رعایت کنید، شما هم رفته رفته به برنامه نویس بهتری تبدیل میشید که توانایی این رو داره که مشکلات رو خودش حل کنه یا بدونه دقیقا باید کجا دنبال راه حل بگرده.دلیل دیگه‌ای که لازمه اول توی گوگل دنبال جواب سوال بگردید اینه که استک اورفلو بر اساس تاریخ، سوال و جواب هارو مرتب میکنه و نه بر اساس محبوبیت. بسیاری از سوال‌هایی که در ابتدا پیش میان، سال‌ها قبل پرسیده شدن ولی هنوز هم محبوب هستن.بنابراین آگاهانه سوال کنید و جواب‌هارو از کامیونیتی به سرعت به دست بیارید. یه روزی میاد که خود شما به حدی حرفه‌ای شدید که جواب سوال برنامه‌نویس‌های نسل بعد رو در اختیارشون میذارید (⓿_⓿)اگه از این مطلب خوشتون اومد یا حال نکردید،‌ ❤ و نظر یادتون نره!