সমস্যা সমাধানের রিসোর্স

প্রোগ্রামিংয়ে সাহায্য করার জন্য সমস্যা সমাধানের কিছু সাধারণ কৌশল শিখুন।


এখানকার প্রথম প্রবন্ধটিতে বলা হয়েছে, সমস্যা সমাধান একটি মেটা-স্কিল। আমরা দেখতে পাই, প্রায়শই কোনো সমস্যা সমাধানের সবচেয়ে কঠিন অংশটা প্রোগ্রামিং ভাষার সিনট্যাক্স বা গঠন নয়, বরং কী কোড করতে হবে বা কোথা থেকে শুরু করতে হবে সেটি বের করা। সমস্যাকে কোড করার উপযোগী ধাপে ভেঙে ফেলার কৌশল ও একটি পদ্ধতি গড়ে তোলা একটি দুর্দান্ত দক্ষতা। নিচে কমিউনিটি থেকে সংগৃহীত কিছু প্রবন্ধ, ভিডিও ও বই দেওয়া হলো, যা এই সুপার-স্কিলটি গড়ে তুলতে সাহায্য করতে পারে।

  • Free Code Camp-এ একটি ভালো পরিচিতিমূলক প্রবন্ধ আছে: How to Think Like a Programmer - Lessons in Problem-Solving।
  • fast.ai-এর প্রতিষ্ঠাতা Jeremy Howard G. Polya's Problem Solving Techniques নিয়ে একটি সুন্দর সারসংক্ষেপ লিখেছেন।
  • ১৯৪৫ সালে জটিল গণিতের সমস্যা মোকাবিলার নির্দেশিকা হিসেবে লেখা G. Polya's How To Solve It (সম্পূর্ণ বই) আজও সাধারণভাবে সমস্যা সমাধানের জন্য অসাধারণ পরামর্শ।
  • Towards Data Science-এর জন্য লেখা Kurtis Pykes-এর একটি সুন্দর hands-on tutorial for problem-solving আছে।
  • Free Code Camp-এর প্রবন্ধে উল্লেখিত V. Anton Spraul-এর Think Like a Programmer: An Introduction to Creative Problem Solving হলো Polya গণিতের জন্য যে সাধারণ পদ্ধতিগুলো তুলে ধরেছেন, তার আরও আধুনিক ও প্রোগ্রামিং-কেন্দ্রিক রূপ।
  • Felienne Hermans মূলত এদিকে মনোযোগ দেন যে মানুষ কীভাবে প্রোগ্রামিং করার শিল্প শেখে এবং সেটি কীভাবে সাধারণভাবে শেখার সঙ্গে মেলে। তিনি The Programmer's Brian লিখেছেন, যেখানে কোড ভালোভাবে পড়া, কোড নিয়ে স্পষ্টভাবে ভাবা, আরও ভালো কোড লেখা এবং কোডে আরও ভালো সহযোগী হয়ে ওঠার কৌশল আছে।
  • No Starch Press-এর Algorithmic Thinking (Daniel Zingaro) এবং How to think like a programmer (Paul Vickers) বইটিও কোড করার সময় সমস্যা সমাধান নিয়ে আলোচনা করে।
  • Computational Thinking: A beginner's guide to problem-solving and programming (Karl Beecher) এবং Computational Thinking for the Modern Problem-Solver (Riley and Hunt) বই দুটিতেও সমস্যা নিয়ে ভাবা এবং কোডিং সমাধানের জন্য সেগুলো ভেঙে ফেলার কৌশল আছে।
  • From Computing to Computational Thinking (Paul S. Wang) বইটি একটু বেশি সাধারণ ও একাডেমিক, তবে এতে এমন সমস্যা সমাধানের কৌশল ও কাঠামো আছে যা কেবল কোডিংয়ের বাইরেও প্রযোজ্য, আর আগে থেকে প্রোগ্রামিং জানার দরকার নেই।

এই বইগুলোর কিছু Association of Computing Machinery (ACM) লাইব্রেরির মাধ্যমে পড়াও যেতে পারে। সদস্যপদ (সশুল্ক) সংক্রান্ত তথ্য পাওয়া যাবে acm(dot)org সাইটে।