لطفاً سراغ کدنویسی نیا!

متن زیر ترجمه‌ای آزاد از مقاله‌ای با عنوان Please don't learn to code هست که توسط Basel Farag نوشته و در سایت Techcrunch منتشر شده. این مطلب در سال 2016 نگارش شده امّا خیلی از مطالب گفته شده در اون، امروزه همچنان مهمه و شاید بتونه به برخی سوالات مهم مخصوصاً سوالات کسانی که تازه می‌خوان وارد این حوزه بشن، جواب بده. شما هم بعد از خوندنش نظرتون رو بنویسین؛ چراکه میتونه برای داشتن یه دید کامل و واقع‌بینانه به دیگر افراد بسیار کمک کنه. یکی از ایده‌هایی که اخیرا در جامعه‌ی تکنولوژی شکل گرفته اینه که: «همه باید کدنویسی بلد باشن!» ایده‌ای که اونقدرها هم خالی از اشکال نیست. کدنویسی معادل جدید «سواد» در دنیای امروزی نیست. اگه بطور مرتب شیطنت‌های فرهنگی سیلیکون ولی رو دنبال کرده باشین، قطعا درباره‌ی جنبش learn to code شنیدین. سیاستمدارا، بنیادهای غیرانتفاعی مثل code.org و حتی شهردار سابق نیویورک سیتی درباره‌ی مهارتی که برای نیروی کار آینده ضروریه ، یعنی کدنویسی، مطالبی رو بیان کرده‌ان. شاید جاهایی هم حق با اونا باشه، مخصوصا که هیچ نشونه‌ای از نزولی بودن نیاز به مهندسین (حداقل در ایالات متحده)، دیده نمیشه.اما قضیه به این سادگیا هم نیست!داریم تو یه دنیای فوق رقابتی زندگی میکنیم. جایی که مردم به هر شیوه‌ای متوسل میشن تا اموراتشونو بگذرونن و هشتشون گرو نهشون نباشه! تو این شرایط حساس کنونی(!)، فروختن کد نویسی بعنوان بلیطی به سوی رستگاری اقتصادی، فریبکارانه‌­ست. از زمانیکه بدنه­‌ی جامعه درباره‌ی موفقیت مهندسان نرم‌افزار تو سیلیکون­‌ولی فهمید، همه میخوان یا استارت‌آپ داشته باشن یا مهندس این حوزه باشن. سریال «سیلیکون ولی» از HBO تصویری از یه سری جوون بیست و چند ساله ترسیم میکنه که شب‌هاشون به کدنویسی و علف کشیدن میگذره درحالیکه میلیون ها دلار درآمد دارن. جامعه از درآمد افرادی مثل ایلان ماسک و مارک زاکربرگ و میلیون ها دلاری که به نظر میاد یه شبه عایدشون شده، شگفت‌زده ­ست. تب کدنویسی حتی به کاخ سفید هم رسیده. جایی که رییس‌جمهور اوباما تلاش میکرد قانونی تصویب بشه که «علم رایانه» در برنامه ی درسی تمامی مدارس دولتی قرار بگیره. سریال سیلیکون‌ولی، با شخصیت‌پردازی فوق‌العاده!سوءتفاهم نشه! من هم در اینکه برنامه نویسی و مهندسی مهارت های مهمی‌اند با شما هم عقیده‌ام؛ اما فقط در چارچوب درستش و فقط برای اون دسته از افرادی که حاضر باشن برای موفقیت در این کار، حسابی عرق (اون عرق نه، اون یکی :) ) بریزن و تلاش کنن. چیزی که درمورد بسیاری از مهارت های دیگه هم میتونه گفته بشه. یادگیری برنامه نویسی برای همه همونقدر لازمه که یادگیری لوله کشی برای همه ضرورت داره!تمرکز روی کدنویسی باعث میشه «فهم درست مسئله » زیر سایه ی «اهمیت پیدا کردن روش صحیح برای حل مسئله » قرار بگیره. قبل از اینکه روی راه حلی برای یک مسئله کدنویسی کار کنیم، باید بدونیم «مسئله دقیقا چیه؟» و آیا «واقعا با یه "مشکل" مواجه‌ایم ؟» اگه از قبل تمام هوش و حواسمون به «چگونگی حل کردن مسائل از طریق کدنویسی»، فارغ از اینکه آیا واقعاً با یه مسئله ی کدنویسی طرفیم یا نه، باشه؛ و درکمون از «چرایی» قضیه رو از دست بدیم، در آخر چیزی نصیبمون نمیشه.تمرکز بیش از حد روی کدنویسی، نادیده گرفتن مشکلات و گرفتاری های توسعه دهندگان کنونیه!تکنولوژی با سرعت سرسام‌آوری تو این صنعت تغییر میکنه.چندین سال پیش از Objective-C استفاده میکردم؛ الآن کاملاً با سوییفت کار میکنم. الآن توسعه دهنده‌های iosای برای کار درخواست میدن که تاحالا یه خط کد با Objective-C ننوشتن. یادگیری سوییفت آسون تره، امن تره ، از پارادایم های توسعه‌ی مدرن‌تری استفاده میکنه و یه جورایی ظریف و تر و تمیزه؛ چیزی که Objective-C هیچوقت نبود. این واقعیت که توسعه دهنده‌های جدید لازم نیست با کمبودهای Objective-C سرو کله بزنن خیلی هم عالیه؛ اما حقیقت این صنعت رو نادیده میگیره.از توسعه دهنده ها انتظار میره سریع یاد بگیرن، نیاز به راهنمایی زیادی نداشته باشن و به مشوق بیشتری از «خطر از دست دادن شغل درصورت یادنگرفتن چیزای جدید» محتاج نباشن! شاید بگین: «هرکاری هزینه‌ای داره، خب به هرحال این هم هزینه‌ایه که باید برای این کار پرداخت شه. » اما اگه توسعه دهنده های الآن، خسته و فرسوده میشن یا از قافله عقب می‌افتن -که شواهدی وجود داره که بیان میکنه این اتفاق به کرات میفته- چرا باید دیگران رو ترغیب کرد تا وارد چنین قلمرو نامعلوم و نامطمئنی بشن؟چی به سر کسایی میاد که روز و شب مشغول مطالعه و یادگیری Objective-C بودن و با معرفی سوییفت تو WWDC(کنفرانس جهانی توسعه دهندگان) سال 2014 وحشت زده شدن؟ آیا باید به کدنویسی با زبانی که به سرعت تقاضای خودش رو از دست میده ادامه بدن یا دوباره از اول شروع کنن؟ اگه بیست و چند سالتون باشه؛ این کار شاید کمی سخت به نظر برسه، اما اگه مسئولیت اداره یه خانواده روی دوشتون باشه؛ چنین تصمیماتی طاقت‌­فرسان. و بدتر از همه، مواجه شدن با چنین شرایطی بدون داشتن فهم کاملی از برنامه نویسی یا مهندسی واقعیه.علاوه بر این، ورود به دنیای کار-حتی بعنوان کارآموز- به این راحتیا نیست! به ارتباطات نیاز دارین، کسایی که کار شما رو تضمین کنن و گیتهابی که در طی زمان برقرار نگهش داشتین. دست‌انداز‌ها هم که همه‌جا هستن. هستن کسایی که پرسیدن سوال «درخت باینری رو چجوری معکوس میکنی؟» رو بهترین راه برای سنجش توانایی‌های فنی شخص میدونن و مدیران منابع انسانی از همه جا بی خبری که الزاماتی مثل «مدت زمان تجربه ی کار با یه زبان بیشتر از عمر همون زبان(!) » رو لیست میکنن. به هر حال یه کم بیشتر یا یه کم کمتر، چنین افرادی مانعی‌­ان که بین شما و یه شغل مناسب قرار گرفتن. تاجایی که میدونم راهی برای رد شدن از این آدما به جز رقصیدن به سازشون وجود نداره. حتی اگر ناعادلانه باشه.ختم کلام!اگه تبدیل شدن به یه مهندس تو این حوزه چیزیه که واقعاً میخواین بهش برسین، اجازه ندین من یا هر کس دیگه‌ای سد راهتون بشه. همچنین اجازه ندین عوامل محدود کننده سنتی مثل سیستم آموزشی، سیر پیشرفتتون رو کند کنه. در راه رسیدن به اهدافتون، مسیر درست و مسیر غلط معنی چندانی نداره. اما اجازه ندین زرق و برق و فرهنگ سیلیکون‌ولی دیدتون نسبت به واقعیت مخدوش کنه. این رشته، ماشین چاپ پول نیست. باید حسابی زمان بذارین و به درک جامعی در این زمینه برسین. باید با این مسئله کنار بیاین که شما در واقع یه «حل کننده‌ی مسئله»این؛ نه توسعه‌دهنده‌ای که فقط خط به خط فریم‌ورک‌ها رو پر کنه. باید با این واقعیت رو که هر لحظه ممکنه نیاز به یادگیری یه زبان یا فریمورک جدید داشته باشین رو هم قبول کنین. به موارد بالا، جنگیدن برای داشتن یه شغل رو هم اضافه کنین. مهندسی نرم افزار حوزه‌ی سودآوریه. امّا تبدیل شدن از «کدنویس» به «مهندس» کار پرچالشیه.اگه بهش پایبند باشین، نه تنها میتونین زندگیتون رو عوض کنین، بلکه میتونین نحوه‌ی فکر کردنتون رو هم دستخوش تغییر کنید.برگرفته از مقاله‌ی Please dont learn to code نوشته‌ی Basel Farag با اندکی تغییر