হয়তো একটি বাগ ফিক্স করলে আধা দर्जন নতুন বাগ তৈরি হয়েছে। অথবা আপনার কোড এত অদ্ভুতভাবে ব্রেক করেছে যে আপনি সন্দেহ করছেন আপনি কি সত্যিই এটি বুঝতে পারছেন। আপনি মনে করছেন এখন একটি ডিপ ডাইভ করার সময়।
কিন্তু জানা যে আপনাকে একটি টপিকে গভীরে ডুব দিতে হবে? সেটি শুধু ধাপ ১। আপনি কীভাবে আসলে একটি টপিককে তার ফান্ডামেন্টাল পর্যন্ত শিখবেন? কীভাবে যতক্ষণ শিখবেন যাতে সেটি আপনাকে স্বাভাবিকভাবে আসে?
কোথা থেকে শুরু করবেন?
আপনার শিখতে অনেক জায়গা থেকে শুরু করতে পারেন। কিন্তু যখন আমি কোনো টপিক দ্রুত গভীরে শিখতে চাই, বইগুলো আমার পছন্দের শুরুতে থাকা জায়গা। উদাহরণস্বরূপ, যদি আপনি git-এ ডিপ ডাইভ করতে চান, Pro Git নামের বইটি সম্ভবত আপনার যা খুঁজছেন সেটি।
বইগুলো ডিপ ডাইভের জন্য চমৎকার কারণ সেগুলো কমপ্রيهেনসিভ: অধিকাংশ মিডিয়াম সাইজ টপিক ২০০-৪০০ পৃষ্ঠার বইতে ভালোভাবে কভার করা থাকে। শেষে, আপনি হয়তো এক্সপার্ট হবেন না, কিন্তু আপনার একটি ভালো বোঝাপড়া এবং কঠোর ফান্ডামেন্টাল থাকবে যেখান থেকে আপনি আরও বড় হতে পারেন। এটি সাহায্য করবে যদি আপনি সোর্স কোড বা স্পেস পড়তে সিদ্ধান্ত নেন।
কিন্তু হয়তো আপনি বই কেনতে চান না। অথবা আপনার টপিকের ওপর কোনো বইই নেই। সেক্ষেত্রে, আপনি কোথায় খুঁজবেন?
অফিসিয়াল ডকুমেন্টেশন একটি ভালো বিকল্প। যদি আপনি Rails-এর মতো একটি ফ্রেমওয়ার্কের একটি নির্দিষ্ট অংশে, বা OAuth-এর মতো একটি ওয়েব টেকনোলজিতে ডিপ ডাইভ করেন, অফিসিয়াল ডকস স্পেশালি ভালো ম্যাচ।
প্রজেক্ট এবং ফ্রেমওয়ার্কের জন্য, "The X Guide(s)" নামে কিছু আপনার সেরা বিট। উদাহরণস্বরূপ, আমি নতুন রেইলস ডেভেলপারদের জন্য রেইলস গাইডস রিকমেন্ড করি, এবং এলিক্সির গাইডস এলিক্সির কোড লিখতে শিখতে একটি চমৎকার জায়গা।
কিন্তু গাইডগুলোরা যদিও কমপ্রিহেনসিভ, একদম কমপ্রিহেনসিভ নয়। বরং, আপনি গাইডটি একটি জাম্পিং-অফ পয়েন্ট হিসেবে ব্যবহার করতে পারেন রেফারেন্স ডকুমেন্টেশনের জন্য, যেমন RDoc।
রেফারেন্স মেটেরিয়াল বুঝতে কঠিন যদি আপনার কাছে সেসব মেথড এবং ক্লাস কনটেক্সটে রাখার উপায় না থাকে। এটা শুধু ডিটেইলের একটি গুল্লক বিনা কোনো রিয়েল স্ট্রাকচারের। তাই আমি পাই রেফারেন্স সবচেয়ে ভালো কাজ করে যখন আপনি সেগুলো গাইড বা বইর সাথে জোড়া দেন।
উদাহরণস্বরূপ, ActiveModel API ডক্সের মধ্য দিয়ে যেতে হলে ActiveModel-এর ওপর থেকে কিছুই আপনাকে বেশি শিখাবে না। কিন্তু ActiveModel গাইড আপনাকে সব কনটেক্সটে রাখতে সাহায্য করবে।
আমি "almost nothing" বললাম, কারণ অফিসিয়াল ডক্স পড়ার চেয়ে এক জিনিস আরও কমপ্রিহেনসিভ: সোর্স কোড পড়া। কিন্তু সোর্স কোড পড়া বই পড়ার মতো নয়: এতে অভিজ্ঞতা, অনুশীলন এবং গাইডেন্স লাগে। তাই এটা যদিও সবচেয়ে বেশি ডিটেইল দেয়, এটা সেখানে আপনাকে প্রথমে যেতে হলে না।
এই সব লেখা মেটেরিয়াল ডিপ ডাইভ করার পর, আপনার কিছু খোলা প্রশ্ন থাকবে। তাহলে, প্রশ্ন করুন! এক লাইব্রেরির লেখক সাধারণত অন্য কেউ চেয়ে তার মানসিক মডেল ভালো থাকে, এবং তার চিন্তা প্রক্রিয়া ব্যাখ্যা করে আপনাকে সাহায্য করতে পারে। অনেক ওপেন সোর্স প্রজেক্ট এবং ফ্রেমওয়ার্কের লেখকরা Slack বা IRC-এ উপলব্ধ থাকেন। আপনি সাধারণত প্রজেক্ট পেজে ডিটেইল পাবেন।
যদি আপনার কাছে সেই লোক들에 অ্যাক্সেস না থাকে? আপনি সবসময় প্রশ্ন করতে পারেন। আপনার সহকর্মীদের, বা আরও সিনিয়র ডেভেলপারদের প্রশ্ন করুন। আমি বিস্মিত হয় কতবার একটি অননসার করা প্রশ্ন একটি বন্ধুকে করলে বাকি সব জিনিস জায়গায় জায়গায় পড়ে যায়।
একবার আপনি জানলে আপনাকে ডিপ ডাইভ করতে হবে, কিছু জায়গা আছে যেখান থেকে আপনি শুরু করতে পারেন। এখানে আমি সাধারণত যে অর্ডারটি ফলো করি:
- একটি বই, অথবা একটি অফিসিয়াল গাইড
- অফিসিয়াল রেফারেন্স ডকুমেন্টেশন (যেমন RDoc) বা একটি স্পেস / RFC
- সোর্স কোড
এবং আমি প্রশ্ন করে গ্যাপগুলো পূরণ করি। এটি সবচেয়ে দ্রুত প্রক্রিয়া নয়, কিন্তু ব্রেডথ এবং ডেপথের সেরা কম্বিনেশন যা আমি এখন পর্যন্ত পেয়েছি।
আপনি কি নিয়মিত ডিপ ডাইভ করেন? যদি হ্যাঁ, তবে আমি জানতে চাই আপনি কোন রিসোর্সগুলো সবচেয়ে হেল্পফুল পেয়েছেন। কমেন্ট করে জানান!