CodeGym /جاوا بلاگ /Random-SD /شروعات ۾، اتي هو ...
John Squirrels
سطح
San Francisco

شروعات ۾، اتي هو ...

گروپ ۾ شايع ٿيل
شروعات ۾، اتي هو ... - 1 منهنجي پهرين نوڪري جو امتحان وارو دور 3 سال اڳ ختم ٿي ويو، پر صرف هاڻي مون کي هڪ مضمون لکڻ جو وقت مليو. مون پنهنجي يونيورسٽي ۾ مختلف شعبن ۾ هڪ سال گذاريو: منهنجي پهرين سيمسٽر ۾، مون مئنيجمينٽ جو اڀياس ڪيو، ۽ منهنجي ٻئي سيمسٽر ۾، مون سافٽ ويئر انجنيئرنگ ڏانهن رخ ڪيو. مون کي اميد هئي ته اهي مون کي سيکاريندا ته ڪيئن پروگرام ڪجي، پر مون کي غلطي هئي. تنهن ڪري، مون مواد گڏ ڪيو ۽ فيصلو ڪيو ته هر شي پاڻ کي سکڻ. مان پنهنجي استاد جو شڪر گذار آهيان جو واحد سبب اهو آهي ته هن سفارش ڪئي ته مان اسٽيفن پراٽ جي اي بڪ ”دي سي پروگرامنگ لينگوئج“ سان شروع ڪريان. اهو واقعي هڪ سٺو ڪتاب آهي جنهن ۾ ڪيترائي عملي مشق آهن. مون ڪتاب تي اٽڪل 2 مهينا گذاريا، جنهن کان پوءِ مون هن آن لائن جاوا ڪورس کي دوستن جي گروپن ۾ ڏٺو ۽ ائين شروع ٿيو. شروعات ۾، مون هڪ Android ڊولپر ٿيڻ جو منصوبو ٺاهيو ، پر پس منظر مون کي وڌيڪ دلچسپ لڳي رهيو هو جيئن مون پنهنجي سکيا ۾ ترقي ڪئي. رستي ۾، مون کي 3 مھينن جو مطالعو ڪيو ليول 20 تائين پھچڻ ۾، جنھن کان پوء مون ھڪڙي نوڪري ڳولڻ جي ڪوشش ڪرڻ جو فيصلو ڪيو. واپار جو پهريون حڪم ٻئي شهر ڏانهن وڃڻ جو هوڇاڪاڻ ته مون وٽ جونيئر جاوا ڊولپر لاءِ ڪو به افتتاح نه هو. مون هڪ ڪمپني ملي، لاڳو ڪئي، ۽ هڪ ٽيسٽ ٽاسڪ حاصل ڪيو، جنهن کي مڪمل ڪرڻ لاءِ مون کي هڪ هفتو ڏنو ويو. مون کي Hibernate، Servlet/JSP ۽ MySQL استعمال ڪندي هڪ سادي ويب ايپليڪيشن لکڻي هئي. انهن سڀني شرطن کي ڏسي، مون کي صرف خبر هئي ته MySQL هڪ ڊيٽابيس هو. شروع ۾، مون کي ڏاڍي مايوسي هئي. مون به فيصلو ڪيو ته ڪجهه KFC ۾ نوڪري جا موقعا ڳولڻ لاءِ، پر پوءِ مون فيصلو ڪيو ته ٽيسٽ ٽاسڪ ۾ هڪ ڪڙي وٺان. آخرڪار، مون کي هميشه KFC ۾ نوڪري ملي سگهي ٿي. مون سڄو هفتو نان اسٽاپ ڪم ڪيو ۽ ٽيسٽ ختم ڪرڻ ۾ ڪامياب ٿي ويس. مون پنهنجو حل پيش ڪيو، پر اهو "خوبصورت نه هو"، تنهنڪري مون ان کي 4 ڀيرا وڌيڪ نظرثاني ڪيو. منهنجو آخري حل صحيح نڪتو، پر پوسٽون اڳ ۾ ئي ڀرجي چڪيون هيون ۽ اضافي درخواستون 3 مهينن تائين قبول نه ڪيون وينديون. توهان ڇا ڪرڻ وارا آهيو، صحيح؟ ايندڙ 3 مهينن لاءِ، مون سکيو HTML، CSS، JS، SQL ۽ PHP. ڇو PHP؟ مون کي هڪ سرور ٻولي جي ضرورت آهي جيڪا درخواستن جو جواب ڏئي ۽ اهڙي طرح. وقت تي، servlets ۽ jsp تمام پيچيده لڳي. آخر ۾، مون هڪ خوفناڪ انٽرفيس سان هڪ مڪمل ويب ايپليڪيشن تيار ڪئي. مون پنهنجي پورٽ فوليو لاءِ GitHub تي ڪوڊ شايع ڪيو. ان وقت تائين، 3 مهينا گذري چڪا هئا ۽ ساڳئي ڪمپني مون سان ٻيهر رابطو ڪيو ۽ مون کي هڪ انٽرويو لاءِ دعوت ڏني، هڪ ٻيو آسان ٽاسڪ ڏنو ته منهنجي SQL جي ڄاڻ کي جانچڻ لاءِ، جيڪو مان چند ڪلاڪن ۾ مڪمل ڪرڻ ۾ ڪامياب ٿي ويس. جنهن ماڻهوءَ سان مان روزگار بابت ڳالهائي رهيو هوس، اشارو ڏنو ته هو الورورٿمز ۽ ڊيٽا ڍانچي بابت پڇندا- اهي موضوع جن تي مون وٽ اڃا ماسٽر ڪرڻ جو وقت نه هو. اهو چيو ته، انٽرويو کان 15 ڏينهن اڳ هئا. مون کي اهو مليو! رابرٽ لافور جي ڪتاب ”ڊيٽا اسٽرڪچرز ۽ الگورٿمز ان جاوا“ منهنجي مدد ڪئي. مون وٽ ٻن هفتن ۾ اهو سڀ پڙهڻ ۽ سمجهڻ جو وقت نه هو، پر پوءِ به مون گهڻو ڪجهه سکيو آهي. ۽ پوءِ انٽرويو جو ڏينهن آيو. مان مقرر وقت تي پهچي ويس. ٻن ماڻھن مون کي سلام ڪيو ۽ انٽرويو شروع ٿيو. اهو چوڻ لاءِ ته مون کي پريشان هئي ته هڪ جهنگلي سمجھاڻي هوندي. منهنجو آواز ڏڪي ويو. انهن هر شيءِ بابت پڇيو سواءِ الگورتھم ۽ ڊيٽا جي جوڙجڪ. هنن اسپرنگ، ڊي آءِ، آئي او سي، هائيبرنيٽ بابت پڇيو، JVM ڪيئن ڪم ڪري ٿو، ڪچرو گڏ ڪرڻ وارو ڪيئن ڪم ڪري ٿو - مان انهن سوالن مان هڪ به جواب ڏيڻ جي قابل نه هوس. مون صرف جاوا ڪور بابت سوالن جا ڪاميابيءَ سان جواب ڏنا (جمع، استثنا، او او پي، وغيره). اڃا انٽرويو ۾، مون کي خبر هئي ته مان ناڪام ٿي چڪو آهيان، پر مان اڃا تائين مايوس ٿي چڪو هوس ته ڪا به موٽ نه ملي. ان جي بدران، مون پنهنجي ڄاڻ ۾ خلا جي نشاندهي ڪئي ۽ انهن کي بند ڪرڻ لاء محنت سان ڪم ڪرڻ شروع ڪيو. منهنجي ناڪامي انٽرويو کان هڪ مهينو پوءِ مون کي نوڪري ملي. رستي ۾، مون کي جاوا رش تي بحثن ۾ نوڪري جو افتتاح مليو ( CodeGym ڪوڊ گيم جو روسي-ٻولي وارو نسخو آهي - ايڊيٽر جو نوٽ). پهريون، هڪ نوڪر سان Skype جو انٽرويو هو (اهو اٽڪل 2 ڪلاڪ هليو). انهن جاوا ڪور، گندگي گڏ ڪرڻ (هاڻي مون کي خبر هئي ته اهو ڪيئن ڪم ڪري ٿو)، ڊيٽابيسس، ۽ ڊيٽا جي جوڙجڪ بابت پڇيو. انٽرويو وٺندڙ مون کان پڇيو ته منهنجي اسڪرين شيئر ڪريو ۽ هڪ ڳڻپيوڪر لکو. مان تقريباً خوشيءَ لاءِ روئي رهيو هوس، ڇاڪاڻ ته مون صرف هڪ هفتو اڳ هڪ ڳڻپيوڪر لکيو هو. پاڻ ۾ اعتماد، مون ڪم شروع ڪيو. پر ڇا منهنجي جوش يا ڪنهن ٻئي سبب جي ڪري، مون الگورتھم جو حصو وساري ڇڏيو. منهنجي اسڪرين شيئر ڪئي وئي. مون کي گوگل سان صلاح ڪرڻ کان ڊپ هو. خوشقسمتيءَ سان، مون وٽ منهنجو موبائيل فون هو، جنهن منهنجي گدا کي بچائي ورتو. ٻئي ڏينهن، انهن هڪ ذاتي انٽرويو لاءِ سڏيو ۽ ڪجهه ڏينهن بعد مون کي هڪ آڇ ملي . اها سرڪاري حيثيت نه هئي. منهنجو ڪردار هڪ اڪيلي مالڪ لاءِ هڪ شاگرد هو. اسان ايونٽ پلاننگ، ٽڪيٽون وڪڻڻ وغيره لاءِ هڪ خدمت لکي هئي. مون کي ياد آهي منهنجو ڪم جو پهريون ڏينهن. منهنجو باس 15 منٽ ورتو ته وضاحت ڪرڻ لاءِ ڇا ڪرڻ جي ضرورت آهي. "ڇا سڀ ڪجهه صاف آهي؟" هن پڇيو. ”ها، واقعي نه. ڇا تون ان تي هڪ دفعو ٻيهر وڃي سگهين ٿو؟ مون وڏي ڳڻتيءَ سان پڇيو. باس وري سڀ ڪجهه بيان ڪيو. "اهو هاڻي واضح آهي؟" "ها، هاڻي اهو آهي." دراصل، مون کي ڪجھ به سمجھ ۾ نه آيو. پر مون کي ڊپ هو ته ٻي وضاحت لاءِ پڇان. منهنجو خيال آهي ته ڪو به ملازم اهو سمجهي سگهي ٿو. Thymeleaf کان AngularJS تائين پورٽنگ ڪرڻ لاءِ ڪم تيز ٿي ويو. خوش قسمتي سان، مون کي ختم ٿيل ڪوڊ جو هڪ حصو مليو ۽ ان کي استعمال ڪيو ته ڇا ڪجي. مون کي سمجھ ۾ نه آيو ته اهو ڪيئن ڪم ڪيو، پر مون ڪم ختم ڪيو. مون کي بعد ۾ ڪم سونپيو ويو هو سڌو سنئون پس منظر سان لاڳاپيل. بهار جي عملي تجربي کان پوءِ ئي مون اهو سمجهڻ شروع ڪيو ته مون ”اسپرنگ فار پروفيشنلز“ ۾ ڇا پڙهيو آهي. مون اتي 8 مهينا ڪم ڪيو ۽ پوءِ ٻئي شهر هليو ويس، جتي مون کي جلدي سرڪاري نوڪري ملي، 2 سال ڪم ڪيم ۽ رستي ۾ منهنجو لقب ”جونيئر“ مان بدلائي ”مڊل ليول“ ڪيو. پوءِ مون ان حقيقت کي منهن ڏنو ته منهنجي نوڪري معمول بڻجي وئي هئي ۽ مون کي خوشي جو هڪ قطرو به نه ڏنو. تنهنڪري مون هڪ وقفو ورتو. منهنجي وقفي دوران منهنجي آڱرين کي atrophying کان روڪڻ لاء، مون هڪ ٻئي علائقي ۾ منهنجي هٿ جي ڪوشش ڪرڻ جو فيصلو ڪيو: راند جي ترقي. خاص طور تي، موبائيل گيم ڊولپمينٽ، اپلوڊ ڪرڻ Android، ڇاڪاڻ ته مان اڳ ۾ ئي جاوا ڄاڻان ٿو. ۽ اھو اھو آھي جيڪو مان ھاڻي تفصيل سان ڳالھائڻ وارو آھيان. منهنجي ٽيم. مختصر ترتيب ۾، مون 4 ماڻهن جي هڪ ننڍڙي ٽيم گڏ ڪئي هئي (مون سميت): 2 ڊولپرز، 1 گيم ڊيزائنر، ۽ 1 سائونڊ انجنيئر. ڇاڪاڻ ته ٽيم تي ڪنهن کي به راند جي ترقي ۾ ڪو به تجربو نه هو، ۽ ڇاڪاڻ ته منهنجي موڪلن جو وقت محدود هو، اسان هڪ سادي منصوبي تي عمل ڪرڻ جو فيصلو ڪيو جيڪو اسان کي يقيني طور تي ختم ڪرڻ جي قابل هوندو. ۽ ائين اسان ڪيو! شروعات ۾، آخري تاريخ 15 نومبر هئي، پر جيئن توهان ڄاڻو ٿا، شيڊول تي منصوبي کي ختم ڪرڻ صرف غلط آهي. سو، اسان ان کي ٻن هفتن جي دير سان ختم ڪيو. اسان جي ٽيڪنالاجي اسٽيڪ جاوا 8 ۽ libGDX تي مشتمل آهي.

