چطور همچون یک برنامه نویس فکر کنیم؟ نکاتی برای حل مسئله
گر شما به برنامه نویسی علاقه مند هستید، ممکن است این نقل قول را شنیده باشید : "هرکس در این کشور باید برنامه نویسی کامپیوتر را یاد بگیرد، زیرا برنامه نویسی به شما یاد می دهد چطور فکر کنید". احتمالا می خواهید بدانید چطور مانند یک برنامه نویس میشود فکر کرد؟ نحوه فکر کردن برنامه نویس ها پیدا کردن موثر ترین راه برای حل مسئله است. در این مقاله به شما آموزش می دهم چطور این کار را انجام دهید.
چرا شیوه فکر کردن تا این اندازه مهم است؟
مهارت حل مسئله یک مهارت بزرگ است. همه ما مشکلاتی داریم چه کوچک چه بزرگ. اکثر اوقات با آنها چطور برخورد می کنیم؟ خیلی تصادفی. مگر اینکه شما سیستمی داشته باشید والا به صورت زیر برای حل مسئله خود اقدام می کنید(این روشی بود که وقتی برنامه نویسی را شروع کردم استفاده می کردم) :
- یک راه را امتحان کن.
- اگر جواب نداد راه حل دیگری را امتحان کن.
- اگر باز جواب نداد مرحله دو را تکرار کن و این کار را آنقدر ادامه بده تا به جواب برسی.
خوب در بعضی مواقع با روش بالا موفق می شوید. اما این روش بدترین حالت برای حل یک مسئله است و زمان زیادی از شما هدر میدهد. بهترین راه داشتن یک چارچوب و تمرین کردن با آن است. تقریبا تمام کارفرمایان ابتدا مهارت های حل مسئله را در اولویت خود قرار میدهند. مهارتهای حل مسئله تقریباً مهمترین قابلیتی است که کارفرمایان به جستجوی آن هستند.
مهارت حل مسئله برای آنها دارای اولویت بیشتری نسبت به زبان های برنامه نویسی اشکال زدایی و طراحی سیستم است.داشتن تفکر محاسباتی و یا توانایی شکستن مسائل بزرگ و پیچیده به مسائل کوچک تر برای یک شغل به همان اندازه ی مهارت های تکنیکی ارزشمند است.
داشتن چارچوب
بزرگترین اشتباهی که من در مواجهه با برنامه نویسان جوان مشاهده میکنم این است که آنها بیشتر بر روی یادگیری قواعد نوشتاری تمرکز میکنند تا حل مسئله. در زیر چارچوبی را به شما ارائه می دهم که بتوانید با آن مسائل مختلف را حل کنید. پس گام های زیر را برای حل مسئله دنبال کنید :
فهمیدن
فهم دقیق مسئله ای که با آن روبرو هستیم بسیار مهم است. باید بدانید که دقیقا از شما چه چیزی درخواست شده است. بیشتر مسائل سخت هستند چراکه شما آنها را درک نمی کنید(بنابراین این اولین گام است) چطور میتوان تشخیص داد که یک مسئله را درک کرده اید؟ جواب این سوال ساده است. موقعی که بتوانید به زبان ساده بیانش کنید. آیا به خاطر می آورید که در مسئله ای گیر کرده باشید!! شروع به توضیح آن می کنید و در اینجا به منطق هایی میرسید که قبلا فکرش را هم نکرده اید.
بیشتر برنامه نویسان این احساس را درک میکنند، به همین دلیل است که باید مسئله خود را بنویسید، نمودار آن را ترسیم کنید و یا به دیگری در مورد آن توضیح دهید. گفته معروفی وجود دارد که می گوید اگر نمی توانید چیزی را به زبان ساده توضیح دهید، شما را درک نکرده اید.
طرح و برنامه
بدون طرح و برنامه ریزی مناسب به حل مسئله نپردازید. مسئله خود را طرح ریزی کنید. اگر شما نتوانید مراحل را دقیق بنویسید هیچ کس نمی تواند به شما کمکی بکند. در برنامه نویسی این به معنای آن است که سریع شروع به کدنویسی نکنید، به مغز خود فرصت دهید تا مسئله را آنالیز کرده و اطلاعات را پردازش کند. برای رسیدن به یک طرح خوب به این سوال پاسخ دهید :
با توجه به ورودی X مراحل مورد نیاز برای بازگشت خروجی Y چیست؟
(برنامه نویسان ابزار خوبی برای کمک به آنها در این زمینه دارند : کامنت ها)
تقسیم بندی
توجه کنید! این مهمترین گام در بین گامهای دیگر است. سعی نکنید یک مسئله خیلی بزرگ را حل کنید. شما به گریه خواهید افتاد. درعوض مسئله خود را به مسائل کوچکتر تقسیم کنید. مسائل کوچک تر که ما به آنها زیر مسئله میگوییم، راه حل های ساده تری دارند. سپس زیر مسئله ها را یکی پس از دیگری حل کنید. با ساده ترین آنها شروع کنید. ساده ترین یعنی مسئله ای که شما جوابش را می دانید. بعد از آن ساده ترین زیر مسئله ها آنهایی هستند که در حل شان به زیر مسئله ای دیگر مربوط نیستند.
بعد از این که تمام زیر مسئله ها را حل کردید آنها را به هم متصل کنید. این کار باعث میشود شما به جواب مسئله اصلی خود برسید. تبریک به شما. مسئله شما حل شد. این تکنیک مبنا و اساسی برای حل مسائل است. پس آن را به خاطر بسپارید.
به مشکل برخورده اید؟
اکنون ممکن است روی این موضوع فکر کنید که اگر نتوانید زیر مسئله ها را حل کنید، اینجا باید چه کرد؟ در ابتدا یک نفس عمیق بکشید. بدانید که این مورد ممکن است پیش بیاید. نگران نباشید حتی برنامه نویسان حرفه ای هم با خطا و مشکل روبهرو میشوند. زمانی که با مشکل روبهرو میشوید میتوانید هر کدام از راه حل های زیر را امتحان کنید.
اشکال زدایی
قدم قدم با راه حل خود پیش بروید در این صورت میتوانید بفهمید کجا اشتباه کرده اید. برنامه نویسان به این فرآیند debugging میگویند.
ارزیابی مجدد
به گام قبلی برگردید. به مشکل از نگاهی دیگر توجه کنید. آیا چیز دیگری وجود دارد که بتواند به روش عمومی تر خلاصه شود؟ راه دیگر این است که از صفر شروع کنید، همه تصورات قبلی خود را از بین ببرید و با دیدی تازه شروع کنید. من در این باره با شما جدی هستم. باورتان می شود که این روش چقدر موثر است.
پژوهش و جستجو
چقدر خوب است که گوگل را داریم. مهم نیست چه مشکلی دارید، احتمالا کسی قبلاً آن را حل کرده است و فقط کافی است راه حل آن شخص را پیدا کنید. این کار را انجام دهید حتی اگر مسئله را حل کرده اید(شما می توانید از راه حل های دیگران نکات ارزشمندی را یاد بگیرید)
هشدار : به دنبال راه حل برای مسائل بزرگ نگردید فقط به جستجوی راه حل برای زیر مسئله ها بپردازید. چرا؟ چون مادامی که این کار را انجام میدهید فقط وقت خود را هدر می دهید.
تمرین
بعد از یک هفته نباید انتظار نداشته باشید در حل مسائل قوی بشوید. اگر می خواهید مسائل را به سادگی حل کنید. باید تمرین کنید و مسائل زیادی را حل کنید. تمرین، تمرین، تمرین. تنها راهی که می تواند شما را در این زمینه قوی کند تمرین است. اما چطور میشود تمرین کرد؟ گزینه های سرگرم کننده زیادی برای این مورد وجود دارد مثلا شطرنج، مسائل ریاضی، سودوکو و بازی های ویدیویی،
بسته به علایق خود می توانید به یکی از آیتم ها بپردازید. اما آیا این به معنای این است که مثلا فقط بازی های ویدیویی انجام دهید؟ به هیچ وجه. چیزی که اهمیت دارد این است که راه حلی را با تمرین پیدا کنید. چیزی که به شما اجازه می دهد مسائل سر راه خود را با آن حل کنید.
نتیجه گیری
از همه دوستانی که برای خواندن این مقاله وقت صرف کردند، تشکر میکنم. اکنون میدانیم که چطور همانند یک برنامه نویس فکر کنیم. همچنین میدانیم که مهارتهای حل مسئله یک بسیار ارزشمندهستند. در نهایت چیزی که شما را به هدف می رساند تمرین است. امیدوارم با تمرین مهارت های خود را افزایش دهید.
منبع: لرن سورس