درس‌هایی از برنامه‌نویسی که می‌توان برای استفاده در زندگی شخصی یاد گرفت!

درس‌هایی از برنامه‌نویسی که می‌توان برای استفاده در زندگی شخصی یاد گرفت!

تجربه گرفتن از هر اتفاقی که در زندگی برای شما می‌افتد برای داشتن یک زندگی موفق لازم است؛ جالب است که حتی در برنامه‌نویسی هم تجربیات زیادی برای استفاده در دیگر جنبه‌های زندگی وجود دارد به‌طوری‌که دولوپری به‌نام Ryan Dube در این‌باره اعتقاد دارد که بیشتر تجریباتی که وی برای مدیریت زندگی یاد گرفته، مستقیماً از یادگیری زبان‌های مختلف برنامه‌نویسی بوده است!

فلوچارت‌ها همه‌چیز را آسان می‌کنند
اکثر برنامه‌نویسان قبل از نوشتن حتی یک خط کد، ابتدا به یادگیری فلوچارت ساختن می‌پردازند؛ دلیل این مسئله این است که نوشتن یک برنامهٔ کامل بدون داشتن دیدی کلی نسبت به آن خیلی سخت است مخصوصاً اگر بخواهید نرم‌افزاری با کارآیی پیچیده‌ای بنویسید. برنامه‌نویسان باتجربه وقتی پروژه‌های بزرگی را شروع می‌کنند، برای مدیریت بهتر آن‌را به چندین بخش یا بهتر بگوییم ماژول تقسیم کرده سپس گام‌به‌گام هر قسمت را تکمیل می‌کنند. این مسئله مانند ساخت یک ماشین بوده به این شکل که ابتدا اجزای مختلف آن‌را می‌سازند سپس آن‌ها را روی هم سوار می‌کنند؛ 

استفاده از فلوچارت‌ها، که الگوریتم به‌کار رفته در نرم‌افزار را به‌صورت بصری نشان می‌دهند، آسان‌تر از نوشتن همان قسمت به‌صورت جمله‌ای روی کاغذ یا تصور کردن به‌صورت ذهنی است. درحقیقت، تصویرسازی کار اشتباهی است چراکه ممکن است راه‌هایی بعداً به ذهنتان برسد که باید در کل مسیر تغییرات زیادی ایجاد کنید؛ یک اشتباه در اول راه می‌تواند باعث شود تا راه رسیدن به هدف به یک بن‌بست تبدیل شود.

همین موضوع در زندگی روزمره هم صدق می‌کند؛ زمانی که شما تصمیم دارید راهی برای پرداخت قرض‌های خود پیدا کنید یا پول برای خرید خانهٔ جدیدتان جمع کنید یا دیگر مشکلات پیچیدهٔ زندگی خود را حل کنید و یا حتی پروژهٔ کاری خود را به اتمام برسانید، همهٔ این قضایا که دارای ظاهری پیچیده‌اند اما به‌سادگی می‌توانند بهتر مدیریت شوند وقتی که شروع به کشیدن روند اجرای آن روی کاغذ کنید و برای هر اتفاقی که ممکن است بیافتد راه‌حلی ایجاد کنید و مشکلات پیش‌رو را از ابتدا پیش‌بینی کرده و راه‌حلی برای آن‌ها در نظر بگیرید (همان‌طور که یک دولوپر چگونگی برخورد با هر اتفاقی که ممکن است رخ دهد را از قبل پیش‌بینی می‌کند).

یک کار را ۲ بار تکرار نکنید 
هر دولوپر حرفه‌ای بعد از آن‌که کدی را برای یکی از اپلیکیشن‌های خود نوشت، ممکن است بعداً نیز مجبور به‌استفاده از آن در پروژه‌های دیگر خود شود؛ برای مثال، ممکن است تابعی که مثلاً دمای فارنهایت را به سانتیگراد تبدیل می‌کند در چندین پروژه به درد شما بخورد پس چرا هر بار شروع به نوشتن آن تابع کنید زمانی که می‌توانید آن‌را به‌عنوان یک هلپر (Helper) ذخیره کرده و بعداً از آن بارها و بارها استفاده کنید؟

در زندگی روزمره هم قضیه دقیقاً به همین صورت است؛ اگر می‌خواهید در زمان خود صرفه‌جویی کنید، سعی کنید در زندگی روزمره هم کارهای خود را به این شکل انجام دهید و تا حد ممکن کارهای تکراری را مکانیزه کنید.

همه‌چیز را مستندسازی کنید
برای هر برنامه‌نویسی وسوسه‌انگیز است تا بدون آن‌که به مستندسازی بخش‌های مختلف برنامهٔ خود بپردازد، شروع به کدنویسی کند؛ مستندسازی کدها به این معنی است که کار هر بخش از کدها را مشخص کنید که هدف از نوشتن این بخش چه بوده و آن بخش دقیقاً چه کاری انجام می‌دهد. به‌خاطر این‌که این کار وقت‌گیر است، انجام ندادن آن بسیار وسوسه‌انگیز است و در ابتدا یک کار بی‌معنی به‌نظر می‌رسد اما زمانی که بعداً خواستید از آن کدها استفاده کنید یا شروع به تغییر آن‌ها کنید، آن‌وقت اهمیت کامنت‌نویسی را درک خواهید کرد.

این مستندسازی‌ها می‌تواند در هر کجای زندگی به کمک شما بیایند؛ از به یاد داشتن تاریخ تولد و سالگردها گرفته تا نگهداری گزارش‌هایی از کارهای روزانه و معاملات انجام شده و دلایل مرتبط با آن‌ها. اعتماد به حافظهٔ خود برای نگهداری از اطلاعات روزانه کار اشتباه و ساده‌لوحانه‌ای است چراکه زندگی روزانه پر از اتفاقاتی است که برای هر شخصی هر روز اتفاق می‌افتند و ذهن باید تمامی آن‌ها را ثبت کند؛ بنابراین ممکن است برخی اتفاقات مهم از یادتان بروند.

همیشه یک راه فرار برای خود باقی بگذارید
یکی از بزرگترین مشکلات برنامه‌نویسان مبتدی، حلقه‌های بدون پایان (Infinite Loop) است؛ این حالت وقتی اتفاق می‌افتد که حلقه می‌خواهد به شرط پایانی خود برسد اما هرگز آن به شرط نمی‌رسد بنابراین نرم‌افزار در حلقه می‌ماند و هرگز از آن خارج نمی‌شود و تمام قدرت منابع سیستم -مثل مموری و پردازنده- را گرفته و این اتفاق تا زمانی به‌طول خواهد انجامید که آن فرایند اصطلاحاً Kill شود.

بنابراین زمانی که حلقه‌ای در اپلیکیشن یا برنامهٔ خود ایجاد می‌کنید که مقدار زیادی از قدرت پردازنده کامپیوتر را ممکن است بگیرد، حتماً یک شرط ثانویه هم درنظر بگیرید که اگر مثلاً اپلیکیشن شما به مقدار X ثانیه در آن حلقه ماند، شرط دوم عملی شود که باعث خروج از حلقه شوید.

در زندگی هم حتی زمانی که شما فکر می‌کنید با برنامه کارها طبق روال خود پیش خواهند رفت ممکن است مشکلی در روند زندگی شما به‌وجود بیاید؛ برای مثال، شما برای آخر هفته برنامهٔ تفریح خارج شهر چیده‌اید اما ممکن است شروع بارندگی برای عملی ساختن برنامه‌ٔتان مشکل ایجاد کند. راه فرار در زندگی به این معنی است که شما برای برنامه‌ریزی‌های خود بدترین حالت ممکن را هم درنظر بگیرید و برای آن پیشاپیش راه‌حلی پیدا کنید. 

هنگامی که کار تمام شد منابع سیستم را آزاد کنید
درس آخری که از برنامه‌نویسی می‌توان گرفت این است که منابع سیستمی را آزاد کنید! اپلیکیشن خوب آن اپلیکیشنی است که بعد از اتمام کار، منابع مورد استفادهٔ خود را آزاد می‌سازد. مشکلی که اصولاً در اپلیکیشن‌هایی که دارای طراحی ضعیف هستند پیش می‌آید، ناتوانی در مدیریت حافظهٔ سیستم و مشکلات حاصل از آن است.

در زندگی شخصی، هر کدام از ما نیز دارای منابع محدودی هستیم؛ در اینجا منظور از منابع چیزهایی همچون زمان، انرژی، انگیزه و غیره است. به‌محض این‌که کاری را به اتمام می‌رسانیم، می‌بایست همچون آزاد کردن مموری در کدنویسی، منابع خود را آزاد کنیم تا توان مقابله با دیگر جنبه‌های زندگی را داشته باشیم.

کلام آخر این است که فقط این درس‌ها نیست که در زندگی می‌توان از برنامه‌نویسی یاد گرفت و تعداد این درس‌ها بیشتر از این‌ها است. حال نوبت به نظرات شما می‌رسد؛ به‌نظر شما چه درس‌های دیگری وجود دارد که دولوپرها از کدنویسی در زندگی روزمرهٔ خود می‌توانند بگیرند؟ نظرات، دیدگاه‌ها و تجربیات خود را با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.



فرنوش فهیم