যখন কেউ একাকী বা অনলাইন কোর্সের মাধ্যমে কীভাবে প্রোগ্রাম করতে হয় তা শেখা শুরু করে , তখন কিছু ডোমেনের উপর জোর দেওয়া এবং সবকিছু গঠন করা খুবই গুরুত্বপূর্ণ। এই প্রবন্ধে, আমরা আমাদের কাঠামো উপস্থাপন করি — নতুনদের জন্য জাভা টাস্ক, একটি ইঙ্গিত সহ যেকোন বিশেষ ধরনের টাস্ক কতটা CodeGym অনলাইন প্রোগ্রামিং কোর্সে উপস্থাপিত হয়, সাথে দরকারী লিঙ্কগুলি। আপনার কি ধরনের জাভা কাজ আছে?  - ১

ভাষা সিনট্যাক্স সঙ্গে অনুশীলন

নতুনদের জন্য এই প্রথম জাভা প্রোগ্রামিং টাস্ক - ফাউন্ডেশন - "হ্যালো, ওয়ার্ল্ড" থেকে লুপ এবং অ্যারে পর্যন্ত। CodeGym এর অনেকগুলি রয়েছে: তারা বিশেষত জাভা সিনট্যাক্স অনুসন্ধানের প্রথম ছয় স্তরে কেন্দ্রীভূত। আপনার অন্য কোথাও তাদের আরও সন্ধান করার সম্ভাবনা নেই। তাদের আয়ত্ত করার জন্য আমাদের অবশ্যই যথেষ্ট আছে। আরো কি, আপনি যখন কোন কঠিন কাজ, আপনি স্বয়ংক্রিয়ভাবে সিনট্যাক্স পর্যালোচনা. কিন্তু যদি আপনি হঠাৎ নিজেকে প্রয়োজনের মধ্যে খুঁজে পান, নতুনদের জন্য যেকোনো জাভা পাঠ্যপুস্তকে একই ধরনের সমস্যা রয়েছে। কিন্তু কোডজিমের বিপরীতে, এই ব্যায়ামের বইগুলিতে তাত্ক্ষণিক কার্য যাচাইকরণ থাকবে না।

সংগ্রহের সাথে অনুশীলন করুন

সংগ্রহগুলি হল প্রথম "গুরুতর" বিষয় যা নবাগত প্রোগ্রামাররা তাদের গবেষণায় সম্মুখীন হয়। জাভা সংগ্রহের জন্য নিবেদিত প্রাথমিক কাজগুলিও কোডজিমে ভালভাবে উপস্থাপন করা হয় — জাভা সিনট্যাক্স অনুসন্ধানের সপ্তম এবং অষ্টম স্তরে। এখানেই ছাত্র প্রথম জাভা কালেকশন ফ্রেমওয়ার্ক সম্পর্কে শুনবে এবং সেট, লিস্ট এবং ম্যাপ ইন্টারফেসের সাথে তাদের কিছু বাস্তবায়নের সাথে একটু কাজ করবে। যাইহোক, এই পর্যায়ে আপনি এই দরকারী টুল এবং সহজ জাভা কাজগুলির শুধুমাত্র একটি ভূমিকা পাবেন। জাভা সংগ্রহ অনুসন্ধানের সময় আপনি সংগ্রহগুলি আরও পুঙ্খানুপুঙ্খভাবে অধ্যয়ন করবেন । আপনি দেখতে পাচ্ছেন যে এই বিষয়টি কতটা গুরুত্বপূর্ণ — একটি সম্পূর্ণ অনুসন্ধানের নামকরণ করা হয়েছে!

ব্যতিক্রম সহ অনুশীলন করুন

জাভা ব্যতিক্রমী পরিস্থিতি পরিচালনার জন্য একটি বিশেষ প্রক্রিয়া প্রদান করে, যা "ধরা" অ্যাপ্লিকেশন ত্রুটির প্রক্রিয়াটিকে উল্লেখযোগ্যভাবে সরল করে। কিন্তু এটির সবচেয়ে বেশি ব্যবহার করার জন্য, আপনাকে জাভাতে ব্যতিক্রম হ্যান্ডলিং কীভাবে কাজ করে তা খুঁজে বের করতে হবে। CodeGym-এ এই ধরনের অনেক কাজ আছে। এমনকি আপনি প্রথম অনুসন্ধানে তাদের মুখোমুখি হবেন — জাভা সিনট্যাক্স। আপনার কি ধরনের জাভা কাজ আছে?  - 2

