مهارت «شکستن مسئله به اجزاء کوچک» (Decomposition)، پادزهرِ «فلجشدن در برابرِ کارهای بزرگ» است. هر هدفِ بزرگی که در نگاهِ اول ترسناک و غیرممکن به نظر میرسد، فقط مجموعهای از کارهای کوچک است که درست چیده نشدهاند. این مهارت به ما میآموزد که برای فتحِ یک قله، نباید نگرانِ کلِ مسیر بود؛ بلکه باید آن را به ایستگاههایِ کوچکتر و قابلدسترسی تقسیم کرد. Decomposition یعنی قدرتِ دیدنِ ساختارِ درونیِ هر چالش و تبدیلِ یک غولِ شکستناپذیر به چندین مورچهیِ کوچک و مهارشدنی.
در دوران کودکی، یک کودک با اتاقی به همریخته و پر از اسباببازی روبهروست. او وقتی به کلِ اتاق نگاه میکند، ناامیدانه میگوید «خیلی زیاد است، نمیتوانم!» اما وقتی یاد میگیرد مسئله را تقسیم کند، استراتژیاش تغییر میکند: «اول فقط لگوها را در جعبه میگذارم، بعد فقط کتابها را در قفسه میچینم و در آخر لباسها را در کمد میگذارم.» او با خرد کردنِ این «هرجومرج بزرگ» به سه «وظیفهی کوچک»، نه تنها اتاقش را مرتب میکند، بلکه اعتمادبهنفسِ خود را هم میسازد. او میفهمد که هر کار بزرگی، شروعی کوچک دارد.
در دوران نوجوانی، این مهارت در پروژههایِ گروهی و مسئولیتهایِ سنگین نمود پیدا میکند. نوجوانی را در نظر بگیرید که مسئولِ برگزاریِ نمایشگاهِ خیریهیِ مدرسه است. در ابتدا، حجمِ کار (هماهنگیِ غرفهها، تبلیغات، جذبِ خیرین) او را کلافه میکند. اما او با شکستنِ هدفمند، تیم را به سه گروهِ مجزا تقسیم میکند: یک گروه مسئولِ فضایِ نمایشگاه، یک گروه مسئولِ روابطعمومی و گروهِ سوم مسئولِ گزارشهایِ مالی. او با این کار، استرسِ «کلِ پروژه» را به «مسئولیتهایِ مشخصِ فردی» تبدیل میکند. او حالا به جایِ یک مدیرِ مضطرب، به یک راهبرِ منظم تبدیل شده است.
حالا به سراغِ دنیایِ بزرگسالان برویم؛ نویسندهای را تصور کنید که سالهاست آرزو دارد یک «رمانِ شاهکار» بنویسد. او آنقدر درگیرِ تصویرِ ذهنیِ کتابِ چاپشده و قفسههایِ کتابخانه است که هرگز شروع نمیکند. او چون «نوشتنِ یک کتاب» را به عنوان یک واحدِ غیرقابلِ تجزیه میبیند، هر روز که پشتِ میز مینشیند و به این کوه بزرگ نگاه میکند، میترسد و تسلیم میشود. او به جایِ شکستنِ هدف به «نوشتنِ روزی ۳۰۰ کلمه» یا «طراحیِ یک شخصیت در هر هفته»، فقط به نتیجهیِ نهایی فکر میکند و در نتیجه، سالهاست که حتی یک صفحه هم ننوشته است؛ رؤیایِ بزرگ، به خاطرِ نداشتنِ قدرتِ تجزیه، هرگز محقق نشده است.
برنامهنویسی، بهترین مربی برایِ یادگیریِ Decomposition است. در برنامه نویسی، هیچوقت به کودک نمیگوییم «برو یک بازیِ کامل بساز»؛ ما به او یاد میدهیم که چگونه یک بازیِ پیچیده را به بخشهایِ کوچکتر تقسیم کند: بخشی برایِ حرکتِ کاراکتر، بخشی برایِ امتیازدهی و بخشی برایِ تغییرِ مراحل. کودک یاد میگیرد که کدنویسی، کنارِ هم چیدنِ همین قطعاتِ کوچک است. او درمییابد که هر چقدر مسئلهای که با آن روبهروست بزرگ و عجیب باشد، با تکنیکِ تقسیمبندی، میتواند آن را به مراحلی ساده و لذتبخش تبدیل کند. این توانایی در خرد کردنِ مسائلِ پیچیده به قطعاتِ کوچک و قابلکنترل، یکی از ستونهای اصلیِ تفکر محاسباتی است؛ مهارتی که به ما یاد میدهد حتی در بزرگترین سیستمها، نباید از تکتکِ اجزا غافل شد؛ چرا که نادیده گرفتنِ نقص در کوچکترین قطعه، میتواند منجر به فروپاشیِ کلِ ساختار شود.
