আমি কেবল আমাদের মানব এবং ভুলের প্রবণতা সম্পর্কে উত্তরগুলি দেখতে পাই যা খুব সত্য ... তবে আমি আপনার প্রশ্নটিকে অন্য দৃষ্টিকোণ থেকে দেখছি।
আমি মনে করি আপনি বাগ-মুক্ত প্রোগ্রাম লিখতে পারেন , তবে সেগুলি সাধারণত এমন প্রোগ্রাম যা আপনি ইতিমধ্যে 10 বা 12 বার লিখেছেন। 13 তমবার আপনি একই প্রোগ্রামটি স্ক্র্যাচ থেকে লেখেন, আপনি ইতিমধ্যে এটি কীভাবে করতে হবে তা জানেন: আপনি সমস্যাটি জানেন, আপনি কৌশলগুলি জানেন, আপনি গ্রন্থাগারগুলি, ভাষা জানেন ... আপনি এটি আপনার মনে দেখেন । সমস্ত নিদর্শন সব স্তরে আছে।
এটি আমার সাথে খুব সাধারণ প্রোগ্রামগুলির সাথে ঘটে কারণ আমি প্রোগ্রামিং শেখাই। এগুলি আমার পক্ষে সহজ, তবে শিক্ষার্থীদের পক্ষে কঠিন। এবং আমি ব্ল্যাকবোর্ডে অনেকগুলি, বহুবার করেছি সমস্যার সমাধানগুলির বিষয়ে কথা বলছি না। অবশ্যই আমি তাদের জানি। আমি বলতে চাইছি-300-লাইনের প্রোগ্রাম যা আমি সত্যিই ভালভাবে জানি (ধারণাগুলি আমি শেখাচ্ছি) ব্যবহার করে কিছু সমাধান করে। আমি কোনও পরিকল্পনা ছাড়াই এই প্রোগ্রামগুলি লিখি এবং সেগুলি কেবল কাজ করে এবং আমি অনুভব করি যে আমি সমস্ত বিবরণ জানি, আমার মোটেও টিডিডি লাগবে না। আমি কয়েক বা তিনটি সংকলনের ত্রুটি পেয়েছি (বেশিরভাগ টাইপস এবং এর মতো অন্যান্য জিনিস) এবং এটিই। আমি ছোট প্রোগ্রামগুলির জন্য এটি করতে পারি এবং আমি আরও বিশ্বাস করি যে কিছু জটিল ব্যক্তি আরও জটিল প্রোগ্রামের জন্য এটি করতে পারেন। আমি মনে করি লিনাস টোরওয়াল্ডস বা ড্যানিয়েল জে বার্নস্টেইনের মতো লোকের মনে এইরকম স্পষ্টতা রয়েছে, আপনি বাগ-মুক্ত কোডারে সবচেয়ে কাছের মানুষ the আপনি যদিবিষয়গুলি গভীরভাবে বুঝতে পারি আমি মনে করি আপনি এটি করতে পারেন। আমি কেবল সাধারণ প্রোগ্রামগুলির জন্য এটি করতে পারি, যেমনটি আমি বলেছিলাম।
আমার বিশ্বাস হ'ল যদি আপনি সর্বদা আপনার স্তরের থেকে অনেক বেশি প্রোগ্রাম করার চেষ্টা করে থাকেন (আমি কয়েক বছর ধরে এটি করতে পেরেছি) তবে আপনি বিভ্রান্ত হয়ে পড়বেন এবং ভুল করবেন। বড় আকারের ভুলগুলি যেমন আপনি হঠাৎ বুঝতে পারেন যে আপনার সমাধানটি কাজ করতে পারে না, যখন আপনি শেষ পর্যন্ত সমস্যাটি বুঝতে পারেন এবং এমন জটিল পরিবর্তন করতে হবে যাতে তারা আপনাকে আপনার সমস্যার সমাধান করতে বাধা দিতে বা কোডটিকে ভয়ঙ্কর করে তুলতে পারে। টিডিডি এই মামলার জন্য, আমি বিশ্বাস করি। আপনি জানেন যে আপনি যে সমস্যাটি মোকাবেলা করছেন সেটিকে আপনি আঁকেন না এবং তাই আপনার একটি শক্ত ভিত্তি রয়েছে তা নিশ্চিত করার জন্য সর্বত্র পরীক্ষা করা put যদিও টিডিডি 10,000 ফুট দৃষ্টি সমাধান করে না। আপনি সর্বদা পুরোপুরি পরিষ্কার কোড সহ চেনাশোনাগুলিতে বেড়াতে পারেন।
তবে, আপনি যদি এমন কিছু করার চেষ্টা করেন যা নতুন তবে এটি আপনার স্তরের ঠিক উপরে, আপনি আপনার প্রোগ্রামটি নিখুঁত বা প্রায় নিখুঁত পেতে পারেন। আমি মনে করি আপনার "জ্ঞান সীমান্তে" কী প্রোগ্রাম রয়েছে তা জানা সত্যিই কঠিন, তবে তাত্ত্বিকভাবে এটি শেখার সেরা উপায়। আমি আসলে প্রচুর স্ক্র্যাচ থেকে পুনর্লিখন করি। কিছু লোক তা করেন তবে আপনার অনেক সময় এবং ধৈর্য দরকার কারণ তৃতীয়বারের মতো আপনি একটি তুচ্ছ ঘটনা পুনরুদ্ধার করেন আপনি প্রথমবারের মতো উত্তেজিত হন না।
সুতরাং আমার পরামর্শটি হ'ল: আপনি কেবলমাত্র সেই জিনিসটির জন্য কোনও প্রোগ্রাম-বাগ-মুক্ত না লিখে অবধি কিছু বুঝবেন না। এবং তারপরে আপনি একই প্রোগ্রামের সাথে গভীরভাবে জানেন সেই দুটি ধারণাগুলির একত্রিত করার চেষ্টা করুন। আমি প্রায় নিশ্চিত আপনি প্রথমবার এটি পাবেন। সেরা উপায়গুলির মধ্যে একটি হ'ল নন-তুচ্ছ সফ্টওয়্যারটি নতুন করে লিখুন, এমন কিছু যা প্রথমবার প্রচুর পরিশ্রম করেছিল (আমি এখনই অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির সাথে এটি করছি)। আমি যখনই আবার শুরু করি তখন আমি কিছুটা মজাদার যোগ করার জন্য কিছু পরিবর্তন করি বা স্টাফ যুক্ত করি এবং আমি আপনাকে বলতে পারি যে আমি আরও ভাল এবং ভাল এবং আরও ভাল হয়ে উঠছি ... সম্ভবত বাগমুক্ত নয় তবে সত্যিই গর্বিত।