ترقي

ترقي 17 آڪٽوبر تي شروع ٿي. مجموعي طور تي، اسان 45 ڏينهن گذاريا جن دوران:
  1. اسان سکيو ته ڪيئن استعمال ڪجي libGDX.
  2. اسان ڪوڊ لکيو.
  3. اسان گرافڪس ٺاهيا.
  4. اسان موسيقي پيدا ڪئي.
ڪو به ماڻهو جنهن هن راند کي ڏٺو آهي اهو پڇي سگھي ٿو، "ان کي ايترو وقت ڇو ورتو؟ راند تمام سادي آهي." ها، اهو سچ آهي، ۽ صحيح هجڻ لاء، ترقياتي حصو (ڪوڊ لکڻ) اٽڪل هڪ هفتي ۽ اڌ ورتو. باقي وقت جي وچ ۾ ورهايو ويو:
  1. راند جي انجڻ کي ڪيئن استعمال ڪرڻ ۾ مهارت حاصل ڪرڻ.
  2. ڊرائنگ ۽ ٻيهر ڊرائنگ آرٽ ورڪ.
  3. موسيقي لکڻ.
  4. آوازن جي ڳولا https://freesound.org تي .
  5. راندين کي ڪيئن فروغ ڏيڻ تي آرٽيڪل جا ڍير پڙهڻ.
