
প্রবেশ থ্রেশহোল্ড: উচ্চ, নিম্ন, মাঝারি
প্রোগ্রামাররা প্রায়ই "এন্ট্রি থ্রেশহোল্ড" সম্পর্কে কথা বলে — একটি ধারণা যা কোনও প্রদত্ত "জুনিয়র ডেভেলপার" তার প্রথম গুরুতর প্রোগ্রাম লিখতে এবং চাকরি খোঁজার জন্য যথেষ্ট ভালভাবে একটি প্রোগ্রামিং ভাষা আয়ত্ত করার জন্য প্রয়োজনীয় প্রচেষ্টার পরিমাণ প্রতিফলিত করে। "প্রবেশ থ্রেশহোল্ড" এর জ্ঞান নিয়ে গঠিত:- সিনট্যাক্সের বিশেষত্ব এবং ভাষার সূক্ষ্মতা
- লাইব্রেরি
- অ্যালগরিদম এবং ডেটা স্ট্রাকচার।
ওয়েব না ওয়েব?
ওয়েব
ওয়েব প্রোগ্রামারদের ফ্রন্টএন্ড এবং ব্যাকএন্ড ডেভেলপারদের মধ্যে ভাগ করা যায় । এই শর্তাবলী মানে কি আপনি বুঝতে হবে. ফ্রন্টএন্ড ডেভেলপাররা ক্লায়েন্ট সাইডের সাথে জড়িত, অর্থাৎ ব্যবহারকারী যা দেখেন। "ব্যাকএন্ড" হ'ল ডেটা ম্যানিপুলেট করা এবং সংরক্ষণ করা - একটি পরিষেবার অংশ যা একটি সার্ভারে চলে। কোন প্রোগ্রামিং ভাষা শিখতে হবে তা সিদ্ধান্ত নেওয়ার জন্য একজন ফ্রন্টএন্ড বিকাশকারীর জন্য, জাভাস্ক্রিপ্ট এবং জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক (কৌণিক JS, প্রতিক্রিয়া এবং অন্যান্য) অপরিহার্য। JS উপভাষাগুলি, যেমন CoffeeScript এবং TypeScript, তাদের অভিভাবকদের মতো জনপ্রিয় নয়, তবে তারা দরকারীও হতে পারে। এছাড়াও একটি ফ্ল্যাশ AS আছে, এবং সেখানে JScript এবং VBScript ছিল, কিন্তু শুধুমাত্র ডাইনোসররাই এটি মনে রাখে =) এই সব ছাড়াও, আপনাকে HTML বুঝতে হবেএবং CSS ।
ওয়েব নয় (এন্টারপ্রাইজ, ডেস্কটপ, মোবাইল)
আমি ইচ্ছাকৃতভাবে নিম্নলিখিত প্রোগ্রামিং ভাষাগুলিকে একটি অদ্ভুত নামের সাথে এই বিভাগে সংযুক্ত করেছি। আপনি এন্টারপ্রাইজ, ডেস্কটপ, এমনকি মোবাইল অ্যাপ্লিকেশন লিখতে তাদের বেশিরভাগ ব্যবহার করতে পারেন। পাইথন একটি সহজে বোঝা যায় এমন অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং গ্রোথ মেশিন লার্নিং (ML) এর কারণে সম্প্রতি অবিশ্বাস্যভাবে জনপ্রিয় হয়ে উঠেছে: ML ডেভেলপাররা পাইথনের ব্যাপক ব্যবহার করে। এমএলএটি আইটি-তে একটি মোটামুটি নতুন এলাকা, এবং যদিও আমরা ইতিমধ্যেই এটিকে ফল দিতে দেখেছি, একটি প্রোগ্রামিং ভাষা বেছে নেওয়ার সময় আমি এই শিল্পে তাড়াহুড়ো করব না। প্রথমত, আপনার গণিতের একটি চমৎকার বোঝার প্রয়োজন হবে। দ্বিতীয়ত, জনপ্রিয়তার ঢেউ একইভাবে পাস হতে পারে যেমনটি "ব্লকচেন" বা "ন্যানোটেকনোলজি" এর জন্য করেছিল। এটি বলেছিল, আপনি মনে করতে পারেন যে পাইথন ওয়েব বিকাশে ব্যবহৃত হয়। সি++: একটি ক্লাসিক ভাষা যেখানে সবকিছু "প্লাস-প্লাস" অপারেটরের উপর নির্মিত। এই ভাষাটি সমস্ত জনপ্রিয় অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষার পূর্বপুরুষ এবং একজন শিক্ষানবিশের অবশ্যই এটিতে মনোযোগ দেওয়া উচিত। এটি ব্যবহার করে অনেক জনপ্রিয় অ্যাপ্লিকেশন লেখা হয়েছে। কিন্তু "নিজেকে পায়ে গুলি করার" চমৎকার সুযোগ এবং সিনট্যাক্স বোঝা কঠিন হওয়ার সম্ভাবনা শূন্যের কোঠায় নিয়ে আসে যে একজন শিক্ষানবিস প্রোগ্রামিং-এর এই মাস্টোডনকে আয়ত্ত করবে। কোটলিন, যা হিপস্টারদের জন্য জাভার মতো, এটি ওওপি এবং কার্যকরী প্রোগ্রামিংয়ের একটি পাগল মিশ্রণ। এটি সম্প্রতি জনপ্রিয় হয়েছে কারণ একজন অভিজ্ঞ ডেভেলপার জাভা থেকে কোটলিনে স্যুইচ করে তার উৎপাদনশীলতাকে গুরুত্ব সহকারে উন্নত করতে পারে। একজন অভিজ্ঞ বিকাশকারী দ্রুত এই প্রোগ্রামিং ভাষাতে স্বাচ্ছন্দ্য বোধ করবেন। যাইহোক, একই জিনিস স্কালাতে প্রযোজ্য, তবে কোটলিন অ্যান্ড্রয়েড বিশ্বে জনপ্রিয়। জাভা নতুনদের শেখার জন্য সহজ। বিশেষ করে CodeGym =) জাভা সিনট্যাক্সের সাহায্যে বোধগম্য এবং যদিও "নিজেকে পায়ে গুলি করার" ঝুঁকি রয়েছে, এটি সমালোচনামূলক নয়।OOP বা POP?
পদ্ধতিগত পদ্ধতি
পদ্ধতি-ভিত্তিক পদ্ধতির মধ্যে একটি প্রোগ্রাম লেখার সাথে ক্রমিক বিবৃতি রয়েছে যা একটি নির্দিষ্ট সমষ্টিকে কার্যকরভাবে সমাধান করার জন্য একত্রিত করা যেতে পারে। এই ধরনের ভাষাগুলির মধ্যে রয়েছে C , PureBasic এবং Pascal । অন্য কথায়, যে ভাষাগুলি উচ্চ বিদ্যালয়ের ছাত্র এবং স্নাতকদের হতাশা নিয়ে আসে। তুলনামূলকভাবে তরুণ জিওও আছেভাষা. এটি বলেছিল, পদ্ধতিগত ভাষার সাথে পরিচিত হওয়া একজন সম্ভাব্য বিকাশকারীর জন্য খুব দরকারী। পদ্ধতিগত ভাষায় আমার নিমজ্জন ওলফ্রাম ম্যাথমেটিকা সিস্টেম এবং বিশ্ববিদ্যালয়ের গবেষণার সাথে এসেছে। সঠিক অ্যালগরিদম এবং সহজ পদ্ধতি, প্রোগ্রামের শুরু থেকে শেষ পর্যন্ত রৈখিকভাবে সরানো, আমাকে আধুনিক তাত্ত্বিক পদার্থবিদ্যার সাথে প্রাসঙ্গিক মানগুলি গণনা করার অনুমতি দিয়েছে। এই "অনুক্রমিক" প্রোগ্রামিং ভাষাটি আপনাকে বুঝতে সাহায্য করার জন্য যে কখনও কখনও কোড লেখা সহজ হয় যা ম্যানুয়ালি গণনা সম্পাদন করে। শেখার পদ্ধতি-ভিত্তিক প্রোগ্রামিং (POP) ভাল অ্যালগরিদমিক প্রশিক্ষণ প্রদান করে, যা একজন নিয়োগকর্তা প্রায় সবসময় একজন চাকরি প্রার্থীর মধ্যে দেখতে চান। আইটি-তে সম্পূর্ণরূপে সবকিছু পদ্ধতিগত ভাষার ভিত্তির উপর নির্মিত, তাই তাদের অবমূল্যায়ন করবেন না। যাইহোক, কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখতে হবে তা স্থির করা নতুনরা প্রায়ই মনে করে যে শুধুমাত্র OOP ভাষাগুলি মাল্টিথ্রেডিং সমর্থন করে। এটা সত্য নয়। পদ্ধতিগত প্রোগ্রামিং ভাষাগুলি সমান্তরাল গণনার অনুমতি দেয়।
অবজেক্ট ওরিয়েন্টেড পন্থা
যারা পদ্ধতিগত ভাষা দিয়ে শুরু করেছেন তারা সাধারণত গণিত, অ্যালগরিদম এবং ডেটা স্ট্রাকচারে পারদর্শী (এই ক্ষেত্রগুলিতে প্রযুক্তিগত বিশ্ববিদ্যালয়গুলির জোরের কারণে)। তবুও, বাস্তবতা হল যে সফল প্রোগ্রামাররা সাধারণত তারাই যারা প্রোগ্রামিং-এর একটি ভিন্ন পদ্ধতি আয়ত্ত করেছেন: অবজেক্ট-ওরিয়েন্টেড প্যারাডাইম। OOP মতাদর্শ আপনাকে সত্যিকারের বিশ্বব্যাপী সিস্টেম তৈরি করতে দেয়। এই পদ্ধতির একটি বৈশিষ্ট্য হল বাস্তব বিশ্বের সাথে এর মিল:- বিভিন্ন বস্তু একে অপরের সাথে যোগাযোগ করে এবং একে অপরের থেকে স্বাধীনভাবে বিদ্যমান।
- বস্তুর একটি শ্রেণিবিন্যাস আছে এবং তারা তাদের পূর্বপুরুষদের আচরণ গ্রহণ বা পরিবর্তন করতে পারে।
- আপনি বিমূর্ত ধারণা ব্যবহার করতে পারেন, কিন্তু বাস্তবে বিদ্যমান বস্তুগুলিই ইন্টারঅ্যাক্ট করতে পারে।
উদাহরণ পদ্ধতি-ভিত্তিক ভাষাগুলি নির্দিষ্ট সমস্যা সমাধানের সরঞ্জাম। যদি আপনার টাস্ক পরিবর্তিত হয়, এমনকি সামান্য, আপনাকে সম্ভবত সমস্ত অ্যালগরিদম পুনরায় লেখার জন্য সময় এবং প্রচেষ্টা ব্যয় করতে হবে। এমন একটি প্রোগ্রাম কল্পনা করুন যা একটি গাড়ির ডিলারশিপ বর্ণনা করে যা নতুন এবং ব্যবহৃত উভয়ই গাড়ি এবং ট্রাক বিক্রি করে। একটি পদ্ধতিগত ভাষায়, আপনাকে এমন ফাংশনগুলি সংজ্ঞায়িত করতে হবে যা প্রতিটি সত্তার জন্য ডেটা ইনপুট বা আউটপুট প্রক্রিয়া করে: একটি নতুন গাড়ি, একটি নতুন ট্রাক, একটি ব্যবহৃত গাড়ি এবং একটি ব্যবহৃত ট্রাক৷ OOP কি অফার করে? একটি অবজেক্ট-ওরিয়েন্টেড পদ্ধতির সাথে, আমাদের শুধুমাত্র একটি যানবাহন বেস ক্লাস সংজ্ঞায়িত করতে হবে যা সমস্ত গাড়ির প্রকারের দ্বারা ভাগ করা বৈশিষ্ট্যগুলিকে সঞ্চয় করে:
এবং তথ্য গ্রহণ এবং পাঠানোর পদ্ধতি। তারপরে আমরা এমন বস্তু তৈরি করি যা যানবাহন শ্রেণীর বৈশিষ্ট্যগুলির উত্তরাধিকারী হয়: গাড়ি এবং ট্রাক। এগুলিতে তথ্য রয়েছে যা বিশেষভাবে এই ধরণের যানবাহনের সাথে সম্পর্কিত, সেইসাথে ইনপুট/আউটপুট পদ্ধতি। হঠাৎ, ডিলারশিপের ব্যবস্থাপনা মোটরসাইকেল অফার করে লাইনআপ প্রসারিত করার সিদ্ধান্ত নেয়। পদ্ধতিগত পদ্ধতির অধীনে, আমাদের নতুন এবং ব্যবহৃত মোটরসাইকেলগুলির জন্য সমস্ত যুক্তি পুনরায় তৈরি করতে হবে, যখন একটি OOP ভাষা আমাদের কেবল একটি নতুন মোটরসাইকেল ক্লাস তৈরি করতে দেয় যা যানবাহন সুপারক্লাসের সমস্ত বৈশিষ্ট্য উত্তরাধিকার সূত্রে প্রাপ্ত হয় এবং এতে মোটরসাইকেল-নির্দিষ্ট পরিমার্জন রয়েছে। এবং আমরা বিভিন্ন যানবাহন যোগ করা হলে কি হবে? একটি পদ্ধতিগত বাস্তবায়নের জন্য ওওপির চেয়ে বেশি কাজের প্রয়োজন হবে। আরও কী, লাইনআপ যত বড় হবে, বস্তুর সাথে জড়িত কম অপারেশনের প্রয়োজন হবে। |
- OOP-তে পৃথক মডিউলগুলির স্বাধীন বিকাশ জড়িত, যা একজন প্রোগ্রামার বা দলকে যোগাযোগ এবং তথ্য বিনিময়ের পদ্ধতি এবং সীমানা বেছে নেওয়ার অনুমতি দেয়।
- ছোট মডিউলে বিভক্ত কোড একচেটিয়া পদ্ধতির চেয়ে পড়া অনেক সহজ। ফলস্বরূপ, একজন বহিরাগত আপনার কোডটি দ্রুত বুঝতে পারে এবং একইভাবে, প্রয়োজনে আপনি একটি নতুন প্রকল্পে যোগ দিতে পারেন।
- একটি শ্রেণী অন্যটির মিথস্ক্রিয়াকে প্রভাবিত না করে পরিবর্তন করা যেতে পারে, তবে এই ধরনের পরিবর্তন শিশু বস্তুর শ্রেণিবিন্যাসকে প্রভাবিত করতে পারে। একবার আপনি এই পদ্ধতিতে দক্ষতা অর্জন করলে, একটি প্রোগ্রাম প্রসারিত করা এবং পরিবর্তন করা তুচ্ছ হয়ে যায়।
-
ক্রস-প্ল্যাটফর্ম।
জাভা ভার্চুয়াল মেশিন (JVM) এর জন্য সব জায়গায় জাভা কাজ করে। এই ভাষার প্রধান সুবিধাগুলির মধ্যে একটি হল এর ক্রস-প্ল্যাটফর্ম প্রকৃতি: কোন লাইব্রেরি যোগ করতে হবে বা একটি নির্দিষ্ট প্রসেসরের আর্কিটেকচার নিয়ে ভাবার দরকার নেই। "একবার লিখুন, কোথাও দৌড়ান।"
-
ডকুমেন্টেশন।
একটি বিশাল ডকুমেন্টেশন বেস রয়েছে: অফিসিয়াল ওরাকল ডকুমেন্টেশন, প্রশিক্ষণ পোর্টাল এবং একটি ক্রমাগত বিকশিত সম্প্রদায়। বিকাশের সময় উত্থাপিত বেশিরভাগ প্রশ্নের উত্তর কয়েক মিনিটের মধ্যে পাওয়া যাবে। প্রধান জিনিস হল সার্চ ইঞ্জিনে কী প্রবেশ করতে হবে তা বোঝা =)
-
জনপ্রিয়তা।
জাভা হল বিশ্বের সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষা: উপরে উল্লিখিত অ্যান্ড্রয়েড এবং ওয়েব ডেভেলপার ছাড়াও, প্রায় প্রতিটি এন্টারপ্রাইজ ডেভেলপার জাভাতে লেখেন। এন্টারপ্রাইজ বলতে বড় কর্পোরেশনের প্রয়োজনের জন্য প্রয়োজনীয় অভ্যন্তরীণ কর্পোরেট উন্নয়ন বোঝায়।
প্রতি বছর, বিদ্বেষীরা "জাভার মৃত্যুর" ভবিষ্যদ্বাণী করে। তারা বলে, " ওরাকল এটিকে সমর্থন করা বন্ধ করবে। আপনি সম্পূর্ণরূপে আপনার সময় নষ্ট করছেন। " এটি সত্য নয়! তারা প্রতি ছয় মাসে জাভার নতুন সংস্করণ প্রকাশ করার প্রতিশ্রুতি দেয়।
আমার জন্য, জাভা 8-এ ল্যাম্বডা এক্সপ্রেশনগুলি ছিল বিপ্লবী এবং একটি উদ্ঘাটন, নতুন সংস্করণগুলির কিছুই বলার নেই! আমি বর্তমানে একটি "উত্তরাধিকার" প্রকল্পে কাজ করছি, তাই আমি সর্বশেষ উদ্ভাবনগুলির মধ্যে অনুসন্ধান করি না, তবে এটি একটি সত্য যে জাভা জীবিত।
-
অ্যান্ড্রয়েড
বিগত 4 বছর ধরে, অ্যান্ড্রয়েড ধারাবাহিকভাবে মোবাইল ফোনের বাজারের 80% এরও বেশি দখল করে আছে । টিভি, মিডিয়া প্লেয়ার, এমনকি গাড়ির ইনফোটেইনমেন্ট সিস্টেম এই অপারেটিং সিস্টেমে চলে। এবং এই OS এর জন্য অ্যাপ ডেভেলপমেন্ট মূলত জাভাতে হয়। কল্পনা করুন যে সম্ভাবনাগুলি উন্মুক্ত হচ্ছে। আমি যখন অ্যান্ড্রয়েড ডেভেলপার হিসেবে চাকরি পেলাম, তখন ভাবলাম আমি যে পণ্যটি তৈরি করছি তার মূল্য কত? এটি পরিণত হয়েছে, মূল্য প্রতি বছর প্রায় $5 ছিল. এটি প্রশ্ন করে, "তাহলে এই অফিস, বেতন, স্ন্যাক রুম, পিং-পং টেবিল, রোবট এবং অন্যান্য সুবিধার জন্য অর্থ কোথা থেকে আসে? উত্তরটি ভলিউমের মধ্যে রয়েছে: আমাদের অ্যাপের 20 মিলিয়ন ব্যবহারকারী রয়েছে৷
-
বেতন।
এবং এখন কেকের উপর আইসিং: একজন জাভা বিকাশকারীর বেতন শিল্পের মধ্যে সর্বোচ্চ। সর্বোপরি, আপনি একটি নির্দিষ্ট উদ্দেশ্যে প্রোগ্রামিং অধ্যয়ন করার পরিকল্পনা করছেন: একটি ভাল চাকরি পেতে।
প্রোগ্রামিং ভাষার জনপ্রিয়তা
তথ্যের সরকারী উত্স আছে, তাই আসুন তাদের দিকে ফিরে যাই। TIOBE- এর মতে , জাভা অক্টোবর 2019 পর্যন্ত প্রথম স্থানে রয়েছে। PYPL র্যাঙ্কিংয়ে, জাভা দ্বিতীয় স্থানে রয়েছে, JS থেকে অনেক এগিয়ে এবং ট্রেন্ডি পাইথনের প্রতিদ্বন্দ্বী।উপসংহার
যেহেতু একজন শিক্ষানবিস একটি প্রোগ্রামিং ভাষা বেছে নেওয়ার বিষয়ে চিন্তাভাবনা করেন, তখন তার এই বিষয়ে মনোযোগ দেওয়া উচিত:- জনপ্রিয়তা (জাভা ধারাবাহিকভাবে একটি শীর্ষস্থানীয় অবস্থান দখল করে)
- প্রবেশের থ্রেশহোল্ড (জাভার জন্য, এটি মাঝারি: নিয়োগকর্তাদের দক্ষতার একটি বরং বিস্তৃত পরিসর প্রয়োজন)
- উপলব্ধ উপকরণ (CodeGym =))
- প্রয়োগের ক্ষেত্র: যত বেশি ক্ষেত্র যেখানে একটি প্রোগ্রামিং ভাষা ব্যবহার করা হয়, বাজারে তত বেশি বিশেষজ্ঞের প্রয়োজন হয়। আমি ইতিমধ্যেই উল্লেখ করেছি যে কীভাবে জাভা ক্রস-প্ল্যাটফর্ম বিকাশকে সমর্থন করে, তবে আমি এটি পুনরাবৃত্তি করতে কখনই ক্লান্ত হই না।
GO TO FULL VERSION