ওহে! আজ আমরা একজন জাভা ডেভেলপারের বৃদ্ধির পথ এবং চাহিদার জন্য তাকে কী জানতে হবে সে সম্পর্কে কথা বলব। একটি সাক্ষাত্কারে, যে কোনও বিকাশকারী চাকরি প্রার্থীকে গ্রিল করতে পারে। উদাহরণস্বরূপ, তারা তাদের বর্তমান প্রকল্পে যে নির্দিষ্ট বিষয়গুলির সম্মুখীন হয়েছে সে সম্পর্কে প্রশ্ন জিজ্ঞাসা করা শুরু করতে পারে। কিন্তু সবকিছু না জেনে স্বাভাবিক। আপনি কিছু প্রশ্নের উত্তর দিতে পারবেন না এটাও স্বাভাবিক। একটি সাধারণ নিয়ম হিসাবে, প্রতিটি জাভা প্রোগ্রামারের অবশ্যই সফ্টওয়্যার বিকাশের প্রাথমিক ধারণা থাকতে হবে। তো চলুন এক নজরে দেখে নেওয়া যাক কি "মৌলিক" বলে বিবেচিত হয়।
আপনার এটিকে প্রথমে রাখা উচিত, যাতে আপনি বুঝতে পারেন যে স্প্রিং কী - সবই স্প্রিং কন্টেনার, মটরশুটি, DI, IoC এবং আরও অনেক কিছু। স্প্রিং ব্যবহার করার খুব দর্শন বুঝতে, তাই কথা বলতে. স্প্রিং ফ্রেমওয়ার্ক সম্পর্কে আপনার আরও অধ্যয়ন এই বেসের উপরে তৈরি হবে। সম্ভবত আপনার নিজের একটি ছোট অ্যাপ্লিকেশন তৈরি করা উচিত যাতে আপনি ধীরে ধীরে সমস্ত নতুন শেখা প্রযুক্তি অন্তর্ভুক্ত করতে পারেন।
এর আগে আমরা ডাটাবেস সংযোগ তৈরির জন্য একটি প্রযুক্তি হিসাবে JDBC উল্লেখ করেছি। সাধারণভাবে, প্রযুক্তির "নগ্ন" ব্যবহার আর প্রকল্পগুলিতে পাওয়া যাবে না, তাই আপনি উপসংহারে আসতে পারেন যে JDBC শেখার প্রয়োজন নেই। এটি পুরোপুরি সঠিক মনোভাব নয়। জেডিবিসির নগ্ন (সরাসরি) ব্যবহার অন্বেষণ করে, আপনি প্রযুক্তিটিকে নিম্ন স্তরে দেখতে পারেন এবং এর সমস্যা এবং ত্রুটিগুলি বুঝতে পারেন। তারপর যখন আপনি স্প্রিং জেডিবিসি শেখা শুরু করবেন, তখন আপনি বুঝতে পারবেন যে এই কাঠামোটি ঠিক কী উন্নতি করে, অপ্টিমাইজ করে এবং লুকিয়ে রাখে।
নগ্ন JDBC-এর পরিস্থিতির সাথে সাদৃশ্যপূর্ণ, এই কাঠামোটি একটি বিদ্যমান প্রযুক্তির ব্যবহার করে, এই ক্ষেত্রে, হাইবারনেট। আপনি যদি স্প্রিং ছাড়া হাইবারনেট ব্যবহার করার কথা বিবেচনা করেন, তাহলে আপনি অবশ্যই স্প্রিং হাইবারনেটের সুবিধাগুলি উপলব্ধি করতে পারবেন।
এর আগে আমরা JPA সম্পর্কে কথা বলেছি এবং উল্লেখ করেছি যে এটি শুধুমাত্র একটি স্পেসিফিকেশন, যদিও এর বিভিন্ন বাস্তবায়ন রয়েছে। এই বাস্তবায়নের মধ্যে, হাইবারনেট আদর্শের সবচেয়ে কাছাকাছি আসে। বসন্তের নিজস্ব আদর্শ JPA বাস্তবায়ন রয়েছে যা হুডের নিচে হাইবারনেট ব্যবহার করে। এটি JPA স্পেসিফিকেশনের আদর্শের যতটা সম্ভব কাছাকাছি। একে স্প্রিং জেপিএ বলা হয়। এক কথায়, এটি ডাটাবেস অ্যাক্সেসকে ব্যাপকভাবে সরল করে। আপনি JDBC, হাইবারনেট, স্প্রিং JDBC, বা স্প্রিং হাইবারনেট না শিখে শুধুমাত্র JPA শিখতে পারেন। কিন্তু আপনি যদি এই পদ্ধতিটি গ্রহণ করেন তবে কীভাবে একটি ডাটাবেসের সাথে সংযোগ স্থাপন করতে হয় সে সম্পর্কে আপনার জ্ঞান খুব ভাসা ভাসা হবে।
এই প্রযুক্তি ব্যবহারকারীদের কাছে আমাদের অ্যাপ্লিকেশনের ওয়েব ইন্টারফেস প্রদর্শন করা এবং ইন্টারফেস এবং অ্যাপ্লিকেশনের বাকি অংশগুলির মধ্যে যোগাযোগের সুবিধা প্রদান করা সম্ভব করে তোলে। প্রযুক্তিটি প্রদর্শন ছাড়াই ব্যবহার করা যেতে পারে যখন আপনার কাছে একটি অ্যাপ্লিকেশন থাকে যা ডিসপ্লে পরিচালনার জন্য দায়ী এবং আপনি RESTful প্রযুক্তি ব্যবহার করে অ্যাপ্লিকেশনটির সাথে ইন্টারঅ্যাক্ট করছেন৷ প্রবন্ধ এবং YouTube বক্তৃতা ছাড়াও, বসন্ত সম্পর্কে তথ্য ভালভাবে ভিজিয়ে রাখার জন্য, আপনি বেশ কয়েকটি বই পড়তে পারেন। আমি ক্রেগ ওয়ালসের "স্প্রিং ইন অ্যাকশন" বইটি সত্যিই পছন্দ করেছি। আমি আপনাকে 6 তম সংস্করণ পড়ার পরামর্শ দিচ্ছি, যদি আপনি ইংরেজি ভাল জানেন। বসন্তের উপর আরেকটি দুর্দান্ত বই হল "প্রফেশনালদের জন্য বসন্ত 5"। এটা আরো ঘন. একটি রেফারেন্সের মতো যা কভার থেকে কভার পড়ার চেয়ে হাতের কাছে রাখা বেশি মূল্যবান।
এই প্রযুক্তিটি বসন্তের ব্যবহারকে ব্যাপকভাবে সরল করে। আমি এটিকে তালিকার শেষে রাখিনি। প্রকৃতপক্ষে, এটি হুডের নীচে অনেক কিছু লুকিয়ে রাখে এবং ভ্যানিলা স্প্রিং এর সাথে অপরিচিত কারো জন্য, অনেক পয়েন্ট অস্পষ্ট বা বোধগম্য হতে পারে। প্রথমত, স্প্রিং ফ্রেমওয়ার্কগুলি কীভাবে কাজ করে তা আরও ভালভাবে বোঝার জন্য, আপনার নিয়মিত স্প্রিং ব্যবহার করা উচিত এবং তারপরে স্প্রিং বুট ব্যবহার করার সমস্ত উচ্চতর সুবিধাগুলি বেছে নেওয়া উচিত। আমি আপনাকে স্প্রিং সিকিউরিটি এবং স্প্রিং এওপির সাথে পরিচিত হওয়ার পরামর্শ দিচ্ছি। কিন্তু উপরের প্রযুক্তির বিপরীতে, এই দুটির গভীর জ্ঞানের এখনও প্রয়োজন নেই। এই প্রযুক্তি নতুনদের জন্য নয়। সাক্ষাত্কারে, জুনিয়র devs তাদের সম্পর্কে জিজ্ঞাসা করা হবে না (একটি অতিসাধারণ প্রশ্ন বাদে, সম্ভবত)। এই প্রযুক্তিগুলি কী এবং তাদের কাজের পিছনের নীতিগুলির একটি সংক্ষিপ্ত বিবরণ পড়ুন৷ এই অনুচ্ছেদে, আমি বারবার বই পড়ার কথা বলেছি। একদিকে, এটি বাধ্যতামূলক নয়। অনলাইন নিবন্ধ এবং প্রশিক্ষণ ভিডিও থেকে সমস্ত প্রয়োজনীয় জ্ঞান অর্জন করে আপনি একটি বই না পড়েই একজন প্রোগ্রামার হতে পারেন। অন্যদিকে, চাকরির বাজারে, নবাগত বিকাশকারীদের মধ্যে প্রতিযোগিতা বর্তমানে বেশি, যা একজন শিক্ষানবিশের যা জানা দরকার তার জন্য বাধা বাড়ায়। সুতরাং, আপনি যত বেশি জানবেন, তত দ্রুত আপনি ইন্টারভিউয়ারকে আপনার জ্ঞানের স্তর দ্বারা প্রভাবিত করে আপনার প্রথম চাকরিটি খুঁজে পাবেন। ধন্যবাদ সবাইকে, এবং জাভা আপনার সাথে থাকতে পারে। যা একজন শিক্ষানবিশের যা জানা দরকার তার জন্য বার বাড়ায়। সুতরাং, আপনি যত বেশি জানবেন, তত দ্রুত আপনি ইন্টারভিউয়ারকে আপনার জ্ঞানের স্তর দ্বারা প্রভাবিত করে আপনার প্রথম চাকরিটি খুঁজে পাবেন। ধন্যবাদ সবাইকে, এবং জাভা আপনার সাথে থাকতে পারে। যা একজন শিক্ষানবিশের যা জানা দরকার তার জন্য বার বাড়ায়। সুতরাং, আপনি যত বেশি জানবেন, তত দ্রুত আপনি ইন্টারভিউয়ারকে আপনার জ্ঞানের স্তর দ্বারা প্রভাবিত করে আপনার প্রথম চাকরিটি খুঁজে পাবেন। ধন্যবাদ সবাইকে, এবং জাভা আপনার সাথে থাকতে পারে।
1. মৌলিক অ্যালগরিদম
প্রোগ্রামিং (শুধু জাভা নয়) শিখতে শুরু করার সময় প্রথম যে জিনিসটি মোকাবেলা করতে হবে তা হল বেসিকগুলি বোঝা। উদাহরণস্বরূপ, অ্যালগরিদম। তাদের মধ্যে অসীম সংখ্যক রয়েছে, এবং যতটা সম্ভব অ্যালগরিদম শেখার চেষ্টা করে আপনার জীবনের পুরো বছরগুলিকে হত্যা করা উচিত নয়: তাদের বেশিরভাগই আপনার পক্ষে কার্যকর হবে না। আপনি "গ্রোকিং অ্যালগরিদম" বই থেকে প্রয়োজনীয় ন্যূনতম জ্ঞান পেতে পারেন। এটি আপনাকে শুরু করার জন্য যথেষ্ট, তবে আপনি যদি চান তবে আপনি রবার্ট সেজউইক এবং কেভিন ওয়েনের "স্ট্রাকচারস অ্যান্ড অ্যালগরিদম" বা "জাভাতে অ্যালগরিদম" বই থেকে শিখতে পারেন। আমি আপনাকে কম্পিউটার বিজ্ঞানের বুনিয়াদি সম্পর্কে আপনার জ্ঞান উন্নত করার পরামর্শ দিচ্ছি। এটি হার্ভার্ড CS50 কোর্সের সাথে করা যেতে পারে।2. জাভা সিনট্যাক্স
অ্যালগরিদমের মূল বিষয়গুলি শেখার পরে, আমাদের জাভা সিনট্যাক্স শিখতে হবে। সর্বোপরি, আমরা সবাই এখানে জাভা প্রোগ্রামার হওয়ার জন্য পড়াশোনা করছি, তাই না? কোডজিম কোর্সটি এর জন্য উপযুক্ত। আপনি অসংখ্য কাজ সম্পাদন করার সাথে সাথে আপনি জাভা সিনট্যাক্সে আপনার হাত পাবেন এবং তারপরে, খুব দ্বিধা ছাড়াই, আপনি জাভা কোড লিখবেন/পড়বেন যেন এটি আপনার মাতৃভাষা। কোডজিম হল অনুশীলন, তবে এর বাইরে, আপনি কী করছেন তা বোঝার জন্য আপনাকে তত্ত্বটিও দেখতে হবে। এটি করার জন্য, আপনি বই পড়তে পারেন। উদাহরণস্বরূপ, নিম্নলিখিতগুলির মধ্যে একটি:- "হেড ফার্স্ট জাভা",
- ব্যারি বার্ডের "জাভা ফর ডামি";
- "জাভা: এ বিগিনারস গাইড" হার্বার্ট শিল্ডের।
- "জাভাতে চিন্তা করা," ব্রুস একেল;
- জোশুয়া ব্লচের "কার্যকর জাভা";
- "জাভা: দ্য কমপ্লিট রেফারেন্স" হার্বার্ট শিল্ড দ্বারা।
3. নকশা নিদর্শন
ডিজাইন প্যাটার্ন হল কিছু পুনরাবৃত্তিযোগ্য প্যাটার্ন যা প্রায়শই সম্মুখীন হওয়া প্রসঙ্গে সমস্যার সমাধান করে। তারা মৌলিক, সাধারণ নিদর্শনগুলি অন্তর্ভুক্ত করে যা প্রতিটি স্ব-সম্মানী প্রোগ্রামারকে জানা উচিত। এই বিষয়টি বুঝতে, "হেড ফার্স্ট ডিজাইন প্যাটার্নস" বইটি ধরুন। এটি একটি অ্যাক্সেসযোগ্য উপায়ে মৌলিক নকশা নিদর্শন ব্যাখ্যা করে। কিন্তু বইটি জাভা সম্পর্কে অনেক কথা বলে, তাই আপনি যখন এই বইটি ব্যবহার করবেন তখন আপনার এই প্রোগ্রামিং ভাষায় সাবলীলতাও প্রয়োজন হবে। প্যাটার্নগুলির আরও গভীরে ডুব দেওয়ার জন্য, আপনি গ্যাং অফ ফোর থেকে "ডিজাইন প্যাটার্নস: এলিমেন্টস অফ রিইউজেবল অবজেক্ট-ওরিয়েন্টেড সফ্টওয়্যার" পড়তে পারেন ( সম্পাদকের দ্রষ্টব্য: দ্য গ্যাং অফ ফোর লেখকদের একটি দল যার মধ্যে এরিখ গামা, রিচার্ড হেলম, রালফ রয়েছে জনসন, জন ভিলিসাইডস।) একবার আপনি এই বিষয়টি অধ্যয়ন করলে, আপনি আপনার কোডের কার্যত সর্বত্র নিদর্শনগুলি দেখতে শুরু করবেন৷ এটিতে মনোযোগ দিন, বিশেষ করে বসন্তে ব্যবহৃত নিদর্শনগুলিতে, যেহেতু এটি একটি জনপ্রিয় সাক্ষাত্কার প্রশ্ন।4. প্রোগ্রামিং দৃষ্টান্ত। কোড পরিচ্ছন্নতা
স্ট্যান্ডার্ড ডিজাইন প্যাটার্ন ছাড়াও, বিভিন্ন নীতি এবং দৃষ্টান্ত রয়েছে যা সম্পর্কে সচেতন হতে হবে ( SOLID , GRASP )। এছাড়াও আপনাকে আপনার কোড পরিষ্কার এবং পঠনযোগ্য রাখতে হবে। সবকিছুর জন্য, আপনাকে এই বিষয় সম্পর্কে জানতে হবে, রবার্ট মার্টিনের ক্লিন কোড দেখুন বা স্টিভ ম্যাককনেলের "কোড কমপ্লিট" দেখুন।5. এসকিউএল
আমাদের পরবর্তী পদক্ষেপ হল রিলেশনাল ডাটাবেসের জন্য একটি ভাষা অধ্যয়ন করা — SQL । ডেটাবেস হল যেখানে একটি ওয়েব অ্যাপ্লিকেশন দ্বারা ব্যবহৃত তথ্য (ডেটা) সংরক্ষণ করা হয়। একটি ডাটাবেস বেশ কয়েকটি টেবিল নিয়ে গঠিত (আপনার ফোনের ঠিকানা বইটি একটি সাধারণ উদাহরণ)। জাভা বিকাশকারীরা শুধুমাত্র জাভা অ্যাপ্লিকেশনের জন্যই দায়ী নয়, এটি যে ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করে এবং যেখানে এটি তার ডেটা সংরক্ষণ করে তার জন্যও দায়ী৷ রিলেশনাল ডাটাবেসে (যা সবচেয়ে সাধারণ প্রকার), সমস্ত মিথস্ক্রিয়া স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ বা SQL নামে একটি বিশেষ ভাষার মাধ্যমে ঘটে। এই বিষয়টি বোঝার জন্য, আপনাকে যা করতে হবে তা হল এই বইগুলির একটি পড়তে:- অ্যালান বিউলিউ দ্বারা "লার্নিং এসকিউএল";
- ক্রিস ফেহিলির "SQL";
- লিন বেইগলির "হেড ফার্স্ট এসকিউএল"।