JavaRush /جاوا بلاگ /Random-UR /آئیے شروع سے شروع کریں یا 'ہیلو، جاوا ورلڈ!'
articles
سطح

آئیے شروع سے شروع کریں یا 'ہیلو، جاوا ورلڈ!'

گروپ میں شائع ہوا۔
میں اس مضمون کو ایک غیر معمولی، پہلی نظر میں، اختلاف کے ساتھ شروع کرنا چاہتا ہوں۔ بعد میں یہ واضح ہو جائے گا کہ آخر کیوں؟
آئیے شروع سے شروع کریں یا ہیلو، جاوا ورلڈ!  - 1
تو آئیے کسی کا تصور کریں۔ یہ کوئی الپائن اسکیئنگ میں مہارت حاصل کرنا چاہتا ہے۔ اور اس کے لیے وہ درج ذیل اقدامات کرتا ہے۔
  • انسٹرکٹر، درسی کتابیں، دستورالعمل وغیرہ۔ - یہ سب شیطان کی طرف سے ہے۔ آپ اسکیئنگ خود سیکھ سکتے ہیں۔ اس کے علاوہ، اسکول میں اس نے کراس کنٹری اسکی برداشت کے ساتھ اچھی طرح سیکھی۔ اس کے مطابق، زیادہ علم والے لوگوں کے تمام مشوروں کو نظر انداز کر دیا جاتا ہے۔

  • بہترین آلات کا انتخاب کیا جاتا ہے۔ ماہر کی سطح سے نیچے نہیں۔ سخت جوتے جو آپ کے پیروں کو تکلیف دیتے ہیں۔ سخت اسکی جس کو موڑنے کے لیے بہت زیادہ کوشش کی ضرورت ہوتی ہے، کسی کی جسمانی فٹنس کی سطح سے کہیں زیادہ۔ ٹھیک ہے، وغیرہ

  • ٹیسٹ ٹریک ہے... ٹھیک ہے، آئیے کہتے ہیں، وہ ٹریک جو وشال سلیلم میں ورلڈ کپ مرحلے کی میزبانی کرتا ہے۔ یہ مطالعہ کے لیے بالکل صحیح ہے۔
  • اسی جذبے کے ساتھ جاری رکھیں۔
تو یہاں سوال ہے۔ آپ اس کو کیا کہیں گے؟ ذاتی طور پر، ایک ایسے شخص کے طور پر جو تقریباً 20 سال سے الپائن اسکیئنگ سے واقف ہے، میں اسے کہوں گا (اور یہ اب بھی بہت ہلکا ہے!) - ناامید۔ اس نقطہ نظر سے کچھ بھی سیکھنا مکمل طور پر ناممکن ہے۔ لیکن چوٹ پہنچانے کا ایک یقینی طریقہ۔ اور سب سے یقینی چیز اسکیئنگ کے خیال کو ہمیشہ کے لیے ترک کرنا ہے۔ مجھے لگتا ہے کہ آپ اس تشخیص میں مجھ سے اتفاق کریں گے۔ کسی بھی صورت میں، مجھے تقریباً یقین ہے کہ یہ کوئی اس سے کسی ناخوشگوار بات کی توقع نہیں کرے گا۔ اب آئیے کسی اور کا تصور کریں۔ اسے کمپیوٹر سائنس کا طالب علم بننے دو۔ اسے C++، C#، پاسکل کا کچھ علم ہے۔ وہ جاوا سیکھنا چاہتا ہے۔ اس کے اعمال:
  • اس کے علم کی سطح کے مطابق ادب (صفر کی سطح، واضح طور پر) کو ایک طرف پھینک دیا گیا ہے۔ ذکر کردہ C++، C# اور OOP تھیوری سے تھوڑی سی واقفیت کی بنیاد پر۔
  • سب سے طاقتور پروگرامنگ ماحول لیا جاتا ہے۔ آئیے ایکلیپس یا نیٹ بینز کہتے ہیں۔ وہ جو سب کچھ خود کرتا ہے، بس ایک بٹن دبائیں۔
  • ایک آزمائشی درخواست کے طور پر، ہم منتخب کرتے ہیں... ٹھیک ہے، آئیے چیٹ کرتے ہیں۔ ایک کلائنٹ-سرور ایپلیکیشن، ایپلٹ کی شکل میں کلائنٹ کا حصہ، سرور کا حصہ - ایک ویب سروس یا، بدترین طور پر، سرولیٹس۔ پڑھائی کے لیے بالکل درست۔
سوال۔ آپ اس کو کیا کہیں گے؟ کیا آپ جانتے ہیں کہ تضاد کیا ہے؟ حقیقت یہ ہے کہ اس معاملے میں غیر جانبدارانہ جائزے نمایاں طور پر کم ہوں گے۔ اس حقیقت کے باوجود کہ حالات ہر لحاظ سے ایک جیسے ہیں۔ جب تک کہ دوسری صورت میں صحت اور زندگی کے نتائج کم مہلک نہ ہوں۔ شاید یہ مسئلہ ہے؟ حالات واقعی بہت ملتے جلتے ہیں۔ میں نے انہیں خاص طور پر اسی انداز میں بیان کیا۔ اور ایک عجیب بات: اگر پہلی کی مضحکہ خیزی واضح ہے، تو دوسرے منظر نامے کے بعد نوسکھئیے ڈویلپرز کی ایک خطرناک تعداد ہے۔ جاوا میں مہارت حاصل کرنا MIDlets لکھنے، ڈیٹا بیس کے لیے کلائنٹس، چیٹس، سرولیٹس پر مبنی ویب سائٹس بنانے سے شروع ہوتا ہے... آپ طویل عرصے تک جا سکتے ہیں۔ لیکن بات بہرحال واضح ہے۔ ایک ہی وقت میں، داخلے کی سطح کے ادب کو حقارت کے ساتھ ایک طرف رکھا جاتا ہے۔ اسے پڑھو؟ مجھکو؟ ہاں، میں اب تین سال سے C++ میں لکھ رہا ہوں! (اختیارات پاسکل میں ہیں، اور یہاں تک کہ بصری بنیادی میں بھی۔) اور میں جانتا ہوں OOP! ٹھیک ہے، عام طور پر. تو، آگے کیا ہے؟ اور پھر یہ:
  • 8 بائٹس کی صف کو لمبے میں کیسے تبدیل کیا جائے؟
  • ایسا کیوں ہوتا ہے NoClassDefFoundError؟
  • میں ایپلی کیشن کو Eclipse ( NetBeans/IDEA/JBuilder) میں کیوں لانچ کروں، اور سب کچھ ٹھیک ہے، لیکن اس کے بغیر میں ٹائپ کرتا ہوں java HelloWorld.class، اور ایک ایرر ہے؟
  • یہ کیوں کریش ہوتا ہے ClassNotFoundException؟
  • لائبریری کیوں نہیں ہے؟ میں نے اسے پہلے ہی classes.zip میں ڈال دیا ہے، لیکن اس کا کوئی فائدہ نہیں ہوا!
  • میں اشیاء کی ایک صف کیوں بناتا ہوں، لیکن جب میں سرنی کا ایک عنصر استعمال کرنے کی کوشش کرتا ہوں تو مجھے ملتا ہے NullPointerException؟
  • اور کیوں ...؟
  • اور کیوں ...؟
  • اور کیوں ...؟
کیوں کیوں کیوں؟ لیکن کیونکہ جاوا C++ یا پاسکل نہیں ہے۔ اور پرل نہیں۔ ان زبانوں کا علم اکثر مدد نہیں کرتا بلکہ رکاوٹ بھی بنتا ہے۔ اگر صرف اس لیے کہ یہ زبانیں بالکل مختلف نظریات رکھتی ہیں۔ لیکن بیرونی مشابہت گمراہ کن ہے۔ یقینا، ان تمام "کیوں" اور "کیسے" کے جوابات کتابوں میں موجود ہیں۔ سب سے بنیادی سطح کے ادب میں۔ لیکن اسے پڑھنا سست ہے (اختیارات: شرم، وقت نہیں، وغیرہ)۔ میں بہت سارے دقیانوسی تصورات کو جانتا ہوں جو اچھے C++ ماہرین نے جاوا میں منتقل کیے تھے۔ ایک حالیہ مثال: آپ کو کنسٹرکٹر میں کبھی بھی استثنا نہیں دینا چاہئے۔ کیوں؟ ہاں، کیونکہ C++ میں ایسی چیز کی حالت بیان نہیں کی گئی ہے۔ اس کے مطابق، ایک میموری لیک ہوتا ہے. جاوا میں، کوڑا اٹھانے والے کی موجودگی کی وجہ سے اصولی طور پر ایسا کوئی مسئلہ نہیں ہے۔ تاہم، ایسے لوگ ہیں جو ایسے حالات سے بچنے کی کوشش کرتے ہیں. بس ایک دقیانوسی تصور کے مطابق۔ اور سب سے بری بات یہ ہے کہ ان کوششوں کے نتیجے میں کوڈ بہت زیادہ پیچیدہ ہو جاتا ہے۔ نحو سیکھنا آسان ہے۔ اور مکمل طور پر کافی نہیں ہے۔ زبان کا نظریہ بہت زیادہ اہم ہے۔ اور اس میں سب سے زیادہ مؤثر طریقے سے مہارت حاصل کرنے کے لیے، آپ کو شروع سے ہی شروع کرنا چاہیے۔ بالکل کیوں اور کیسے؟ اور یہ ایک اور سوال ہے۔ تو کہاں سے اور کیسے شروع کریں۔ یہ اس بات پر منحصر ہے کہ آپ کیا حاصل کرنا چاہتے ہیں۔ اگر آپ ایک ہنر مند کوڈنگ بندر بننا چاہتے ہیں، تو آپ تقریباً کسی بھی چیز سے شروع کر سکتے ہیں۔ اگر آپ پیشہ ور بننا چاہتے ہیں تو چیزیں تھوڑی زیادہ پیچیدہ ہیں۔ میرا تجربہ مجھے مندرجہ ذیل کہنے کی وجہ دیتا ہے۔ ایک پیشہ ور ڈویلپر اور "کوڈر" کے درمیان فرق یہ ہے کہ وہ سمجھتا ہے کہ کیا ہو رہا ہے۔ وہ بٹنوں کو دبانے سے تھوڑا زیادہ کرتا ہے۔ ایک طاقتور ماحول ایک بہت اچھی مدد ہے۔ ان لوگوں کے لیے جو اس کے بغیر کر سکتے ہیں۔ لیکن یہ اکثر ان لوگوں کا واحد ذریعہ ہوتا ہے جنہوں نے اس کے ساتھ شروعات کی۔ اور اس کی غیر موجودگی میں، کوڈنگ بندر کی قدر صفر ہے۔ کیونکہ دبانے کے لیے کوئی بٹن نہیں ہیں۔ عام طور پر، بٹن دبانا واقعی خوفناک شکل اختیار کر سکتا ہے۔ میرے ایک ساتھی نے جاوا میں لکھا ہوا ایک پروڈکٹ دیکھا۔ اسے انسٹال کرنے کی ہدایات ان الفاظ سے شروع ہوئیں: "ڈسک سے JBuilder انسٹال کریں..." اب یہ پہلے سے ہی مہلک ہے۔ اگر ڈویلپرز ترقی کے ماحول کے بغیر پروڈکٹ کو کام نہیں کر سکتے ہیں، تو میں یہ سوچ کر کانپ جاتا ہوں کہ یہ کیسے لکھا گیا ہے۔ کم از کم، یہ شوقیہ لوگوں نے لکھا تھا۔ میرا کیا مطلب ہے "سمجھتا ہے کیا ہو رہا ہے؟" اس کا مطلب یہ ہے کہ ایک شخص کو درج ذیل کو سمجھنا چاہیے:
  • ورچوئل مشین کیا ہے اور اس کی ضرورت کیوں ہے؟
  • ورچوئل مشین کے نقطہ نظر سے کلاس کیا ہے؟
  • ایک پیکج کیا ہے؟
  • لائبریری کیا ہے؟
  • ورچوئل مشین کلاسز کو کیسے تلاش کرتی اور لوڈ کرتی ہے۔ کلاس لوڈر کیا ہے اور یہ کیسے کام کرتا ہے؛ پہلے سے طے شدہ کتنے ہیں؛ کلاس پاتھ کیا ہے؟
وغیرہ اور اسی طرح. فہرست جاری ہے۔ براہ کرم نوٹ کریں کہ میں نے خود ڈویلپر کے لیے مخصوص معلومات شامل نہیں کیں۔ تھریڈ کیا ہے، OOP نقطہ نظر سے کلاس کیا ہے اور یہ کسی چیز سے کیسے مختلف ہے، لے آؤٹ مینیجر کیسے کام کرتے ہیں - کسی بھی ڈویلپر کو یہ سب معلوم ہونا چاہیے۔ میں نے جو کچھ بھی درج کیا ہے وہ زیادہ تکنیکی ہے۔ لیکن اکثر یہ پتہ چلتا ہے کہ ان کو جاننا یہ سمجھنے کے لیے ضروری ہے کہ کیا غلط کام کر رہا ہے۔ زندگی سے ایک مثال۔ XML کے ساتھ کام کرنے کے لیے ایک لائبریری ہے جسے xalan کہتے ہیں۔ اس میں کئی javax.xml... پیکیجز - پارسرز، ٹرانسفارمرز وغیرہ شامل ہیں۔ یہ لائبریری بہت مشہور ہے۔ مسئلہ یہ ہے کہ یہی پیکیج J2SDK میں ورژن 1.4 سے موجود ہیں۔ سوال۔ لائبریری سے javax.xml.transform.stream.StreamSource کلاس تک رسائی کرتے وقت کون سی کلاس لوڈ کی جائے گی، اگر xalan کلاس پاتھ - لائبریری یا J2SDK میں بھی موجود ہے؟ اس سوال کا جواب دینے کے لیے، آپ کو یہ جاننا ہوگا کہ کلاس لوڈر کیسے کام کرتا ہے۔ میں نے ایک بار ایک فورم میں چار روزہ بحث دیکھی جو بالآخر اس مسئلے پر آ گئی۔ کوڈ نے درست طریقے سے کام نہیں کیا کیونکہ لوڈر نے وہ کلاس نہیں لی جس کی اس سے توقع تھی۔ میں کیا حاصل کر رہا ہوں؟ یہاں بات یہ ہے: ترقی کا ماحول جتنا طاقتور ہوگا، ڈویلپر کے لیے اتنا ہی زیادہ کام کرے گا - اسے اتنا ہی کم سوچنا پڑے گا۔ اور یہ پہلے ہی اوہ کتنا برا ہے۔ بندر کے اتنے قریب۔ اس سے پہلا نتیجہ نکلتا ہے، اس سے کوئی فرق نہیں پڑتا ہے کہ یہ کتنا ہی متضاد لگتا ہے:

نتیجہ 1. یہ مشورہ دیا جاتا ہے کہ طاقتور ماحول کے بغیر جاوا سیکھنا شروع کریں۔

میں نوٹ پیڈ کی سطح کے ایڈیٹرز میں لکھنے کی وکالت نہیں کرتا ہوں۔ لیکن میں یہ صرف اس وجہ سے نہیں کرتا - وہ، ایک اصول کے طور پر، نحو کو نمایاں نہیں کرتے ہیں۔ یہ ایک ناقابل یقین حد تک آسان چیز ہے جس کا کوئی منفی اثر نہیں ہوتا۔ آپ نوٹ پیڈ++ جیسی کوئی چیز استعمال کر سکتے ہیں ، یہ جاوا نحو کو سمجھتا ہے اور، ویسے، مفت ہے۔ مثال کے طور پر، میرے پاس سسٹم میں .java فائل کی قسم خاص طور پر اس کے لیے رجسٹرڈ ہے۔ لہذا، نحو کو نمایاں کرنے اور کمانڈ لائن کے ساتھ ایک ٹیکسٹ ایڈیٹر۔ عذاب کے دو یا تین دن - اور یہ سمجھنا کہ کلاس پاتھ کیا ہے، ترجمان کیسے شروع کیا جاتا ہے اور دوسری چھوٹی چیزوں کا ایک گروپ - یہ سمجھنا ہمیشہ کے لیے رہے گا۔ مزید. میرا تجربہ مجھے یہ کہنے کی وجہ دیتا ہے کہ مستقبل کے استعمال کے لیے علم حاصل کرنا ناممکن ہے۔ اس معنی میں کہ ادب کو پڑھنے کے قابل تب ہی ہے جب ایسے سوالات ہوں جن کا وہ جواب دے گا۔ اگر آپ کسی کتاب کے بارے میں سوالات کیے بغیر پڑھیں تو معلومات ایک ہفتے کے اندر غائب ہو جائیں گی۔ میں یہ اچھی طرح جانتا ہوں، بشمول میرے اپنے تجربے سے۔ میں نے ایک بار سرولیٹ پر ایک کتاب پانچ بار پڑھنا شروع کی۔ جب تک میں نے اپنے کام میں ان سے نمٹنا شروع کیا، معلومات کو جذب نہیں کیا گیا۔ اور یہ ایک الگ تھلگ کیس سے دور ہے۔ ایک دفعہ کی بات ہے، بہت عرصہ پہلے، تقریباً 8-10 سال پہلے، میں نے درج ذیل کو پڑھا، بدقسمتی سے، مجھے مصنف یاد نہیں: کسی شخص کو نئی پروگرامنگ لینگویج کیسے سکھائی جائے؟ بہت آسان. آپ کو اسے ایک زبان، کئی کام اور کم از کم دستاویزات دینے کی ضرورت ہے۔ پھر ایک دو مہینوں کے بعد جب وہ کم از کم اس زبان میں لکھنا شروع کرے تو جامع دستاویزات فراہم کریں۔ یہ ایک جاسوسی ناول کی طرح دو ہفتوں میں پڑھا جائے گا، جس کے بعد وہ شخص کام کرنے کے لیے تیار ہو جائے گا۔ میں اس بیان سے 100% متفق ہوں۔ دو ماہ میں ایک طرف تمام چھوٹے موٹے مسائل دور ہو جائیں گے۔ ان کے جوابات آزادانہ طور پر حاصل کیے جائیں گے جس سے ان کی قدر و قیمت بہت بڑھ جائے گی۔ دوسری طرف، واضح سوالات پہلے ہی بنیں گے، جن کے جوابات دستاویزات کے ذریعے فراہم کیے جائیں گے۔ اس سے دوسرا نتیجہ نکلتا ہے، جو پہلے سے کم متضاد نہیں لگتا:

نتیجہ 2. یہ مشورہ دیا جاتا ہے کہ نصابی کتابوں کے بغیر جاوا سیکھنا شروع کریں۔ Java API دستاویزات + جاوا ٹیوٹوریل - یہ کافی سے زیادہ ہے۔

جاوا API دستاویزات لازمی ہیں۔ میں اسے مقامی طور پر ڈسک پر رکھنے کا مشورہ دیتا ہوں۔ آپ کو اس سے ایک سے زیادہ بار رابطہ کرنا پڑے گا، دو بار نہیں، یا دس بار بھی۔ ذاتی طور پر، کوئی دن ایسا نہیں گزرتا کہ میں وہاں نہ جاتا ہوں۔ میں جاوا ٹیوٹوریل کو مقامی طور پر رکھنے کی بھی تجویز کرتا ہوں۔ یہ اندراج کی سطح کی معلومات ہے جو مکمل طور پر نصابی کتاب کی جگہ لے لیتی ہے۔ تاہم، وہاں اس کی کافی مقدار موجود ہے۔ مجھے یہ کہنا ضروری ہے کہ میں جن شعبوں سے کام نہیں کرتا ہوں، میں پھر بھی اپنے لیے کچھ نیا تلاش کرتا ہوں۔ بہت زیادہ پڑھنا برا ہے۔ جب تک کوئی درخواست نہیں ہے، کوئی جواب نہیں ہے. تھوڑا پڑھنا بھی برا ہے۔ سنہری مطلب کہاں ہے؟ میں اس اصول کی پابندی کرتا ہوں: میں اس وقت تک پڑھتا ہوں جب تک یہ محسوس نہ ہو کہ مجھے سوال کا جواب مل گیا ہے۔ 90% معاملات میں ایسا نہیں ہوتا ہے۔ لیکن اس وقت یہ بہتر ہے کہ آپ خود ہی رکنا اور جاری رکھیں۔ ابتدائی تحریک موصول ہوئی ہے، اور مسئلہ کو آزادانہ طور پر حل کرنے سے بہت کچھ ملے گا۔ یقینا، کچھ عرصے کے بعد یہ ادب لینے کے قابل ہے. لیکن دوبارہ، داخلہ سطح کے ادب کے لیے۔ یہاں تک کہ اگر ایسا لگتا ہے کہ یہ سب بکواس ہے، یہ ابتدائی ابواب پڑھنے کے قابل ہے۔ میں تقریباً ضمانت دے سکتا ہوں کہ آپ کم از کم کچھ نیا سیکھیں گے۔ اور یہ چیز بعد میں انتہائی اہم ثابت ہو سکتی ہے۔ ٹھیک ہے. لگتا ہے ہم نے سوچ لیا ہے کہ کیا لکھنا ہے۔ کیسے لکھیں - بھی۔ لیکن کیا لکھوں؟ یاد رکھیں کہ یہ مضمون کہاں سے شروع ہوا تھا۔ کیا مجھے فوری پیغام رسانی کا نظام لکھ کر شروع کرنا چاہیے؟ انتخاب یقیناً آپ کا ہے۔ مجھے لگتا ہے کہ یہ اس کے قابل نہیں ہے۔ کام جتنا پیچیدہ ہوگا اتنے ہی زیادہ سوالات اٹھیں گے۔ تجربہ نہ ہونے کی صورت میں اس طرح کے بے شمار سوالات ان کے حل ہونے کے ناممکن ہونے کا احساس دلائیں گے، اس کے بعد اپنی کمتری، حماقت وغیرہ کا احساس ہوگا۔ بالآخر، یہ فیصلہ "اس کے ساتھ جہنم میں..." اور زبان سیکھنا بند کرنے کا باعث بن سکتا ہے۔ وہ. جس کی ضرورت تھی اس سے بالکل الٹا اثر۔ یہ خصوصیت جاوا کی اتنی زیادہ نہیں ہے جتنی خود سیکھنے کے عمل کی ہے۔ لیکن جب پروگرامنگ سکھانے کی بات آتی ہے تو وہ کسی وجہ سے اس کے بارے میں بھول جاتے ہیں۔ دریں اثنا، اختتام تک مکمل ہونے والا ایک چھوٹا سا کام سفر کے بالکل شروع میں ترک کیے گئے عظیم الشان نظام سے کہیں زیادہ اطمینان اور بہت زیادہ علم دے سکتا ہے۔ اس لیے تیسرا نتیجہ: نتیجہ 3۔ یہ مشورہ دیا جاتا ہے کہ جاوا سیکھنے کو ایسے کاموں کے ساتھ شروع کریں جو جاوا کے بارے میں آپ کے علم کی موجودہ سطح کے لیے کافی ہوں۔ آپ کو فارمولا 1 کار پر کار چلانا سیکھنا شروع نہیں کرنا چاہیے۔ آپ کو ورلڈ کپ ٹریک پر الپائن اسکیئنگ سیکھنا شروع نہیں کرنا چاہیے۔ اور اسی طرح، آپ کو کچھ بڑا لکھ کر جاوا پر عبور حاصل کرنا شروع نہیں کرنا چاہیے۔ میں سمجھتا ہوں کہ عزائم کا مطالبہ ہے۔ لیکن اس معاملے میں وہ بے بنیاد ہیں۔ اور آپ کے جتنے زیادہ غیر معقول عزائم ہوں گے، آپ کے پیشہ ور بننے کے امکانات اتنے ہی کم ہوں گے۔ سیکھنے کے معاملے میں ایک قابل ذکر رجحان، عجیب بات ہے، مختلف فورمز۔ اگر آپ انہیں سمجھداری سے استعمال کرتے ہیں۔ سمجھداری سے - اس کا مطلب یہ ہے کہ آپ کو اس کے برعکس کرنے کی ضرورت ہے، معمول کے مطابق نہیں۔ یعنی سوال کرنے کے لیے نہیں بلکہ ان کے جواب دینے کے لیے۔ کوئی بھی جس تک پہنچنے کی آپ میں طاقت ہو۔ اگر آپ یہ سمجھتے ہیں کہ میں خود سب کچھ جانتا ہوں تو آپ بہت غلط ہیں۔ ہاں، میں بہت کچھ جانتا ہوں۔ لیکن ایسے علاقے ہیں جن کا میں نے کبھی سامنا نہیں کیا۔ یا میرے پاس ہے، لیکن بہت کم۔ میری پریکٹس کی ایک بہترین مثال سرٹیفکیٹس کے ساتھ کام کرنا ہے: کوڈ پر دستخط کرنا، محفوظ کنکشنز وغیرہ۔ 1998 میں اپنا مقالہ لکھتے وقت میں نے یہ کیا تھا لیکن اس کے بعد سب کچھ بہت بدل گیا ہے۔ سالوں کے دوران، میرے پاس سوالات جمع ہوتے رہے ہیں۔ یہاں تک کہ میں نے کچھ ادب پڑھنا شروع کر دیا۔ لیکن، جیسا کہ میں نے اوپر کہا، آپ مستقبل کے استعمال کے لیے علم حاصل نہیں کر سکتے۔ یہ ایک کوّے کی طرح ہے - یہ ایک کان میں جاتا ہے اور دوسرے سے باہر آتا ہے۔ سر میں سوراخ کے علاوہ کوئی نتیجہ نہیں نکلتا۔ اور یہ حال ہی میں جاری رہا، جب فورم میں ٹومکیٹ کے ساتھ SSL کنکشن کے بارے میں ایک سوال پوچھا گیا۔ کچھ مسائل تھے۔ اور صرف اس سوال نے مجھے گہری کھدائی پر مجبور کیا۔ اور اگر کوئی درخواست ہے تو جواب بھی ہے۔ میں نے نہ صرف یہ معلوم کیا کہ اس شخص کا مسئلہ کیا تھا، بلکہ مجھے دیگر مفید معلومات کا ایک گروپ بھی ملا۔ میں آخر کار سمجھ گیا کہ سرٹیفکیٹ کیسے کام کرتے ہیں۔ متعلقہ مضمون منصوبوں میں ہے۔ اور یہ ہر وقت ہوتا ہے۔ میں نے بہت تھوڑا سا کام کیا، مثال کے طور پر، GUI کے ساتھ۔ یہ صرف فورم میں کسی کے سوال کے نتیجے میں تھا کہ میں TextLayout کی کچھ صلاحیتوں کو سمجھ پایا۔ اس سوال سے پہلے مجھے ان کے بارے میں کوئی علم نہیں تھا۔ اسی طرح، مجھے حال ہی میں پتہ چلا ہے کہ یہ پتہ چلتا ہے کہ JButton بھی html کو اپنے ہیڈر کے طور پر تشریح کرتا ہے۔ اس سے پہلے، میں نے سوچا تھا کہ صرف JLabel یہ کر سکتا ہے۔ اور یہ ایک بار پھر فورم کی بدولت ہے۔ تو یہ پتہ چلتا ہے: جتنا زیادہ ہم سوالات کے جواب دیتے ہیں، اتنا ہی ہم خود کو سیکھتے ہیں۔ اس لیے میں اس مقبول رائے سے متفق نہیں ہوں کہ اگر کوئی شخص کسی فورم پر بیٹھتا ہے تو وہ کچھ نہیں کرتا۔ یہ واضح نہیں ہے اور بنیادی طور پر اس بات پر منحصر ہے کہ وہ شخص فورم پر کیوں ہے۔ اور وہ بنیادی طور پر کیا کرتا ہے - پوچھیں یا جواب دیں۔ درحقیقت، آپ پوچھ بھی سکتے ہیں۔ بلکہ عقلمندی سے بھی۔ کسی حل کے بارے میں مت پوچھیں (اور خاص طور پر پوسٹ اسکرپٹ کے ساتھ "براہ کرم وہ لوگ جو جانتے ہیں، جواب دیں، اور سوال نہ پوچھیں!"، جس کا مجھے دوسرے دن سامنا کرنا پڑا!)، لیکن دوبارہ، اس کے برعکس، سیٹ کرنے کو کہیں۔ تحریک کی سمت. یہ بات مکمل طور پر قابل فہم ہے کہ ایک ابتدائی کے لیے یہ سمجھنا مشکل ہے کہ کہاں کھودنا ہے، کیونکہ اس کے پاس تجربے کی کمی ہے۔ یہ اس شخص کی غلطی نہیں ہے، اور یہ کوئی مسئلہ بھی نہیں ہے۔ یہ ٹھیک ہے. ہر کوئی اس سے گزر چکا ہے۔ میں شامل. میرے لیے ذاتی طور پر، یہ بہت زیادہ اہم ہے کہ کوئی شخص کچھ سیکھنا چاہتا ہے۔ اور نہ صرف جواب ملے، پروگرامنگ لیب لینے کے صرف پانچ منٹ بعد اسے بھول جانا۔ میں آپ کو ہمیشہ حرکت کی سمت بتاؤں گا۔ اگر میں اسے خود جانتا ہوں۔ اور اگر میں نہیں جانتا تو کم از کم میں اندازہ لگا سکتا ہوں۔ اور میں اس کا جواب بھی ضرور تلاش کروں گا۔ لیکن میں شاید کبھی بھی براہ راست جواب نہیں دیتا - کم از کم، مجھے یاد نہیں ہے۔ ویسے اس کی وجہ سے میں نے ایک فورم چھوڑ دیا۔ جب میں نے اہم سوالات پوچھنا شروع کیے تو انھوں نے یک زبان ہو کر مجھے سمجھایا کہ ان کا معمول ہے کہ صرف جواب دیں۔ اور اپنے سوالات کے ساتھ میں مزید آگے بڑھ سکتا ہوں۔ اس بات کو مدنظر رکھتے ہوئے کہ فورم کی سطح بہت زیادہ مطلوبہ رہ گئی ہے، کم از کم اس نقطہ نظر کی بدولت! - میں نے مزید وقت ضائع نہ کرنے کا فیصلہ کیا۔ لہذا اپنی پسند کے مطابق ایک فورم کا انتخاب کریں اور آپ چلے جائیں۔ ویسے، یہ سائٹ بالکل ایک فورم کی بدولت ظاہر ہوئی ہے۔ وہاں کچھ دیر بات کرنے کے بعد، میں نے اکثر اٹھائے جانے والے موضوعات کی ایک فہرست جمع کی اور محسوس کیا کہ ایسی سائٹ کی مانگ ہوگی۔ اور ایسا ہی ہوا۔ تقریباً تمام مضامین فورم میں ہونے والی گفتگو کے تناظر میں لکھے گئے ہیں۔ یا اس خط و کتابت کی پیروی جو میں بھی باقاعدگی سے کرتا ہوں۔ نتیجہ کیا ہے؟ کام، کام اور دوبارہ کام. ابتدائی مرحلے میں آپ اپنے لیے جتنا زیادہ کام کرنے دیں گے، اتنا ہی کم علم حاصل کریں گے۔ اور پیشہ ورانہ مہارت کا راستہ لمبا ہوتا ہے۔ لیکن صرف آپ ہی منتخب کر سکتے ہیں کہ آپ کون بننا چاہتے ہیں - ایک بے فکری سے بٹن دبانے والا بندر یا پیشہ ور۔ اور صرف آپ خود ہی اس راستے کا انتخاب کرتے ہیں جس سے آپ یہ یا وہ حاصل کرسکتے ہیں۔ پہلا راستہ واضح ہے۔ میں نے دوسرا دکھانے کی کوشش کی۔ آپ کی چال، حضرات! اصل ماخذ سے لنک: آئیے شروع سے شروع کریں یا 'ہیلو، جاوا ورلڈ!'
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION