JavaRush /جاوا بلاگ /Random-UR /چال، یا جاوا میں تجربے کے بغیر درمیانی جاوا ڈویلپر کے طور...
Юрий
سطح
Москва

چال، یا جاوا میں تجربے کے بغیر درمیانی جاوا ڈویلپر کے طور پر نوکری حاصل کرنے کا طریقہ

گروپ میں شائع ہوا۔
جاوا کے تمام طلباء اور پیشہ ور افراد کو سلام۔ شاید میری کہانی کچھ کے لیے ایک مثال ہو گی کہ اسے کیسے کرنا ہے، اور دوسروں کے لیے - یہ کیسے نہیں کرنا ہے۔ یہ 19 اکتوبر 2021 ہے، اور آج میں نے ایک بڑی کمپنی میں جاوا مڈل ڈویلپر کے طور پر پروبیشنری مدت (3 ماہ) مکمل کی۔ مجھے جاوا کی ترقی کا کوئی سابقہ ​​تجربہ نہیں تھا۔ 4 جون 2020 تک، میں جاوا کے بارے میں کچھ نہیں جانتا تھا۔ جب مجھے جاواسٹ کے طور پر رکھا گیا تھا، میں نے وعدہ کیا تھا کہ اگر میں پروبیشنری مدت میں گزر گیا تو میں ایک کامیابی کی کہانی لکھوں گا۔ اس مضمون کو دو منطقی حصوں میں تقسیم کیا جائے گا: کیریئر کا پس منظر ( ابواب 1-5، جاوا سے متعلق نہیں، لیکن جس میں آپ اپنے کیریئر کے بارے میں علم حاصل کر سکتے ہیں)۔ جاواسٹ بننا (باب 6-9 - جاوا سیکھنا، انٹرویوز، نوکری حاصل کرنا، پہلا حقیقی تجربہ)۔ <h3>باب 1۔ ماہر معاشیات</h3>یہ سمجھنے کے لیے کہ میں جاوا رش میں کس سطح کے علم کے ساتھ آیا ہوں، مجھے اپنے بارے میں ایک سوانحی نوٹ دینے کی ضرورت ہے۔ 2013، نومبر، صبح 8 بجے۔ میں Taganka پر ایک کافی شاپ میں بیٹھا ہوں اور SQL ہدایات کو دہرا رہا ہوں۔ ایک گھنٹے میں بینک کے مالیاتی شعبے میں معروف ماہر معاشیات کے عہدے کے لیے میرا انٹرویو ہے۔ یہ واحد انٹرویو ہے جس میں مجھے مدعو کیا گیا تھا، اور مجھے اسے 100% دینا ہے۔ اس کی خاطر، میں سینٹ پیٹرزبرگ سے اڑان بھری اور باورچی خانے میں رشتہ داروں کے ساتھ رہی، تاکہ اپنی چھوٹی سی بچتوں کو خرچ نہ کر سکوں۔ 30 منٹ گزر گئے، ہیم اور پنیر کے ساتھ پینکیکس کھائے گئے اور ہمیں اپنے پیارے خواب کی طرف بڑھنے کی ضرورت ہے۔ لیکن سب کچھ ہل رہا ہے۔ اگر میں انٹرویو میں ناکام ہو جاؤں تو کیا ہوگا؟ ٹھیک ہے، یہ نہیں تھا. میں بینک جاتا ہوں، پاس لیتا ہوں، اور میٹنگ روم میں اپنے انٹرویو لینے والوں کا انتظار کرتا ہوں۔ وقت بہت لمبا گزرتا ہے۔ تقریباً 35 سال کا ایک مرد اور اسی عمر کی ایک عورت اندر آئے۔ وہ اپنا تعارف کراتے ہیں اور آپ سے اپنے بارے میں بتانے کے لیے کہتے ہیں: "یوری، یہ خوشی کی بات ہے۔" میری عمر 21 سال ہے، میں سینٹ پیٹرزبرگ کی ایک یونیورسٹی میں جز وقتی تعلیم حاصل کر رہا ہوں، میں نے 3 ماہ تک ایک بینک میں بطور ٹیلر کام کیا۔ میں نے محسوس کیا کہ یہ وہ چیز نہیں ہے جس کے لیے میں نے مطالعہ کیا تھا، میں نے جاب مارکیٹ کو دیکھنا شروع کیا اور دیکھا کہ ماسکو میں ماہرین معاشیات کے پاس ایس کیو ایل کی ضرورت ہے۔ تو میں نے اس کا مطالعہ کیا، کورسز میں گئے (MS SQL Administration - یہی میرے پاس تھا، اسی کے لیے میں گیا تھا) اور آپ نے مجھے بلایا۔ وہ کمپنی کے بارے میں بات کرتے ہیں، وہ کیا کرتے ہیں (زیادہ تر الفاظ ناقابل فہم ہیں)، اور پھر آپ سے ٹیسٹ لینے کو کہتے ہیں۔ ٹیسٹ میں ایس کیو ایل پر 3 سوالات ہیں: 1. ایک ٹیبل دیے گئے، id = 10 کے ساتھ تمام ریکارڈز نکالیں۔ 2. دو ٹیبل دیے گئے، ان کو جوڑیں اور ہر ایک سے ایک کالم ڈسپلے کریں۔ 3. محکموں کو گروپ کریں اور ہر محکمے کے لیے ملازمین کی تعداد دیں۔ یہ بڑی شرم کی بات ہے کہ میں یہ درخواستیں لکھ رہا ہوں۔ اس کے بعد ملازمت سے میری توقعات کی بحث ہوتی ہے۔ اور وہ مجھے جادوئی جملہ بتاتے ہیں: "انٹرویو کے لیے آپ کا شکریہ، ہم آپ کو واپس کال کریں گے۔" ایک ہفتہ گزر جاتا ہے، اور وہ مجھے ان کے ساتھ کام کرنے کی پیشکش کرتے ہیں۔ خوشی، صدمہ، خوشی! اور کس رقم کے لئے: ہاتھ میں 70 ہزار روبل! ہاں، میں امیر ہو جاؤں گا! میں ماسکو آتا ہوں، بستا ہوں، مرکز میں ایک کمرہ کرائے پر لیتا ہوں۔ پہلے دن خوشی کے ہوتے ہیں۔ 10 دن کے بعد، احساس شروع ہوتا ہے: میں کہاں آیا ہوں؟ مجھے کچھ سمجھ نہیں آرہا! مجھے ہر ماہ پورے بینک کی انتظامی رپورٹیں تیار کرنی پڑتی تھیں۔ فطری طور پر، میرے لیے بھی وہی تھا جو آپ کے لیے تھا، پیارے قارئین۔ میں نے انٹربینک کریڈٹ، سویپس، اخراجات کی تقسیم، اخراجات وغیرہ کی اصطلاحات کو لاطینی میں ہجے کے طور پر سمجھا۔ راستے میں، مجھے اس مسئلے کے تکنیکی پہلو پر عبور حاصل کرنا پڑا: MS Access (تمام رپورٹنگ وہاں VBA کے ذریعے کی گئی تھی)، MS SQL (ایک نئے اسٹوریج کے طور پر، رسائی کی بجائے)، اوریکل (جسے میں نے ابتدا میں اوریکل کہا تھا، جس کی وجہ سے ہسٹریکس ہو رہا تھا۔ پروگرامرز کے درمیان)۔ اور اچانک میں سمجھنا شروع کر دیتا ہوں کہ تکنیکی پہلو میرے لیے بہت زیادہ دلچسپ ہے۔ پیچیدہ سوالات پیدا کرنے کی کوششیں ہو رہی ہیں (نتیجے کے طور پر، ڈیٹا بیس میرے اسکرپٹ سے لٹکا ہوا ہے، اور مشتعل منتظمین یہ جاننے کی کوشش کر رہے ہیں کہ یہ کس نے کیا)۔ لیکن اصل کام فنانس ہے، جو بس مجھے تنگ کرنے لگتے ہیں۔ ڈیڑھ ماہ کے بعد، میں استعفیٰ کا خط لکھ رہا ہوں، کیونکہ میں کوئی نتیجہ نہیں دے سکتا (اور سچ کہوں تو انہیں مجھ سے کوئی توقع نہیں تھی)۔ مالیاتی شعبے کے سربراہ نے اسے پھاڑ دیا اور کہا: "بکواس سے پریشان نہ ہوں۔" ایک ماہ بعد، میں دوبارہ ایک بیان لکھتا ہوں، اور محکمہ کے سربراہ، جو اس طرح کی بے حیائی سے حیران رہ گئے تھے (جو بعد میں بینک کے بورڈ کے چیئرمین بنے)، انتہائی حیرانی کے ساتھ اشارے کرتے ہیں: لڑکا 21 سال کا ہے، بغیر کسی اعلیٰ کے۔ تعلیم، انہیں تنخواہ اور امانت دونوں دیے گئے، لیکن وہ ایسا سلوک کرتا ہے۔ برطرفی کی وجوہات میں دو اور عوامل تھے: وہ باس، جس کے تکبر پر میں سکون سے ردعمل ظاہر نہیں کر سکتا تھا، اور وہ غیر آرام دہ کرسی، جس سے میری کمر میں درد ہونے لگا۔ یہ ناقابل یقین حد تک مضحکہ خیز ہے، لیکن یہاں مقصد ہے. جب میں نے چھوڑ دیا، میں نے سوچا کہ اب میں اور زیادہ آرام دہ ہو جائے گا. لیکن یہ وہاں نہیں تھا۔ <h3>باب 2. 70 انٹرویوز</h3>بینک سے نکلتے ہوئے، میں نے ایک گہرا سانس لیا۔ ’’میں اس طرح بندوبست کروں گا، سب دنگ رہ جائیں گے۔‘‘ انٹرویوز طے شدہ تھے، ان کی تنخواہیں زیادہ تھیں، اور ایسا لگتا تھا کہ رپورٹنگ سے نمٹنے کی ضرورت نہیں پڑے گی۔ 4 انٹرویوز ہیں اور کوئی بھی مجھے ملازمت نہیں دیتا۔ 5، 6 انٹرویوز - ایک ہی چیز۔ میں ایک لڑکی کے ساتھ کرائے کے کمرے میں رہتا تھا، اور اسے نوکری مل گئی اور وہ میری آمدنی کی کمی کو پورا کر سکتی تھی۔ لیکن مجھے ابھی تک اندازہ نہیں تھا کہ کب تک میری کوئی آمدنی نہیں ہوگی۔ میں انٹرویوز پر گیا تھا (اسامیاں ایک لا تجزیہ کار)، اور انہوں نے بنیادی طور پر SQL اور VBA کے بارے میں پوچھا۔ ان لوگوں کے لیے جو واقف نہیں ہیں، VBA ایکسل، رسائی اور دیگر MS Office مصنوعات میں ایک پروگرامنگ زبان ہے۔ 10 انٹرویوز ہیں - کچھ بھی نہیں۔ 20، 30 - کچھ بھی نہیں۔ تجربہ کی کمی اور اعلیٰ تعلیم کی وجہ سے ہر کوئی شرمندہ ہے (جو مجھے ایک چھوٹی سی بات لگتی ہے)۔ 40 انٹرویوز، اور مایوسی اندر گھسنے لگتی ہے۔ 55-60 انٹرویوز کے دوران میں 1C کا مطالعہ کرنا شروع کرتا ہوں۔ لڑکی، جو پہلے ہی بیوی بن چکی ہے، سینٹ پیٹرزبرگ جانے کے لیے کہتی ہے، کیونکہ کم از کم وہاں اس کی اپنی رہائش ہے۔ اور 70ویں انٹرویو میں، مجھے سینٹ پیٹرزبرگ کے صنعتی زون میں ایک چھوٹی کمپنی میں 50,000 روبل میں 1C ڈیٹا بیس ایڈمنسٹریٹر (1C ڈویلپر بننے کے امکان کے ساتھ) بننے کے لیے مدعو کیا گیا۔ اب یہ کیریئر کی ترقی ہے! <h3>باب 3۔ لیجنڈ کی واپسی</h3>گرے سینٹ پیٹرزبرگ انڈسٹریل زون میں ایک منی بس (کارپوریٹ ٹرانسپورٹ) کی کھڑکی سے باہر دیکھتے ہوئے، اور ایک گھنٹہ اور اکتالیس راستہ کا سفر کرتے ہوئے، میں نے محسوس کیا کہ میں ایسا نہیں کر سکتا۔ اس طرح جیو 1C میں دلچسپی خود تحریری نظام کے پہلے رابطے میں غائب ہوگئی۔ ایک پلان کی ضرورت تھی۔ اور وہ پختہ ہو گیا: شام کو اس نے ایس کیو ایل کا مطالعہ کیا، اور اسی وقت معروف جاب سائٹ کی نگرانی کی۔ برخاستگی کا حتمی محرک صورتحال تھی: جنرل ڈائریکٹر مجھے منصوبہ بند تعطیلات پر جانے نہیں دینا چاہتے تھے، حالانکہ ٹکٹ پہلے ہی خریدے جا چکے تھے۔ اپنی چھٹی کے بعد، میں ایک درخواست لکھتا ہوں اور دوبارہ ماسکو کی آسامیوں کے لیے اپنا ریزیوم بھیجتا ہوں۔ ایک بار پھر مجھے ماسکو کے ایک بڑے بینک میں انٹرویو کی پیشکش کی گئی۔ میں دوبارہ اپنے رشتہ داروں کے کچن میں آتا ہوں اور انٹرویو کے لیے جاتا ہوں۔ جب ایچ آر نے ایڈریس لکھا تو مجھے اپنی آنکھوں پر یقین نہیں آیا - یہ وہ عمارت تھی جس میں میں نے کام کرنے کا خواب دیکھا تھا (ماسکو میں میری آخری رہائش کے وقت یہ ابھی زیر تعمیر تھی)۔ اس عہدے کو چیف انفارمیشن سسٹم سپورٹ سپیشلسٹ کہا جاتا تھا۔ میں دفتر جاتا ہوں۔ فیشن ایبل جیکٹ اور جینز میں تقریباً 30 سال کے ایک آدمی نے میرا استقبال کیا۔ ہم 15ویں منزل تک گئے، اور جب میں نے شہر کا پینورما دیکھا، تو اس نے میری سانسیں اکھاڑ کر رکھ دیں: تمام سٹالنسٹ اونچی عمارتیں نظر آ رہی تھیں۔ عمارت کا پورا انداز بہت جدید تھا: باس کے دفتر میں شراب کے ریفریجریٹرز، فیشن ایبل ایکویریم، سیاہ اور سفید انداز میں ایک برہنہ عورت کی پینٹنگ تھی۔ اس سے "واہ" اثر ہوا۔ باس کے ساتھ بات چیت اس طرح نہیں ہوئی جیسا کہ عام طور پر ہوتی ہے: تقریباً 40 منٹ تک اس نے بینک میں کیا ہو رہا ہے اس کے بارے میں بات کی۔ میری سمجھ میں کچھ نہیں آیا مگر سر ہلایا۔ جب میں نے پوچھا: تم مجھ سے کب پوچھنا شروع کرو گے؟ وہ توجہ نہیں دے رہا تھا۔ ایک بار پھر، میرے سوال "تکنیکی انٹرویو کب ہے؟"، جواب تھا "ہاں، ہم آپ کو بہرحال ملازمت پر رکھیں گے، اگر آپ اسے سنبھال نہیں سکتے تو ہم آپ کو نوکری سے نکال دیں گے۔" یہ ایک مسکراہٹ کے ساتھ کہا گیا تھا، اور میں نے محسوس کیا کہ سب کچھ، خواب دوبارہ سچ ہو گیا تھا! <h3>باب 4. اپنے آپ کو IT میں تلاش کرنا </h3>جب میں نئی ​​جگہ پر پہنچا، تو میں سمجھ گیا کہ انہوں نے مجھے فوراً ہی کیوں رکھا۔ میں محکمہ کے ملازم کی ایک عام تصویر بیان کروں گا: اوسط عمر 55 سال، ماسکوائٹ، ماسکو اسٹیٹ یونیورسٹی کی تعلیم، سوویت دور میں دفاعی تحقیقی ادارے میں کام، اور 90 کی دہائی میں بینکنگ کے شعبے میں منتقلی، یہاں 20 سال سے کام کر رہا ہے۔ آدھے مرد ہیں، آدھے عورتیں ہیں۔ وہ ارد گرد کے اندرونی حصوں کے ساتھ مکمل طور پر عدم اتفاق میں داخل ہو گئے۔ ہم اکاؤنٹنگ کے لیے رپورٹنگ پروگراموں کو برقرار رکھنے میں شامل تھے۔ قدرتی طور پر، یہ سب کچھ قدیم VBA اور SQL اسکرپٹ میں تھا جو 90 کی دہائی کے آخر اور 2000 کی دہائی کے اوائل میں ڈویلپرز کے ذریعے لکھے گئے تھے۔ یہ 2015 تھا، اور آٹومیشن MS رسائی کے ذریعے تھی۔ یعنی انتہائی غریب لگ رہا تھا۔ لیکن ایک نزاکت تھی - انہوں نے وہ فراہم کیا جو گاہک (اکاؤنٹنگ) چاہتا تھا۔ اور بالکل وقت پر اور مطلوبہ شکل میں۔ صرف وہ جانتے تھے کہ یہ کیسے کام کرتا ہے، اور یہاں تک کہ اونٹول بھی ان کی پیشرفت کی پیچیدگی کا تصور نہیں کر سکتے تھے۔ اور کوئی بھی آئی ٹی مینیجر، حتیٰ کہ بڑی خواہش کے باوجود، انہیں برطرف نہیں کر سکتا تھا - چیف اکاؤنٹنٹ بینک کے بورڈ میں گیا اور کسی بھی ملازم کا دفاع کیا جس نے اکاؤنٹنگ ڈیپارٹمنٹ کے مفادات کی خدمت کی۔ مینیجر چاہتا تھا کہ میں ٹروجن ہارس کا کردار ادا کروں: میں نے ان کی تمام پیشرفت کا مطالعہ کیا، اور پھر ڈیٹا کو نئے سسٹم میں منتقل کیا۔ پھر پرانے ملازمین کو نکالا جا سکتا ہے، اور مجھے نئے نظام میں تبدیل کیا جا سکتا ہے۔ سب سے پہلے، میں نے ان کے عمل کا جائزہ لیا اور VBA کوڈ کو دیکھا۔ آہستہ آہستہ میں نے VBA کوڈ پڑھنا سیکھا۔ ایک سال بعد میں پہلے ہی جانتا تھا کہ کوڈ خود کیسے لکھنا ہے۔ عام کام: ایک ڈیٹا بیس دیا، اس سے ڈیٹا نکالیں، اور اسے ایک خاص فارمیٹ میں ایکسل میں ڈالیں۔ اب، جیسا کہ زادورنوف نے کہا، ایک گہرا سانس لیں: محکمہ کی تمام رپورٹنگ (اور وہ روزانہ 50، 20 ماہانہ رپورٹیں!) دستی طور پر چلائی جاتی تھیں! کارل، کیا آپ سمجھتے ہیں کہ لوگ ہر روز 50 رپورٹس میں اپنے ہاتھوں سے تاریخوں کو +1 میں تبدیل کرتے ہیں! وہ بیٹھتے ہیں، ایک رپورٹ کے نتیجے کا 1-10 منٹ تک انتظار کرتے ہیں، اور دوسری لانچ کرتے ہیں! مزید برآں، روزانہ کی رپورٹیں ایک خاص وقت پر شروع کی جانی چاہئیں، اور خدا نہ کرے کہ آپ کو دیر ہو جائے! وہ نہ صرف رپورٹیں بناتے ہیں، وہ متغیرات کا استعمال کیے بغیر ڈیٹا بیس میں طریقہ کار کو دستی طور پر چلاتے ہیں! یعنی @startDate = '2015-01-01' متغیر استعمال کرنے کے بجائے، وہ اسی تاریخ کو 20 جگہوں پر دستی طور پر تبدیل کریں گے! یہ سب دیکھنے کے بعد میں نے Python سیکھنا شروع کیا، اور وی بی اے، ایس کیو ایل اور ٹاسک شیڈیولر کے ساتھ، میں نے یہ سب دو سالوں میں خودکار کر دیا۔ نہ صرف خودکار، بلکہ بہت ساری رپورٹس کو بھی تیز کیا: اگر آپ MS SQL + TSQL کے حق میں MS Access + VBA کو ترک کرتے ہیں، تو آپ پیداواری صلاحیت میں متعدد اضافہ حاصل کر سکتے ہیں۔ میرا ریکارڈ رپورٹ کی تخلیق کو تیز کر رہا ہے۔100ایک بار! لیکن میرے ساتھی ایسی آٹومیشن سے بے حد ناخوش تھے، اس لیے مجھے عوام کا دشمن قرار دیا گیا (وہ ریٹائرمنٹ تک خاموش بیٹھنا چاہتے تھے)۔ وقت گزر گیا اور ڈیٹا کی منتقلی کامیاب رہی۔ مینیجر نے میری بہت قدر کی: اگر میں اپنے کیریئر کے آغاز میں صبح 8 بجے کام پر آتا، تو تھوڑی دیر بعد میں 12:00 بجے تک کسی بھی وقت آ سکتا تھا، تنخواہ اور عہدے میں مسلسل اضافہ، ہفتے کے آخر میں کام کی ادائیگی زیادہ۔ دوگنی رقم سے زیادہ، اگر آپ کام پر دیر سے آتے تو گھر پر ٹیکسی، موبائل کمیونیکیشن، مختصراً - اشرافیہ! <h3>باب 5۔ سنہری پنجرہ لیکن پرانا نظام ہی رہے گا۔ میرا مینیجر کیریئر کی سیڑھی کو آگے بڑھا رہا ہے اور مجھے مزید ترقی پسند محکمہ میں جانے کی دعوت دیتا ہے۔ ترقی پسند شعبہ کے سربراہ کے ساتھ ایک میٹنگ میں، میں سمجھتا ہوں کہ اس شعبہ کا ٹیکنالوجی اسٹیک میرے لیے نامعلوم ہے: Oracle, .net, C#, Linux، وغیرہ۔ + ممکنہ باس کی طرف دشمنی میں اپنے مینیجر سے کہتا ہوں کہ مجھے ترقی پسند شعبہ میں کوئی دلچسپی نہیں ہے، اور وہ آسانی سے میرے بارے میں بھول جاتا ہے۔ اور پھر سوال بنتا ہے: آگے کیا کرنا ہے؟ آمدنی پہلے سے ہی اچھی تھی، جونیئر دیو مجھے اس تنخواہ پر ملازمت نہیں دے گا۔ اپنی صلاحیتوں کے بارے میں سوچنے کے بعد، میں نے محسوس کیا کہ مجھے مشین لرننگ میں جانے کی ضرورت ہے۔ ریاضی کے اعداد و شمار کے ساتھ پہلی ملاقات تک سب کچھ دلچسپ تھا، جو صرف انسٹی ٹیوٹ میں نفرت کا باعث بنتا تھا. یہ ہے، چھ ماہ کے لئے بیوقوف! وقت گزرتا گیا، اور ایک دن، چلتے ہوئے، میں نے ایک ایسی ویب سائٹ کے بارے میں سوچا جو ماسکو کے نقشے پر اچھے ریستوران دکھائے گی۔ ایچ ٹی ایم ایل، سی ایس ایس، جے ایس سیکھنا شروع کیا۔ میں نے مطالعہ کرنے میں 3 مہینے گزارے؛ میرے پاس ایک مکمل ویب سائٹ بنانے کا علم نہیں تھا، لیکن میں کام پر اس کی مشق کر سکتا تھا۔ ایک خیال پیدا ہوا: اکاؤنٹنٹس کے لیے ایک پورٹل بنانا تاکہ وہ بٹن کا استعمال کرکے اپنے لیے کوئی بھی رپورٹ ڈاؤن لوڈ کرسکیں۔ پورٹل بنانے میں 2 مہینے لگے، اور SPA (سنگل پیج ایپلی کیشن) ویب ایپلیکیشن React js میں Node.js بیک اینڈ کے ساتھ پیدا ہوئی۔ پیچھے سے ایس کیو ایل اسکرپٹس چلائیں (میں ہائبرنیٹ جیسے فریم ورک کے بارے میں نہیں جانتا تھا)، ازگر کو لانچ کیا اور مونگو ڈی بی میں اضافی معلومات اسٹور کیں (مثال کے طور پر، سائٹ کے صارفین کے بارے میں)۔ بیرونی طور پر، سائٹ بہت مہذب لگ رہی تھی (بوٹسٹریپ 4، فیشن ایبل اینیمیشن)۔ مجھے اب بھی اس منصوبے پر فخر ہے۔ لیکن جب میں نے اپنا کوڈ بینک کے ویب ڈویلپرز کو دکھایا تو وہ دنگ رہ گئے۔ آپ کی اپنی ایک کلاس نہیں! صرف خصوصیات، صرف کٹر! انہوں نے میری تعریف کی، لیکن کہا کہ مجھے مڈل فل اسٹیک ڈویلپر بننے کے لیے ابھی بھی بہت زیادہ مطالعہ کرنے کی ضرورت ہے۔ میں نے تجزیہ کار کے طور پر نوکری حاصل کرنے کی کوشش کی، لیکن کوئی خاص پیشکش نہیں ہوئی۔ میرے خیال میں: میں وہاں نہیں تھا، میں ایک مکمل اسٹیک ڈویلپر کا اپنا ریزیوم پوسٹ کروں گا۔ کالیں آئیں، لیکن انٹرویوز کے دوران میں پیرس پر پلائیووڈ کی طرح اڑ گیا: مثال کے طور پر، میں نہیں جانتا تھا کہ HashMap، HashSet کیا ہیں اور ان کی ضرورت کیوں تھی۔ OOP، پروگرامنگ پیٹرن، الگورتھم، ٹیسٹنگ، Git کے بارے میں ذرہ برابر بھی خیال نہیں تھا۔ مجھے بنیادی چیزوں سے لاعلمی کی وجہ سے شرم کے طویل عرصے سے بھولے ہوئے احساسات یاد آئے۔ اچانک ایک مالیاتی کمپنی میں کسٹمر اینالیٹکس کے سربراہ کے طور پر نوکری کے لیے ایک پیشکش آتی ہے۔ وبائی امراض کی وجہ سے ملک کے بند ہونے سے ایک ہفتہ قبل۔ مجھے ایک مالیاتی کمپنی میں نوکری مل گئی، لیکن ایک دوہرا احساس تھا: ایک طرف، اعلی تنخواہ گرم تھی، دوسری طرف، تکنیکی طرف کم سے کم ترقی ہو گی. ڈیوائس کو انسٹال ہونے اور ریموٹ ورک متعارف ہونے کے بعد ایک ہفتہ گزر گیا۔ چونکہ غیر کام کے دنوں کا اطلاق مالیاتی شعبے پر نہیں ہوتا تھا، اس لیے ہم نے معمول کے مطابق کام کیا۔ نیا باس ایک بہت ہی پاگل شخص نکلا: اس نے فیس بک کو ختم کرنے، کلائنٹس کا مطالعہ کرنے کے لیے اپنا نیورل نیٹ ورک بنانے کی پیشکش کی (عملے پر ڈیٹا سائنسدان کے بغیر)۔ نئے ملازمین کو ایک ہفتے میں Python سیکھنے کی پیشکش کی گئی، وغیرہ۔ بغیر تنخواہ کے دنوں کی چھٹی معمول بن گئی۔ چھوڑنا احمقانہ تھا: وبائی مرض کے دوران آپ کو نوکری کہاں ملے گی؟ لیکن 2 ماہ بعد صبر کا پیمانہ لبریز ہو گیا، جب اعلان کیا گیا کہ کوئی سہ ماہی بونس نہیں ہوگا۔ اہم بات یہ ہے کہ جب ہم نے تنخواہ پر اتفاق کیا تو ملازمت کے وقت ایچ آر نے کہا کہ تنخواہ کو تنخواہ (60%) اور سہ ماہی بونس (40%) میں تقسیم کیا جاتا ہے، جو ہمیشہ ادا کیا جاتا ہے۔ یہ واضح ہو گیا کہ غلط انتخاب کیا گیا تھا اور ہمیں نئی ​​ملازمت کی تلاش شروع کرنے کی ضرورت تھی۔ <h3>باب 6۔ جاوا میں مہارت حاصل کرنا شروع کر رہا ہے انشورنس انڈسٹری میں ایک کمپنی کو ایک ایسے شخص کی ضرورت ہوتی ہے جو انشورنس مصنوعات تیار کرے۔ پروگرامنگ کے تجربے کی ضرورت ہے، لیکن چونکہ یہ کمپنی کی "منفرد" ترقی ہے، اس لیے کسی مخصوص زبان کی ضرورت نہیں ہے۔ گٹ وغیرہ کی بھی ضرورت ہے۔ میں نے دو دن میں ایک انٹرویو طے کیا، اور میں نے اپنے فارغ وقت میں Git کی بنیادی باتوں کا مطالعہ کیا۔ انٹرویو کے دوران، مجھ سے Python، JS، Git، SQL کے بارے میں پوچھا گیا۔ میں نے "طریقہ اوورلوڈنگ" کے تصور کے علاوہ ہر چیز کا جواب دیا، اور مجھے 2 ہفتوں میں کام کرنے کی دعوت دی گئی۔ معلوم ہوا کہ کمپنی نے یہ سسٹم کافی عرصہ پہلے خریدا تھا۔ جاوا (سامنے اور پیچھے) میں لکھا ہوا ہے، جس کی مدد سے آپ کسی پروگرامنگ لینگویج کو جانے بغیر کاروباری عمل بنا سکتے ہیں (زیادہ واضح طور پر، بلٹ ان جیلی پروگرامنگ لینگویج کا استعمال کرتے ہوئے)۔ یہ اچھا لگتا ہے، لیکن حقیقت میں سب کچھ بگاڑ دیا گیا تھا. شعری ارتکاز: کسی بھی ٹیکنالوجی کا اپنا دور اور اپنا پیمانہ ہوتا ہے۔ 2000 میں تمام رپورٹنگ صرف ایکسل میں کرنا اچھا ہے۔ 2021 میں بھی ایسا ہی کرنا بہت اچھا نہیں ہے۔ خالص HTML میں ایک کمپنی کی ویب سائٹ 1999 میں اچھی تھی، لیکن 2021 میں نہیں۔ لہذا، کمپنی نے اپنی تخلیق (2005) کے وقت جو ٹیکنالوجی استعمال کی تھی وہ بہت عمدہ تھی - جاوا سرور اور کلائنٹ دونوں حصے (نام نہاد Java servlet صفحات) کے لیے ذمہ دار تھا۔ مزید یہ کہ، اگر آپ ایک نیا کاروباری عمل بناتے ہیں (جس کا اپنا UI ہے)، تو یہ ڈیٹا بیس کے اندر محفوظ ہوتا ہے، نہ کہ فائل میں موجود کوڈ میں۔ یہ سمجھنے کے لیے کہ یہ کتنا تکلیف دہ ہے، تصور کریں کہ آپ انٹیلیج آئیڈیا میں جاوا کوڈ لکھتے ہیں، اسے ڈیٹا بیس میں محفوظ کرتے ہیں، اور پھر۔ جب آپ اپنا کوڈ چلانا چاہتے ہیں تو پروگرام کا کرنل ڈیٹا بیس میں جاتا ہے اور وہاں سے آپ کا کوڈ پڑھتا ہے۔ اس کے مطابق، آپ اپنی درخواست کو مکمل طور پر ڈیبگ نہیں کر سکتے۔ اشارہ #1: جب آپ ٹیسٹ بینچ پر کوڈ جمع کروانا چاہتے ہیں، تو آپ کو تخلیق کرنا ہوگا۔ دوسری طرف، تکنیکی طرف کم سے کم ترقی ہوگی۔ ڈیوائس کو انسٹال ہونے اور ریموٹ ورک متعارف ہونے کے بعد ایک ہفتہ گزر گیا۔ چونکہ غیر کام کے دنوں کا اطلاق مالیاتی شعبے پر نہیں ہوتا تھا، اس لیے ہم نے معمول کے مطابق کام کیا۔ نیا باس ایک بہت ہی پاگل شخص نکلا: اس نے فیس بک کو ختم کرنے، کلائنٹس کا مطالعہ کرنے کے لیے اپنا نیورل نیٹ ورک بنانے کی پیشکش کی (عملے پر ڈیٹا سائنسدان کے بغیر)۔ نئے ملازمین کو ایک ہفتے میں Python سیکھنے کی پیشکش کی گئی، وغیرہ۔ بغیر تنخواہ کے دنوں کی چھٹی معمول بن گئی۔ چھوڑنا احمقانہ تھا: وبائی مرض کے دوران آپ کو نوکری کہاں ملے گی؟ لیکن 2 ماہ بعد صبر کا پیمانہ لبریز ہو گیا، جب اعلان کیا گیا کہ کوئی سہ ماہی بونس نہیں ہوگا۔ اہم بات یہ ہے کہ جب ہم نے تنخواہ پر اتفاق کیا تو ملازمت کے وقت ایچ آر نے کہا کہ تنخواہ کو تنخواہ (60%) اور سہ ماہی بونس (40%) میں تقسیم کیا جاتا ہے، جو ہمیشہ ادا کیا جاتا ہے۔ یہ واضح ہو گیا کہ غلط انتخاب کیا گیا تھا اور ہمیں نئی ​​ملازمت کی تلاش شروع کرنے کی ضرورت تھی۔ <h3>باب 6۔ جاوا میں مہارت حاصل کرنا شروع کر رہا ہے انشورنس انڈسٹری میں ایک کمپنی کو ایک ایسے شخص کی ضرورت ہوتی ہے جو انشورنس مصنوعات تیار کرے۔ پروگرامنگ کے تجربے کی ضرورت ہے، لیکن چونکہ یہ کمپنی کی "منفرد" ترقی ہے، اس لیے کسی مخصوص زبان کی ضرورت نہیں ہے۔ گٹ وغیرہ کی بھی ضرورت ہے۔ میں نے دو دن میں ایک انٹرویو طے کیا، اور میں نے اپنے فارغ وقت میں Git کی بنیادی باتوں کا مطالعہ کیا۔ انٹرویو کے دوران، مجھ سے Python، JS، Git، SQL کے بارے میں پوچھا گیا۔ میں نے "طریقہ اوورلوڈنگ" کے تصور کے علاوہ ہر چیز کا جواب دیا، اور مجھے 2 ہفتوں میں کام کرنے کی دعوت دی گئی۔ معلوم ہوا کہ کمپنی نے یہ سسٹم کافی عرصہ پہلے خریدا تھا۔ جاوا (سامنے اور پیچھے) میں لکھا ہوا ہے، جس کی مدد سے آپ کسی پروگرامنگ لینگویج کو جانے بغیر کاروباری عمل بنا سکتے ہیں (زیادہ واضح طور پر، بلٹ ان جیلی پروگرامنگ لینگویج کا استعمال کرتے ہوئے)۔ یہ اچھا لگتا ہے، لیکن حقیقت میں سب کچھ بگاڑ دیا گیا تھا. شعری ارتکاز: کسی بھی ٹیکنالوجی کا اپنا دور اور اپنا پیمانہ ہوتا ہے۔ 2000 میں تمام رپورٹنگ صرف ایکسل میں کرنا اچھا ہے۔ 2021 میں بھی ایسا ہی کرنا بہت اچھا نہیں ہے۔ خالص HTML میں ایک کمپنی کی ویب سائٹ 1999 میں اچھی تھی، لیکن 2021 میں نہیں۔ لہذا، کمپنی نے اپنی تخلیق (2005) کے وقت جو ٹیکنالوجی استعمال کی تھی وہ بہت عمدہ تھی - جاوا سرور اور کلائنٹ دونوں حصے (نام نہاد Java servlet صفحات) کے لیے ذمہ دار تھا۔ مزید یہ کہ، اگر آپ ایک نیا کاروباری عمل بناتے ہیں (جس کا اپنا UI ہے)، تو یہ ڈیٹا بیس کے اندر محفوظ ہوتا ہے، نہ کہ فائل میں موجود کوڈ میں۔ یہ سمجھنے کے لیے کہ یہ کتنا تکلیف دہ ہے، تصور کریں کہ آپ انٹیلیج آئیڈیا میں جاوا کوڈ لکھتے ہیں، اسے ڈیٹا بیس میں محفوظ کرتے ہیں، اور پھر۔ جب آپ اپنا کوڈ چلانا چاہتے ہیں تو پروگرام کا کرنل ڈیٹا بیس میں جاتا ہے اور وہاں سے آپ کا کوڈ پڑھتا ہے۔ اس کے مطابق، آپ اپنی درخواست کو مکمل طور پر ڈیبگ نہیں کر سکتے۔ اشارہ #1: جب آپ ٹیسٹ بینچ پر کوڈ جمع کروانا چاہتے ہیں، تو آپ کو تخلیق کرنا ہوگا۔ دوسری طرف، تکنیکی طرف کم سے کم ترقی ہوگی۔ ڈیوائس کو انسٹال ہونے اور ریموٹ ورک متعارف ہونے کے بعد ایک ہفتہ گزر گیا۔ چونکہ غیر کام کے دنوں کا اطلاق مالیاتی شعبے پر نہیں ہوتا تھا، اس لیے ہم نے معمول کے مطابق کام کیا۔ نیا باس ایک بہت ہی پاگل شخص نکلا: اس نے فیس بک کو ختم کرنے، کلائنٹس کا مطالعہ کرنے کے لیے اپنا نیورل نیٹ ورک بنانے کی پیشکش کی (عملے پر ڈیٹا سائنسدان کے بغیر)۔ نئے ملازمین کو ایک ہفتے میں Python سیکھنے کی پیشکش کی گئی، وغیرہ۔ بغیر تنخواہ کے دنوں کی چھٹی معمول بن گئی۔ چھوڑنا احمقانہ تھا: وبائی مرض کے دوران آپ کو نوکری کہاں ملے گی؟ لیکن 2 ماہ بعد صبر کا پیمانہ لبریز ہو گیا، جب اعلان کیا گیا کہ کوئی سہ ماہی بونس نہیں ہوگا۔ اہم بات یہ ہے کہ جب ہم نے تنخواہ پر اتفاق کیا تو ملازمت کے وقت ایچ آر نے کہا کہ تنخواہ کو تنخواہ (60%) اور سہ ماہی بونس (40%) میں تقسیم کیا جاتا ہے، جو ہمیشہ ادا کیا جاتا ہے۔ یہ واضح ہو گیا کہ غلط انتخاب کیا گیا تھا اور ہمیں نئی ​​ملازمت کی تلاش شروع کرنے کی ضرورت تھی۔ <h3>باب 6۔ جاوا میں مہارت حاصل کرنا شروع کر رہا ہے انشورنس انڈسٹری میں ایک کمپنی کو ایک ایسے شخص کی ضرورت ہوتی ہے جو انشورنس مصنوعات تیار کرے۔ پروگرامنگ کے تجربے کی ضرورت ہے، لیکن چونکہ یہ کمپنی کی "منفرد" ترقی ہے، اس لیے کسی مخصوص زبان کی ضرورت نہیں ہے۔ گٹ وغیرہ کی بھی ضرورت ہے۔ میں نے دو دن میں ایک انٹرویو طے کیا، اور میں نے اپنے فارغ وقت میں Git کی بنیادی باتوں کا مطالعہ کیا۔ انٹرویو کے دوران، مجھ سے Python، JS، Git، SQL کے بارے میں پوچھا گیا۔ میں نے "طریقہ اوورلوڈنگ" کے تصور کے علاوہ ہر چیز کا جواب دیا، اور مجھے 2 ہفتوں میں کام کرنے کی دعوت دی گئی۔ معلوم ہوا کہ کمپنی نے یہ سسٹم کافی عرصہ پہلے خریدا تھا۔ جاوا (سامنے اور پیچھے) میں لکھا ہوا ہے، جس کی مدد سے آپ کسی پروگرامنگ لینگویج کو جانے بغیر کاروباری عمل بنا سکتے ہیں (زیادہ واضح طور پر، بلٹ ان جیلی پروگرامنگ لینگویج کا استعمال کرتے ہوئے)۔ یہ اچھا لگتا ہے، لیکن حقیقت میں سب کچھ بگاڑ دیا گیا تھا. شعری ارتکاز: کسی بھی ٹیکنالوجی کا اپنا دور اور اپنا پیمانہ ہوتا ہے۔ 2000 میں تمام رپورٹنگ صرف ایکسل میں کرنا اچھا ہے۔ 2021 میں بھی ایسا ہی کرنا بہت اچھا نہیں ہے۔ خالص HTML میں ایک کمپنی کی ویب سائٹ 1999 میں اچھی تھی، لیکن 2021 میں نہیں۔ لہذا، کمپنی نے اپنی تخلیق (2005) کے وقت جو ٹیکنالوجی استعمال کی تھی وہ بہت عمدہ تھی - جاوا سرور اور کلائنٹ دونوں حصے (نام نہاد Java servlet صفحات) کے لیے ذمہ دار تھا۔ مزید یہ کہ، اگر آپ ایک نیا کاروباری عمل بناتے ہیں (جس کا اپنا UI ہے)، تو یہ ڈیٹا بیس کے اندر محفوظ ہوتا ہے، نہ کہ فائل میں موجود کوڈ میں۔ یہ سمجھنے کے لیے کہ یہ کتنا تکلیف دہ ہے، تصور کریں کہ آپ انٹیلیج آئیڈیا میں جاوا کوڈ لکھتے ہیں، اسے ڈیٹا بیس میں محفوظ کرتے ہیں، اور پھر۔ جب آپ اپنا کوڈ چلانا چاہتے ہیں تو پروگرام کا کرنل ڈیٹا بیس میں جاتا ہے اور وہاں سے آپ کا کوڈ پڑھتا ہے۔ اس کے مطابق، آپ اپنی درخواست کو مکمل طور پر ڈیبگ نہیں کر سکتے۔ اشارہ #1: جب آپ ٹیسٹ بینچ پر کوڈ جمع کروانا چاہتے ہیں، تو آپ کو تخلیق کرنا ہوگا۔ کلائنٹس کا مطالعہ کرنے کے لیے اپنے نیورل نیٹ ورکس بنائیں (عملے پر ڈیٹا سائنسدان کے بغیر)۔ نئے ملازمین کو ایک ہفتے میں Python سیکھنے کی پیشکش کی گئی، وغیرہ۔ بغیر تنخواہ کے دنوں کی چھٹی معمول بن گئی۔ چھوڑنا احمقانہ تھا: وبائی مرض کے دوران آپ کو نوکری کہاں ملے گی؟ لیکن 2 ماہ بعد صبر کا پیمانہ لبریز ہو گیا، جب اعلان کیا گیا کہ کوئی سہ ماہی بونس نہیں ہوگا۔ اہم بات یہ ہے کہ جب ہم نے تنخواہ پر اتفاق کیا تو ملازمت کے وقت ایچ آر نے کہا کہ تنخواہ کو تنخواہ (60%) اور سہ ماہی بونس (40%) میں تقسیم کیا جاتا ہے، جو ہمیشہ ادا کیا جاتا ہے۔ یہ واضح ہو گیا کہ غلط انتخاب کیا گیا تھا اور ہمیں نئی ​​ملازمت کی تلاش شروع کرنے کی ضرورت تھی۔ <h3>باب 6۔ جاوا میں مہارت حاصل کرنا شروع کر رہا ہے انشورنس انڈسٹری میں ایک کمپنی کو ایک ایسے شخص کی ضرورت ہوتی ہے جو انشورنس مصنوعات تیار کرے۔ پروگرامنگ کے تجربے کی ضرورت ہے، لیکن چونکہ یہ کمپنی کی "منفرد" ترقی ہے، اس لیے کسی مخصوص زبان کی ضرورت نہیں ہے۔ گٹ وغیرہ کی بھی ضرورت ہے۔ میں نے دو دن میں ایک انٹرویو طے کیا، اور میں نے اپنے فارغ وقت میں Git کی بنیادی باتوں کا مطالعہ کیا۔ انٹرویو کے دوران، مجھ سے Python، JS، Git، SQL کے بارے میں پوچھا گیا۔ میں نے "طریقہ اوورلوڈنگ" کے تصور کے علاوہ ہر چیز کا جواب دیا، اور مجھے 2 ہفتوں میں کام کرنے کی دعوت دی گئی۔ معلوم ہوا کہ کمپنی نے یہ سسٹم کافی عرصہ پہلے خریدا تھا۔ جاوا (سامنے اور پیچھے) میں لکھا ہوا ہے، جس کی مدد سے آپ کسی پروگرامنگ لینگویج کو جانے بغیر کاروباری عمل بنا سکتے ہیں (زیادہ واضح طور پر، بلٹ ان جیلی پروگرامنگ لینگویج کا استعمال کرتے ہوئے)۔ یہ اچھا لگتا ہے، لیکن حقیقت میں سب کچھ بگاڑ دیا گیا تھا. شعری ارتکاز: کسی بھی ٹیکنالوجی کا اپنا دور اور اپنا پیمانہ ہوتا ہے۔ 2000 میں تمام رپورٹنگ صرف ایکسل میں کرنا اچھا ہے۔ 2021 میں بھی ایسا ہی کرنا بہت اچھا نہیں ہے۔ خالص HTML میں ایک کمپنی کی ویب سائٹ 1999 میں اچھی تھی، لیکن 2021 میں نہیں۔ لہذا، کمپنی نے اپنی تخلیق (2005) کے وقت جو ٹیکنالوجی استعمال کی تھی وہ بہت عمدہ تھی - جاوا سرور اور کلائنٹ دونوں حصے (نام نہاد Java servlet صفحات) کے لیے ذمہ دار تھا۔ مزید یہ کہ، اگر آپ ایک نیا کاروباری عمل بناتے ہیں (جس کا اپنا UI ہے)، تو یہ ڈیٹا بیس کے اندر محفوظ ہوتا ہے، نہ کہ فائل میں موجود کوڈ میں۔ یہ سمجھنے کے لیے کہ یہ کتنا تکلیف دہ ہے، تصور کریں کہ آپ انٹیلیج آئیڈیا میں جاوا کوڈ لکھتے ہیں، اسے ڈیٹا بیس میں محفوظ کرتے ہیں، اور پھر۔ جب آپ اپنا کوڈ چلانا چاہتے ہیں تو پروگرام کا کرنل ڈیٹا بیس میں جاتا ہے اور وہاں سے آپ کا کوڈ پڑھتا ہے۔ اس کے مطابق، آپ اپنی درخواست کو مکمل طور پر ڈیبگ نہیں کر سکتے۔ اشارہ #1: جب آپ ٹیسٹ بینچ پر کوڈ جمع کروانا چاہتے ہیں، تو آپ کو تخلیق کرنا ہوگا۔ کلائنٹس کا مطالعہ کرنے کے لیے اپنے نیورل نیٹ ورکس بنائیں (عملے پر ڈیٹا سائنسدان کے بغیر)۔ نئے ملازمین کو ایک ہفتے میں Python سیکھنے کی پیشکش کی گئی، وغیرہ۔ بغیر تنخواہ کے دنوں کی چھٹی معمول بن گئی۔ چھوڑنا احمقانہ تھا: وبائی مرض کے دوران آپ کو نوکری کہاں ملے گی؟ لیکن 2 ماہ بعد صبر کا پیمانہ لبریز ہو گیا، جب اعلان کیا گیا کہ کوئی سہ ماہی بونس نہیں ہوگا۔ اہم بات یہ ہے کہ جب ہم نے تنخواہ پر اتفاق کیا تو ملازمت کے وقت ایچ آر نے کہا کہ تنخواہ کو تنخواہ (60%) اور سہ ماہی بونس (40%) میں تقسیم کیا جاتا ہے، جو ہمیشہ ادا کیا جاتا ہے۔ یہ واضح ہو گیا کہ غلط انتخاب کیا گیا تھا اور ہمیں نئی ​​ملازمت کی تلاش شروع کرنے کی ضرورت تھی۔ <h3>باب 6۔ جاوا میں مہارت حاصل کرنا شروع کر رہا ہے انشورنس انڈسٹری میں ایک کمپنی کو ایک ایسے شخص کی ضرورت ہوتی ہے جو انشورنس مصنوعات تیار کرے۔ پروگرامنگ کے تجربے کی ضرورت ہے، لیکن چونکہ یہ کمپنی کی "منفرد" ترقی ہے، اس لیے کسی مخصوص زبان کی ضرورت نہیں ہے۔ گٹ وغیرہ کی بھی ضرورت ہے۔ میں نے دو دن میں ایک انٹرویو طے کیا، اور میں نے اپنے فارغ وقت میں Git کی بنیادی باتوں کا مطالعہ کیا۔ انٹرویو کے دوران، مجھ سے Python، JS، Git، SQL کے بارے میں پوچھا گیا۔ میں نے "طریقہ اوورلوڈنگ" کے تصور کے علاوہ ہر چیز کا جواب دیا، اور مجھے 2 ہفتوں میں کام کرنے کی دعوت دی گئی۔ معلوم ہوا کہ کمپنی نے یہ سسٹم کافی عرصہ پہلے خریدا تھا۔ جاوا (سامنے اور پیچھے) میں لکھا ہوا ہے، جس کی مدد سے آپ کسی پروگرامنگ لینگویج کو جانے بغیر کاروباری عمل بنا سکتے ہیں (زیادہ واضح طور پر، بلٹ ان جیلی پروگرامنگ لینگویج کا استعمال کرتے ہوئے)۔ یہ اچھا لگتا ہے، لیکن حقیقت میں سب کچھ بگاڑ دیا گیا تھا. شعری ارتکاز: کسی بھی ٹیکنالوجی کا اپنا دور اور اپنا پیمانہ ہوتا ہے۔ 2000 میں تمام رپورٹنگ صرف ایکسل میں کرنا اچھا ہے۔ 2021 میں بھی ایسا ہی کرنا بہت اچھا نہیں ہے۔ خالص HTML میں ایک کمپنی کی ویب سائٹ 1999 میں اچھی تھی، لیکن 2021 میں نہیں۔ لہذا، کمپنی نے اپنی تخلیق (2005) کے وقت جو ٹیکنالوجی استعمال کی تھی وہ بہت عمدہ تھی - جاوا سرور اور کلائنٹ دونوں حصے (نام نہاد Java servlet صفحات) کے لیے ذمہ دار تھا۔ مزید یہ کہ، اگر آپ ایک نیا کاروباری عمل بناتے ہیں (جس کا اپنا UI ہے)، تو یہ ڈیٹا بیس کے اندر محفوظ ہوتا ہے، نہ کہ فائل میں موجود کوڈ میں۔ یہ سمجھنے کے لیے کہ یہ کتنا تکلیف دہ ہے، تصور کریں کہ آپ انٹیلیج آئیڈیا میں جاوا کوڈ لکھتے ہیں، اسے ڈیٹا بیس میں محفوظ کرتے ہیں، اور پھر۔ جب آپ اپنا کوڈ چلانا چاہتے ہیں تو پروگرام کا کرنل ڈیٹا بیس میں جاتا ہے اور وہاں سے آپ کا کوڈ پڑھتا ہے۔ اس کے مطابق، آپ اپنی درخواست کو مکمل طور پر ڈیبگ نہیں کر سکتے۔ اشارہ #1: جب آپ ٹیسٹ بینچ پر کوڈ جمع کروانا چاہتے ہیں، تو آپ کو تخلیق کرنا ہوگا۔ <h3>باب 6۔ جاوا میں مہارت حاصل کرنا شروع کر رہا ہے انشورنس انڈسٹری میں ایک کمپنی کو ایک ایسے شخص کی ضرورت ہوتی ہے جو انشورنس مصنوعات تیار کرے۔ پروگرامنگ کے تجربے کی ضرورت ہے، لیکن چونکہ یہ کمپنی کی "منفرد" ترقی ہے، اس لیے کسی مخصوص زبان کی ضرورت نہیں ہے۔ گٹ وغیرہ کی بھی ضرورت ہے۔ میں نے دو دن میں ایک انٹرویو طے کیا، اور میں نے اپنے فارغ وقت میں Git کی بنیادی باتوں کا مطالعہ کیا۔ انٹرویو کے دوران، مجھ سے Python، JS، Git، SQL کے بارے میں پوچھا گیا۔ میں نے "طریقہ اوورلوڈنگ" کے تصور کے علاوہ ہر چیز کا جواب دیا، اور مجھے 2 ہفتوں میں کام کرنے کی دعوت دی گئی۔ معلوم ہوا کہ کمپنی نے یہ سسٹم کافی عرصہ پہلے خریدا تھا۔ جاوا (سامنے اور پیچھے) میں لکھا ہوا ہے، جس کی مدد سے آپ کسی پروگرامنگ لینگویج کو جانے بغیر کاروباری عمل بنا سکتے ہیں (زیادہ واضح طور پر، بلٹ ان جیلی پروگرامنگ لینگویج کا استعمال کرتے ہوئے)۔ یہ اچھا لگتا ہے، لیکن حقیقت میں سب کچھ بگاڑ دیا گیا تھا. شعری ارتکاز: کسی بھی ٹیکنالوجی کا اپنا دور اور اپنا پیمانہ ہوتا ہے۔ 2000 میں تمام رپورٹنگ صرف ایکسل میں کرنا اچھا ہے۔ 2021 میں بھی ایسا ہی کرنا بہت اچھا نہیں ہے۔ خالص HTML میں ایک کمپنی کی ویب سائٹ 1999 میں اچھی تھی، لیکن 2021 میں نہیں۔ لہذا، کمپنی نے اپنی تخلیق (2005) کے وقت جو ٹیکنالوجی استعمال کی تھی وہ بہت عمدہ تھی - جاوا سرور اور کلائنٹ دونوں حصے (نام نہاد Java servlet صفحات) کے لیے ذمہ دار تھا۔ مزید یہ کہ، اگر آپ ایک نیا کاروباری عمل بناتے ہیں (جس کا اپنا UI ہے)، تو یہ ڈیٹا بیس کے اندر محفوظ ہوتا ہے، نہ کہ فائل میں موجود کوڈ میں۔ یہ سمجھنے کے لیے کہ یہ کتنا تکلیف دہ ہے، تصور کریں کہ آپ انٹیلیج آئیڈیا میں جاوا کوڈ لکھتے ہیں، اسے ڈیٹا بیس میں محفوظ کرتے ہیں، اور پھر۔ جب آپ اپنا کوڈ چلانا چاہتے ہیں تو پروگرام کا کرنل ڈیٹا بیس میں جاتا ہے اور وہاں سے آپ کا کوڈ پڑھتا ہے۔ اس کے مطابق، آپ اپنی درخواست کو مکمل طور پر ڈیبگ نہیں کر سکتے۔ اشارہ #1: جب آپ ٹیسٹ بینچ پر کوڈ جمع کروانا چاہتے ہیں، تو آپ کو تخلیق کرنا ہوگا۔ <h3>باب 6۔ جاوا میں مہارت حاصل کرنا شروع کر رہا ہے انشورنس انڈسٹری میں ایک کمپنی کو ایک ایسے شخص کی ضرورت ہوتی ہے جو انشورنس مصنوعات تیار کرے۔ پروگرامنگ کے تجربے کی ضرورت ہے، لیکن چونکہ یہ کمپنی کی "منفرد" ترقی ہے، اس لیے کسی مخصوص زبان کی ضرورت نہیں ہے۔ گٹ وغیرہ کی بھی ضرورت ہے۔ میں نے دو دن میں ایک انٹرویو طے کیا، اور میں نے اپنے فارغ وقت میں Git کی بنیادی باتوں کا مطالعہ کیا۔ انٹرویو کے دوران، مجھ سے Python، JS، Git، SQL کے بارے میں پوچھا گیا۔ میں نے "طریقہ اوورلوڈنگ" کے تصور کے علاوہ ہر چیز کا جواب دیا، اور مجھے 2 ہفتوں میں کام کرنے کی دعوت دی گئی۔ معلوم ہوا کہ کمپنی نے یہ سسٹم کافی عرصہ پہلے خریدا تھا۔ جاوا (سامنے اور پیچھے) میں لکھا ہوا ہے، جس کی مدد سے آپ کسی پروگرامنگ لینگویج کو جانے بغیر کاروباری عمل بنا سکتے ہیں (زیادہ واضح طور پر، بلٹ ان جیلی پروگرامنگ لینگویج کا استعمال کرتے ہوئے)۔ یہ اچھا لگتا ہے، لیکن حقیقت میں سب کچھ بگاڑ دیا گیا تھا. شعری ارتکاز: کسی بھی ٹیکنالوجی کا اپنا دور اور اپنا پیمانہ ہوتا ہے۔ 2000 میں تمام رپورٹنگ صرف ایکسل میں کرنا اچھا ہے۔ 2021 میں بھی ایسا ہی کرنا بہت اچھا نہیں ہے۔ خالص HTML میں ایک کمپنی کی ویب سائٹ 1999 میں اچھی تھی، لیکن 2021 میں نہیں۔ لہذا، کمپنی نے اپنی تخلیق (2005) کے وقت جو ٹیکنالوجی استعمال کی تھی وہ بہت عمدہ تھی - جاوا سرور اور کلائنٹ دونوں حصے (نام نہاد Java servlet صفحات) کے لیے ذمہ دار تھا۔ مزید یہ کہ، اگر آپ ایک نیا کاروباری عمل بناتے ہیں (جس کا اپنا UI ہے)، تو یہ ڈیٹا بیس کے اندر محفوظ ہوتا ہے، نہ کہ فائل میں موجود کوڈ میں۔ یہ سمجھنے کے لیے کہ یہ کتنا تکلیف دہ ہے، تصور کریں کہ آپ انٹیلیج آئیڈیا میں جاوا کوڈ لکھتے ہیں، اسے ڈیٹا بیس میں محفوظ کرتے ہیں، اور پھر۔ جب آپ اپنا کوڈ چلانا چاہتے ہیں تو پروگرام کا کرنل ڈیٹا بیس میں جاتا ہے اور وہاں سے آپ کا کوڈ پڑھتا ہے۔ اس کے مطابق، آپ اپنی درخواست کو مکمل طور پر ڈیبگ نہیں کر سکتے۔ اشارہ #1: جب آپ ٹیسٹ بینچ پر کوڈ جمع کروانا چاہتے ہیں، تو آپ کو تخلیق کرنا ہوگا۔ خالص HTML میں ایک کمپنی کی ویب سائٹ 1999 میں اچھی تھی، لیکن 2021 میں نہیں۔ لہذا، کمپنی نے اپنی تخلیق (2005) کے وقت جو ٹیکنالوجی استعمال کی تھی وہ بہت عمدہ تھی - جاوا سرور اور کلائنٹ دونوں حصے (نام نہاد Java servlet صفحات) کے لیے ذمہ دار تھا۔ مزید یہ کہ، اگر آپ ایک نیا کاروباری عمل بناتے ہیں (جس کا اپنا UI ہے)، تو یہ ڈیٹا بیس کے اندر محفوظ ہوتا ہے، نہ کہ فائل میں موجود کوڈ میں۔ یہ سمجھنے کے لیے کہ یہ کتنا تکلیف دہ ہے، تصور کریں کہ آپ انٹیلیج آئیڈیا میں جاوا کوڈ لکھتے ہیں، اسے ڈیٹا بیس میں محفوظ کرتے ہیں، اور پھر۔ جب آپ اپنا کوڈ چلانا چاہتے ہیں تو پروگرام کا کرنل ڈیٹا بیس میں جاتا ہے اور وہاں سے آپ کا کوڈ پڑھتا ہے۔ اس کے مطابق، آپ اپنی درخواست کو مکمل طور پر ڈیبگ نہیں کر سکتے۔ اشارہ #1: جب آپ ٹیسٹ بینچ پر کوڈ جمع کروانا چاہتے ہیں، تو آپ کو تخلیق کرنا ہوگا۔ خالص HTML میں ایک کمپنی کی ویب سائٹ 1999 میں اچھی تھی، لیکن 2021 میں نہیں۔ لہذا، کمپنی نے اپنی تخلیق (2005) کے وقت جو ٹیکنالوجی استعمال کی تھی وہ بہت عمدہ تھی - جاوا سرور اور کلائنٹ دونوں حصے (نام نہاد Java servlet صفحات) کے لیے ذمہ دار تھا۔ مزید یہ کہ، اگر آپ ایک نیا کاروباری عمل بناتے ہیں (جس کا اپنا UI ہے)، تو یہ ڈیٹا بیس کے اندر محفوظ ہوتا ہے، نہ کہ فائل میں موجود کوڈ میں۔ یہ سمجھنے کے لیے کہ یہ کتنا تکلیف دہ ہے، تصور کریں کہ آپ انٹیلیج آئیڈیا میں جاوا کوڈ لکھتے ہیں، اسے ڈیٹا بیس میں محفوظ کرتے ہیں، اور پھر۔ جب آپ اپنا کوڈ چلانا چاہتے ہیں تو پروگرام کا کرنل ڈیٹا بیس میں جاتا ہے اور وہاں سے آپ کا کوڈ پڑھتا ہے۔ اس کے مطابق، آپ اپنی درخواست کو مکمل طور پر ڈیبگ نہیں کر سکتے۔ اشارہ #1: جب آپ ٹیسٹ بینچ پر کوڈ جمع کروانا چاہتے ہیں، تو آپ کو تخلیق کرنا ہوگا۔SQL скрипт، جس میں آپ کا کوڈ ہوگا۔ ناخوشگوار، لیکن قابل برداشت؟ Zest #2: ڈیٹا بیس 200 سے زیادہ ٹیبلز پر مشتمل ہے جو ایک دوسرے کے ساتھ کنکشن رکھتے ہیں۔ اس کا مطلب ہے کہ آپ کو یہ جاننے کی ضرورت ہے کہ آپ کے کوڈ کو کن ٹیبلز میں ڈالنا ہے، اور دوسرے ٹیبلز میں کن اداروں کو بنانے کی ضرورت ہے۔ آؤٹ پٹ ایک SQL اسکرپٹ ہے جس کی لمبائی ~ 1000 لائنز ہے۔ یہ واقعی ناگوار ہے۔ میراث سے بچو۔ مختصراً، یہ سمجھتے ہوئے کہ یہ سب جاوا میں ہے، میں جاوا رش میں چلا گیا (آخر کار ہم سائٹ کے تھیم پر پہنچ گئے!) جون-جولائی 2020۔ پہلی 10 سطحیں تیزی سے بند کر دی گئیں (شاید ایک ماہ)، کیونکہ بنیادی طور پر کوئی نئی چیز نہیں تھی۔ پھر رفتار کم ہو گئی۔ جولائی-اکتوبر 2020۔ لیول 10-20 بند۔ اکتوبر-مارچ 2021۔ سطح 20-30 بند۔ اب مزہ شروع ہوتا ہے: مارچ 2021 میں، میں نے جاوا کی آسامیوں کو دیکھنا شروع کیا اور مجھے احساس ہوا کہ وہاں بہت سے غیر مانوس الفاظ موجود ہیں۔ کسی قسم کی بہار، اسپرنگ بوٹ، ہائبرنیٹ، JUnit۔ ایک معروف ویب سائٹ پر ویڈیو کورسز خریدنے کے بعد، میں نے ابھی بہار کو چھوا اور سوچا کہ اب میں سب کچھ جانتا ہوں اور کر سکتا ہوں۔ اس کے بعد، میں نے گریگوری کسلن کے ٹاپ جاوا کورس کو دیکھا۔ اس کی ویب سائٹ پر آپ ٹیسٹ ٹاسک مکمل کرنے کی کوشش کر سکتے ہیں، اور اگر آپ کامیاب ہو جاتے ہیں، تو آپ کورس کر سکتے ہیں۔ اس کورس میں، آپ ایک مکمل ویب ایپلیکیشن بناتے ہیں اور اسے انٹرنیٹ پر بھی شائع کرتے ہیں۔ اس رقم کے لیے، وہ آپ کو ایک جائزہ دیں گے (زیادہ تجربہ کار پروگرامر کے ذریعے کوڈ کا جائزہ لیں گے)، رائے دیں گے اور مسائل کی صورت میں آپ کو تجاویز دیں گے۔ میں ہوم ورک 3 پر پہنچ گیا اور چھوڑ دیا۔ وجہ سادہ ہے: وہ آپ سے بہت کچھ مانگتے ہیں، لیکن وہ آپ کو کوئی علم نہیں دیتے۔ ہوم ورک کے تقاضے بہت مبہم ہیں۔ معلومات انتہائی متضاد طور پر پیش کی گئی ہیں۔ میری ساپیکش رائے میں، یہ کورس کافی تجربہ کار ڈویلپرز کو درکار ہے جو دوسری ملتی جلتی زبانوں سے آتے ہیں۔ کیونکہ اس کے کورس میں عملی طور پر ان ٹیکنالوجیز کی کوئی وضاحت نہیں ہے جنہیں وہ استعمال کرنے کو کہتا ہے۔ آپ کو گٹ کو اچھی طرح جاننے کی بھی ضرورت ہے (ہر چیز آپ کے ذاتی ذخیرے میں بھیجی جاتی ہے)۔ اپریل 2021 کے آخر میں، میں جاوا ڈویلپر کے لیے ایک ریزیومے پوسٹ کر رہا ہوں (مڈل+ لیول پر مطلوبہ تنخواہ کے ساتھ)، جس میں میں اس بات کی نشاندہی کر رہا ہوں کہ اپنی آخری نوکری پر میں نے جاوا میں پروگرام کیا تھا (میں نے جھوٹ بولا تھا)۔ اسی دن، بینک کو جاوا ڈویلپر کی پوزیشن کے لیے ایک درخواست موصول ہوتی ہے۔ <h3>باب 7۔ جاوا انٹرویوز اور اسکل آننگ</h3>تو، منصوبہ کیا تھا؟ مجھے اچھی تنخواہ لینے کی ضرورت ہے، کیونکہ میں پہلے ہی کافی آمدنی + قرضوں پر زندگی گزارنے کا عادی ہوں۔ اس لیے جونیئر عہدے میرے لیے موزوں نہیں ہیں۔ آپ کو درمیانی ملازمت حاصل کرنے کی ضرورت ہے۔ لیکن تجربہ کے بغیر مجھے کون رکھے گا؟ فیصلہ فطری طور پر آیا: میرا ملازمت کا ریکارڈ کہتا ہے کہ میں نے ایک سال ڈیولپر کے طور پر کام کیا اور اپنی سابقہ ​​پوزیشن میں IT ڈیپارٹمنٹ میں ایک ماہر کے طور پر مزید 4 سال کام کیا۔ تو، میں کہوں گا کہ میں جاوا میں ایک سال سے ترقی کر رہا ہوں۔ اور اگر وہ نئی مصنوعات کے بارے میں پوچھتے ہیں، تو میں کہوں گا کہ پرانا جاوا (7) وہاں تھا اور کسی چیز کی حمایت نہیں کرتا تھا۔ اپنے پہلے (ریموٹ) انٹرویو سے پہلے، میں گھبرا گیا تھا۔ میرے پاس کوئی تجربہ نہیں ہے، بہت کم علم ہے، اور میں بہت سارے پیسے مانگ رہا ہوں۔ میرے خیال میں: پرواہ نہ کریں، منفی تجربہ بھی تجربہ ہے۔ میں اسکائپ کے ذریعے رابطہ کرتا ہوں اور دو محکموں کے سربراہان میرا انٹرویو کریں گے۔ جس سے مجھے اور بھی دکھ ہوا۔ سوالات شروع ہوئے: OOP، HashMap ڈیوائس، اسٹریمز، ڈیٹا ڈھانچے، بہار، ہائبرنیٹ، اے او پی کیا ہے۔ اور اگر Sping سے پہلے یہ کم و بیش قابلِ برداشت تھا، تو بہار کے وقت یہ مکمل طور پر ٹوٹ گیا۔ لوگ مجھ سے پوچھتے ہیں: اگر آپ واقعی یہ نہیں جانتے ہیں تو موسم بہار میں آپ کی ترقی کیسے ہوئی؟ میں: میں نے اسے کاپی کیا، پیسٹ کیا، یہ کام کرتا ہے، اور اس کے لیے شکریہ۔ اس جواب نے انہیں خوش کر دیا۔ پھر انہوں نے SQL کے بارے میں پوچھا، جس میں میں پانی کے لیے بطخ کی طرح تھا۔ اگلا گٹ تھا اور ریبیس کے بارے میں ایک سوال، چیری پک (جس کا میں بھی نہیں جانتا تھا) اور جے ایس کے بارے میں ختم ہوا، کیونکہ یہ میرے ریزیومے میں درج تھا۔ وہاں بھی مکمل ناکامی ہوئی، کیونکہ انہوں نے او او پی جے ایس کے بارے میں پوچھا۔ انٹرویو کے نتائج کی بنیاد پر، یہ واضح ہو گیا کہ میرا علم غلط نہیں تھا، اور اس لیے میں اس آسامی کے لیے اہل نہیں ہوں گا۔ شام کو HR لکھتا ہے کہ میری امیدواری منظور ہو گئی ہے اور وہ مجھے بلانے کے لیے تیار ہیں۔ میں نے حقیقت میں میک ڈونلڈز میں ایک برگر پر دم کر دیا۔ میں خوش تھا، لیکن 3 دن کے بعد HR نے اطلاع دی کہ انہوں نے ایک اور امیدوار کا انتخاب کیا ہے۔ میرے تجربے میں پہلی بار ایک پیشکش واپس لے لی گئی۔ جاوا میں پہلے انٹرویو کے بعد، میں نے اپنے کھیل کو تیز کیا: میں نے ویڈیو کورسز کی فروخت کے لیے ایک معروف سائٹ پر Colt Steele سے Git میں ایک کورس لیا (اور اسے مکمل طور پر مکمل کیا!)۔ اس نے گٹ کے بارے میں میرا خیال بدل دیا۔ اس کے بعد، میں نے زاؤر ٹریگولوف سے Spring+Hibernate پر (شاندار) کورس کیا۔ ٹریننگ سکیم: میں اسے ویڈیو کی طرح دیکھتا ہوں، میں اپنے کمپیوٹر پر بھی ایسا ہی کرتا ہوں، لیکن میں متغیرات اور کلاسز کو مختلف نام دیتا ہوں تاکہ کسی اور کے کوڈ کو احمقانہ طریقے سے کاپی نہ کریں۔ میں اپنے تمام کام اپنے Github پر اپ لوڈ کرتا ہوں (اس طرح Git کی مشق کرتا ہوں)۔ مئی کا وسط تھا اور گھنٹے سے کالیں شروع ہو گئیں۔ ہم نے ایک ایک کرکے انٹرویوز کا شیڈول بنانا شروع کیا۔ مندرجہ ذیل وجوہات کی بنا پر بہت سے دعوت نامے منسوخ کرنا پڑے: HR نے میرے تجربے کی فہرست کی تفصیل نہیں پڑھی اور مجھے سینئر عہدے پر مدعو کیا۔ یہ ایک الگ HR ذات کا بھی ذکر کرنے کے قابل ہے: وہ لوگ جو جاوا کو جاوا اسکرپٹ کے ساتھ الجھاتے ہیں۔ اسی لیے میں نے اپنے ریزیومے کے عنوان میں مڈل جاوا ڈویلپر لکھا۔ <h3>باب 8۔ عام سوالات کی فہرست اور انٹرویو کیسے ہوتے ہیں</h3>میں نے انٹرویوز میں جانا شروع کیا اور آہستہ آہستہ درمیان میں بنیادی سوالات کا ایک تالاب تشکیل دیا۔ مطلوبہ: 0. OOP - تعریف، OOP کے ہر اصول کے بارے میں بات کریں (+حقیقی زندگی سے ایک مثال دیں)۔ 1. مساوی اور ہیش کوڈ - ان کے درمیان معاہدہ (رشتہ) کیا ہے؟ 2. HashMap - یہ کیسے سمجھیں کہ کوئی چیز کس بالٹی میں جائے گی، تصادم کیا ہے، HashMap کے اندر ڈیٹا کو کس ڈیٹا اسٹرکچر میں محفوظ کیا گیا ہے، معیاری سائز، بالٹیوں کی تعداد کیسے بڑھتی ہے۔ 3. سٹریم - کس قسم کے آپریشنز، ان میں کیا فرق ہے، ہر قسم کے آپریشن کی مثال دیں۔ 4. سٹرنگ پول، انٹیجر پول - یہ کیا ہے؟ 5. ڈھیر، اسٹیک - یہ کیا ہے، کیا فرق ہے؟ 6. رن ایبل، تھریڈ، فیوچر کے درمیان فرق۔ 7. اتار چڑھاؤ، جوہری۔ 8. ٹھوس، چومو، خشک - تعریفیں، حقیقی زندگی سے مثالیں. 9. جاوا میں ترمیم کرنے والوں تک رسائی حاصل کریں۔ 10. خلاصہ کلاس اور انٹرفیس میں کیا فرق ہے؟ کیا انٹرفیس نجی ہو سکتا ہے؟ 11. فنکشنل انٹرفیس۔ 12. تمام آبجیکٹ طریقوں کی فہرست بنائیں اور بتائیں کہ ان کی ضرورت کیوں ہے۔ کلون طریقہ کی خصوصیات۔ 13. سیریلائزیشن اور ڈی سیریلائزیشن کیا ہے؟ 14. وسائل کے ساتھ کیچ کرنے کی کوشش کریں - بیان کریں کہ یہ کیا ہے، اسے Closeable انٹرفیس کا استعمال کرتے ہوئے بتائیں۔ 15. فائنل کے درمیان فرق، آخر میں، حتمی؟ 16. اوورلوڈ، طریقہ اوور رائڈنگ فرق ہے۔ 17. اسٹرنگ کو کیوں ناقابل تغیر بنایا گیا، ہمیں StringBuilder اور StringBuffer کے بارے میں بتائیں۔ 18. وقت کی پیچیدگی O(1)، میموری کی پیچیدگی کیا ہے؟ 19. ڈیٹا ڈھانچہ: جاوا میں نقشہ، سیٹ، قطار، ڈیک، فہرست اور ان کے نفاذ کے بارے میں بات کریں (treeMap، hashSet، hashMap، arrayList، linkedList، priorityQueue، blockingQueue)، داخل کرنے کی پیچیدگی (بدترین، اوسط، بہترین) کی وضاحت کریں، تلاش کریں، ہر ڈھانچے میں ایک عنصر کو ہٹا دیں۔ 20. جاوا میں ڈیٹا کی ابتدائی اقسام۔ ان میں سے ہر ایک کی ضرورت کیوں ہے؟ 21. غلطیوں کی اقسام۔ مستثنیات کو چیک کیا گیا اور غیر نشان زد کیا گیا۔ 22. JVM، JRE، JDK کیا ہے؟ 23. آپ نے کن جمعکاروں کے ساتھ کام کیا؟ Maven - زندگی سائیکل کی تعمیر. 24. بہار - Ioc تعریفیں، Di، Bean Lifecycle، Context، @Bean تشریحات، @Configuration، @Autowired، @Advice، @Aspect، @Service، @Repository۔ 25. عمومیات - نچلی اور اوپری حد کیا ہے اس کی تعریف؟ 26.پروگرامنگ پیٹرن - کم از کم سنگلٹن (یہ بتانے کی رضامندی کہ یہ بعض اوقات اینٹی پیٹرن کیوں ہوتا ہے) + بلڈر، اڈاپٹر، فیکٹری، ڈیکوریٹر، پراکسٹ۔ مطلوبہ: 26. ٹیسٹنگ - ٹیسٹ کی اقسام، کن لائبریریوں (JUnit) کے ساتھ کام کیا گیا تھا۔ موک، چھرا، جاسوس کیا ہے؟ 27. اسپرنگ بوٹ - اس کی ضرورت کیوں ہے، اسپرنگ بوٹ کی درخواست آن لائن بنانے کی تیاری۔ 28. ہائبرنیٹ - اس کی ضرورت کیوں ہے، ہستی، جوائن کالم، سست بمقابلہ شوقین لوڈنگ، کیشنگ لیولز (سخت)۔ 29. بہار کا آرام - اس کی ضرورت کیوں ہے، @post کیسے بنایا جائے، @ اینڈ پوائنٹس حاصل کریں۔ پیرامیٹرز / درخواست کے جسم کو کیسے پڑھیں؟ json فارمیٹ میں کیسے جمع کیا جائے؟ 30. ڈیٹا ڈھانچہ - درخت، ان کی اقسام۔ 31. الگورتھم - چھانٹنے کی اقسام۔ جاوا کے علاوہ، وہ پوچھ سکتے ہیں: 1. (ضرورت ہے!) گٹ - اس کی ضرورت کیوں ہے، آپریشنز ضم، ریبیس، چیری پک، پش، پل، کمٹ، لاگ، چیک آؤٹ، برانچ، ری سیٹ، ریورٹ، ریفریش۔ 2.SQL - استفسار لکھنے کی صلاحیت: دو ٹیبلز کو ایک میں جوڑنا (اندرونی جوائن، بائیں جوائن)۔ 3. ڈیٹا بیس - 3 عام شکلیں، اشاریہ جات (ان کی ضرورت کیوں ہے، اقسام)، بنیادی کلید، غیر ملکی کلید ایک عام ریموٹ انٹرویو کیسے جاتا ہے: hr زوم (Skype، Google Meeting) کے لیے ایک لنک بھیجتا ہے۔ ایک خاص وقت تک آپ جڑ جاتے ہیں اور وہاں 1 سے 3 لوگ ہوتے ہیں (تکنیکی ماہر، باس، ایچ آر)۔ خاص طور پر ضدی معاملات میں، 8 افراد تک۔ پہلے آپ اپنے بارے میں بتائیں، پھر تکنیکی حصہ، پھر خالی جگہ اور الوداع کے بارے میں ایک کہانی (وہ کہتے ہیں کہ وہ آپ سے کب رابطہ کریں گے یا اگلے اقدامات کیا ہوں گے)۔ الوداع کے دوران، آپ علم پر رائے طلب کر سکتے ہیں۔ میں نے پوچھا: "کیا آپ مجھے بتا سکتے ہیں، میرے جوابات کے دوران، آپ کے کانوں میں کہاں درد ہوا؟" بہت سے لوگ جواب دیتے ہیں، لیکن مسترد ہونے کے لیے تیار رہیں۔ انٹرویو کے دوران وہ جائزہ لیتے ہیں: 1. آپ کے خیالات اور روسی زبان کے علم کے اظہار کی صلاحیت (میں ایک ایسا کیس جانتا ہوں جہاں روسی زبان کے ناقص علم کی وجہ سے امیدوار کو مسترد کر دیا گیا تھا)۔ 2. پچھلا تجربہ (وہ احتیاط سے پوچھ سکتے ہیں کہ آپ نے اپنی آخری ملازمت میں کیا کیا)۔ 3. جب آپ پر دباؤ ڈالا جاتا ہے تو مناسب ردعمل (ایک انٹرویو تھا جب لوگوں نے بے عزتی سے بات کرنا شروع کی تھی: میرے جوابات کو نظر انداز کرنا، اپنی پوزیشن قائم کرنے کی کوشش کرنا، وغیرہ۔ میں نے انٹرویو شروع ہونے کے 15 منٹ بعد ختم کیا، اور وہ: یہ ایک دباؤ والا انٹرویو تھا!) 4. آپ کے علم کی سطح۔ میں یہاں مزید تفصیل میں جاؤں گا۔ کسی موضوع کی تعریفیں جاننا آپ سے توقعات کا صرف 10% ہے۔ یہ سمجھنا ضروری ہے کہ یہ کیسے کام کرتا ہے (کم از کم اوپر کی سطح پر)۔ یہ بتانے کی خواہش کہ ترقی کے کس موڑ پر آپ یہ یا وہ حل منتخب کریں گے۔ یہ آپ کی تعریف کی درستگی سے کہیں زیادہ اہم ہے۔ میں دو مثالوں کا استعمال کرتے ہوئے اس مقالے کا تجزیہ کروں گا۔ پہلی مثال: ایک انٹرویو کے دوران مجھ سے HashMap کے بارے میں پوچھا گیا، اور میں نے تعریف دی: "یہ ایک ڈیٹا ڈھانچہ ہے جو کلید اور قدر کے بنڈلز کو اسٹور کرتا ہے۔" پھر انٹرویو لینے والے نے پوچھا: TreeMap سے کیا فرق ہے؟ جواب: فرق یہ ہے کہ HashMap کلید کو ہیش کرتا ہے، اور ہیشنگ کی وجہ سے رسائی تیز ہوتی ہے۔ انٹرویو لینے والے نے فوری طور پر ہمیں HashMap کی اندرونی ساخت بتانے کو کہا، اور ساتھ ہی hashCode اور equals کے بارے میں بھی پوچھا۔ اور یہ اس وقت تک گہرائی میں جائے گا جب تک کہ آپ جواب سے مطمئن نہیں ہو جاتے یا آپ رک جاتے ہیں۔ میں نے 2 ماہ کے انٹرویوز اور ہیکسلیٹ پر ڈیٹا اسٹرکچر کے کورس کے بعد ہی HashMap کے بارے میں صحیح جواب دینا سیکھا۔ دوسری مثال: ٹھوس تصور۔ وہ مجھ سے ایک تعریف بتانے کو کہتے ہیں جو میں نے حفظ کر لی ہے۔ لیکن جیسے ہی یہ حقیقی زندگی کی مثالوں پر آیا، مسائل شروع ہوگئے. Внимание!اگر آپ نہیں جانتے ہیں، تو اسے ایجاد نہ کریں، لیکن یہ کہیں: میں اس موضوع کو نہیں جانتا، لیکن میں فرض کر سکتا ہوں کہ یہ اس طرح کام کرتا ہے۔ بہت سے تکنیکی ماہرین مشتعل ہوتے ہیں جب کوئی شخص بدعت کی بات کرتا ہے گویا وہ موضوع کو سمجھتا ہے۔ 5. ملازمت کی بحث کے دوران آپ کا جوش و جذبہ۔ آپ سے توقع کی جاتی ہے کہ آپ دلچسپی لیں گے اور خالی آسامی کے بارے میں سوالات پوچھیں گے (صرف بنا ہوا نہیں)۔ 6. بعض اوقات مزاح (صرف موضوع پر) اور مشترکہ دلچسپیاں آپ کو بات چیت کرنے میں مدد کرتی ہیں۔ اپنے مشاغل کے بارے میں بلا جھجھک بات کریں؛ شاید انٹرویو لینے والے کو ڈوٹا/فٹ بال/فینتاسی بھی پسند ہو۔ اور یہ آپ کے لیے بطور امیدوار ایک پلس ہے۔ میں ایسے معاملات کو جانتا ہوں جب دلچسپی رکھنے والی کمیونٹی نے انٹرویو لینے والے کی ناقص تکنیکی تربیت پر آنکھیں بند کر لیں (آپ ایک عام آدمی ہیں، ہم آپ کو تربیت دیں گے)۔ <h3>باب 9۔ نوکری حاصل کرنا، آگ کا بپتسمہ</h3>انٹرویو اپریل کے آخر سے جولائی کے وسط تک ہوئے۔ پہلے انٹرویو شرمناک تھے، لیکن رفتہ رفتہ صورت حال قابل قبول سطح تک بہتر ہوتی گئی۔ عام سوالات اور آراء کا مطالعہ کرتے ہوئے خود کو محسوس کیا۔ پہلے 25 انٹرویوز ناکام رہے۔ اس کے بعد مایوسی کے لمحات شروع ہوئے۔ احساسات: اگر وہ مجھے اس تنخواہ پر ملازمت نہیں دیں گے تو کیا ہوگا؟ اچانک چیزیں کھلنے لگیں: ایک ہفتے کے اندر تین کمپنیوں نے تجاویز پیش کیں۔ میں نے ایک کمپنی کا انتخاب کیا جس کی تفصیلات میں جانتا تھا، اس کے علاوہ اچھی تنخواہ اور دور سے کام کرنے کا موقع تھا۔ میرے انٹرویو کے دوران، مجھ سے جاوا کور اور اسپرنگ کے بارے میں تقریباً 30 سوالات پوچھے گئے، جن میں سے 97% میں نے صحیح جواب دیا۔ اس کے بعد اعلیٰ حکام سے رابطہ ہوا اور 1.5 ہفتوں کے بعد مجھے ان کے ساتھ ملازمت مل گئی۔ سب سے پہلے، جب آپ کسی بھی کام پر آتے ہیں، تو آپ تمام ضروری سسٹمز تک رسائی حاصل کرنا شروع کر دیتے ہیں اور اپنی ضرورت کے ٹولز انسٹال کرتے ہیں۔ اس میں ڈیڑھ ہفتہ لگا، اور مجھے پہلا کام دیا گیا: کلاس روم میں جامد متن کو تبدیل کرنا۔ جب میں نے پروجیکٹ کھولا تو میں بیمار محسوس ہوا: ایک پروجیکٹ کے اندر بہت سے ماڈیولز، کئی کلاسز، ٹیسٹ وغیرہ تھے۔ اس وقت میں کھو گیا تھا، لیکن ایک دوسرے ڈویلپر نے میری مدد کی اور مجھے رفتار تک پہنچایا۔ بگ کو 10 منٹ میں ٹھیک کیا گیا، گٹ میں شائع ہوا، ایک پل کی درخواست کی گئی (دو شاخوں کو ضم کرنے کی درخواست جہاں دوسرے ڈویلپرز آپ کا کوڈ چیک کرتے ہیں)، اور پھر مین برانچ میں ضم ہو گیا۔ یہ سب کچھ اتنا مشکل نہیں ہے کہ باہر کر دیا. پہلے مکمل کام تک... اگلے دو ہفتوں کے لیے کاموں کی منصوبہ بندی کے وقت، انھوں نے مجھ سے کہا: آپ دوسرے سسٹم کے ساتھ انضمام کریں گے، جو اوپن شفٹ پر واقع ہے۔ یہ وہ جگہ ہے جہاں چیزیں واقعی خوفناک ہوگئیں: OpenShift ٹیکنالوجیز کا ایک مکمل کلسٹر ہے: Docker، Kubernetes، Linux، وغیرہ۔ ٹھنڈا پسینہ میری پیٹھ پر بہہ رہا تھا: ٹھیک ہے، میں نے جاوسٹ کے طور پر کام کیا۔ میٹنگ کے فوراً بعد، میں نے ڈویلپر کو بلایا، جس نے مجھے یقین دلایا: اس سسٹم کے لیے اڈاپٹر لکھے جا چکے تھے، اور یہ میرے پروجیکٹ میں کچھ کلاسز درآمد کرنے کے لیے کافی تھا، جس کے بعد میں انضمام کو محفوظ طریقے سے استعمال کر سکتا تھا۔ یہ ایک بار پھر مزہ آ گیا، جب تک کہ ڈویلپر نے ایک عام انضمام نہیں دکھایا: میں نے اسی طرح کے انضمام کے لیے 20 سے زیادہ کلاسز بنائے ہیں۔ مزید یہ کہ، @Value، @Builder، @NoArgsConstructor، @Getter، پہلے غیر دیکھے گئے تشریحات کو دیکھا گیا تھا۔ @Sl4f - یہ Lombook پروجیکٹ نکلا (انٹرنیٹ پر پڑھیں)۔ جب ڈویلپر نے مجھے بتایا کہ یہ کیسے کرنا ہے، میں نے تمام کلاسوں کے کنکشن لکھنے کی کوشش کی، اور میرے سر میں کچھ بھی نہیں پھنسا۔ سب سے زیادہ شرمناک لمحہ Intellij Idea کے بارے میں معلومات کی کمی تھی: کسی پروجیکٹ کو عالمی سطح پر کیسے تلاش کیا جائے، کوڈ ری فیکٹرنگ وغیرہ۔ کام سنبھالنے کے بعد، میں سمجھ گیا کہ OOP کی ضرورت کیوں ہے: اتنی بڑی مقدار میں کوڈ کے لیے، اسے کلاسوں میں تقسیم کرنا ضروری ہے۔ کلاس سے باہر استعمال نہ ہونے والے طریقوں کو پرائیویٹ قرار دیا جانا چاہیے تاکہ غلطی سے انہیں کسی دوسری کلاس میں نہ چلایا جائے، وغیرہ۔ اپنے انضمام کو دوسرے انضمام کے ساتھ تشبیہ کے ساتھ لکھنے کے بعد، میں نے چیک اسٹائل کے وجود کے بارے میں سیکھا - ایک خاص پلگ ان جو اسٹائل کو چیک کرتا ہے۔ آپ کے کوڈ کا، اور آپ اپنے پروجیکٹ کو اس وقت تک مرتب نہیں کر سکیں گے جب تک آپ غلطیوں کو ٹھیک نہیں کر لیتے ہیں (مثال کے طور پر، اضافی جگہیں، بڑے حروف کے ساتھ متغیر نام، متغیر نام جو بہت چھوٹے ہیں)۔ چیک اسٹائل کو شکست دینے کے بعد، میں نے اپنا کوڈ جائزہ لینے کے لیے سینئر ڈویلپرز کو بھیجا اور ایک ہفتے کے اندر اپنی غلطیوں کو درست کیا۔ عام طور پر، میں بہت خوش قسمت تھا کہ میری ٹیم میں میرے دوسرے ڈویلپر کے ساتھ اچھے تعلقات تھے، جس نے بہت سی چیزوں کی وضاحت کی۔ ڈیوائس کے ایک ماہ بعد، میرا پہلا انٹیگریشن انٹیگریشن فنکشنل اسٹینڈ پر شروع کیا گیا تھا (تمام ایپلیکیشنز کا کام ایک ساتھ ٹیسٹ کیا جاتا ہے)، اور وہاں سب کچھ کام کرتا تھا! فتح! اگلا کام ایک کلاس بنانا تھا جو json میں کلید کے ذریعہ ڈیٹا کو چھپانے کی اجازت دے گا۔ مثال کے طور پر: وہاں json {text:"JavaRush"} -> پروسیسنگ -> {text:"****Rush"} ہے۔ یہاں دو پیچیدگیاں ہیں: گھوںسلا ہو سکتا ہے {text:{mytext:"JavaRush"}}، اور جو چیز زیادہ ناخوشگوار ہے وہ صف کے اندر گھونسلا ہے: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (یقینا آپ کو تمام text.mytext کو چھپانے کی ضرورت ہے)۔ اس مسئلے کو حل کرنا کافی مشکل نکلا، لیکن میں نے کر دکھایا! یہاں دوسرا ڈویلپر کہتا ہے: اس ترقی کو ٹیسٹ کے ساتھ کور کریں۔ آنکھوں میں اضطراب تھا۔ اس طرح میں نے لڑائی میں JUnit کی لائبریری کو جانا۔ یونٹ ٹیسٹنگ کا جوہر: آپ کے پاس ان پٹ ڈیٹا ہے، اسے ایک طریقہ میں منتقل کریں، اور موصول ہونے والے ڈیٹا کا درست نتیجہ کے ساتھ موازنہ کریں (صحیح نتیجہ کے ساتھ متغیر بنائیں)۔ میں نے اپنی لائبریری کے لیے 11 کیسز لکھے، جن میں میں نے چیک کیا کہ ایپلیکیشن NullPointException کے ساتھ کریش نہیں ہوئی اور یہ کسی بھی قسم کے گھوںسلا کے ساتھ ڈیٹا کو صحیح طریقے سے چھپاتا ہے۔ اس کام کو مکمل کرنے کے بعد، مجھے ایک نیا انضمام دیا گیا، جس کی خصوصیت یہ تھی: مجھے ایک بیرونی لائبریری سے اسپرنگ بین برآمد کرنا تھا۔ اس وقت، میں Stack OverFlow ویب سائٹ کا باقاعدہ صارف بن گیا۔ ایک بار یہاں تک کہ ایک سرکاری سپرنگ ڈویلپر نے جواب دیا۔ اس انضمام کو نافذ کرنے کے بعد، میری آزمائشی مدت ختم ہوگئی۔ باس نے مجھے پروبیشنری مدت گزرنے پر مبارکباد دی، اور میں نے یہ مضمون لکھنا شروع کیا۔ مجموعی طور پر، اس مضمون کو لکھنے میں 8 گھنٹے لگے) آپ کی توجہ کا شکریہ، مجھے امید ہے کہ مضمون مفید تھا۔ میں نے تمام کلاسوں کے کنکشن لکھنے کی کوشش کی، اور میرے سر میں کچھ بھی نہیں پھنسا۔ سب سے زیادہ شرمناک لمحہ Intellij Idea کے بارے میں معلومات کی کمی تھی: کسی پروجیکٹ کو عالمی سطح پر کیسے تلاش کیا جائے، کوڈ ری فیکٹرنگ وغیرہ۔ کام سنبھالنے کے بعد، میں سمجھ گیا کہ OOP کی ضرورت کیوں ہے: اتنی بڑی مقدار میں کوڈ کے لیے، اسے کلاسوں میں تقسیم کرنا ضروری ہے۔ کلاس سے باہر استعمال نہ ہونے والے طریقوں کو پرائیویٹ قرار دیا جانا چاہیے تاکہ غلطی سے انہیں کسی دوسری کلاس میں نہ چلایا جائے، وغیرہ۔ اپنے انضمام کو دوسرے انضمام کے ساتھ تشبیہ کے ساتھ لکھنے کے بعد، میں نے چیک اسٹائل کے وجود کے بارے میں سیکھا - ایک خاص پلگ ان جو اسٹائل کو چیک کرتا ہے۔ آپ کے کوڈ کا، اور آپ اپنے پروجیکٹ کو اس وقت تک مرتب نہیں کر سکیں گے جب تک آپ غلطیوں کو ٹھیک نہیں کر لیتے ہیں (مثال کے طور پر، اضافی جگہیں، بڑے حروف کے ساتھ متغیر نام، متغیر نام جو بہت چھوٹے ہیں)۔ چیک اسٹائل کو شکست دینے کے بعد، میں نے اپنا کوڈ جائزہ لینے کے لیے سینئر ڈویلپرز کو بھیجا اور ایک ہفتے کے اندر اپنی غلطیوں کو درست کیا۔ عام طور پر، میں بہت خوش قسمت تھا کہ میری ٹیم میں میرے دوسرے ڈویلپر کے ساتھ اچھے تعلقات تھے، جس نے بہت سی چیزوں کی وضاحت کی۔ ڈیوائس کے ایک ماہ بعد، میرا پہلا انٹیگریشن انٹیگریشن فنکشنل اسٹینڈ پر شروع کیا گیا تھا (تمام ایپلیکیشنز کا کام ایک ساتھ ٹیسٹ کیا جاتا ہے)، اور وہاں سب کچھ کام کرتا تھا! فتح! اگلا کام ایک کلاس بنانا تھا جو json میں کلید کے ذریعہ ڈیٹا کو چھپانے کی اجازت دے گا۔ مثال کے طور پر: وہاں json {text:"JavaRush"} -> پروسیسنگ -> {text:"****Rush"} ہے۔ یہاں دو پیچیدگیاں ہیں: گھوںسلا ہو سکتا ہے {text:{mytext:"JavaRush"}}، اور جو چیز زیادہ ناخوشگوار ہے وہ صف کے اندر گھونسلا ہے: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (یقینا آپ کو تمام text.mytext کو چھپانے کی ضرورت ہے)۔ اس مسئلے کو حل کرنا کافی مشکل نکلا، لیکن میں نے کر دکھایا! یہاں دوسرا ڈویلپر کہتا ہے: اس ترقی کو ٹیسٹ کے ساتھ کور کریں۔ آنکھوں میں اضطراب تھا۔ اس طرح میں نے لڑائی میں JUnit کی لائبریری کو جانا۔ یونٹ ٹیسٹنگ کا جوہر: آپ کے پاس ان پٹ ڈیٹا ہے، اسے ایک طریقہ میں منتقل کریں، اور موصول ہونے والے ڈیٹا کا درست نتیجہ کے ساتھ موازنہ کریں (صحیح نتیجہ کے ساتھ متغیر بنائیں)۔ میں نے اپنی لائبریری کے لیے 11 کیسز لکھے، جن میں میں نے چیک کیا کہ ایپلیکیشن NullPointException کے ساتھ کریش نہیں ہوئی اور یہ کسی بھی قسم کے گھوںسلا کے ساتھ ڈیٹا کو صحیح طریقے سے چھپاتا ہے۔ اس کام کو مکمل کرنے کے بعد، مجھے ایک نیا انضمام دیا گیا، جس کی خصوصیت یہ تھی: مجھے ایک بیرونی لائبریری سے اسپرنگ بین برآمد کرنا تھا۔ اس وقت، میں Stack OverFlow ویب سائٹ کا باقاعدہ صارف بن گیا۔ ایک بار یہاں تک کہ ایک سرکاری سپرنگ ڈویلپر نے جواب دیا۔ اس انضمام کو نافذ کرنے کے بعد، میری آزمائشی مدت ختم ہوگئی۔ باس نے مجھے پروبیشنری مدت گزرنے پر مبارکباد دی، اور میں نے یہ مضمون لکھنا شروع کیا۔ مجموعی طور پر، اس مضمون کو لکھنے میں 8 گھنٹے لگے) آپ کی توجہ کا شکریہ، مجھے امید ہے کہ مضمون مفید تھا۔ میں نے تمام کلاسوں کے کنکشن لکھنے کی کوشش کی، اور میرے سر میں کچھ بھی نہیں پھنسا۔ سب سے زیادہ شرمناک لمحہ Intellij Idea کے بارے میں معلومات کی کمی تھی: کسی پروجیکٹ کو عالمی سطح پر کیسے تلاش کیا جائے، کوڈ ری فیکٹرنگ وغیرہ۔ کام سنبھالنے کے بعد، میں سمجھ گیا کہ OOP کی ضرورت کیوں ہے: اتنی بڑی مقدار میں کوڈ کے لیے، اسے کلاسوں میں تقسیم کرنا ضروری ہے۔ کلاس سے باہر استعمال نہ ہونے والے طریقوں کو پرائیویٹ قرار دیا جانا چاہیے تاکہ غلطی سے انہیں کسی دوسری کلاس میں نہ چلایا جائے، وغیرہ۔ اپنے انضمام کو دوسرے انضمام کے ساتھ تشبیہ کے ساتھ لکھنے کے بعد، میں نے چیک اسٹائل کے وجود کے بارے میں سیکھا - ایک خاص پلگ ان جو اسٹائل کو چیک کرتا ہے۔ آپ کے کوڈ کا، اور آپ اپنے پروجیکٹ کو اس وقت تک مرتب نہیں کر سکیں گے جب تک آپ غلطیوں کو ٹھیک نہیں کر لیتے ہیں (مثال کے طور پر، اضافی جگہیں، بڑے حروف کے ساتھ متغیر نام، متغیر نام جو بہت چھوٹے ہیں)۔ چیک اسٹائل کو شکست دینے کے بعد، میں نے اپنا کوڈ جائزہ لینے کے لیے سینئر ڈویلپرز کو بھیجا اور ایک ہفتے کے اندر اپنی غلطیوں کو درست کیا۔ عام طور پر، میں بہت خوش قسمت تھا کہ میری ٹیم میں میرے دوسرے ڈویلپر کے ساتھ اچھے تعلقات تھے، جس نے بہت سی چیزوں کی وضاحت کی۔ ڈیوائس کے ایک ماہ بعد، میرا پہلا انٹیگریشن انٹیگریشن فنکشنل اسٹینڈ پر شروع کیا گیا تھا (تمام ایپلیکیشنز کا کام ایک ساتھ ٹیسٹ کیا جاتا ہے)، اور وہاں سب کچھ کام کرتا تھا! فتح! اگلا کام ایک کلاس بنانا تھا جو json میں کلید کے ذریعہ ڈیٹا کو چھپانے کی اجازت دے گا۔ مثال کے طور پر: وہاں json {text:"JavaRush"} -> پروسیسنگ -> {text:"****Rush"} ہے۔ یہاں دو پیچیدگیاں ہیں: گھوںسلا ہو سکتا ہے {text:{mytext:"JavaRush"}}، اور جو چیز زیادہ ناخوشگوار ہے وہ صف کے اندر گھونسلا ہے: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (یقینا آپ کو تمام text.mytext کو چھپانے کی ضرورت ہے)۔ اس مسئلے کو حل کرنا کافی مشکل نکلا، لیکن میں نے کر دکھایا! یہاں دوسرا ڈویلپر کہتا ہے: اس ترقی کو ٹیسٹ کے ساتھ کور کریں۔ آنکھوں میں اضطراب تھا۔ اس طرح میں نے لڑائی میں JUnit کی لائبریری کو جانا۔ یونٹ ٹیسٹنگ کا جوہر: آپ کے پاس ان پٹ ڈیٹا ہے، اسے ایک طریقہ میں منتقل کریں، اور موصول ہونے والے ڈیٹا کا درست نتیجہ کے ساتھ موازنہ کریں (صحیح نتیجہ کے ساتھ متغیر بنائیں)۔ میں نے اپنی لائبریری کے لیے 11 کیسز لکھے، جن میں میں نے چیک کیا کہ ایپلیکیشن NullPointException کے ساتھ کریش نہیں ہوئی اور یہ کسی بھی قسم کے گھوںسلا کے ساتھ ڈیٹا کو صحیح طریقے سے چھپاتا ہے۔ اس کام کو مکمل کرنے کے بعد، مجھے ایک نیا انضمام دیا گیا، جس کی خصوصیت یہ تھی: مجھے ایک بیرونی لائبریری سے اسپرنگ بین برآمد کرنا تھا۔ اس وقت، میں Stack OverFlow ویب سائٹ کا باقاعدہ صارف بن گیا۔ ایک بار یہاں تک کہ ایک سرکاری سپرنگ ڈویلپر نے جواب دیا۔ اس انضمام کو نافذ کرنے کے بعد، میری آزمائشی مدت ختم ہوگئی۔ باس نے مجھے پروبیشنری مدت گزرنے پر مبارکباد دی، اور میں نے یہ مضمون لکھنا شروع کیا۔ مجموعی طور پر، اس مضمون کو لکھنے میں 8 گھنٹے لگے) آپ کی توجہ کا شکریہ، مجھے امید ہے کہ مضمون مفید تھا۔ کوڈ کی اتنی بڑی مقدار کے لیے، آپ کو اسے کلاسوں میں تقسیم کرنے کی ضرورت ہے۔ کلاس سے باہر استعمال نہ ہونے والے طریقوں کو پرائیویٹ قرار دیا جانا چاہیے تاکہ غلطی سے انہیں کسی دوسری کلاس میں نہ چلایا جائے، وغیرہ۔ اپنے انضمام کو دوسرے انضمام کے ساتھ تشبیہ کے ساتھ لکھنے کے بعد، میں نے چیک اسٹائل کے وجود کے بارے میں سیکھا - ایک خاص پلگ ان جو اسٹائل کو چیک کرتا ہے۔ آپ کے کوڈ کا، اور آپ اپنے پروجیکٹ کو اس وقت تک مرتب نہیں کر سکیں گے جب تک آپ غلطیوں کو ٹھیک نہیں کر لیتے ہیں (مثال کے طور پر، اضافی جگہیں، بڑے حروف کے ساتھ متغیر نام، متغیر نام جو بہت چھوٹے ہیں)۔ چیک اسٹائل کو شکست دینے کے بعد، میں نے اپنا کوڈ جائزہ لینے کے لیے سینئر ڈویلپرز کو بھیجا اور ایک ہفتے کے اندر اپنی غلطیوں کو درست کیا۔ عام طور پر، میں بہت خوش قسمت تھا کہ میری ٹیم میں میرے دوسرے ڈویلپر کے ساتھ اچھے تعلقات تھے، جس نے بہت سی چیزوں کی وضاحت کی۔ ڈیوائس کے ایک ماہ بعد، میرا پہلا انٹیگریشن انٹیگریشن فنکشنل اسٹینڈ پر شروع کیا گیا تھا (تمام ایپلیکیشنز کا کام ایک ساتھ ٹیسٹ کیا جاتا ہے)، اور وہاں سب کچھ کام کرتا تھا! فتح! اگلا کام ایک کلاس بنانا تھا جو json میں کلید کے ذریعہ ڈیٹا کو چھپانے کی اجازت دے گا۔ مثال کے طور پر: وہاں json {text:"JavaRush"} -> پروسیسنگ -> {text:"****Rush"} ہے۔ یہاں دو پیچیدگیاں ہیں: گھوںسلا ہو سکتا ہے {text:{mytext:"JavaRush"}}، اور جو چیز زیادہ ناخوشگوار ہے وہ صف کے اندر گھونسلا ہے: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (یقینا آپ کو تمام text.mytext کو چھپانے کی ضرورت ہے)۔ اس مسئلے کو حل کرنا کافی مشکل نکلا، لیکن میں نے کر دکھایا! یہاں دوسرا ڈویلپر کہتا ہے: اس ترقی کو ٹیسٹ کے ساتھ کور کریں۔ آنکھوں میں اضطراب تھا۔ اس طرح میں نے لڑائی میں JUnit کی لائبریری کو جانا۔ یونٹ ٹیسٹنگ کا جوہر: آپ کے پاس ان پٹ ڈیٹا ہے، اسے ایک طریقہ میں منتقل کریں، اور موصول ہونے والے ڈیٹا کا درست نتیجہ کے ساتھ موازنہ کریں (صحیح نتیجہ کے ساتھ متغیر بنائیں)۔ میں نے اپنی لائبریری کے لیے 11 کیسز لکھے، جن میں میں نے چیک کیا کہ ایپلیکیشن NullPointException کے ساتھ کریش نہیں ہوئی اور یہ کسی بھی قسم کے گھوںسلا کے ساتھ ڈیٹا کو صحیح طریقے سے چھپاتا ہے۔ اس کام کو مکمل کرنے کے بعد، مجھے ایک نیا انضمام دیا گیا، جس کی خصوصیت یہ تھی: مجھے ایک بیرونی لائبریری سے اسپرنگ بین برآمد کرنا تھا۔ اس وقت، میں Stack OverFlow ویب سائٹ کا باقاعدہ صارف بن گیا۔ ایک بار یہاں تک کہ ایک سرکاری سپرنگ ڈویلپر نے جواب دیا۔ اس انضمام کو نافذ کرنے کے بعد، میری آزمائشی مدت ختم ہوگئی۔ باس نے مجھے پروبیشنری مدت گزرنے پر مبارکباد دی، اور میں نے یہ مضمون لکھنا شروع کیا۔ مجموعی طور پر، اس مضمون کو لکھنے میں 8 گھنٹے لگے) آپ کی توجہ کا شکریہ، مجھے امید ہے کہ مضمون مفید تھا۔ کوڈ کی اتنی بڑی مقدار کے لیے، آپ کو اسے کلاسوں میں تقسیم کرنے کی ضرورت ہے۔ کلاس سے باہر استعمال نہ ہونے والے طریقوں کو پرائیویٹ قرار دیا جانا چاہیے تاکہ غلطی سے انہیں کسی دوسری کلاس میں نہ چلایا جائے، وغیرہ۔ اپنے انضمام کو دوسرے انضمام کے ساتھ تشبیہ کے ساتھ لکھنے کے بعد، میں نے چیک اسٹائل کے وجود کے بارے میں سیکھا - ایک خاص پلگ ان جو اسٹائل کو چیک کرتا ہے۔ آپ کے کوڈ کا، اور آپ اپنے پروجیکٹ کو اس وقت تک مرتب نہیں کر سکیں گے جب تک آپ غلطیوں کو ٹھیک نہیں کر لیتے ہیں (مثال کے طور پر، اضافی جگہیں، بڑے حروف کے ساتھ متغیر نام، متغیر نام جو بہت چھوٹے ہیں)۔ چیک اسٹائل کو شکست دینے کے بعد، میں نے اپنا کوڈ جائزہ لینے کے لیے سینئر ڈویلپرز کو بھیجا اور ایک ہفتے کے اندر اپنی غلطیوں کو درست کیا۔ عام طور پر، میں بہت خوش قسمت تھا کہ میری ٹیم میں میرے دوسرے ڈویلپر کے ساتھ اچھے تعلقات تھے، جس نے بہت سی چیزوں کی وضاحت کی۔ ڈیوائس کے ایک ماہ بعد، میرا پہلا انٹیگریشن انٹیگریشن فنکشنل اسٹینڈ پر شروع کیا گیا تھا (تمام ایپلیکیشنز کا کام ایک ساتھ ٹیسٹ کیا جاتا ہے)، اور وہاں سب کچھ کام کرتا تھا! فتح! اگلا کام ایک کلاس بنانا تھا جو json میں کلید کے ذریعہ ڈیٹا کو چھپانے کی اجازت دے گا۔ مثال کے طور پر: وہاں json {text:"JavaRush"} -> پروسیسنگ -> {text:"****Rush"} ہے۔ یہاں دو پیچیدگیاں ہیں: گھوںسلا ہو سکتا ہے {text:{mytext:"JavaRush"}}، اور جو چیز زیادہ ناخوشگوار ہے وہ صف کے اندر گھونسلا ہے: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (یقینا آپ کو تمام text.mytext کو چھپانے کی ضرورت ہے)۔ اس مسئلے کو حل کرنا کافی مشکل نکلا، لیکن میں نے کر دکھایا! یہاں دوسرا ڈویلپر کہتا ہے: اس ترقی کو ٹیسٹ کے ساتھ کور کریں۔ آنکھوں میں اضطراب تھا۔ اس طرح میں نے لڑائی میں JUnit کی لائبریری کو جانا۔ یونٹ ٹیسٹنگ کا جوہر: آپ کے پاس ان پٹ ڈیٹا ہے، اسے ایک طریقہ میں منتقل کریں، اور موصول ہونے والے ڈیٹا کا درست نتیجہ کے ساتھ موازنہ کریں (صحیح نتیجہ کے ساتھ متغیر بنائیں)۔ میں نے اپنی لائبریری کے لیے 11 کیسز لکھے، جن میں میں نے چیک کیا کہ ایپلیکیشن NullPointException کے ساتھ کریش نہیں ہوئی اور یہ کسی بھی قسم کے گھوںسلا کے ساتھ ڈیٹا کو صحیح طریقے سے چھپاتا ہے۔ اس کام کو مکمل کرنے کے بعد، مجھے ایک نیا انضمام دیا گیا، جس کی خصوصیت یہ تھی: مجھے ایک بیرونی لائبریری سے اسپرنگ بین برآمد کرنا تھا۔ اس وقت، میں Stack OverFlow ویب سائٹ کا باقاعدہ صارف بن گیا۔ ایک بار یہاں تک کہ ایک سرکاری سپرنگ ڈویلپر نے جواب دیا۔ اس انضمام کو نافذ کرنے کے بعد، میری آزمائشی مدت ختم ہوگئی۔ باس نے مجھے پروبیشنری مدت گزرنے پر مبارکباد دی، اور میں نے یہ مضمون لکھنا شروع کیا۔ مجموعی طور پر، اس مضمون کو لکھنے میں 8 گھنٹے لگے) آپ کی توجہ کا شکریہ، مجھے امید ہے کہ مضمون مفید تھا۔ متغیر کے نام بہت چھوٹے ہیں)۔ چیک اسٹائل کو شکست دینے کے بعد، میں نے اپنا کوڈ جائزہ لینے کے لیے سینئر ڈویلپرز کو بھیجا اور ایک ہفتے کے اندر اپنی غلطیوں کو درست کیا۔ عام طور پر، میں بہت خوش قسمت تھا کہ میری ٹیم میں میرے دوسرے ڈویلپر کے ساتھ اچھے تعلقات تھے، جس نے بہت سی چیزوں کی وضاحت کی۔ ڈیوائس کے ایک ماہ بعد، میرا پہلا انٹیگریشن انٹیگریشن فنکشنل اسٹینڈ پر شروع کیا گیا تھا (تمام ایپلیکیشنز کا کام ایک ساتھ ٹیسٹ کیا جاتا ہے)، اور وہاں سب کچھ کام کرتا تھا! فتح! اگلا کام ایک کلاس بنانا تھا جو json میں کلید کے ذریعہ ڈیٹا کو چھپانے کی اجازت دے گا۔ مثال کے طور پر: وہاں json {text:"JavaRush"} -> پروسیسنگ -> {text:"****Rush"} ہے۔ یہاں دو پیچیدگیاں ہیں: گھوںسلا ہو سکتا ہے {text:{mytext:"JavaRush"}}، اور جو چیز زیادہ ناخوشگوار ہے وہ صف کے اندر گھونسلا ہے: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (یقینا آپ کو تمام text.mytext کو چھپانے کی ضرورت ہے)۔ اس مسئلے کو حل کرنا کافی مشکل نکلا، لیکن میں نے کر دکھایا! یہاں دوسرا ڈویلپر کہتا ہے: اس ترقی کو ٹیسٹ کے ساتھ کور کریں۔ آنکھوں میں اضطراب تھا۔ اس طرح میں نے لڑائی میں JUnit کی لائبریری کو جانا۔ یونٹ ٹیسٹنگ کا جوہر: آپ کے پاس ان پٹ ڈیٹا ہے، اسے ایک طریقہ میں منتقل کریں، اور موصول ہونے والے ڈیٹا کا درست نتیجہ کے ساتھ موازنہ کریں (صحیح نتیجہ کے ساتھ متغیر بنائیں)۔ میں نے اپنی لائبریری کے لیے 11 کیسز لکھے، جن میں میں نے چیک کیا کہ ایپلیکیشن NullPointException کے ساتھ کریش نہیں ہوئی اور یہ کسی بھی قسم کے گھوںسلا کے ساتھ ڈیٹا کو صحیح طریقے سے چھپاتا ہے۔ اس کام کو مکمل کرنے کے بعد، مجھے ایک نیا انضمام دیا گیا، جس کی خصوصیت یہ تھی: مجھے ایک بیرونی لائبریری سے اسپرنگ بین برآمد کرنا تھا۔ اس وقت، میں Stack OverFlow ویب سائٹ کا باقاعدہ صارف بن گیا۔ ایک بار یہاں تک کہ ایک سرکاری سپرنگ ڈویلپر نے جواب دیا۔ اس انضمام کو نافذ کرنے کے بعد، میری آزمائشی مدت ختم ہوگئی۔ باس نے مجھے پروبیشنری مدت گزرنے پر مبارکباد دی، اور میں نے یہ مضمون لکھنا شروع کیا۔ مجموعی طور پر، اس مضمون کو لکھنے میں 8 گھنٹے لگے) آپ کی توجہ کا شکریہ، مجھے امید ہے کہ مضمون مفید تھا۔ متغیر کے نام بہت چھوٹے ہیں)۔ چیک اسٹائل کو شکست دینے کے بعد، میں نے اپنا کوڈ جائزہ لینے کے لیے سینئر ڈویلپرز کو بھیجا اور ایک ہفتے کے اندر اپنی غلطیوں کو درست کیا۔ عام طور پر، میں بہت خوش قسمت تھا کہ میری ٹیم میں میرے دوسرے ڈویلپر کے ساتھ اچھے تعلقات تھے، جس نے بہت سی چیزوں کی وضاحت کی۔ ڈیوائس کے ایک ماہ بعد، میرا پہلا انٹیگریشن انٹیگریشن فنکشنل اسٹینڈ پر شروع کیا گیا تھا (تمام ایپلیکیشنز کا کام ایک ساتھ ٹیسٹ کیا جاتا ہے)، اور وہاں سب کچھ کام کرتا تھا! فتح! اگلا کام ایک کلاس بنانا تھا جو json میں کلید کے ذریعہ ڈیٹا کو چھپانے کی اجازت دے گا۔ مثال کے طور پر: وہاں json {text:"JavaRush"} -> پروسیسنگ -> {text:"****Rush"} ہے۔ یہاں دو پیچیدگیاں ہیں: گھوںسلا ہو سکتا ہے {text:{mytext:"JavaRush"}}، اور جو چیز زیادہ ناخوشگوار ہے وہ صف کے اندر گھونسلا ہے: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (یقینا آپ کو تمام text.mytext کو چھپانے کی ضرورت ہے)۔ اس مسئلے کو حل کرنا کافی مشکل نکلا، لیکن میں نے کر دکھایا! یہاں دوسرا ڈویلپر کہتا ہے: اس ترقی کو ٹیسٹ کے ساتھ کور کریں۔ آنکھوں میں اضطراب تھا۔ اس طرح میں نے لڑائی میں JUnit کی لائبریری کو جانا۔ یونٹ ٹیسٹنگ کا جوہر: آپ کے پاس ان پٹ ڈیٹا ہے، اسے ایک طریقہ میں منتقل کریں، اور موصول ہونے والے ڈیٹا کا درست نتیجہ کے ساتھ موازنہ کریں (صحیح نتیجہ کے ساتھ متغیر بنائیں)۔ میں نے اپنی لائبریری کے لیے 11 کیسز لکھے، جن میں میں نے چیک کیا کہ ایپلیکیشن NullPointException کے ساتھ کریش نہیں ہوئی اور یہ کسی بھی قسم کے گھوںسلا کے ساتھ ڈیٹا کو صحیح طریقے سے چھپاتا ہے۔ اس کام کو مکمل کرنے کے بعد، مجھے ایک نیا انضمام دیا گیا، جس کی خصوصیت یہ تھی: مجھے ایک بیرونی لائبریری سے اسپرنگ بین برآمد کرنا تھا۔ اس وقت، میں Stack OverFlow ویب سائٹ کا باقاعدہ صارف بن گیا۔ ایک بار یہاں تک کہ ایک سرکاری سپرنگ ڈویلپر نے جواب دیا۔ اس انضمام کو نافذ کرنے کے بعد، میری آزمائشی مدت ختم ہوگئی۔ باس نے مجھے پروبیشنری مدت گزرنے پر مبارکباد دی، اور میں نے یہ مضمون لکھنا شروع کیا۔ مجموعی طور پر، اس مضمون کو لکھنے میں 8 گھنٹے لگے) آپ کی توجہ کا شکریہ، مجھے امید ہے کہ مضمون مفید تھا۔ اس مسئلے کو حل کرنا کافی مشکل نکلا، لیکن میں نے کر دکھایا! یہاں دوسرا ڈویلپر کہتا ہے: اس ترقی کو ٹیسٹ کے ساتھ کور کریں۔ آنکھوں میں اضطراب تھا۔ اس طرح میں نے لڑائی میں JUnit کی لائبریری کو جانا۔ یونٹ ٹیسٹنگ کا جوہر: آپ کے پاس ان پٹ ڈیٹا ہے، اسے ایک طریقہ میں منتقل کریں، اور موصول ہونے والے ڈیٹا کا درست نتیجہ کے ساتھ موازنہ کریں (صحیح نتیجہ کے ساتھ متغیر بنائیں)۔ میں نے اپنی لائبریری کے لیے 11 کیسز لکھے، جن میں میں نے چیک کیا کہ ایپلیکیشن NullPointException کے ساتھ کریش نہیں ہوئی اور یہ کسی بھی قسم کے گھوںسلا کے ساتھ ڈیٹا کو صحیح طریقے سے چھپاتا ہے۔ اس کام کو مکمل کرنے کے بعد، مجھے ایک نیا انضمام دیا گیا، جس کی خصوصیت یہ تھی: مجھے ایک بیرونی لائبریری سے اسپرنگ بین برآمد کرنا تھا۔ اس وقت، میں Stack OverFlow ویب سائٹ کا باقاعدہ صارف بن گیا۔ ایک بار یہاں تک کہ ایک سرکاری سپرنگ ڈویلپر نے جواب دیا۔ اس انضمام کو نافذ کرنے کے بعد، میری آزمائشی مدت ختم ہوگئی۔ باس نے مجھے پروبیشنری مدت گزرنے پر مبارکباد دی، اور میں نے یہ مضمون لکھنا شروع کیا۔ مجموعی طور پر، اس مضمون کو لکھنے میں 8 گھنٹے لگے) آپ کی توجہ کا شکریہ، مجھے امید ہے کہ مضمون مفید تھا۔ اس مسئلے کو حل کرنا کافی مشکل نکلا، لیکن میں نے کر دکھایا! یہاں دوسرا ڈویلپر کہتا ہے: اس ترقی کو ٹیسٹ کے ساتھ کور کریں۔ آنکھوں میں اضطراب تھا۔ اس طرح میں نے لڑائی میں JUnit کی لائبریری کو جانا۔ یونٹ ٹیسٹنگ کا جوہر: آپ کے پاس ان پٹ ڈیٹا ہے، اسے ایک طریقہ میں منتقل کریں، اور موصول ہونے والے ڈیٹا کا درست نتیجہ کے ساتھ موازنہ کریں (صحیح نتیجہ کے ساتھ متغیر بنائیں)۔ میں نے اپنی لائبریری کے لیے 11 کیسز لکھے، جن میں میں نے چیک کیا کہ ایپلیکیشن NullPointException کے ساتھ کریش نہیں ہوئی اور یہ کسی بھی قسم کے گھوںسلا کے ساتھ ڈیٹا کو صحیح طریقے سے چھپاتا ہے۔ اس کام کو مکمل کرنے کے بعد، مجھے ایک نیا انضمام دیا گیا، جس کی خصوصیت یہ تھی: مجھے ایک بیرونی لائبریری سے اسپرنگ بین برآمد کرنا تھا۔ اس وقت، میں Stack OverFlow ویب سائٹ کا باقاعدہ صارف بن گیا۔ ایک بار یہاں تک کہ ایک سرکاری سپرنگ ڈویلپر نے جواب دیا۔ اس انضمام کو نافذ کرنے کے بعد، میری آزمائشی مدت ختم ہوگئی۔ باس نے مجھے پروبیشنری مدت گزرنے پر مبارکباد دی، اور میں نے یہ مضمون لکھنا شروع کیا۔ مجموعی طور پر، اس مضمون کو لکھنے میں 8 گھنٹے لگے) آپ کی توجہ کا شکریہ، مجھے امید ہے کہ مضمون مفید تھا۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION