سب سے زیادہ احمقانہ پیشوں میں سے ایک پروگرامرز کا ہے۔ وہ سب نہیں بلکہ وہ لوگ جو خود کبھی پروگرامر نہیں تھے۔ وہ لوگ جو سوچتے ہیں کہ وہ کتابوں کے طریقوں کا استعمال کرتے ہوئے کارکردگی کو "بڑھا سکتے ہیں" (یا "افادیت" بڑھا سکتے ہیں؟) انہوں نے خود کتابیں پڑھنے کی زحمت بھی نہیں کی ہے - آخر کار خانہ بدوش طرز کی پروگرامنگ کے بارے میں ایک ویڈیو ہے۔
جنہوں نے کبھی کوڈ نہیں لکھا۔ وہ لوگ جن کے لیے پروگرامرز کے بارے میں ہالی ووڈ کی فلمیں بنتی ہیں — آپ جانتے ہیں، وہ جہاں وہ کمانڈ لائن کا استعمال کرتے ہوئے ای میلز کو دیکھتے ہیں۔ جنہیں میٹرکس، ڈیڈ لائنز اور اپنی تنخواہوں کے علاوہ کسی چیز کی پرواہ نہیں ہے۔
جو اکثریت میں ہیں۔
لیکن وہ ایک مختلف وجہ سے بیوقوف ہیں۔ وہ کارکردگی، یا کم از کم تاثیر چاہتے ہیں (آؤ، مینیجر، گوگل کا فرق)، یا تو سمجھے بغیر۔ انہیں جوہر، نتائج کے حصول کے عمل، راستے میں ہونے والے نقصانات یا ترقیاتی اخراجات کی کوئی سمجھ نہیں ہے۔ مختصر میں، ایک پروگرامر کے ساتھ کام کرنا بلیک باکس کے ساتھ کام کرنے کے مترادف ہے۔
پروگرامرز ایک وجہ سے انتظامیہ کی طرف آتے ہیں: یہاں ہائپ، پیسہ، ایک مارکیٹ، اور اتنے ہی بیوقوفوں کا ایک گروپ ہے۔ چھپانے کے لیے کافی جگہ ہے۔
اگر مکینیکل اسمبلی پروڈکشن میں ہائپ ہوتی تو لوگ وہاں پہنچ جاتے۔ اسٹیشن ویگنیں بکواس ہیں۔ مجھے حیرت نہیں ہوگی اگر دسمبر میں ہمارے پڑوس میں کرسمس کے درخت فروخت کرنے والا لڑکا چھٹیوں پر آئی ٹی مینیجر ہے۔
مختصر یہ کہ اگر ممکن ہو تو ان لوگوں کو باہر نکال دیں۔ پریشان نہ ہوں، انہیں کام مل جائے گا۔ ان میں سے کوئی بھی اس وقت تک کچھ اچھا نہیں کرے گا جب تک کہ وہ خود پروگرامر نہ بن جائیں۔ کیونکہ وہ جوہر، میکانکس، یا اس عمل کی منطق کو نہیں سمجھتے جس کا وہ انتظام کر رہے ہیں۔
ٹھیک ہے، مینیجرز کے بارے میں کافی ہے۔ اب پروگرامرز کے لیے اصل ڈیل کی طرف۔ اعلیٰ معیار کا کوڈ لکھنا سیکھ کر ترقیاتی کارکردگی کو کیسے بہتر بنایا جائے۔
کارکردگی بڑھانے کے لیے، آپ کو معیار کی قربانی کے بغیر مسائل کو تیزی سے حل کرنے کی ضرورت ہے۔ مسائل کو تیزی سے حل کرنے کے لیے، آپ کو فوری طور پر اعلیٰ معیار کا کوڈ لکھنے کے قابل ہونا چاہیے۔ "اعلی معیار،" "لکھیں،" اور "فوری طور پر۔" ایک استعارے سے سمجھاتا ہوں۔
اعلیٰ معیار کا کوڈ لکھنا ایک غیر ملکی زبان کو قابلیت کے ساتھ بولنے کے مترادف ہے۔ جب آپ زبان نہیں جانتے ہیں، تو آپ اس میں اپنے خیالات کو تشکیل دینے کی کوشش میں بہت زیادہ وقت صرف کرتے ہیں۔
اگر آپ کو فوری طور پر کچھ کہنے کی ضرورت ہے، تو آپ صرف کچھ الفاظ پر تھپڑ مارتے ہیں، اکثر غلط ہوتے ہیں، مضامین کو بھول جاتے ہیں، الفاظ کی درست ترتیب، فعل کے ادوار اور خراب تلفظ کا ذکر نہ کرنا۔
اگر آپ کے پاس جواب تیار کرنے کے لیے وقت ہے، تو آپ کو ایک لغت یا آن لائن مترجم کھولنا پڑے گا اور اپنے خیالات کو ترتیب دینے میں کافی وقت صرف کرنا پڑے گا۔ تاہم، یہ احساس اب بھی ناخوشگوار ہوگا: آپ جواب دے رہے ہیں، لیکن آپ نہیں جانتے کہ یہ درست ہے یا نہیں۔ یہ کوڈ کے ساتھ بھی ایسا ہی ہے: آپ نے اسے لکھا ہے، یہ کام کرنے لگتا ہے، لیکن آیا یہ اچھے معیار کا ہے یا نہیں — کون جانتا ہے۔
یہ وقت کا دوہرا ضیاع ہے۔ جواب کے ساتھ آنے میں وقت لگتا ہے۔ اس جواب کو تیار کرنے میں بھی وقت لگتا ہے — اور اس میں سے کافی حد تک۔
اگر آپ کے پاس اعلیٰ معیار کا کوڈ لکھنے کا ہنر ہے، تو آپ ترجمے پر اضافی وقت ضائع کیے بغیر، جیسے ہی آپ کے ذہن میں جواب بن جائے گا، تشکیل دے سکتے ہیں۔
اعلیٰ معیار کا کوڈ لکھنے کا ہنر فن تعمیر کو ڈیزائن کرتے وقت مدد کرتا ہے۔ آپ محض غلط، ناقابل عمل یا اناڑی خیالات کو اپنے دماغ میں نہیں ڈالیں گے۔
خلاصہ کرنے کے لیے: اعلیٰ معیار کا کوڈ لکھنے کا ہنر نمایاں طور پر مسئلے کے حل کو تیز کرتا ہے۔
لیکن یہ سب کچھ نہیں ہے۔ احمق مینیجرز کا شکریہ، ایک کیچ ہے: ہمارے پاس اعلیٰ معیار کا کوڈ لکھنے کی کوئی ترغیب نہیں ہے۔ مینیجر کوڈ کو نہیں دیکھتا، اور کلائنٹ کوڈ کو نہیں دیکھتا۔ ہم شاذ و نادر ہی ایک دوسرے کے ساتھ کوڈ کا اشتراک کرتے ہیں، صرف کبھی کبھار، مخصوص پروجیکٹس پر جہاں ایک نامزد کوڈ کا جائزہ لینے والا یا وقتاً فوقتاً ری فیکٹرنگ ہوتا ہے۔
یہ پتہ چلتا ہے کہ زیادہ تر معاملات میں، خراب کوڈ پیداوار میں یا کلائنٹ کے اختتام پر ختم ہوتا ہے. کریپی کوڈ لکھنے والے شخص میں ایک مضبوط اعصابی تعلق پیدا ہوتا ہے: کریپی کوڈ لکھنا نہ صرف قابل قبول ہے، بلکہ اس کی ضرورت بھی ہے- اسے قبول کر لیا جاتا ہے، اور لوگ اس کے لیے ادائیگی بھی کرتے ہیں۔
نتیجتاً، اعلیٰ معیار کا کوڈ لکھنے کی مہارت میں ترقی کا کوئی امکان نہیں ہے۔ فرضی ملازم کے لکھے ہوئے کوڈ کا کبھی کوئی جائزہ نہیں لیتا۔ وہ اچھی طرح سے پروگرام کرنا سیکھیں گے اس کی واحد وجہ اندرونی حوصلہ افزائی ہے۔
لیکن یہ اندرونی محرک منصوبوں اور کارکردگی اور پیداواری صلاحیت کے تقاضوں سے متصادم ہے۔ یہ تنازعہ واضح طور پر اعلیٰ معیار کے کوڈ کے حق میں حل نہیں ہوا ہے، کیونکہ کریپی کوڈ پر تنقید بھی نہیں کی جاتی ہے۔ اور منصوبہ کو پورا کرنے میں ناکامی یقینی طور پر ہے.
کیا کرنا ہے؟ میں دیکھتا ہوں اور دو راستے تجویز کرتا ہوں جنہیں ملایا جا سکتا ہے۔
سب سے پہلے کمپنی کے اندر کسی کو اپنا کوڈ دکھانا ہے۔ رد عمل سے نہیں (پوچھا یا مجبور کیا جا رہا ہے) بلکہ عملی طور پر (ارے، یار، میرا کوڈ دیکھو، براہ کرم)۔ یہاں کلید یہ ہے کہ شوگر کوٹنگ سے گریز کریں یا شائستہ الفاظ میں کوڈ کی تنقید کو تیار کرنے کی کوشش کریں۔ اگر کوڈ گھٹیا ہے، تو ہم اسے فوراً کہتے ہیں: کوڈ گھٹیا ہے۔ وضاحتوں کے ساتھ، یقیناً، اور اس کو بہتر بنانے کے طریقے کے بارے میں سفارشات۔
لیکن یہ نقطہ نظر بھی مشکل ہے. اس کا اطلاق رابطے کے مقام پر منحصر ہے۔ اگر کام کو پہلے ہی پروڈکشن میں دھکیل دیا گیا ہے اور یہ پتہ چلتا ہے کہ کوڈ گھٹیا ہے، تو اسے دوبارہ کرنے کا کوئی فائدہ نہیں ہے۔ یا اس کے بجائے، کوئی وجہ نہیں ہے — میٹرکس گر جائیں گے۔ مینیجرز جھپٹ پڑیں گے اور کارکردگی کے تقاضوں کے ساتھ آپ پر تنقید کریں گے۔ اور ان کو یہ سمجھانے کی کوشش بھی نہ کریں کہ کریپ کوڈ لامحالہ کیڑے کے طور پر واپس آجائے گا — اس کا ردعمل بھی ہوگا۔ آپ صرف دوبارہ ایسا نہ کرنے کا عہد کر سکتے ہیں۔
اگر کام ابھی مکمل نہیں ہوا ہے، یا ابھی ابھی شروع ہوا ہے، تو کوڈ (یا اس کے پروجیکٹ، آئیڈیا) پر گندگی ڈالنے کا ایک بہت ہی عملی معنی ہو سکتا ہے - وہ شخص اسے صحیح طریقے سے کرے گا۔
دوسرا، اور سب سے زیادہ دلچسپ، آپشن یہ ہے کہ آپ اپنے فارغ وقت میں اوپن سورس ڈویلپمنٹ کریں۔ مقصد یہ ہے کہ پروگرامرز کا ایک گروپ ہو — پروگرامرز، یعنی اپنا کوڈ دیکھیں اور اس پر تبصرہ کریں۔ کمپنی کے اندر، کسی کے پاس وقت نہیں ہے۔ اور دنیا بھر کے پروگرامرز کے پاس ویسے بھی کرنے کے لیے اس سے بہتر کوئی چیز نہیں ہے، لہذا اگر آپ کوئی ایسی چیز لکھتے ہیں جو عملی نقطہ نظر سے مفید ہو، تو وہ ضرور دیکھیں گے۔
بنیادی فائدہ، میری رائے میں، کام کے اوقات سے باہر کوڈ لکھنا ہے، کیونکہ کوڈ کے معیار اور ترسیل کی رفتار کے درمیان کوئی تجارت نہیں ہے۔ آپ اپنے منصوبے کو تیار کرنے میں ایک سال گزار سکتے ہیں۔ آپ پر ڈیڈ لائن، وضاحتیں، پیسے، یا آپ کے باس کی طرف سے دباؤ نہیں ڈالا جائے گا۔ یہ مکمل آزادی اور تخلیقی صلاحیت ہے۔
صرف مفت تخلیقی صلاحیتوں کے ذریعے ہی آپ سمجھ سکیں گے اور محسوس کریں گے کہ عظیم کوڈ کیا ہے، پروگرامنگ زبانوں اور ٹیکنالوجیز کی خوبصورتی دیکھیں گے، اور کاروباری چیلنجوں کی خوشی کا تجربہ کریں گے۔ اور آپ اعلیٰ معیار کا کوڈ لکھنا سیکھیں گے۔
سچ ہے، اس کے لیے کچھ ذاتی وقت درکار ہوگا۔ کسی بھی دوسری ترقی کی طرح، واقعی. اسے خرچ کے طور پر نہیں بلکہ اپنے آپ میں ایک سرمایہ کاری کے طور پر دیکھیں۔
ماخذ: www.habr.com