টাইপ ঢালাই সঙ্গে অনুশীলন

কাজের এই গ্রুপটি অবশ্যই সিনট্যাক্সের মৌলিক কাজ হিসাবে শ্রেণীবদ্ধ করা যেতে পারে। যাইহোক, আমাদের নম্র মতে, লোকেরা প্রায়শই এই জাতীয় কাজগুলিকে কম প্রশংসা করে এবং নতুনরা সেগুলিতে ঝাঁপিয়ে পড়ে। এই কারণেই আমরা ছাঁচ ভেঙে ফেলি: আমরা আদিম ধরনের রূপান্তর কাজগুলিকে শুরুতেই অধ্যয়ন করি না যেমনটি অন্যরা প্রায়শই করে। পরিবর্তে, আমরা তাদের একটু পরে মোকাবেলা করব — জাভা সিনট্যাক্স অনুসন্ধানের শেষে। এবং তারপর আমরা জাভা কোর কোয়েস্টে OOP অধ্যয়ন করার সময় অ-আদিম প্রকার (বস্তু) কাস্ট করতে শিখব । কোডজিমের এই কাজগুলির যথেষ্ট পরিমাণ রয়েছে। আপনাকে আর দেখার দরকার নেই।

OOP এর সাথে অনুশীলন করুন

OOP সবচেয়ে কঠিন বিষয় নয়, তবে এটি অত্যন্ত গুরুত্বপূর্ণ। এবং এটি অনেক সূক্ষ্মতা লুকিয়ে রাখে যা ইন্টারভিউয়াররা জুনিয়র ডেভেলপারদের ধরতে ব্যবহার করতে পছন্দ করে। CodeGym কোর্সে নতুনদের জন্য ব্যবহারিক প্রোগ্রামিং কাজ রয়েছে যা আপনাকে অবজেক্ট-ওরিয়েন্টেড দর্শন বুঝতে সাহায্য করতে পারে। কিন্তু সত্যিই OOP বোঝার জন্য, আমরা আপনাকে সম্পর্কিত সাহিত্য পড়ার পরামর্শ দিই (উদাহরণস্বরূপ, Cay Horstmann's and Gary Cornell's "Core Java", McLaughlin এর "Object-Oriented Analysis and Design", বা অন্যান্য বই )

ইনপুট/আউটপুট স্ট্রিমগুলির সাথে অনুশীলন করুন

আমরা I/O স্ট্রীমগুলি বোঝার অনেক আগেই ব্যবহার শুরু করি। এই জাভা, আমার তরুণ ফড়িং! System.out ব্যাখ্যা করা, System.in কে একা ছেড়ে দিন, আপনি যখন প্রথম শুরু করবেন তখন কঠিন এবং অপ্রয়োজনীয়। কিন্তু আপনি জাভা কোর অনুসন্ধানের মাধ্যমে কাজ করার সময় , আপনি এই কিছুটা বিভ্রান্তিকর বিষয় বোঝার জন্য যথেষ্ট জানেন, এবং আমরা শুধুমাত্র কনসোল I/O নয়, ফাইল সিস্টেমের সাথেও কাজ করার বিষয়ে কথা বলি। মূল জিনিসটি হল এই কাজগুলি এড়িয়ে যাওয়া (কোডজিমে অনেকগুলি রয়েছে) এবং ধারাবাহিকভাবে তত্ত্বের মধ্যে অনুসন্ধান করা।

ধাঁধাঁর খেলা

"ব্রেইনটিজার" দ্বারা আমরা বোঝাই জটিলতার কাজগুলি যা জ্ঞান সম্পর্কে এত বেশি নয় যতটা আপনি যা জানেন তা অপ্রচলিত উপায়ে প্রয়োগ করার ক্ষমতা সম্পর্কে। এটি একটি জুনিয়র জাভা বিকাশকারীর জন্য সাধারণ কাজ। সংস্থাগুলি সাক্ষাত্কারের সময় তাদের জিজ্ঞাসা করতে খুব পছন্দ করে, তবে বাস্তব কাজে, এই জাতীয় ব্রেইনটিজারগুলি প্রায়শই সম্মুখীন হয় না। তাই কোডজিমের কিছু আছে, কিন্তু খুব বেশি নয় (আপনি সাধারণত ক্যাপ্টেন কাঠবিড়ালির পাঠে এগুলি দেখতে পাবেন)। আপনার কি ধরনের জাভা কাজ আছে?  - 3আমি ব্রেইনটিজার কোথায় পেতে পারি?

অ্যালগরিদম এবং ডেটা স্ট্রাকচার

অ্যালগরিদম এবং ডেটা স্ট্রাকচারের জন্য, ভবিষ্যতের প্রোগ্রামারের তাদের কতটা প্রয়োজন তা নিয়ে ধ্রুবক বিতর্ক রয়েছে। আমরা আবার উত্তর দেব: সঠিক মানসিকতা প্রতিষ্ঠার জন্য এগুলি অপরিহার্য, কিন্তু কাজের জন্য এগুলি খুব কমই সরাসরি প্রয়োজন। এর কারণ হল জাভা, সেইসাথে অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ, বাছাই, অনুসন্ধান এবং আরও অনেক কিছুর জন্য প্রতিটি কল্পনাযোগ্য অ্যালগরিদমের বাস্তবায়ন সহ লাইব্রেরি রয়েছে। তবুও, একটি অ্যালগরিদমের আপনার নিজের বাস্তবায়ন লেখা খুবই সহায়ক হতে পারে এবং আপনাকে এর জটিলতা সম্পর্কে ধারণা দিতে পারে। বিশেষ করে যারা শুধুমাত্র উচ্চ বিদ্যালয়ে গণিত অধ্যয়ন করেছেন তাদের জন্য। মূলত, এই কাজগুলিকে ব্রেইনটিজারের সাথে বিনিময় করা যেতে পারে একমাত্র পার্থক্যের সাথে যে সেগুলি সমস্ত বর্ণনা করা হয়েছে এবং বারবার অনলাইনে সমাধান করা হয়েছে। আপনার এমনকি একটি যাচাইকারী সরঞ্জামের প্রয়োজন নেই। প্রিন্সটন ইউনিভার্সিটি থেকে যেকোনো কোর্স বেছে নিনবা ক্যালিফোর্নিয়ার একটি কলেজ । ডেটা স্ট্রাকচারের সাথে অনুশীলন করুন:

মাল্টিথ্রেডিং

যে কেউ একটি "হ্যালো, বিশ্ব!" কার্যক্রম. কিন্তু কিভাবে জাভা থ্রেড API ব্যবহার করে একটি পৃথক থ্রেড থেকে বিখ্যাত বাক্যাংশ প্রদর্শন করতে? অথবা "হ্যালো, ওয়ার্ল্ড!" স্ট্রিংগুলি মিশ্রিত না করে পাঁচটি ভিন্ন থ্রেড থেকে পাঁচ বার? আপনি জাভা কোর অধ্যয়ন করার সাথে সাথে মাল্টিথ্রেডিং হবে সেরা "আপনার শক্তির পরীক্ষা"। জাভা মাল্টিথ্রেডিং নামে একটি সম্পূর্ণ কোডজিম কোয়েস্ট এই বিষয়ে নিবেদিত, যা সহজ নয়। শিক্ষার্থীদের সমান্তরাল প্রক্রিয়াকরণের "বেদনা এবং সৌন্দর্য" অনুভব করার অনুমতি দেওয়ার জন্য এটিতে প্রচুর সংখ্যক কাজ রয়েছে। শিক্ষার্থীদের প্রথম "বাস্তব" প্রকল্পে সাধারণত কিছু স্তরের মাল্টিথ্রেডিং থাকে। উদাহরণস্বরূপ, সাধারণ গেম। আপনার কি ধরনের জাভা কাজ আছে?  - 4

মাল্টিথ্রেডিংয়ের সাথে অনুশীলন করুন

পাঁচজন নীরব দার্শনিক একটি গোল টেবিলে বসে আছেন। তাদের প্রত্যেকের সামনে স্প্যাগেটির একটি প্লেট। প্রতিটি দার্শনিকের (একটি বাম থেকে এবং একটি ডানে) টেবিলে কাঁটা রয়েছে। প্রতিটি দার্শনিক হয় খেতে পারেন বা গভীর চিন্তা করতে পারেন। কিন্তু সে বা সে কেবল দুটি কাঁটা ধরলেই খেতে পারে, অর্থাৎ বাম দিকের একটি এবং ডানদিকে একটি তুলে নিয়ে। "পিক আপ ফর্ক" এবং "পুট ডাউন ফোর্ক" হল স্বতন্ত্র ক্রিয়া যা ক্রমানুসারে সম্পাদিত হয়।