اسان وٽ مختلف سببن جي ڪري ”ڊائون ٽائم“ جا لمحا به هئا: ڪنهن جو امتحان هو، ڪنهن جو ميڪ اپ ٽيسٽ هو، وغيره. اسان يقيني طور تي اڌ هفتي يا ان کان وڌيڪ دير جي وقت کي منسوب ڪري سگهون ٿا. ڪجهه وقت ”بحثن“ تي به گذريو: راند ۾ شامل ڪرڻ بابت نوان نوان خيال تقريباً روز سامهون ايندا هئا، تنهنڪري اسان بحث ڪيو: ”اها ضرورت کان وڌيڪ آهي،“ ”جيڪو مناسب نه هوندو،“ وغيره، اسان ڪيترائي خيال ڪڍيا، مثال طور، ڊوڙندڙ ڪاڪروچز کي شامل ڪرڻ جيڪي اضافي پوائنٽس حاصل ڪرڻ لاءِ ڪٽجي سگھجن ٿا: منهنجي خيال ۾، سڀ کان وڌيڪ مشڪل شين مان هڪ اهو هو ته اڳ ۾ ئي فيصلو ڪيو وڃي ته راند ۾ ڇا هوندو ۽ شامل ڪرڻ جي ڪوشش کان سواءِ منصوبي تي قائم رهڻ ”صرف هڪ وڌيڪ "خصوصيت. اهڙي طرح اهي 45 ڏينهن گڏ ٿيا. راند جو هڪ پروٽوٽائپ هڪ هفتي ۽ اڌ کان پوء تيار هو. هن عرصي دوران، اسان وٽ واقعي ڪا گرافڪس نه هئي، تنهن ڪري اسان عوامي ڊومين مان ڪجهه شيون ورتيون (مثال طور، اسان ڊوڊل جمپ کان پيپر پس منظر قرض ورتو) ۽ اسان ڪجهه شيون پاڻ کي پينٽ ۾ ڪڍيون. شروعات ۾، اتي هو ... - 2راند هڪ فني لحاظ کان بلڪل سادي آهي. اسان کي box2d (هڪ فزڪس انجڻ) استعمال ڪرڻ جي به ضرورت نه هئي. اسان ٽڪرن کي سنڀالي سگھون ٿا ۽ پاڻ تي hypotenuse حساب ڪري سگھون ٿا. سڀ کان وڌيڪ دلچسپ نقطا مان نمايان ڪندس:
  1. شروعات ۾، سڀئي راند عناصر بي ترتيب ٺاهيا ويا. ٻين لفظن ۾، اسان مهيا ڪندڙ (بليڪ هول، اسڪيسر، ننجا تارن، پينسل ليڊ، دل) کي هڪ صف ۾ رکون ٿا، هڪ بي ترتيب فراهم ڪندڙ حاصل ڪيو، بي ترتيب همراهن سان هڪ عنصر حاصل ڪيو. اهو تمام جلدي واضح ٿي ويو ته اهو طريقو "واقعي واقعي سٺو ناهي". ٽيسٽ ۾ حصو وٺندڙ دوستن اسان کي ساڳي ڳالهه ٻڌائي، ٽيمپليٽس جي استعمال جي صلاح ڏني. راندين جي ترقي ۾ ملوث ماڻهن لاء، اهو شايد هڪ واضح حل آهي. پر ڇاڪاڻ ته اسان فيلڊ ۾ نوان آيا هئاسين، اهو اسان لاء تمام گهڻو عملي مشورو هو.

    تنهن ڪري اسان ڪيترائي ٽيمپليٽ ٺاهيا: اسڪسيسر جي هڪ وادي؛ پينسل ليڊز - اهو تمام سٺو آهي انهن کي گڏ ڪرڻ لاءِ انتهائي تيز (هوش، هوش، هوش توهان جي آڱر سان)؛ ۽ هڪ وڌيڪ ٽيمپليٽ جنهن کي مون کي خبر ناهي ته ڇا سڏجي — مان صرف توهان کي ٻڌايان ٿو ته اسان پنهنجي ڪوڊ ۾ ڪلاس جو نالو ڇا رکيو آهي: StraightForwardPattern.

    شروعات ۾، اتي هو ... - 3

    انهن ٽيمپليٽس ان کي بهتر ڪيو، پر اهو تمام گهڻو اڳڪٿي ٿي ويو. انهي ڪري اسان هڪ وڌيڪ شامل ڪيو آهي: هڪ بي ترتيب سان ٺهيل. ٻين لفظن ۾، اسان وٽ ھاڻي ڪجھ "جامد" ٽيمپليٽس ۽ ھڪڙو بي ترتيب آھي (هتي "بلڪل متوازن" ميم داخل ڪريو).

  2. هتي اسان جو بنيادي مسئلو آهي. LibGDX هڪ لامحدود لوپ ۾ رينجر (فلوٽ ڊيلٽا) طريقو سڏيندو آهي. هي آهي جتي سڀئي عناصر ٺهيل آهن. پينسل جي لڪير هيٺ ڏنل آهي: اسان آڱرين جي همراهن کي حاصل ڪريون ٿا ۽ اتي بناوت ٺاهي رهيا آهيون. تنهن ڪري، جيڪڏهن اسان پنهنجي آڱر کي تمام جلدي اسڪرين تي منتقل ڪيو، ته پوء رينجر (ڊيلٽا) طريقي سان ڪالن جي وچ ۾ ملي سيڪنڊن جي ڪري لائن "خالي" هوندي.

    حل بلڪل سادو هو: اسان کي ياد آهي آخري ڪوآرڊينيٽس جتي بناوت ٺاهي وئي آهي، ايندڙ همراهن کي حاصل ڪريو، ۽ جيڪڏهن انهن جي وچ ۾ فاصلو X کان وڌيڪ آهي ۽ آڱر جاري نه ڪئي وئي آهي، ته پوء اسين خال ڀريون ٿا. پهرين ۾، اسان سوچيو ته هي اختيار ڪم نه ڪري سگھي ٿو - لائينون ڪنواريون هونديون. پر اسان جا خوف بي بنياد هئا، هر شي ڪم ڪيو جيئن ان کي گهرجي.

