سي ++ - انتهائي صلاح ڏيو! هو تمام تيز آهي. STL جي ڪري الگورتھم جو عمل ٿورو وقت وٺندو آھي. C++ سڀني مقابلن ۾ قبول ٿيل آهي. مون C++ ۾ ڪوڊ جي منهنجي پهرين لائن لکي.
سي - سي ++ سکو STL جي ڪري. جيڪڏھن توھان ڄاڻو ٿا سي، توھان پڻ پروگرام ڪري سگھو ٿا C++ ۾.
جاوا هڪ سست پروگرامنگ ٻولي آهي. اھو ھڪڙو وڏو انٽيجر ڪلاس آھي، پر اھو توھان جي گھڻو مدد نه ڪندو. جيڪڏهن مقابلي ۾ هڪ وقت جي حد آهي، جاوا سان توهان ضرور ان کان وڌي ويندا. جاوا سڀني مقابلي ۾ قبول نه ڪيو ويو آهي.
سڀ کان پهريان، توهان کي پنهنجي بنيادي ڄاڻ کي وڌائڻ جي ضرورت آهي
هڪ دفعو توهان کي ٻولي جي نحو جي عادت پئجي ويندي آهي، اتي ڪجهه مسئلا حل ڪرڻ لاء آهن. سادي مسئلن سان شروع ڪريو جيڪي مشق جي ضرورت آهي. هن مرحلي تي، بنيادي شيء توهان جي پروگرامنگ انداز جو تعين ڪرڻ آهي. ٿي سگهي ٿو ته توهان تمام گهڻي وائيٽ اسپيس سان ڪوڊ لکڻ پسند ڪريو، شايد توهان نٿا ڪريو. توهان شايد قوسون رکي رهيا آهيو ساڳئي لڪير تي "جيڪڏهن"، يا توهان انهن کي الڳ لائينن تي رکي سگهو ٿا.
توھان کي توھان جي پروگرامنگ جو انداز ڳولڻو پوندو ڇو ته اھو توھان جو انداز آھي.
جڏهن توهان ان کي ڳوليندا آهيو، ٻه بنيادي اصول ياد رکو:
توهان جو ڪوڊ لاڳو ڪرڻ آسان هجڻ گهرجي. توهان کي آرام سان محسوس ڪرڻ گهرجي انهي حل کي لاڳو ڪرڻ جنهن سان توهان اچي رهيا آهيو. ڇو؟ ڇو ته مقابلي دوران، آخري شيء جيڪو توهان چاهيو ٿا اهو توهان جي ڪوڊ ۾ وڃائڻ آهي. اهو هميشه بهتر آهي ته اضافي 5 منٽ خرچ ڪرڻ جي باري ۾ سوچيو ته ڪوڊ جي عمل درآمد کي ڪيئن آسان ڪيو وڃي ان کي ڳولڻ جي ڪوشش ڪرڻ جي ڀيٽ ۾ 10 منٽ خرچ ڪرڻ جي.
توهان جو ڪوڊ پڙهڻ لاء آسان هجڻ گهرجي. جڏهن ڪوڊ پڙهڻ آسان آهي، اهو ڊيبگ ڪرڻ آسان آهي. اچو ته ان کي منهن ڏيو - ڪيڙا هر وقت ٿين ٿا. توهان کي خبر آهي ته اهو احساس جڏهن توهان وٽ 10 منٽ رهجي ويا آهن ۽ توهان غلط غلطي نه ڳولي سگهو ٿا؟ يقيناً توهان ڪندا. هن صورتحال کان بچڻ لاء، لکو legible ڪوڊ. هڪ دفعو توهان ان کي ڊيبگ ڪرڻ شروع ڪيو، ڪوڊ قدرتي ۽ سمجهڻ ۾ آسان نظر ايندو.
مشق، مشق ۽ وڌيڪ مشق. مان سفارش ڪريان ٿو ته توهان پهرين 250 سڀ کان وڌيڪ حل ٿيندڙ مسئلن جي ذريعي ڪم ڪريو اسپيڪ. ان کي ترتيب ۾ حل ڪريو. انهن مان هر هڪ جي حل بابت سوچڻ ۾ گهٽ ۾ گهٽ هڪ ڪلاڪ خرچ ڪريو.
ائين نه چئو: "اهو مسئلو مون لاء ڏاڍو ڏکيو آهي، مان ايندڙ حل ڪرڻ جي ڪوشش ڪندس." اهڙي طرح گمراهه سوچيندا آهن.
ڪاغذ جو هڪ ٽڪرو ۽ هڪ پنسل وٺو. ان باري ۾ سوچو. ٿي سگهي ٿو توهان هڪ حل ڳولي سگهو ٿا، شايد نه. گهٽ ۾ گهٽ، توهان الورورٿمڪ سوچ کي ترقي ڪنداسين. جيڪڏهن توهان هڪ ڪلاڪ اندر حل نه ٿا آڻي سگهو، فورم تي يا آرٽيڪل ۾ تيار ڪيل حل ڳوليو.
توهان هن طريقي سان ڇا حاصل ڪندا؟ ڪوڊ استعمال ڪندي پنهنجي خيالن کي تڪڙو لاڳو ڪرڻ سکو. ۽ ڪلاسيڪل مسئلن ۽ الگورتھم جو مطالعو ڪريو.
ٻيو، توهان کي الورورٿم ۽ ڊيٽا جي جوڙجڪ کي ماسٽر ڪرڻ گهرجي
ھڪڙي ترتيب واري طريقي جي پيروي ڪريو. ڇا توهان هلڻ شروع ڪيو بغير ڄاڻڻ جي ڪيئن هلڻ؟ نه. ڇا توهان بغير ڪنهن مضبوط بنياد جي اسڪائي اسڪراپر ٺاهي سگهو ٿا؟ ٻيهر نه.
توهان سکيا جي رستي ۾ قدمن کي نظرانداز نٿا ڪري سگهو. جيڪڏهن توهان انهن کي نظرانداز ڪيو، توهان کي علم جي خلا سان ڇڏي ويندي. وقت سان گڏ اهي صرف خراب ٿي ويندا.
جيڪڏهن توهان آسان مسئلا حل ڪرڻ تي ڪم ڪندا، توهان ڪڏهن به بهتر نه ٿيندا.
سمجھڻ جو سڀ کان وڌيڪ مؤثر طريقو جيڪو توهان نٿا ڄاڻو اهو آهي عملي طور تي تجربو ڪرڻ. ائين ئي مون سکيو. مون ڪيتريون ئي نيون ٽيڪنڪون سکيون جن بابت مون اڳي ڪڏهن به نه ٻڌو هو هڪ مشڪل ڪم جي چونڊ ڪندي.
هر ٽيون مسئلو جيڪو توهان ڪم ڪري رهيا آهيو توهان کي ڪجهه نئين سيکارڻ گهرجي. مسئلا چونڊڻ وقت وڌيڪ محتاط ٿيندؤ. وڌيڪ ڏکيو مسئلا چونڊيو!
هڪ دفعو توهان SPOJ کان اهي 250 مسئلا مڪمل ڪريو ٿا، توهان کي راندين جي پروگرامنگ جي بنيادي عنوانن جي بنيادي ڄاڻ هوندي. بنيادي الگورتھم جي پويان منطق جي گھڻي سمجھڻ سان، اعلي سطحي الگورتھم گھٽ پيچيده نظر ايندا. هن طريقي سان توهان پنهنجي علم مان تمام گهڻو فائدو حاصل ڪري سگهو ٿا.
هر هڪ بنيادي موضوعن ۾ گهيرو ڪريو
هتي هڪ قيمتي وسيلو آهي تمام گهڻي معلومات سان. اتي توهان هر موضوع لاءِ مٿيون 10 الگورتھم ۽ ڊيٽا جي جوڙجڪ ڳوليندا. SPOJ کان 250 مسئلن کان پوء، توهان کي هن فهرست مان گهڻو ڪجهه معلوم ٿيندو. پر توهان پڻ ڪيترن ئي شين تي ٺٺوليون ڪندا جيڪي توهان اڳ ڪڏهن به نه ٻڌو آهي. تنهن ڪري انهن عنوانن جو اڀياس شروع ڪريو ترتيب سان.
جيڪڏهن توهان ڪجهه نئين سکڻ کان پوء پنهنجي علم کي مضبوط نه ڪيو، توهان جلدي سڀ ڪجهه وساري ڇڏيندؤ.
مان سفارش ڪريان ٿو ته توهان هڪ نئين الگورتھم سکڻ کان پوء، ان کي عملي طور تي استعمال ڪريو. ان کي 2-3 ڪمن ذريعي ڪم ڪريو. SPOJ ۾ الگورتھم ٽيگ لاء ڏسو. اتي توھان کي مسئلا ملندا جن کي حل ڪرڻ لاءِ ھن الگورتھم جي ضرورت آھي. پهرين انهن مسئلن کي حل ڪريو.
ماسٽر متحرڪ پروگرامنگ ڇو ته اهو توهان کي فتح ڏانهن وٺي ويندو
منهنجي تجربي مان، هر مقابلي ۾ گهٽ ۾ گهٽ هڪ مسئلو آهي متحرڪ پروگرامنگ. ڪيترن ئي ماڻهن کي سر درد ٿئي ٿو جڏهن اهي جملي ٻڌندا آهن "متحرڪ پروگرامنگ" ڇاڪاڻ ته اهي اهو سڀ ڪجهه نٿا سمجهن.
مون کي متحرڪ پروگرامنگ پسند آهي، اهو منهنجو پسنديده موضوع آهي. متحرڪ پروگرامنگ جو راز عالمي سطح تي بهترين چونڊون ڪرڻ آهي، نه رڳو مقامي. توھان کي لازمي طور تي مسئلي کي آسان ذيلي مسئلن ۾ ٽوڙڻ گھرجي. انهن ذيلي مسئلن مان هر هڪ کي صرف هڪ ڀيرو حل ڪريو. پوء ھڪڙو حل ٺاھيو جيڪو حل ٿيل ذيلي مسئلن کي گڏ ڪري. لالچي الگورتھم - متحرڪ پروگرامنگ جي ابتڙ. اهو هر قدم تي مقامي طور تي بهترين چونڊون ڪرڻ جي ضرورت آهي. ۽ مقامي طور تي بهتر انتخاب خراب عالمي حل جو سبب بڻجي سگهي ٿو.
نون تصورن کي سکڻ دوران، چيڪ ڪريو TopCoder سبق. اهي تمام تفصيلي ۽ سمجھڻ وارا آهن. انهن جي مهرباني، مان سمجهي سگهيو آهيان بائنري انڊيڪس ٿيل وڻ.
هر سال ڪمپيوٽر اولمپياڊ جون تياريون سيپٽمبر ۾ شروع ٿينديون هيون ۽ اپريل ۾ ختم ٿينديون هيون.
انهن 8 مهينن لاءِ هر روز مون 5 ڪلاڪ مشق ڪئي.
۽ ها، مون اهي 5 ڪلاڪ صرف الورورٿمڪ مسئلن کي حل ڪرڻ ۾ گذاريا. مون کي اهي ڏينهن ياد آهن جڏهن مون 8 ۽ 10 ڪلاڪ مشق ڪئي هئي. ڇو؟ ڇو ته مون ان کي پسند ڪيو. هر روز جڏهن مان اسڪول مان واپس گهر ايندو هوس ته سڌو بيڊ روم ۾ ويندو هوس، ڪمپيوٽر تي ويهندو هوس ۽ نئين مسئلي جو تجزيو ڪرڻ لڳندو هوس. يا مان هڪ نئون الگورٿم سکي رهيو هوس جيڪو مون کي ڄاڻڻ جي ضرورت آهي هن مسئلي کي حل ڪرڻ لاء.
جيڪڏهن توهان کي فتح ڪرڻ چاهيو ٿا، توهان کي اهو ئي ڪرڻو پوندو. هڪ مسئلو چونڊيو ۽ ان تي لٺ. ان جي باري ۾ سوچيو جڏهن سپرمارڪيٽ ڏانهن هلڻ يا ڊرائيونگ دوران.
ڇا توهان کي خبر آهي ته جڏهن توهان سمهندا آهيو، توهان جو دماغ ان ڏينهن گڏ ڪيل معلومات کي خراب ڪري ٿو؟ هُو بُڪ شيلف تي ڪتابن کي الف بي ترتيب ۾ رکيل نظر اچي ٿو. لازمي طور تي، توهان جو دماغ مختلف مسئلن جي باري ۾ سوچيندو آهي جيڪو توهان منهن ڪري رهيا آهيو.
اهو مهارت سان استعمال ڪري سگهجي ٿو. بستري تي وڃڻ کان اڳ، هڪ ڏکيو مسئلو پڙهو ۽ ياد رکو ته ان کي حل ڪرڻ لاء ڇا آهي. هن مرحلي تي، توهان کي پاڻ کي حل ڳولڻ جي ضرورت نه آهي. بستر ڏانهن وڃو. توھان جو دماغ ھن مسئلي تي عمل ڪرڻ شروع ڪندو. جڏهن توهان جاڳندا، توهان کي حيرت ٿي ويندي ته توهان اهو حل ڳولي ورتو جڏهن توهان سمهي رهيا آهيو.
پاڻ ڪوشش ڪريو. اهو جادو وانگر آهي.
مون هڪ وڊيو بلاگ ٺاهيو
هي مختصر پيراگراف راندين جي پروگرامنگ سان لاڳاپيل ناهي. جيڪڏهن توهان پنهنجي ويهن سالن ۾ آهيو ۽ حيران ٿي رهيا آهيو ته آئون دنيا کي ڪيئن ڏسان ٿو، توهان شايد چيڪ ڪرڻ چاهيندا يوٽيوب تي منهنجو وڊيو بلاگ. مان ان ۾ دنيا، زندگي ۽ ڪمپيوٽر سائنس جي باري ۾ ڳالهائيندو آهيان.
هوشيار ڪم ڪريو
هي آهي ڪاميابي جو راز. توهان کي مقصدن جي ضرورت آهي.
اسان ماڻهو آهيون ۽ اسان ان کي پسند ڪندا آهيون دير ڪرڻ. اسان هميشه اهو بند ڪرڻ چاهيون ٿا جيڪو هن وقت ڪرڻ جي ضرورت آهي. Netflix ڏسڻ هميشه متحرڪ پروگرامنگ جي مسئلن سان معاملو ڪرڻ کان وڌيڪ مزيدار آهي. توھان ھي ڄاڻو ٿا ۽ توھان کي ان کي درست ڪرڻ جي ضرورت آھي.
دير کي ڪيئن شڪست ڏيو
پنهنجو پاڻ کي مقصد مقرر ڪريو. توهان هميشه دلچسپ مسئلا ڳوليندا آهيو جن مان توهان ڪجهه نئين سکي سگهو ٿا (مٿي ذڪر ڪيل وسيلن کي چيڪ ڪريو). پر انهن مسئلن کي حل ڪرڻ جي ضرورت آهي، صرف پڙهڻ جي باري ۾ نه.
تنهنڪري هتي آهي ڪيئن مون دير سان ختم ڪيو. مون هڪ پيپر ڪئلينڊر شروع ڪيو ۽ هر روز ڀريو مسئلن سان جيڪو آئون حل ڪرڻ چاهيان ٿو. مون هميشه ٻه ڏينهن اڳ مسئلا ڀريو. تنهن ڪري مون کي خبر هئي ته ايندڙ ڏينهن ۾ منهنجو وقت ڪيئن منظم ڪجي.
تنهنڪري مون کي هميشه حوصلا افزائي هئي. مون کي ڪجهه مسئلا حل ڪرڻ جي ضرورت هئي ۽ ڪئلينڊر تي ايندڙ ڏينهن ڀرڻ لاءِ نوان ڳولڻ گهرجن. حل ٿيل مسئلن کي پار ڪرڻ عظيم محسوس ٿيندو آهي. مون کي خبر آهي ته توهان کي اهو پڻ پسند آهي.
پنهنجو پيپر ڪئلينڊر حاصل ڪريو. پنهنجي فون تي ٻي ڪم جي فهرست نه ٺاهيو جنهن کي توهان سڀاڻي وساري ڇڏيندؤ.
مؤثر طريقي سان ڊيبگ ڪيئن ڪجي
ڇا توهان هڪ پروفيشنل ٿيڻ چاهيو ٿا؟ جيڪڏھن ھائو، پوء توھان کي ضرورت آھي "ان کي پنھنجي دماغ ۾ ڊيب ڪريو."
هي تمام گهڻي موثر ڊيبگنگ ٽيڪنڪ آهي جنهن کي مان ڄاڻان ٿو ڇاڪاڻ ته ان کي ڪنهن به ڊيبگر جي ضرورت ناهي. توهان جو دماغ هڪ ئي وقت ڪيترن ئي ڪوڊ شاخن جي جانچ ڪري ٿو ۽ توهان جي مقابلي ۾ ڪوڊ جو تمام گهڻو وسيع جائزو ڏئي ٿو کلاسي ڊيبگر.