জেনেরিকের সাথে অনুশীলন করুন

সাধারণীকরণ হল অটোমেশনের সারাংশ, তাই কিছু অর্থে এটি প্রোগ্রামিংয়ের সারাংশ। তদনুসারে, আমরা জাভাতে জেনেরিকের বিষয়টি উপেক্ষা করতে পারি না। কোডজিমের প্রোগ্রামিং কাজ রয়েছে যা জেনেরিকের সাথে জড়িত (প্রধানত জাভা কালেকশন কোয়েস্টে, লেভেল 5 থেকে শুরু হয়)। আমি জেনেরিকের উপর দরকারী ব্যায়াম এবং উপকরণ কোথায় পেতে পারি?

নকশা নিদর্শন সঙ্গে অনুশীলন

কিছু সময়ে (কোডজিম কোর্সের মাধ্যমে দুই-তৃতীয়াংশ), শিক্ষানবিস প্রোগ্রামারদের অবশ্যই প্রোগ্রামিংয়ে ভাল ফর্ম অর্জনের নিয়মগুলি দেখতে শুরু করতে হবে। আমরা সঠিক কোড ফরম্যাটিং (সহজ) এবং ডিজাইন প্যাটার্ন (আরও কঠিন) সম্পর্কে কথা বলছি। কোডজিমের এর জন্য কাজ রয়েছে। আপনার আরও প্রয়োজন হবে এবং আপনি এলিজাবেথ ফ্রিম্যান এবং ক্যাথি সিয়েরার " হেড ফার্স্ট ডিজাইন প্যাটার্নস " এ খুঁজে পেতে পারেন। অথবা আপনি কীভাবে পূর্বে সমাধান করা কাজগুলিতে ডিজাইন প্যাটার্ন প্রয়োগ করতে পারেন সে সম্পর্কে চিন্তা করতে পারেন।

অংশ পরিক্ষাকরণ

যেকোনো প্রোগ্রামারের জন্য একটি গুরুত্বপূর্ণ দক্ষতা, প্রায়শই ভুলভাবে শুধুমাত্র পরীক্ষকদের জন্য দায়ী করা হয়, তার নিজের কোডের জন্য ইউনিট পরীক্ষা লেখার ক্ষমতা। কোডজিমের ইউনিট পরীক্ষার সাথে সম্পর্কিত কয়েকটি কাজ রয়েছে, তবে আপনাকে আরও অনুসন্ধান করার জন্য সত্যিই বিরক্ত করার দরকার নেই। আপনি যখন বুঝবেন কিভাবে ইউনিট পরীক্ষা লিখতে হয়, তখন তাদের সাথে আপনার কোড (নিজস্ব প্রকল্পে, আপনার পড়াশোনায়) কভার করার অভ্যাস করুন। কনসোল আউটপুট দিয়ে চেক করার চেয়ে এটি অনেক বেশি সহায়ক, এমন একটি অনুশীলন যা সাধারণত ছাত্র প্রোগ্রামারদের কষ্ট দেয়। এছাড়াও, প্রায়শই নতুন জুনিয়র ডেভেলপারদের কোম্পানিতে প্রথম যে কাজটি দেওয়া হয় তা হল অন্য কারও কোডের জন্য ইউনিট পরীক্ষা লেখা।

নিয়মিত অভিব্যক্তি সহ অনুশীলন করুন

এটি একটি সাধারণ বিষয় যা প্রায় কোনও নতুনরা বুঝতে পারে না, কারণ এটি অপরিচিত এবং তারা অলস। বিষয়টি অধ্যয়ন করার জন্য কয়েক দিন ব্যয় করা, "রেজেক্স" এর নীচে যাওয়া এবং যারা এটি করেননি তাদের থেকে একটি সুবিধা অর্জন করা সত্যিই সার্থক। এটিও সহায়ক কারণ নিয়মিত অভিব্যক্তি প্রায় ভাষা-স্বাধীন: আপনি যদি সেগুলি একবার শিখেন, আপনি সেগুলি সর্বত্র ব্যবহার করতে সক্ষম হবেন৷ কোডজিমের নিয়মিত অভিব্যক্তির জন্য নিবেদিত কোনও কাজ নেই, যদিও কিছু তাদের সাহায্যে সমাধান করা যেতে পারে। এই বিষয়টি বোঝার জন্য এখানে অতিরিক্ত সংস্থান রয়েছে:
  • regex101.com — একটি ওয়েবসাইট যেখানে আপনি অনলাইনে রেগুলার এক্সপ্রেশন চেক করতে পারেন
  • মাইক ফিটজেরাল্ডের "নিয়মিত অভিব্যক্তি প্রবর্তন" — একটি সংক্ষিপ্ত এবং সহজ প্রাইমার।
আপনার কি ধরনের জাভা কাজ আছে?  - 5

জাভা সম্পর্কে কৌতুক প্রশ্নগুলির সাথে অনুশীলন করুন

এই বিষয়শ্রেণীতে জটিল কাজগুলি সাধারণত বাস্তব প্রোগ্রামিং কাজের সাথে সরাসরি সম্পর্কিত নয়। তারা প্রধানত সাক্ষাত্কারের সময় সম্মুখীন হয়, যেখানে তারা একটি প্রার্থীর একটি নির্দিষ্ট প্রযুক্তির বোঝার/জ্ঞানের গভীরতা বোঝার জন্য বা বিস্তারিতভাবে তার মনোযোগ পরীক্ষা করার জন্য ব্যবহার করা হয়। আপনার যদি এই ধরনের কাজের প্রয়োজন হয়, তাহলে গুগলে "জাভা ইন্টারভিউ প্রশ্ন" বা অনুরূপ কিছু অনুসন্ধান করুন। আপনি সম্ভবত সমস্যা সেটের একটি গুচ্ছ, সেইসাথে সব ধরণের ফোরামে প্রশ্ন এবং উত্তর পাবেন। তাদের বোঝা ভাল, কিন্তু তাদের জন্য অত্যধিক সময় ব্যয় করা কি সার্থক? InformIT-এর জন্য একটি নিবন্ধে, Cay Horstmann একবার এই ধরনের কাজ সম্পর্কে একটি ভাল পয়েন্ট তৈরি করেছিলেন। সংক্ষিপ্তভাবে তার চিন্তাভাবনা ব্যাখ্যা করার জন্য, বাস্তব-জগতের কাজ রয়েছে এবং "সাক্ষাৎকারের প্রশ্ন" এর সমান্তরাল মহাবিশ্ব রয়েছে।

ল্যাম্বডা এক্সপ্রেশনের সাথে অনুশীলন করুন

ল্যাম্বডা এক্সপ্রেশনের জন্য সমর্থন জাভা 8 এ উপস্থিত হয়েছে, কিন্তু সেগুলি এখনও সমস্ত প্রোগ্রামারদের দ্বারা উত্সাহের সাথে ব্যবহার করা হয়নি। তবুও, আজ "জুনিয়র জাভা ডেভেলপারদের জন্য কাজ" ধারণার মধ্যে ল্যাম্বডা এক্সপ্রেশনের সাথে ক্রিয়াকলাপ অন্তর্ভুক্ত রয়েছে, তাই আমরা তাদের সাথে পরিচিত হওয়ার পরামর্শ দিই

নেটওয়ার্কের সাথে কাজ করার অভ্যাস করুন

JSON, RMI, HttpUrlConnection, সকেটগুলিতে সিরিয়ালাইজেশন... এগুলো নতুনদের জন্য ঠিক প্রোগ্রামিং বিষয় নয়। তাদের দৃঢ় দক্ষতা প্রয়োজন এবং এটি আপনার নিজস্ব প্রকল্প, ইন্টার্নশিপ এবং কর্মসংস্থানের সেতুর মতো কিছু। CodeGym-এর উন্নত স্তরে (জাভা কালেকশন কোয়েস্ট) আপনাকে এই কৌশলগুলি এবং প্রযুক্তিগুলি আয়ত্ত করতে সাহায্য করার জন্য প্রচুর অনুশীলন রয়েছে, তবে আপনি একটি অনলাইন ইন্টার্নশিপ সম্পূর্ণ করার সাথে সাথে সবকিছু আরও পরিষ্কার হয়ে যাবে।