12/10/2023
“𝐏𝐫𝐨𝐠𝐫𝐚𝐦𝐦𝐢𝐧𝐠 𝐢𝐬 𝐭𝐡𝐢𝐧𝐤𝐢𝐧𝐠, 𝐧𝐨𝐭 𝐭𝐲𝐩𝐢𝐧𝐠.” – 𝐂𝐚𝐬𝐞𝐲 𝐏𝐚𝐭𝐭𝐨𝐧
join to learn Data Structures & Algrithm, Programming, Data Sccience, machine Learing & A.I
12/10/2023
“𝐏𝐫𝐨𝐠𝐫𝐚𝐦𝐦𝐢𝐧𝐠 𝐢𝐬 𝐭𝐡𝐢𝐧𝐤𝐢𝐧𝐠, 𝐧𝐨𝐭 𝐭𝐲𝐩𝐢𝐧𝐠.” – 𝐂𝐚𝐬𝐞𝐲 𝐏𝐚𝐭𝐭𝐨𝐧
19/08/2023
06/08/2023
تصویر کچھ وقت پہلے ہونے والے گوگل کوڈنگ کمپیٹیشن کی ہے جس میں انڈیا چھٹے ، بنگلہ دیش انتیسویں اور پاکستان 1336 ویں نمبر پہ آیا تھا تب سوشل میڈیا پہ یہ کافی پھیلی تھی۔
آج ہم دیکھیں گے کہ یہ کوڈنگ کمپیٹیشن کیا ہوتے ہیں ؟
ان کی تیاری کیسے کر سکتے ہیں؟
ان میں شامل کیسے ہو سکتے اور شمولیت کے لیے اہلیت کی بنیاد کیا ہے؟
اور ان میں حصہ کیوں لینا چاہیئے؟
_________________
کوڈنگ کمپیٹیشن کیا ہیں؟
جیسے دنیا بھر میں مختلف کھیلیں کھیلی جاتی ہیں اور ان کے ٹورنامنٹ منعقد ہوتے جہاں مختلف ممالک کی ٹیمیں حصہ لیتی اور مقابلہ کرتی ہیں اسی طرح کوڈرز۔ کے درمیان کوڈنگ پرابلمز کو حل کرنے کیلیے مقابلے ہوتے جن کو کوڈنگ کمپیٹیشن کہا جاتا ہے اور پروگرامنگ کی یہ فیلڈ competitive programming کہلاتی ہے جسے مختصراً سی پی بھی کہا جاتا ہے ۔ یہ مقابلے ٹیکنالوجی کی بڑی کمپنیاں منعقد کرواتی ہیں اور اکثر یہ انہی کے نام سے منسوب ہوتے ہیں جیسے گوگل کوڈنگ کمپیٹیشن وغیرہ۔
سٹیو جابز جو کہ ایپل Apple کمپنی کا بانی تھا نے کہا تھا کہ
" Competitive programming __ It teaches you how to think"
کیونکہ پروگرامنگ میں ہمیں صرف کوڈ ہی نہیں لکھنا ہوتا بلکہ کسی بھی پرابلم کو ٹکڑوں میں توڑ کر انہیں حل کرنا ہوتا اور ان کو لاجیکلی جوڑنا ہوتا ہے تاکہ پرابلم مکمل حل ہو سکے ۔
ان مقابلوں میں حصہ کیوں لینا چاہیئے؟
زیادہ تر بڑی کمپنیاں Google, Facebook, Amazon, Microsoft وغیرہ اپنی ہائیرنگ کیلیے انھی مقابلوں کا استعمال کرتی ہیں ۔ تو اگر کوئی بھی ان کمپنیوں یا ان جیسی کسی اور کمنی کے ساتھ کام کرنا چاہتا ہے تو اسے لازمی ان مقابلوں میں شرکت کرنا چاہیئے اور ان کی تیاری کرنا چاہیئے ، اس سے فرق نہیں پڑتا کہ پروگرامنگ کی دنیا میں کوئی نیا ہے یا پرانا کوئی بھی مناسب وقت اور محنت سے ان کی تیاری کر سکتا ہے
ان مقابلوں میں ایسی پرابلمز حل کرنے کیلیے دی جاتی ہیں جن کا حل انٹرنیٹ پہ پہلے سے موجود نہیں ہوتا پورا کھیل راؤنڈز میں تقسیم ہوتا ہے اور ہر پرابلم حل کرنے کیلیے طے شدہ وقت ہوتا ہے ، جیسے جیسے راؤنڈز آگے جاتے ہیں پرابلمز مشکل سے مشکل تر ہوتی جاتی ہیں ، ان میں پرابلم کو حل کرنے والا ہی نہیں جیتتا ہے بلکہ جیت اس کی ہوتی جس نے سب سے کم وقت میں اسر سب سے شاندار طریقہ سے طرابلم کو حل کیا ہو ۔
_________________
ان مقابلوں کی تیاری کیسے کی جائے؟
ان مقابلوں کی تیاری کیلیے ضروری ہے کہ
آپ کو کسی ایک پروگرامنگ لینگوئج پہ عبور ہو جیسے سی پلس پلس ، جاوا یا پائتھن وغیرہ ۔
الگارتھم اینالسز پہ عبور ہو جس میں Time and space complexity شامل ہیں ۔
ڈیٹا اسٹرکچرز پہ عبور ہو۔
ذیشان خضر
پروگرامنگ ، ڈیٹااسثرکچرز وغیرہ سیکھنے کیلیے اور ان پہ مزید معلوماتی تحریروں کیلیے پیج کو فالو کریں
24/07/2023
19/07/2023
ہر گزرتے لمحے کے ساتھ وہ پیدا ہو رہا ہے بڑھ رہا ہے پھیل رہا ہے ہر سیکنڈ میں اس کا سائز بڑے سے بڑا ہوتا جا رہا ہے اور اسے لامتناہی بناتا جا رہا ہے یہ ڈیٹا ہے جو آج کے دیجیٹل دور میں ہم پیدا کر رہے ہیں ہماری سوشل میڈیا ایکٹیویٹی سے لے کر آنلائن ٹرانزیکشن تک ہر چیز سے ڈیٹا بن رہا ہے ، اسی ڈیٹا کی بنیاد پہ ملین بلین ڈالرز انڈسٹری کھڑی ہو چکی ہے اور کام کر رہی ہے۔
ذرا تصور کریں یہ تمام ڈیٹا آپ کے پاس ہو اور بغیر کسی منظم شکل کے ہو تو کیا آپ یا کوئی بھی اسے کسی بھی کام میں لاسکے گا جواب یقیناً نہیں ہے ۔
ذہن میں لایئے کہ اپ کے پاس یہ سارا ڈیٹا ہو اور آپ کا ٹاسک اسے مینیج کرنا ،ترتیب دینا اور سٹور کرنا ہو تاکہ بعد میں اسے استعمال میں لایا جا سکے ۔ یہ کام جتنا اہم ہے اتنا ہی پچیدہ اور بڑا بھی ہے اور یہی کام ہے جسے انجام دینیے کیلیے ہم ڈیٹا سٹرکچرز کا استعمال کرتے ہیں ۔
ڈیٹا سٹرکچرز کیا ہوتے ہیں؟
ڈیٹا سٹرکچرز کو ایک ٹول باکس کی طرح لیجیئے جس میں ہر ٹول کیلیے الگ سے جگہ بنی ہوتی جہاں اسے رکھا جاتا ہے جیسے ہتھوڑی ہتھوڑی کیلیے بنی جگہ پہ ہو گی اور سکریو ڈائیو اپنی متعلقہ جگہ پہ ایسے ہی ڈیٹا سٹرکچرز میں حصے بنے ہوتے ہیں جہاں ہم ڈیٹا کے مختلف حصے اپنی متعلقہ جگہ پہ رکھتے ہیں ۔
ڈیٹا سٹرکچرز ایک کنٹینر کی طرح ہے جو کمپیوٹر میں ڈیٹا سٹور کرنے اور آرگنائز کرنے کیلیے استعمال ہوتا ہے تاکہ اس دیٹا کو تیزی سے اور آسانی سے استعمال کیا جا سکے حاصل کیا جا سکے۔یہ بالکل ایسا ہی ہے جیسے ہم اپنی کتابوں ، کھلونوں اور کپڑوں کیلیے الگ الگ طرح کے باکس استعمال کریں تاکہ انھیں آسانی سے ڈھونڈ سکیں۔
اک مثال لیتے ہیں کہ ہمارے پاس ہمارے دوستوں کے ناموں کی مکمل لسٹ ہو تو اس کیلیے ہم ایک ڈیٹا سٹرکچر array کا استعمال کر سکتے ہیں جس سے تمام نام ایک ہی لائن میں اپنی اپنی جگہ پہ رکھ سکتے اور کسی بھی نام کو آسانی سے ڈھونڈ سکتے۔ ڈیٹا سٹرکچرز بنانے کا مقصد ہی ڈیٹا کو بہترین انداز میں ترتیب دینا ہے۔
پروگرامنگ اور ڈیٹا سٹرکچرز کا تعلق
آپ کوئی بھی پروگرام کوئی بھی سافٹ ویئر لے لیجیئے اس کی بنیاد دیٹا ہے جسے وہ استعمال کرے گا یا مینیج کرے گا اور اس کام کیلیےبنیاد ڈیٹا سٹرکچرز ہی ہے ۔
پروگرامنگ اور ڈیٹا سٹرکچرز ک تعلق جسم اور روح کی مانند ہے جیسے جسم بغیر روح کے بے معنی ہے ایسے ہی کوئی بھی پروگرام ڈیٹا سٹرکچرز کے بنا ممکن نہیں ہوتا ۔ کوئی شخص کسی بھی پروگرامنگ لینگوئج کا کیسا ہی ماہر ہو وہ تب تک صرف ایک کوڈر ہے جب تک وہ ڈیٹا سٹرکچرز اور الگورتھم نہیں سمجھتا اور جانتا کیونکہ انھی سے طے ہوتا کوئی پروگرام شاندار ہو گا یا کچرا ۔
جو کوئی بھی ماہر پروگرامر بننا چاہتا ہے سافٹ ویئر ڈیویلپر بننا چاہتا ہے یا کمپیٹیٹو پروگرامنگ میں بڑھنا چاہتا اسے لازمی ڈیٹا سٹرکچرز اور الگورتھم سیکھنا چاہیئے۔
اگر آپ ڈیٹا سٹرکچرز ، لگورتھم اور پروگرامنگ سیکھنا چاہتے ہیں پیج کو فالو لازمی کریں
Netzoon: Code with zeeshan