Debugging When Stuck
دیر یا سویر، آپ کا کوڈ نہیں چلے گا۔ اسکرین سرخ ہوگی۔ انگریزی کی ایک سطر آپ پر کسی بات کا الزام لگائے گی۔ دل کی دھڑکن بڑھ جائے گی۔ جی چاہے گا کہ لیپ ٹاپ بند کر کے اٹھ جائیں۔ ایسا نہ کریں۔ پروگرامر بننے والوں اور نہ بننے …
اس کو سمجھنے کا ایک سے زیادہ طریقہ ہے۔ اگر آپ کو صرف ایک طریقہ سکھایا گیا ہے تو آپ کو حق سے کم سکھایا گیا ہے۔
اس کو سمجھنے کا ایک سے زیادہ طریقہ ہے۔ اگر آپ کو صرف ایک طریقہ سکھایا گیا ہے تو آپ کو حق سے کم سکھایا گیا ہے۔
دیر یا سویر، آپ کا کوڈ نہیں چلے گا۔ اسکرین سرخ ہوگی۔ انگریزی کی ایک سطر آپ پر کسی بات کا الزام لگائے گی۔ دل کی دھڑکن بڑھ جائے گی۔ جی چاہے گا کہ لیپ ٹاپ بند کر کے اٹھ جائیں۔ ایسا نہ کریں۔ پروگرامر بننے والوں اور نہ بننے والوں میں سب سے بڑا فرق یہی ہے کہ بگ ظاہر ہونے کے پہلے منٹ میں وہ کیا کرتے ہیں۔ اچھے لوگ آگے جھکتے ہیں۔ باقی گھبرا کر فون اٹھا لیتے ہیں۔ یہ سبق آگے جھکنے کے بارے میں ہے۔
غلطی کا پیغام پڑھیں۔ دوبارہ پڑھیں۔ زور سے پڑھیں، اردو میں اگر مدد ہو۔ زیادہ تر پیغامات سادہ انگریزی میں ان لوگوں نے لکھے ہیں جو چاہتے تھے کہ آپ سمجھیں۔ NameError، balance نام کا متغیر موجود نہیں۔ SyntaxError، سطر چار پر کولن نہیں۔ ZeroDivisionError، صفر سے تقسیم۔ ہر ایک ایماندار ہے۔ نظام بتا رہا ہے کیا غلط ہوا، کہاں ہوا، اور تقریباً ہمیشہ کیسے ٹھیک کرنا ہے۔ پہلی عادت یہ ڈالیں کہ مدد مانگنے سے پہلے پیغام آخری لفظ تک پڑھ لیں۔ پانچ میں چار بار جواب اسی پیغام میں ہوگا۔
کبھی کبھی پروگرام بغیر غلطی کے چلتا ہے لیکن جواب غلط ہوتا ہے۔ یہ زیادہ مشکل ہے۔ کمپیوٹر چیخ نہیں رہا۔ خاموشی سے جھوٹ بول رہا ہے۔ علاج ہے، بگ کو بائنری سرچ کریں۔ ہر متغیر کی قدر شروع، بیچ، اور آخر میں چھاپیں۔ جہاں قدر پہلی بار غلط لگے، بگ اسی سطر کے قریب ہے۔ کوئی فنکشن تین سو کی بجائے تین ہزار واپس کر رہا ہو تو اس کے ان پٹ داخل ہوتے وقت چھاپیں۔ ٹھیک ہوں تو بگ اندر ہے۔ غلط ہوں تو بگ اوپر کی طرف ہے۔ یہ عادت بگ ڈھونڈنے کا وقت دس گنا کم کر دیتی ہے۔ لاہور کی دفتری عمارتوں میں سینئر انجینئرز روز print بیانات پر بھروسہ کرتے ہیں۔ اس اوزار میں شرم نہیں۔
ڈیبگنگ کے دوران تین اصول۔ ایک، ایک وقت میں ایک چیز بدلیں۔ آپ نے تین سطریں بدلیں اور غلطی غائب ہوگئی، تو آپ کو معلوم نہیں کہ کون سی تھی۔ اگلی بار وہی بگ آئے گا تو راستہ کھو جائے گا۔ دو، ٹھیک کرنے سے پہلے، کیا آپ بگ کو دہرا سکتے ہیں۔ وہی کوڈ، وہی ان پٹ، ہر بار وہی غلطی، تو پکڑ مضبوط ہے۔ کبھی آئے کبھی نہ آئے، تو وجہ کچھ اور ہے، اکثر وقت کی ترتیب یا چھپی ہوئی حالت۔ رک کر سوچیں۔ تین، اگر تیس منٹ سے پھنسے ہیں تو اٹھ جائیں۔ چائے بنائیں۔ بلی کو پیار کریں۔ عصر پڑھ لیں۔ واپس آئیں۔ دنیا کے آدھے بگ ان لوگوں نے برآمدے میں پانچ منٹ کی چہل قدمی کے دوران ٹھیک کیے ہیں جو دو گھنٹے سے گھور رہے تھے۔
جب واقعی پھنس جائیں تو مدد کہاں مانگیں۔ Stack Overflow پروگرامنگ سوالات کا دنیا کا سب سے بڑا فورم ہے۔ غلطی کا پیغام قوسین میں ہی تلاش کریں۔ دس میں نو بار کسی نہ کسی کو وہی بگ آ چکا ہوگا۔ ان کا سوال اور نیچے تین جواب آپ کے منتظر ہوں گے۔ سب سے اوپر کا جواب پڑھیں، پھر دوسرا، پھر تیسرا۔ کبھی دوسرا پہلے سے بہتر ہوتا ہے۔ ChatGPT اور دیگر AI اوزار بھی کارآمد ہیں۔ اپنا کوڈ اور غلطی پیسٹ کریں، پوچھیں، اس میں کیا غلط ہے اور کیسے ٹھیک کروں۔ جواب کو اشارہ سمجھیں، حتمی سچ نہیں۔ AI تقریباً دس فیصد بار اعتماد سے غلط ہوتا ہے۔ مشورہ ماننے سے پہلے ہمیشہ آزمائیں۔
بند کرتے ہوئے ایک مشق۔ اپنا آخری چلتا ہوا پروگرام کھولیں۔ جان بوجھ کر اسے توڑیں۔ ایک جگہ متغیر کا نام بدلیں، دوسری جگہ نہیں۔ کوئی کولن ہٹا دیں۔ صفر سے تقسیم کریں۔ چلائیں اور غلطی پڑھیں۔ پھر ٹھیک کریں۔ یہ ہفتے میں پانچ بار، پانچ مختلف بگ کے ساتھ کریں۔ پانچویں بار تک آپ غلطی کا پیغام پورا ظاہر ہونے سے پہلے پہچان لیں گے۔ پروگرامر وہ نہیں جو کبھی چیزیں نہیں توڑتے۔ وہ ہیں جنہوں نے اتنی چیزیں جان بوجھ کر توڑی ہیں کہ توڑنا اب پہچانا ہوا کام ہے۔ توڑنا کام کا حصہ ہے۔ مہارت زیادہ تر بحالی کی رفتار ہے، غلطیوں کی غیر موجودگی نہیں۔
تخمینی وقت: 14 منٹ