সফটওয়্যার ইঞ্জিনিয়ারিং এর বিস্তারিত – সাবজেক্ট রিভিউ
সফটওয়্যার ইঞ্জিনিয়ারিং বা সফটওয়্যার প্রকৌশল বিষয় নিয়ে নানা রকম প্রশ্নের সম্মুখীন হতে হয়। বিশেষ করে, আন্ডারগ্র্যাজুয়েট বা স্নাতক পর্যায়ে যখন কোর্স বা বিষয় নির্বাচন করা হয়। এই বিষয় নিয়ে অনেক কিছু জানার আছে যা এক পোস্টে লেখাটাও সম্ভব না। এই আর্টিকেলে আপনাকে একটি বেসিক ধরনা দিতে চেষ্টা করবো। এই আর্টিকেলে আমরা জানবো –
- সফটওয়্যার ইঞ্জিনিয়ারিং কি এবং কেন?
- Pre-requirements
- বিশ্ববিদ্যালয়ে সফটওয়্যার ইঞ্জিনিয়ারিং পড়ার গুরুত্ব
- বিষয়সমূহ
- সফ্টওয়্যার ইঞ্জিনিয়ার, প্রোগ্রামার এবং ডেভেলপার
- সফ্টওয়্যার ইঞ্জিনিয়ারিং ডিগ্রী প্রয়োজনীয়তা
- ইঞ্জিনিয়ারিং পড়াকালীন সময়
সফটওয়্যার ইঞ্জিনিয়ারিং কি? কেন পড়ব?
আপনি সফ্টওয়্যার ব্যবহার না করে কীভাবে দিন পার করবেন! যে অ্যালার্মটি আপনাকে জাগিয়ে তোলে, আপনি যে গাড়িতে কাজ করতে যান, আপনি যখন পৌঁছান তখন আপনি যে ল্যাপটপটি ব্যবহার করেন, সেটি এড়ানো প্রায় অসম্ভব। এমন নয় যে আপনি চান, কারণ সফ্টওয়্যার প্রায় প্রতিটি ডিভাইসের একটি অবিচ্ছেদ্য অংশ যা আপনার দৈনন্দিন জীবনকে সহজ করে তোলে। মোবাইল ফোন, কম্পিউটার, হোম অ্যাপ্লায়েন্স, পাবলিক ট্রান্সপোর্ট, এবং জরুরী পরিষেবাগুলি তাদের প্রযুক্তির সর্বাধিক ব্যবহার করতে বুদ্ধিমান সফ্টওয়্যারের উপর নির্ভর করে।
একজন সফ্টওয়্যার ইঞ্জিনিয়ার হিসাবে, আপনিই এটি ডিজাইন করবেন। আপনার প্রযুক্তিগত দক্ষতাগুলি সফ্টওয়্যারের উদ্ভাবন এবং উদ্ভাবনে প্রয়োগ করে, এর বিকাশ, রক্ষণাবেক্ষণ এবং পরিচালনার সাথে, আপনি প্রযুক্তির প্রতি আপনার ভালবাসাকে বিশ্বে অনন্য কিছু তৈরি করতে ব্যবহার করতে সক্ষম হবেন। এবং এটি করার সময় আপনি ভাল অর্থ উপার্জন করবেন।
পূর্বশর্ত বা requirements গুলো কেমন হয়?
কম্পিউটিং এবং আইটি অধ্যয়নের জন্য সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো সফটওয়্যার ইঞ্জিনিয়ারিং, তবে অন্যান্য প্রযুক্তিগত বিষয় যেমন পদার্থবিদ্যা এবং ডিজাইন প্রযুক্তিও কার্যকর হতে পারে। আপনার যা থাকতে হবে তা হলো প্রবল মনোযোগ, প্রযুক্তিগত কৌতূহল, ম্যাথমেটিকেল চিন্তন দক্ষতা, সংখ্যা এবং প্রোগ্রামের প্রতি বিশেষ টান। কিছু কিছু ক্ষেত্রে প্রাকিতিক প্রতিভাও একটি বড় ফ্যাক্টর হয়ে যায়।
একজন ভাল সফ্টওয়্যার প্রকৌশলী পরিশ্রমী এবং বিশ্লেষণাত্মক, সমস্যা-শুট করতে এবং ঘটনাস্থলেই সমস্যার সমাধান করতে সক্ষম। এই ধরনের বৈশিষ্ট্যগুলি আপনি আপনার CV তে দেখাতে চাইবেন, বিশেষত অনেক সফ্টওয়্যার ইঞ্জিনিয়ারিং ডিগ্রি শুধু নিলেই হবে না, ইন্টারভিউতে এর সাথে জড়িত থাকা লাগবে ( প্রবলেম সলভিং )।
কি কি বিষয় অবশ্যই পড়তে হয়?
- Discrete math.
- Data Structures and Algoritms.
- Database.
- Fundamentals of software development.
- Introduction to computer science.
- Operating systems.
- Programming language concepts.
- Object oriented Programming.
- Software architecture and design.
- Software testing and quality assurance.
- Systems analysis.
- Physics.
- Calculus
- Probability and Statistics.
কেন বিশ্ববিদ্যালয়ে সফটওয়্যার ইঞ্জিনিয়ারিং পড়তে হবে?
যদিও প্রোগ্রামিং একটি দীর্ঘ সময়ের জন্য একটি জনপ্রিয় বিষয়, সফ্টওয়্যার ইঞ্জিনিয়ারিং বিশ্ববিদ্যালয়গুলিতে একটি অপেক্ষাকৃত নতুন দক্ষতা। কিন্তু এর মানে এই নয় যে এটি নিয়োগকর্তাদের চাহিদা নয়, এটি একেবারে বিপরীত। সফ্টওয়্যার ইঞ্জিনিয়াররা এমন একটি মার্কেটপ্লেসে স্নাতক হবেন যা তাদের অত্যন্ত প্রয়োজন ( আধুনিক পৃথিবী )। বিগ ডেটা, অ্যাপস এবং স্মার্টফোনের এই যুগে অনন্য প্রতিভাবান সফ্টওয়্যার প্রকৌশলী তার হৃদয়ে প্রযুক্তির সাথে তার দক্ষতাগুলো ধারণ করে। আর তাই চাকরির বাজারে এমন গ্র্যাজুয়েটদের চাহিদা অনেক বেশি। বিশ্ববিদ্যালয়ে আপনি অনেক সুযোগ পাবেন, একটি স্টেপ বাই স্টেপ গাইডলাইন পাবেন। সর্বোপরি, এমন একটি পরিবেশ পাবেন যা কিনা শেখা ও প্র্যাকটিস করার করার জন্য আর কোথাও পাবেন না। একটি বীজ বপণ থেকে ফল ধরা পর্যন্ত ধাপগুলো বিশ্ববিদ্যালয়ে শেখা যায়। এখান থেকেই ক্যারিয়ারের বিভিন্ন ধাপ নিয়ে জানা যায় ও নির্বাচন করা যায়।
একজন সফ্টওয়্যার ইঞ্জিনিয়ার এবং প্রোগ্রামারের মধ্যে পার্থক্য কী?
প্রোগ্রামিং গ্র্যাজুয়েটরা প্রায়ই এমন ভূমিকায় যাবেন যেখানে তারা সফ্টওয়্যার ডিজাইন এবং বিকাশের জন্য সম্পূর্ণরূপে দায়ী। বিপরীতে, সফ্টওয়্যার প্রকৌশলীরা প্রায়শই আরও বিশেষায়িত হন এবং বৃহত্তর দলে, বড় প্রকল্পগুলিতে কাজ করেন। সফ্টওয়্যার ইঞ্জিনিয়ারের ভূমিকা মূলত ফেসবুক, অ্যাপল এবং গুগলের মতো কোম্পানিগুলির ফলে এসেছে।
একজন সফটওয়্যার ইঞ্জিনিয়ার এবং ডেভেলপারের মধ্যে পার্থক্য কী?
ইঞ্জিনিয়ারিং প্রথম আসে। এটি ডেভেলপমেন্টের life cycle তৈরি করা, চূড়ান্ত প্রযুক্তিগত সমাধানের সাথে গ্রাহকের চাহিদাগুলিকে সংযুক্ত করা। ডিজাইন তৈরি করতে তাদের সৃজনশীলতা ব্যবহার করে ডেভেলপাররা সফ্টওয়্যার ইঞ্জিনিয়ারদের পাশাপাশি কাজ করবে।
আপনি একটি সফ্টওয়্যার ইঞ্জিনিয়ারিং ডিগ্রী দিয়ে কি করতে পারেন?
সফটওয়্যার ইঞ্জিনিয়ারিং গ্র্যাজুয়েটরা সাধারণত নিম্নলিখিত ক্ষেত্রগুলিতে কর্মসংস্থান খুঁজতে যেতে পারেঃ
- software engineer
- SE developer
- software architect
- IT security coordinator
- computer-aided design technician
- IT trainer
- systems analyst
- forensic computer analyst
- web designer & developer
- technical consultant
- IT project manager
- video games developer
- mobile app developer
- computer games tester
- computer technician
- Database Engineer
সফটওয়্যার ইঞ্জিনিয়ারিং পড়াকালীন জীবন কেমন হয়?
সফটওয়্যার ইঞ্জিনিয়ারিং যেমন গতিশীল এবং সৃজনশীল তেমনি এটি বিশ্লেষণাত্মক এবং তাত্ত্বিক। হ্যাকাথন এবং লাইভ কোডিং ইভেন্টগুলি অনেক বিশ্ববিদ্যালয়ে সাধারণ ঘটনা, যেমন টিম প্রজেক্ট এবং প্রোটোটাইপিং। আপনি টিউটর এবং শিল্প বিশেষজ্ঞদের কাছ থেকে শিখবেন, কম্পিউটিং এবং কোডিংয়ের প্রাথমিক বিষয়গুলি দিয়ে শুরু করে এবং তারপরে আপনার সবচেয়ে বেশি আগ্রহের বিষয়গুলিতে আরও বিশেষায়িত ক্ষেত্রে চলে যাবেন। যদিও আপনাকে বিভিন্ন প্রোগ্রামিং ভাষা শিখতে হবে এবং তত্ত্বটি নামিয়ে আনতে অনেক সময় ব্যয় করতে হবে, আপনার সফ্টওয়্যার ইঞ্জিনিয়ারিং ডিগ্রির বেশিরভাগই এটি অনুশীলনে ব্যয় করা হবে।
বিশেষ প্রজেক্ট, কাজের স্থান, বা ডিজাইনের মাধ্যমে – ফিল্ডগুলি অনেক সফ্টওয়্যার ইঞ্জিনিয়ারিং কোর্সে একটি বড় ভূমিকা পালন করে। আপনি বাস্তব, মজাদার সমস্যাগুলিতে কাজ করার সুযোগ পাবেন যা আপনাকে আপনার কোডিং পেশীগুলিকে ফ্লেক্স করার এবং চাকরির বাজারে আপনার যোগ্যতা প্রমাণ করার সুযোগ দেবে। এটি এমন একটি কোম্পানি যা তার ওয়েবসাইট নিরাপদ কিনা তা নিশ্চিত করতে চায়, বা একটি ফার্ম তার নতুন পণ্যের জন্য একটি অ্যাপ তৈরি করতে চায়, আপনি আপনার ভূমিকা পালন করবেন।
সফ্টওয়্যার ইঞ্জিনিয়ারিং আন্ডারগ্রাজুয়েটরা তাদের পড়াশোনার সময় নিম্নলিখিত কাজগুলি আশা করতে পারে:
- writing reports and essays
- hackathons and coding competitions
- practical and creative projects
- attending lectures and seminars
- real-world projects
- hearing from industry speakers
- placements and industry experience
- project and team work