چگونه به عنوان یک توسعه دهنده مسائل پیچیده را حل کنیم؟

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

مساله

همه چیز با حل مساله شروع می‌شود. در ادامه مساله‌ای که قصد حل آن را داریم، ملاحظه می‌کنید:
شما باید به برنامه‌ای بنویسید که از کاربر بخواهد 3 عدد را وارد کند. اگر عدد زوج بود برنامه odd را و اگر فرد بود even را بر می‌گرداند.
حل این مساله برای اکثر برنامه نویسان پیچیده نیست، اما برای هدف این مقاله کافی خواهد بود.

 

زمانی که به مشکل برمی‌خورید قدم اول این است که از خودتان بپرسید آیا این مشکل حل شدنی است؟ صد البته. این مشکلی که الان پیش آمده است حل شدنی است.
بعضی مشکلات حل شدنی نیستند نه به این دلیل که سخت هستند، به این خاطر که تکنولوژی آن‌ها هنوز وجود ندارد. مثلا شاید شما بخواهید یک ماشین پرنده بسازید، اما این مساله در آینده نزدیک امکان پذیر نخواهد بود.

هنگامی که فهمیدیم که مشکل قابل حل است، قدم دوم را برمی‌داریم.

تجزیه مساله

بلند کردن یک وزنه 2000 کیلوگرمی خیلی سخت است. اما 100 بار بلند کردن یک وزنه 20 کیلوگرمی به مراتب راحت‌تر و منطقی‌تر است. در نهایت مساله‌ای که حل آن در ابتدای کار غیرممکن به نظر می‌رسید اکنون حل شده است. حل کردن یک مساله بزرگ به مراتب سخت‌تر از حل کردن 3 مساله کوچک است. به همین دلیل است که پیشنهاد می‌کنیم مسائل را به مساله‌های کوچک تجزیه کنید.
خب برویم سراغ مساله‌ای که کمی بالاتر به آن اشاره کردیم. چطور این برنامه را درست کنیم؟ مساله را به فانکشن‌های کوچک تقسیم کنید. در این مثال مساله را به 3 قسمت تقسیم می‌کنیم.
در بخش اول تمرکز روی دریافت ورودی از کاربر است.
در بخش دوم سعی می‌کنیم که بفهمیم عدد زوج است یا فرد.
در قدم سوم تلاش ما این است که نحوه تکرار این روند در سه شماره را پیدا کنیم.

بعد از تقسیم مساله به مرحله آخر یعنی کنار هم چیدن این سه مرحله می‌پردازیم.

حل کردن مساله

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

نتیجه گیری

هنگام مواجه با مشکل و مساله در برنامه نویسی:
نفس عمیق بکشید
مساله را به بخش‌های کوچک تقسیم کنید و هر کدام را به صورت مجزا حل کنید.
قطعه‌های حل شده را به هم وصل کنید.
با حوصله‌تر از قبل از به ادامه کار مشغول شوید.

رقیه اباذری

رقیه اباذری

تو دانشگاه IT خوندم و اکثر منابع کتاب‌های ترجمه شده بودند و صدالبته مبهم :( مثلا element رو "عنصر" ترجمه می‌کردن و من همیشه می‌رفتم تو شیمی و جدول مندلیف. تو باورژن سعی کردم تا حد ممکن مطالب رو با زبان ساده و قابل درک بنویسم. باشد که کسانی که تازه پا به عرصه برنامه‌نویسی گذاشتن، راغب‌تر بشن و با نظرات و فیدبک‌های شما راه هموارتر بشه:)

دیدگاه‌ها


ثبت دیدگاه