হার্ডওয়্যার ইঞ্জিনিয়ার এবং সফটওয়্যার ইঞ্জিনিয়ারের মধ্যে পার্থক্য কি?
এখন থেকে বছর দশেক আগে বুয়েটের প্রথম পছন্দ ছিল কম্পিউটার সাইন্স। তখন সিরিয়ালে প্রথম দিকের ছেলে-মেয়েরা কম্পিউটার সাইন্স পড়তো। এখানে একটা জিনিস বলে রাখি বুয়েট বিশ্বের সাথে তাল মিলিয়ে দেশে সব থেকে চাহিদাবহুল সেক্টর রিলেটেড সাব্জেক্টে মেধা তালিকার প্রথম দিকের ছেলে মেয়েরা ভর্তি হয়। এটা তাদের জন্য দারুণ সুযোগ।
"hardware engineer vs software engineer"
সেই সুবাদে এখান থেকে ১০-১১ বছর আগে এই কম্পিউটার সাইন্সের চাহিদা বুয়েটে প্রথম কাতারে ছিল। কিন্তু ১-২ বছর পর এই চাহিদা জ্যামিতিক হারে কমতে শুরু করে। কারণ বিশ্বের অন্যান্য দেশের তুলনায় এই দেশে কম্পিউটার সাইন্সের চাহিদা অনেক কম। যেটা জেনেই সিএসই (CSE) সাবজেক্ট আবার আগের মতো হতে থাকে। পিছনের দিকে চলে যেতে থাকে।
কিন্তু এই ২০১১-১২ সাল থেকে কম্পিউটার সাইন্সে পড়তে চাওয়া ছেলে-মেয়েদের চিন্তার আবার পরিবর্তন আসে। কারণ এখন বাংলাদেশেও সব ক্ষেত্রে কম্পিউটার সাইন্সের ব্যাপক চাহিদা। এখন বুয়েটেও সাবজেক্টটির আশানুরূপ পরিবর্তন হয়েছে। সেই সাথে ঢাকা বিশ্ববিদ্যালয়েও।
এতো বললাম বাংলাদেশের কম্পিউটার সাইন্সের চাহিদা নিয়ে এখন বলবো কম্পিউটার সাইন্সের প্রধান দুটি পার্ট কম্পিউটার হার্ডওয়্যার ইঞ্জিনিয়ার এবং কম্পিউটার সফটওয়্যার ইঞ্জিনিয়ারের মধ্যে আসলে পার্থক্য কি এবং এদের মধ্যে বর্তমান চাহদা কোনটার বেশি।
কম্পিউটার হার্ডওয়্যার ইঞ্জিনিয়ার বনাম কম্পিউটার সফটওয়্যার ইঞ্জিনিয়ারঃ
প্রথমে আমরা জানবো কম্পিউটার হার্ডওয়্যার ইঞ্জিনিয়ার বনাম কম্পিউটার সফটওয়্যার ইঞ্জিনিয়ার এর মধ্যে গঠনগত পার্থক্য কি? তারপর বিশ্বে কম্পিউটার হার্ডওয়্যার ইঞ্জিনিয়ার বনাম কম্পিউটার সফটওয়্যার ইঞ্জিনিয়ার নিয়ে একটি দারুণ জরিপ দেখে বুঝবো গত কয়েক বছরে কোনটার চাহিদা কীভাবে কমছে বা বাড়ছে।
কম্পিউটার হার্ডওয়্যার ইঞ্জিনিয়ারঃ
কম্পিউটার হার্ডওয়্যার ইঞ্জিনিয়ার হচ্ছেন সেই ব্যক্তি যিনি কম্পিউটারের বিভিন্ন উপাদান যেমন চিপ, সার্কিট বোর্ড অথবা রাইউটার নিয়ে গবেষণা করেন, ডিজাইন করেন বা ডেভেলপ করেন বা এদের উন্নয়ন করেন।
কম্পিউটার সফটওয়্যার ইঞ্জিনিয়ারঃ
কম্পিউটার সফটওয়্যার ইঞ্জিনিয়ার হচ্ছেন তিনি যিনি কম্পিউটার সাইন্সের বিভিন্ন টেকনিক এবং নীতি বা নিয়ম মেনে এবং ম্যাথম্যাটিক্যাল বিভিন্ন বিশ্লেষণের মাধ্যমে কম্পিউটারের বিভিন্ন অ্যাপলিকেশন ডিজাইন করেন, ডেভেলপ করেন এবং কীভাবে কাজ করবে তা নির্ধারণ করেন।
- একজন হার্ডওয়্যার ইঞ্জিনিয়ারের বাৎসরিক বেতন ৯৮ হাজার ডলার আর ঘণ্টায় ৪৭ ডলারের কাছাকাছি। যদিও এটি মিডিয়াম লেভেলের বেতন স্কেল। সেখানে একজন সফটওয়্যার ইঞ্জিনিয়ারের বেতন ৯০ হাজারের কাছাকাছি। যা একজন মিডিয়াম লেভেলের এক্সপার্টকে ধ্রুবক ধরে হিসাব করা। যা ঘণ্টায় ৪৪ ডলার মতো।
- ২০১০ সালে ইউএসএ তে ৭০ হাজার হার্ডওয়্যার ইঞ্জিনিয়ার ছিল, যেখানে সফটওয়্যার ইঞ্জিনিয়ার ছিল ৯ লাখের কাছাকাছি।
- মাত্র ৯% হারে হার্ডওয়্যার ইঞ্জিনিয়ারের জব টিউন বৃদ্ধি পাই, অন্য দিকে সফটওয়্যার ইঞ্জিনিয়ারের জব ৩০% হারে প্রতিনিয়ত বৃদ্ধি পাচ্ছে। যা আশা ব্যঞ্জক।
- হার্ডওয়্যার ইঞ্জিনিয়ারের চেয়ে সফটওয়্যার ইঞ্জিনিয়ারের ক্ষেত্র অনেক বেশি, কারণ চাহিদা এবং প্রয়োজন।
- হার্ডওয়্যার ইঞ্জিনিয়ারের ব্যাচেলর ডিগ্রি সাথে ইলেকট্রিক্যাল দক্ষতা অত্যাবশ্যকীয়। সফটওয়্যার ইঞ্জিনিয়ারেরও কম্পিউটার সাইন্সে ব্যাচেলর ডিগ্রি সহ সফটওয়্যার ইঞ্জিনিয়ার ডিগ্রি, সাথে প্রোগ্রামিং এ খুব বেশি এক্সপেরিয়েন্স প্রয়োজন। না হলে আপনি প্রতিযোগিতায় টিকে থাকতে পারবেন না।
- কর্মক্ষেত্র বলতে হার্ডওয়্যার ইঞ্জিনিয়ারের সব সময় নতুন উদ্ভাবনে ব্যস্হ থাকতে হয়, সাথে মানোন্নয়ন। হার্ডওয়্যার ইঞ্জিনিয়ারের বিভিন্ন টেকনোলজি ফার্ম বা হাইটেক ফার্মে গবেষণা করতে হয়, ডিজাইন এবং ডেভেলপ করতে হয়।
- অন্যদিকে সফটওয়্যার ইঞ্জিনিয়ারেরও বড় বড় সফট ফার্মের সাথে সময় দিতে হয়। তাদের বিভিন্ন প্রোগ্রামিং এর মাধ্যমে বিভিন্ন অ্যাপ তৈরি করতে হয় যা পূরা কম্পিউটারে চলবে। আরও অনেক কাজে তাদের লাগতে হয় এবং অনেকে সফটওয়্যার ইঞ্জিনিয়ারিং এ নাকি হার্ডওয়্যার ইঞ্জিনিয়ার থেকে বেশি সময় দিতে হয় মনে করেন।
তাহলে আমি কোনটা পড়বোঃ
আমাকে যদি বলেন আমি কেন সফটওয়্যার ইঞ্জিনিয়ার পড়তে চাই। তাহলে আমি এর উত্তর এভাবে দিতাম, যে সফটওয়্যার ইঞ্জিনিয়ারে বিভিন্ন অ্যাপলিকেশন প্রোগ্রামিং নিয়ে কাজ করতে হয়, সময় কম দেওয়া লাগে তাছাড়া বর্তমানে চাহিদা অনেক বেশি এবং বাজারে সফটওয়্যার ইঞ্জিনিয়ারের ব্যাপক চাহিদা সেহেতু আমি সফটওয়্যার ইঞ্জিনিয়ার পড়ি বা পড়বো।
তবে কারও কারও হার্ডওয়্যার বিষয়টা বেশি ভালো লাগে তারা তাদের পছন্দ নিয়ে নিবেন। আর যারা আমার মতো সফটওয়্যার বা প্রোগ্রামিং প্রেমী তারা সফটওয়্যার ইঞ্জিনিয়ার।
"প্রোগ্রামিং শেখার শুরু দিকে অনেকেই বিশাল বই দেখে হয়তো ভয় পেয়ে যায়। এত বিশাল বই, এত্ত কিছু শিখতে হবে। এত কিছু জানতে হবে, ইত্যাদি ইত্যাদি। বই গুলো বিশাল হওয়ার কারণ একটু পরেই বলছি।
তবে জিনিসটা অবশ্যই এমন নয়। বিশাল বই পড়ে কিছুই মনে রাখতে হয় না। মুখস্ত করতে হয় না কিছু। শুধু জানতে হয় কিভাবে প্রোগ্রাম লিখতে হয়। কোন সিনট্যাক্স মুখস্ত করতে হয় না। শুধু জানতে হয় কিভাবে লিখে।
প্রোগ্রামিং হচ্ছে লজিক। আমরা বাস্তব জীবনে যেমন লজিক খাটাই, তেমন লজিক। এগুলো মুখস্ত করতে হয় না। শুধু গুছিয়ে চিন্তা করতে হয়। শুধু জানতে হয় কিভাবে গুছিয়ে চিন্তা করা যায়। একটা উদাহরণ দি, যেমন "যদি আজ শুক্রবার হয়, স্কুলে যেতে হবে না। যদি শুক্রবার না হয়, স্কুলে যেতে হবে। " এ জিনিসটা আমরা ঠিক যে ভাবে চিন্তা করেছি, প্রোগ্রামিং এ ঠিক এমনি। এটাকে যদি আমরা সুডো কোডে লিখি তাহলেঃ
if day=friday
no school, do furti.
else
go to school.
এতই সহজ প্রোগ্রামিং।
বই গুলো বিশাল হয় কারণ ঐখানে প্রোগ্রামিং করে কি কি করা যায়, এমন অনেক গুলো উদারহণ দেওয়া থাকে। দেওয়া থাকে অনেক লাইব্রেরীর ব্যবহার প্রনালী। তো এসব শুধু একবার পড়লেই হয়। না পড়লেও সমস্যা হয় না। যদি পড়া থাকে, তাহলে প্রোগ্রাম লিখতে দারুণ কাজে দেয়। যেহেতু আমাদের কোড মুখস্ত করতে হয় না, আমরা বই এর ঐ অংশ থেকে দেখে দেখেই লিখে ফেলতে পারি।
আর কোড গুলো লেখা হয় IDE ব্যবহার করে। উপরে আমরা if else দিয়ে একটা প্রোগ্রাম লিখছি। IDE গুলো i লেখার সাথে সাথেই বুঝে যায় আমরা কি লিখতে যাচ্ছি, বাকি কোড গুলো অটোমেটিক লেখা হয়ে যায়। সত্যিই অসাধারণ। শুধু একবার শুরু করতে হবে। কিছু সময় ব্যয় করতে হবে। এই যা।
প্রোগ্রামিং শেখার জন্য বই এর দুই একটা চ্যাপ্টার ঠিক মত পড়লেই হয়, সিনট্যাক্স গুলো জানলেই হয়। বাকিটা যে যার মত করে লিখে ফেলতে পারে। নিজ নিজ ক্রিয়েটিভিটি প্রয়োগ করে। আর আমাদের সবার ক্রিয়েটিভিটি ইউনিক। কারোটা দিয়ে কারোটা রিপ্লেস করা যায় না। আমরা অনেকেই জানি না আমরা কতটা ক্রিয়েটিভ। আর তা জানতে হয়, আর জানার জন্য চোখ বন্ধ করে না থেকে একটু চারপাশ তাকাতে হয়।
প্রোগ্রামিং এর সবচেয়ে মজার পার্ট বলি। একটা বাস্তব উদাহরণ দিয়ে বলি। ধরে নিচ্ছি আমরা পৃথিবীর সবচেয়ে উচু টাওয়ারটা বানাবো। এখন পর্যন্ত সবচেয়ে উচু বিল্ডিং কোনটা? সম্ভবত Burj Khalifa, তাই না? ১৬৩টি ফ্লোর রয়েছে। আমরা চাচ্ছি এর থেকেও বিশাল একটা বিল্ডিং বানাতে, যার মধ্যে ২০০টি ফ্লোর থাকবে। তো বাস্তবে জিনিসটা বানাতে আমাদের নতুন করে গ্রাউন্ড লেভেল থেকে শুরু করতে হবে। অনেক বছর লেগে যাবে। প্রোগ্রামিং এ কেউ যদি ১৬৩ তলা সমান একটা প্রোগ্রাম বানিয়ে রাখে, আমরা চাচ্ছি ২০০ তলা সমান একটা প্রোগ্রাম বানাতে, তখন আমরা ১৬৩ তলা থেকেই কাজ শুরু করতে পারব। শুরু থেকে কিছুই করতে হবে না। কত সময় বেঁচে যাচ্ছে। তৈরি হচ্ছে দারুণ কিছু। চমৎকার না?
প্রোগ্রামিং জানা সত্যিই চমৎকার। নতুন এবং অসম্ভব সুন্দর একটা জগত। স্বাগতম সবাইকে। "
আমাদের আজকের এই
আর্টিকেল যদি আপনাদের ভালো লাগে, তাহলে অবশ্যই আর্টিকেলটি শেয়ার করবেন।
ধন্যবাদ,
