شش درس زندگی که از برنامهنویسی میتوان آموخت

درسهای زیادی از برنامهنویسی میتوان یادگرفت که هریک در زندگی واقعی نیز مورد توجه قرار میگیرند. در ادامه شش درس زندگی را معرفی میکنیم.
فلوچارتها هرچیزی را ساده میکنند.
بسیاری از برنامهنویسان قبل از اینکه حتی یک خط کد بنویسند از فلوچارت استفاده میکنند. دلیل آن هم این است که تلاش برای نوشتن کل برنامه در یک لحظه، خیلی دشوار است به خصوص اگر برنامه وظایف پیچیدهای را باید انجام دهد.
برنامهنویسان یک پروژه بزرگ را در نظر گرفته و به اجزای کوچک میشکنند که خیلی بهتر میتواند مدیریت شود. مثل ساختن یک ماشین است که ابتدا اجزای آن ساخته شده و سپس به یکدیگر متصل میگردند. در برنامهنویسی هر جز یک تکه کد است که ورودی و خروجی خاص خود را دارد. در هر جزء، برنامهنویس منطق کد را از طریق فلوچارت دنبال میکند.
فلوچارت منطق برنامه را به صورت تصویری به نمایش در میآورد که فهم آن بسیار راحتتر است. دلیل اینکه برنامهنویسان همینطور شروع به کد زدن نمیکنند این است که منطق کد آتی خیلی به تصمیمی که در ابتدای کار میگیرید بستگی دارد و ممکن است با یک شروع اشتباه خود را به بنبست گرفتار کنید.
دقیقا چنین چیزی در زندگی نیز صحیح است. وقتی میخواهید تصمیمی بگیرید که بدهی را پرداخت کنید، خانه بخرید یا در هر موقعیت پیچیده دیگر، لازم است ابتدا بنشینید و قلم کاغذی داشته باشید و مراحل تصمیم یا کار را بکشید. این کار در تصمیمگیری بین چندین انتخاب و پیشبینی احتمالهای آینده به شما کمک بسیاری خواهد کرد.
هرچیزی جای خود را دارد.
در برنامهنویسی از گامهای اولیه کار، ساختن متغیرهاست که هرکدام به منظور خاصی تعریف میشوند و متناسب با مقادیری که لازم است نگهدارند بزرگ یا کوچک و با انواع مختلفی ساخته میشوند. در زندگی واقعی نیز چنین است در مرتب کردن خانه یا دفتر کار همیشه ظرف متناسب با چیزی انتخاب میشود که لازم است نگهداری شود. برای مرتب کردن اسناد دفتر، به عنوان مثال اسناد کار روزانه در کشو میز نگهداری میشوند و اسناد محرمانه در یک کمد قفلدار گذاشته میشوند. هر چیزی ظرف متناسب خود را دارد و در جایی که درست است نگهداری میشود.
استفاده مجدد از ماژولهای برنامهنویسی برای صرفهجویی در زمان
هر برنامهنویس خوب یاد میگیرد که یک تکههایی از کد را که به عنوان تابع میشناسد در برنامههای دیگر هم مورد استفاده قرار دهد. به عنوان مثال تابع تبدیل فارنهایت به سلسیوس را در یک ماژول نوشته و هرکجا لازم باشد آن را در کد وارد میکند.
در زندگی واقعی هم کارهایی هست که بارها و بارها تکرار میشوند. اتوماتیکسازی پاسخ مناسبی به چنین فرایندهایی است که به طور تکرار شونده انجام میشوند. به این ترتیب میتوان با زمان بسیار کمتری کارها را انجام داد.
هرچیزی را مستند کنید.
گاهی اوقات برای برنامهنویسان هم وسوسهبرانگیز است که کد را بدون مستند رها کنند چرا که در آن لحظه کاملا به کد مسلط بوده و نیازی به مستندسازی احساس نمیکنند اما بعدا که بخواهند کد را مجددا استفاده کنند یا آن را برای هدف دیگری تغییر دهند باید زمان زیادی را صرف فهمیدن علت تصمیمهای خود کنند.
چنین مستندسازی در زندگی هم بسیار پرکاربرد است از نوشتن تاریخ تولدها و سالگردها گرفته تا نوشتن گزارش فروش روزانه. زمان با سرعت زیادی در گذر است و تصمیمهای زیادی گرفته میشود. اما ذهن انسان چندان قابل اعتماد نیست که دلیل شرکت در یک جلسه یا یک خرید را به یادداشته باشد. یک یادداشت روزانه کمک میکند که ذهن خود را برای موضوعات مهمتری خالی کنید.
همیشه یک راه فرار برای خود باقی گذارید.
یکی از رایجترین اشتباهات برنامهنویسی حلقههای نامتناهی است که صد در صد CPU را مصرف میکنند و کل کامپیوتر را مختل میکنند تا زمانیکه پروسه آن کشته شود. پس لازم است که یک راه خروج در حلقه در شرایطی که محاسبات حلقه به درستی پیش نرفت و به صورت نرمال کار حلقه تمام نشد وجود داشته باشد.
چنین چیزی در زندگی واقعی هم وجود دارد حتی در صورتی که فکر میکنید همه چیز به خوبی برنامهریزی شده است، اوضاع میتواند به شکل بدی پیش رود. ایده در نظر گرفتن راه فرار در زندگی واقعی به این معنی است که همیشه به بدترین سناریوها هم فکر کنید و در نظر بگیرید که چطور میخواهید مانع از رخداد آن شوید یا اگر به وقوع پیوست چگونه آن را مدیریت کرده و بهترین بهره را از آن ببرید.
وقتی کارتان تمام شد حافظهتان را خالی کنید.
در برنامهنویسی گاهی لازم است که یک stream بازکنیم یا یک آرایه بزرگ ایجاد کنیم که همه اینها منابع و حافظه سیستم را میگیرند. یک برنامه تمیز برنامهای است که بعد از اتمام استفاده از منابع آنها را آزاد کرده و در اختیار سیستم قرار دهد.
در زندگی واقعی هم از همان کودکی همواره در مورد مرتب کردن اتاق، دور ریختن لباسهای بدون استفاده و تمیز کردن میز مطالعه توصیه میشدیم. در واقع وقتی که وسایل اضافی را دور میریزیم یا وسایلی که با آنها کار نداریم را کنار میگذاریم فضای بسیار بیشتری خواهیم داشت که بتوانیم کارهای خود را به خوبی انجام دهیم و زمان زیادی را برای پیدا کردن چیزهایی که نیاز داریم تلف نکنیم.
در انتها
مساله این است که تنها این ۶ درس زندگی نیست که از هنر برنامهنویسی میتوان برداشت کرد. موقع سازماندهی، برنامهریزی، یافتن استراتژیها و حفظ منابع برنامهنویسان مساله را حل شده در مییابند. در واقع از یادگیری برنامهنویسی چیزهای زیادی است که میتوان یاد گرفت. به همین دلیل است که عدهای بر این باورند که هر کودک باید حداقل در مدرسه یک زبان برنامهنویسی را بیاموزد.
بسیار رخ میدهد که برنامهنویسان پاسخ بسیاری از مسائل زندگی را در راهحلهای برنامهنویسی جستجو کنند. همین مساله باعث شده است که سبک تفکر برنامهنویسان حتی در سادهترین مسائل زندگی با سایر انسانها متفاوت باشد. اما اگر شما هم چنین تجربهای را داشتید حتما به جایی رسیدید که بگویید ای کاش ما نیز چون کامپیوتر و یک زبان برنامهنویسی تواناییهایی داشتیم. مثلا زمانی که چندین مساله ذهن را درگیر میکنند گاهی نیاز داریم یکی از آن ریسههای درگیر در ذهن خود را متوقف کرده و انرژی خود را روی بقیه متمرکز کنیم. همینطور قابلیت undo یا به اصلاح ctrl + z که وجود آن شاید از بزرگترین آرزوهای برنامهنویسان در زندگی واقعی است.
شما چه درسهای دیگری از برنامهنویسی یادگرفتید؟ کمبود چه قابلیتهایی از برنامهنویسی را در زندگی خود احساس کردهاید؟
منبع:
یرنامه نویسی زندگی را از یاد آدم میبره.
8 ساعت سروکله زدن با یه ماشین در روز.
گاهی اوقات برای من پیش اومده که در دنیای واقعی احتیاج به ctrl + z داشتم. البته نه اینکه خیلی مسائل مهمی باشه. مثلا گاهی اوقات هنگام نوشتن یک متن با دست خط خودم، نا خود آگاه خواستم undo کنم. انصافا قابلیت خیلی خوبیه و خیلی جاها به آدم کمک میکنه.
سپاس از مطلب خوبتون 🙂