راند جي باري ۾

گيم پلي منفرد هجڻ جي دعويٰ نٿو ڪري، پر اها ڪافي سٺي آهي ۽ استعمال ڪندڙن کي اندر وٺي سگهي ٿي. توهان هڪ پينسل کي ڪنٽرول ڪري، لفظي طور تي ڪاغذ تي ڊرائنگ ڪريو ۽ رڪاوٽون - اسڪيسر، ننجا تارا، ۽ بليڪ هولز کي دور ڪريو. ان دوران، توهان جي پينسل ليڊ ختم ٿي رهي آهي ۽ توهان کي ننڍيون پنسلون کڻڻ گهرجن. جيڪڏهن توهان جي پنسل ختم ٿيڻ کان اڳ اچي رهيو آهي ته توهان ٿورو پنسل گڏ ڪريو، توهان هڪ آئيني جو ٽڪرو وٺي سگهو ٿا. ڪجھ سيڪنڊن لاءِ، پنسل جي ليڊ کي استعمال ڪرڻ بدران، ان کي بحال ڪيو ويندو، جڏهن ته، ساڳئي وقت، ڪنٽرول آئيني ۾ هوندا آهن - جيڪڏهن توهان جي آڱر کاٻي طرف هلي ٿي، ته پوءِ پينسل ساڄي طرف ڇڪي ٿي. توهان هڪ دل پڻ چونڊي سگهو ٿا جيڪو توهان کي هڪ ڀيرو هڪ رڪاوٽ کي مارڻ ۽ زنده رهڻ ڏيندو. جيترو وقت توهان پنسل کي پنهنجي آڱر کڻڻ کان سواءِ منتقل ڪندا، توهان جو ڪمبو اوترو وڌيڪ هوندو، جنهن جو مطلب آهي ته توهان پوائنٽون تيزيءَ سان گڏ ڪندا. شروعات ۾، اتي هو ... - 4راند جي رفتار به آهستي آهستي وڌي ٿي. صرف هڪ شيء غائب آهي ناراض پکي. شروعات ۾، اسان راند جو نالو ڪرن ڊيش رکڻ جو ارادو ڪيو (پينسل لاءِ روسي لفظ جو ترجمو ڪارندش - ها! حاصل ڪيو؟)، پر بعد ۾ اسان پنهنجو ذهن تبديل ڪيو ۽ پينسل ڊيش تي آباد ٿي ويا. اسان اهو ڪيو ڇو ته هي خوبصورت جملو صرف روسي ڳالهائيندڙ سامعين کي سمجهي سگهندو. اسان ڪجهه ڏينهن اڳ راند کي آزاد ڪيو ۽ هاڻي ان کي ترقي ڪري رهيا آهيون. هتي، پڻ، ٽيم تي ڪو به تجربو ناهي. اسان مختلف مضمونن مان راند جي واڌاري بابت اسان جي سموري ڄاڻ حاصل ڪئي. اسان مختلف ويب سائيٽن/فورمز تي مفت ۾ راند بابت معلومات شايع ڪئي. اسان جي ادا ڪيل چينلن ۾ 4pd تي اشتهار ڏيڻ، ھڪڙي بلاگر سان اشتهار ڏيڻ، VKontakte تي عوامي گروپن ۾ ڪيترائي پوسٽون، ۽ AdMob اشتهار شامل آھن. رستي ۾، هي پوسٽ پڻ اسان جي واڌاري جو حصو آهي، تنهنڪري ويب سائيٽ جي انتظاميه جي اجازت سان، آئون هتي راند جي لنڪ شامل ڪري رهيو آهيان. توھان ھي راند ڳولي سگھوٿا Google Play تي هتي . مان شڪرگذار ٿيندس جيڪڏهن توهان ان کي انسٽال ڪريو (شايد توهان ان کي پسند ڪندا!)، ۽ جيڪڏهن توهان هڪ درجه بندي ڇڏيندؤ، مان توهان جي پٺيان هڪ ٻار جو نالو رکڻ جو واعدو ڪندس! :) شروعات ۾، اتي هو ... - 6
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION