جب کوئی شخص اپنے طور پر یا آن لائن کورسز میں پروگرامنگ کا مطالعہ کرنا شروع کرتا ہے، تو اس کے لیے "سرگرمی کے میدان" کی وضاحت کرنا اور ہر چیز کو منظم کرنا بہت ضروری ہے۔ اس آرٹیکل میں ہم اس طرح کی ایک سیسٹمائزیشن پیش کرتے ہیں - جاوا ٹاسکس ابتدائی افراد کے لیے، یہ بتاتا ہے کہ پروگرامنگ JavaRush اور مفید لنکس سیکھنے کے لیے آن لائن کورس میں ایک خاص قسم کو کس حد تک مکمل طور پر پیش کیا گیا ہے۔
آپ کو پہیلیاں کہاں مل سکتی ہیں:
زبان کے نحوی مسائل
بنیادی باتیں، ابتدائی افراد کے لیے جاوا پروگرامنگ کے پہلے کام - "ہیلو ورلڈ" سے لے کر لوپس اور ارے تک۔ JavaRush پر ان میں سے بہت سارے ہیں: وہ خاص طور پر پہلے چھ سطحوں پر جاوا سنٹیکس کی تلاش میں بہت زیادہ توجہ مرکوز کرتے ہیں۔ اس بات کا امکان نہیں ہے کہ آپ کو ان کو ضم کرنے کے لیے کسی اضافی ذرائع کو تلاش کرنے کی ضرورت ہے - یہاں ان میں سے کافی تعداد میں موجود ہیں۔ اس کے علاوہ، کسی بھی پیچیدہ مسائل کو حل کرتے وقت، آپ خود بخود نحو کو دہراتے ہیں۔ لیکن اگر آپ کو اچانک ان کی ضرورت ہو تو، ابتدائیوں کے لیے جاوا کے کسی بھی مسئلے کی کتاب میں اسی طرح کی مشقیں ہوتی ہیں۔ صرف ان مسائل والی کتابوں میں جاوا رش کی طرح کوئی فوری جانچ نہیں ہوگی۔جمع کرنے کے کام
مجموعے پہلا "سنجیدہ" موضوع ہے جس کا سامنا ایک نیا پروگرامر اپنی پڑھائی کے دوران کرتا ہے۔ ابتدائی افراد کے لیے جاوا کے مسائل، جمع کرنے کے لیے وقف ہیں، جاوا رش پر بھی وسیع پیمانے پر نمائندگی کی جاتی ہے - جاوا سنٹیکس کی تلاش کے ساتویں اور آٹھویں سطح پر۔ یہاں طالب علم پہلی بار جاوا کلیکشن فریم ورک کے بارے میں سنے گا، سیٹ، فہرست اور نقشہ کے انٹرفیس اور ان کے کچھ نفاذ کے ساتھ کام کرے گا۔ تاہم، اس مرحلے پر آپ صرف اس مفید ٹول اور جاوا کے آسان کاموں سے واقف ہوں گے۔ جاوا کلیکشنز کی تلاش کے دوران مجموعوں کا مزید گہرائی سے مطالعہ کیا جائے گا ۔ آپ دیکھتے ہیں کہ یہ اعتراض کتنا اہم ہے، کیونکہ ایک پوری جستجو کا نام اس کے نام پر رکھا گیا تھا!استثنائی مسائل
جاوا میں غیر معمولی حالات کے ساتھ کام کرنے کے لیے ایک خاص طریقہ کار ذمہ دار ہے، جو پروگراموں میں غلطیوں کی "پکڑنے" کو بہت آسان بناتا ہے۔ لیکن اسے مکمل طور پر استعمال کرنے کے لیے، آپ کو یہ سمجھنا ہوگا کہ جاوا میں استثنیٰ ہینڈلنگ کیسے کام کرتی ہے۔ JavaRush میں اس طرح کے بہت سارے کام ہیں، اور وہ پہلے Java Syntax کی تلاش میں بھی پائے جاتے ہیں۔تبادلوں کے مسائل ٹائپ کریں۔
بلاشبہ، اس گروپ کو بنیادی نحوی کاموں کے طور پر درجہ بندی کیا جا سکتا ہے۔ تاہم، ہماری عاجزانہ رائے میں، اس طرح کے کاموں کو اکثر کم سمجھا جاتا ہے، اور ابتدائی لوگ ان سے بھٹک جاتے ہیں۔ لہٰذا، آئیے ٹیمپلیٹس سے ہٹتے ہیں: ہم "ابتدائی اقسام کی تبدیلی" کے عنوان پر ابتدائی طور پر جاوا کے کاموں کا مطالعہ کرتے ہیں، جیسا کہ اکثر کیا جاتا ہے، لیکن تھوڑی دیر بعد - پہلی جاوا سنٹیکس کی تلاش کے اختتام پر۔ اور پھر ہم سیکھیں گے کہ جاوا کور کی تلاش میں OOP کا مطالعہ کرکے غیر قدیم اقسام (آبجیکٹ) کو کیسے کاسٹ کیا جائے ۔ JavaRush میں اس طرح کے بہت سارے کام ہیں؛ آپ کو کوئی اضافی چیز تلاش کرنے کی ضرورت نہیں ہے۔OOP کو سمجھنے کے لیے کام
OOP سب سے مشکل موضوع نہیں ہے، لیکن یہ انتہائی اہم ہے۔ اس کے علاوہ، اس میں بہت ساری باریکیاں ہیں جنہیں انٹرویو لینے والے مستقبل کے "جونیئرز" کو پکڑنے کے لیے استعمال کرنا پسند کرتے ہیں۔ JavaRush کورس میں ابتدائی افراد کے لیے پروگرامنگ کے عملی مسائل ہیں جو آپ کو آبجیکٹ پر مبنی نقطہ نظر کو سمجھنے میں مدد فراہم کریں گے۔ تاہم، OOP کو صحیح معنوں میں سمجھنے کے لیے، ہم اس موضوع پر لٹریچر پڑھنے کی تجویز کرتے ہیں (مثال کے طور پر، Kay Horstmann، Gary Cornell's Professional's Library، McLaughlin's Object-Oriented Analysis and Design، یا دیگر کتابیں )۔I/O تھریڈز پر کام
ہم I/O اسٹریمز کو سمجھنے سے بہت پہلے استعمال کرنا شروع کر دیتے ہیں - یہ جاوا ہے، بچے، اور System.out کی وضاحت کرنا، اور اس کے علاوہ، System.in کو ایک سبز ابتدائیہ کے لیے، مشکل ہے، اور پہلے مرحلے پر ضروری نہیں ہے۔ لیکن جاوا کور کی تلاش کے دوران ، اس قدرے الجھے ہوئے موضوع کو سمجھنے کے لیے علم ہی کافی ہے، اور ہم نہ صرف کنسول ان پٹ/آؤٹ پٹ کے بارے میں بات کر رہے ہیں، بلکہ فائل سسٹم کے ساتھ کام کرنے کے بارے میں بھی بات کر رہے ہیں۔ اہم بات یہ ہے کہ ان کاموں کو چھوڑنا نہیں ہے (جاوا رش میں ان میں سے بہت سارے ہیں)، اور نظریہ کو مستقل طور پر سمجھنا ہے۔پہیلیاں
"پہیلیاں" سے ہماری مراد بڑھتی ہوئی پیچیدگی کے کام ہیں جن کو غیر معیاری طریقے سے لاگو کرنے کی صلاحیت جتنا علم کی ضرورت نہیں ہے۔ یہ جاوا جونیئر کے لیے عام کام ہیں - یہ انٹرویوز میں بہت مقبول ہیں، لیکن حقیقی کام میں، اس معنی میں پہیلیاں بہت عام نہیں ہیں۔ یہی وجہ ہے کہ وہ جاوا رش میں موجود ہیں، لیکن بہت زیادہ نہیں (عام طور پر کیپٹن بوبروف کی کلاسوں میں)۔- http://acm.timus.ru/problemset.aspx?space=1&tag=tricky
- https://tproger.ru/category/problems/
- https://www.codechef.com/
- https://www.codewars.com/?language=java
الگورتھم اور ڈیٹا ڈھانچے
الگورتھم اور ڈیٹا ڈھانچے کے بارے میں مسلسل بحث ہوتی رہتی ہے کہ مستقبل کے پروگرامر کو ان کی کتنی ضرورت ہے۔ ایک بار پھر ہم جواب دیں گے: سوچ کی ترقی کے لیے - ان کی ضرورت ہے، براہ راست کام کے لیے - شاذ و نادر ہی۔ کیونکہ جاوا اور دیگر زبانوں کے لیے بھی، لائبریریاں پہلے ہی تمام معلوم ترتیب، تلاش اور دیگر الگورتھم کے نفاذ کے ساتھ لکھی جا چکی ہیں۔ تاہم، الگورتھم کے اپنے نفاذ کو بنانا بہت مفید ہے، جیسا کہ ان کی پیچیدگی کو سمجھنا ہے۔ خاص طور پر ان لوگوں کے لیے جنہوں نے اسکول میں صرف ریاضی کی تعلیم حاصل کی۔ اصولی طور پر، ان کاموں کو پہیلیوں کے ساتھ جوڑا جاتا ہے، فرق صرف یہ ہے کہ ان سب کو کئی بار آن لائن بیان اور حل کیا جاتا ہے۔ آپ کو توثیق کے لیے توثیق کنندہ کی بھی ضرورت نہیں ہے۔ کوئی بھی کورس منتخب کریں، مثال کے طور پر، پرنسٹن یونیورسٹی سے ، ان کے ساتھی کیلیفورنیا یا سٹیپک سے ۔ ویسے، کورس CS50 میں ، جس کا ترجمہ ہم نے JavaRush پر رکھا ہے، کئی اہم الگورتھم اور ڈیٹا ڈھانچے پر بات کی گئی ہے۔ ہم پرزور مشورہ دیتے ہیں کہ لیول 2-5 کی ویڈیوز دیکھیں اور جاوا میں کاموں کو نافذ کریں۔ گراف کے مسائل: ڈیٹا کی ساخت کے کام:ملٹی تھریڈنگ
کوئی بھی ایسا پروگرام لکھ سکتا ہے جو "ہیلو ورلڈ" پرنٹ کرتا ہو... جاوا تھریڈ API استعمال کرنے کے بارے میں کیا خیال ہے تاکہ مشہور فقرہ ایک اضافی دھاگے سے پرنٹ ہو؟ اور اس لیے کہ یہ پانچ مختلف تھریڈز سے پانچ بار "Hello world" پرنٹ کرتا ہے، اور تاکہ لائنیں متبادل نہ ہوں؟... ملٹی تھریڈنگ جاوا کور سیکھنے کے دوران ایک حقیقی "طاقت کا امتحان" ہے۔ JavaRush پر ایک پوری جستجو اس انتہائی مشکل موضوع کے لیے وقف ہے، جسے Java Multithreading کہا جاتا ہے، اور اس میں بہت سارے کام شامل ہیں تاکہ طالب علم متوازی عمل کے "درد اور خوبصورتی" کو محسوس کر سکے۔ زیادہ کثرت سے، طلباء کے پہلے "حقیقی" منصوبوں میں زیادہ یا کم حد تک ملٹی تھریڈنگ شامل ہوتی ہے۔ مثال کے طور پر، سادہ کھیل.
ملٹی تھریڈنگ کا مسئلہ پانچ خاموش فلسفی گول میز پر بیٹھے ہیں۔ ان میں سے ہر ایک کے سامنے اسپگیٹی کی پلیٹ ہے۔ ہر فلسفی کے بائیں اور دائیں میز پر کانٹے پڑے ہیں (ان کے درمیان)۔ ایک فلسفی یا تو کھا سکتا ہے یا سوچ سکتا ہے۔ مزید یہ کہ، وہ صرف اس صورت میں کھا سکتا ہے جب اس کے پاس دو کانٹے ہوں - ایک اس کے دائیں اور بائیں لے جائے۔ "کانٹا اٹھاؤ" اور "کانٹا نیچے رکھو" الگ الگ اعمال ہیں جو ترتیب وار انجام دیے جاتے ہیں۔ |
جنرک پر کام
جنرلائزیشن آٹومیشن کا جوہر ہے، یعنی ایک لحاظ سے، پروگرامنگ۔ لہذا جاوا میں عمومیات یا عمومیات کے موضوع کو بھی نظر انداز نہیں کیا جانا چاہئے۔ JavaRush میں پروگرامنگ کے عمومی کام ہوتے ہیں (زیادہ تر جاوا کلیکشن کی تلاش میں، جس کا آغاز لیول 5 سے ہوتا ہے)۔ جہاں آپ کو جنرکس پر مفید مشقیں اور مواد مل سکتے ہیں:- https://docs.oracle.com/javase/tutorial/java/generics/QandE/generics-questions.html
- https://www.geeksforgeeks.org/generics-in-java/
- http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html
- جوشوا بلچ کی کتاب "مؤثر جاوا"
ڈیزائن پیٹرن ٹاسکس
کسی مرحلے پر (جاوا رش کورس کا تقریباً 2/3)، ایک نوآموز پروگرامر کو پروگرامنگ میں اچھے اخلاق کے اصولوں کو قریب سے دیکھنا شروع کرنے کی ضرورت ہے۔ ہم درست کوڈ فارمیٹنگ (جو آسان ہے) اور ڈیزائن پیٹرن (جو زیادہ مشکل ہے) کے بارے میں بات کر رہے ہیں۔ JavaRush کے پاس ایسے کام ہیں۔ اضافی کی ضرورت ہے - وہ مل سکتے ہیں، مثال کے طور پر، کتاب میں (حصہ 4) " Java. پروگرامنگ کے طریقے » بلینوف اور رومانچک۔ یا اس بارے میں سوچیں کہ آپ پہلے سے حل شدہ مسائل کو ٹیمپلیٹ میں کیسے فٹ کر سکتے ہیں۔یونٹ ٹیسٹنگ
کسی بھی پروگرامر کی ایک اہم مہارت، جسے اکثر غلطی سے خصوصی طور پر ٹیسٹرز سے منسوب کیا جاتا ہے، آپ کے اپنے کوڈ کے لیے یونٹ (یا یونٹ) ٹیسٹ لکھنا ہے۔ JavaRush میں یونٹ ٹیسٹ کے چند کام ہیں، لیکن آپ کو واقعی نئے کاموں کی تلاش میں زحمت نہیں کرنی چاہیے۔ ایک بار جب آپ یہ جان لیں کہ ٹیسٹ کیسے لکھتے ہیں، اپنے کوڈ کو (اپنے پراجیکٹس میں، تعلیمی کاموں میں) یونٹ ٹیسٹ کے ساتھ ڈھانپنے کی عادت بنائیں۔ یہ کنسول آؤٹ پٹ کا استعمال کرتے ہوئے چیک کرنے سے کہیں زیادہ کارآمد ہے، جس کا شکار طلباء کے پروگرامرز ہوتے ہیں۔ اس کے علاوہ، اکثر سب سے پہلی چیز جو کمپنیاں "جونیئرز" کو سونپتی ہیں وہ ہے کسی اور کے کوڈ کے لیے یونٹ ٹیسٹ لکھنا۔- ڈمی کے لیے یونٹ ٹیسٹنگ - حبر کا ایک مفید مضمون، جس کے بعد یہ واضح ہو جائے گا کہ یونٹ ٹیسٹنگ کی ضرورت کیوں ہے
- جنیت - ٹیسٹرز کے لیے جاوا - یوری ٹکاچ کا ویڈیو ٹیوٹوریل
باقاعدہ اظہار کے مسائل
یہ ایک سادہ سا موضوع ہے جسے تقریباً کوئی ابتدائی سمجھ نہیں پاتا، کیونکہ یہ غیر معمولی اور سستی ہے۔ درحقیقت، موضوع کا مطالعہ کرنے، "ریگولر" کو سمجھنے اور جن لوگوں نے ایسا نہیں کیا ہے ان پر فائدہ اٹھانے میں کچھ دن گزارنا قابل قدر ہے۔ یہ اس لیے بھی مفید ہے کیونکہ وہ پروگرامنگ زبان سے تقریباً آزاد ہیں: اسے ایک بار سیکھیں، آپ اسے ہر جگہ استعمال کر سکتے ہیں۔ JavaRush میں کوئی مسئلہ نہیں ہے جو کہ ریگولر ایکسپریشنز پر فوکس کرتا ہے، حالانکہ کچھ کو ان کے استعمال سے حل کیا جا سکتا ہے۔ تو موضوع کو سمجھنے کے لیے کچھ اضافی وسائل یہ ہیں:- جاوا میں ریگولر ایکسپریشنز - جیف فریسن کے ایک مضمون کا ترجمہ
- ریگولر ایکسپریشنز کی جانچ کرنا - ایک ایسا وسیلہ جہاں آپ آن لائن ریگولر ایکسپریشنز کی جانچ کر سکتے ہیں۔
- Mike Fitzgerald Regular Expressions ایک مختصر اور آسان ٹیوٹوریل ہے۔
GO TO FULL VERSION