মেজর ফিল্ড হিসেবে কম্পিউটার সাইন্সে Computer Science (CS) পড়ালেখা নিয়ে আজকের পোস্ট, যারা ভবিষ্যতে কম্পিউটার সাইন্সে পড়তে চান অথবা কম্পিউটার সাইন্সে পড়াশোনা করছেন তাদের জন্য এই পোস্ট টা আমার মনে হয় যে উপকারই হবে |
কম্পিউটার সায়েন্স এবং বর্তমান দুনিয়ার সবচেয়ে পপুলার IT মেজর গুলোর মধ্যে একটা, প্রতিবছর পুরো বিশ্বে কোটি স্টুডেন্ট CS as a Major করতেছে, পড়াLearningলেখা করতেছে এবং গ্রাজুয়েট হচ্ছে | স্বাভাবিকভাবেই প্রশ্নটা আসে যে, এতগুলো স্টুডেন্ট গ্রাজুয়েট হচ্ছে তাদেরকে কিভাবে চাকরি দেয়া হবে এবং ইউনিভার্সিটি কি শেখাচ্ছে এবং তার সাথে রিয়েল লাইফ জব ফিল্ড এ কতটুকু মিল আছে ? এখনো কি কম্পিউটার সায়েন্স খালি ডিগ্রী নিয়ে এলেই হবে ? সিজিপিএ কম হলে কি করব? নাকি আমার Skills ডেভলপ করতে হবে ? ফ্রিল্যান্সিং করতে হবে ? রিমোট না অফিস Job কোনটা ভালো? এরকম অনেক প্রশ্ন নিয়ে কথা বলবো |
সর্বশেষে আমি একটা ম্যাজিক রোডম্যাপ দিব যেটা দিয়ে আপনি কম্পিউটার সাইন্সের একাডেমিক ভালো করতে পারবেন আবার প্রফেশনাল স্কিলসেট ডেভলপমেন্ট করতে পারবেন Follow US.
মূল আলোচনা শুরু করার আগে আপনাকে আনন্দের সাথে জানাচ্ছি যে আলহামদুলিল্লাহ আমার CST ব্যাচেলরের গ্রাজুয়েশন কমপ্লিট, কনভোকেশন এর উপরে Vlogs আমার ইউটিউব চ্যানেলে আপলোড হবে তো আপনারা চাইলে সেখান থেকে দেখতে পারেন | আমার ব্যাচেলার জার্নিটা একটু কঠিন ছিল কারণ আমি যখন ব্যাচেলার শুরু করেছি এ সময় COVID-19 দুনিয়াতে হানা দিয়েছে এবং যেহেতু আমি চায়নাতে পড়ালেখা করি বুঝতে পারতেছেন কি কন্ডিশন শুরু হয়েছিল, আমার বন্ধুবান্ধবরা সবাই দেশে ব্যাক হয়ে চলে গেছিল কিন্তু আমি জেদ করে ক্যাম্পাসে অবস্থান করি, আমার জীবনের সবচেয়ে ভালো সিদ্ধান্ত গুলোর মধ্যে একটা ছিল | এতগুলো বছর ইউনিভার্সিটি আমার খেয়াল রেখেছে, একাকীত্ব ছাড়া আমার আর কোন সমস্যা হয়নি, আমি এতগুলো সুবিধা পেয়েছে যা একটা ইউনিভার্সিটির কাছ থেকে আমার মত একজন সাধারণ ছাত্র কল্পনাও করতে পারে না, যাক সে গল্প অন্য কোনদিন বলব ... গত চার বছরে Web Developments, System Admin প্রফেশনাল ডেভেলপমেন্ট করেছি , সফটওয়্যার ইঞ্জিনিয়ারিং এখনো শিখতেছি , Research করেছি AI, AQI Data Visualization, Security Protocol এর উপরে | সাইডএফেক্ট হিসেবে স্বাস্থ্য ভেঙ্গে গেছে, 70 থেকে 47 কেজিতে চলে এসেছে ওজন, চোখের নিচে পার্মানেন্টলি Dark circle পড়ে গেছে | যাহোক, I can Die For My passion.
কম্পিউটার সাইন্স কি ?
কম্পিউটার সায়েন্স একটি Study field যা তাত্ত্বিক ভিত্তি (theoretical foundations) এবং কম্পিউটিং এবং information systems এর উপর practical applications শেখানো এবং পড়ানো হয়। এটি algorithms, data structures, programming languages, software development, computer architecture, artificial intelligence, computer graphics, databases, operating systems, networking, এবং আরও অনেক সাবফিল্ড যোগ করে |
বুঝতেই পারতেছেন এটা একটা Main Study ফিল্ড, এটার অধীনে আরও অনেকগুলো স্পেশালাইজেশন আছে , এজন্য CS স্টাডি করা স্টুডেন্টরা পরবর্তীতে অন্য কোন স্পেশালাইজেশন ফিল্ডে মুফ করলে তাদের যেরকম নতুন কিছু শেখার অসুবিধা হয় না অন্যদিকে তাদের সার্টিফিকেটের জন্য জব ফিল্ড তারা অনেক বেশী importance পায় |
কেন কম্পিউটার সাইন্সে পড়া উচিত?
আমার মাঝে মাঝে মনে হয় যে কম্পিউটারের প্রতি প্যাশন আছে এরকম স্টুডেন্টদের অবশ্যই কম্পিউটার সাইন্সে পড়া উচিত | তাছাড়া টেকনোলজির যুগে আমার বলে দাওয়া দরকার নেই CS কতটুকু আপনাকে সুবিধা দিবে, তবে হ্যাঁ আপনাকে কাজ শিখতে হবে শুধু সার্টিফিকেট অথবা CGPA উপর ডিপেন্ড করে আপনি অনেক দূর যেতে পারবেন না |
কম্পিউটার সাইন্সের Prominent স্পেশালাইজেশন ফিল্ড
আগেই বলেছিলাম যে কম্পিউটার সাইন্স একটা বড় সাবজেক্ট এটা অনেকগুলো স্পেশালাইজেশন ফিল্ড রয়েছে, প্রতিটা ইউনিভার্সিটি আসলে তাদের কারিকুলামে স্পেশালাইজেশন Path Maintain করে | আমি যে স্পেশাল ফিল্ডগুলো কথা বলব এগুলো সবগুলো গুরুত্বপূর্ণ এবং বর্তমান আইটি Top Job and Research ফিল্ড গুলোর |
1. কৃত্রিম বুদ্ধিমত্তা (AI): AI এমন intelligent সিস্টেমের developing উপর ফোকাস করে যা perceive, learn, reason, and decisions নিতে পারে। এই ক্ষেত্রের মধ্যে রয়েছে machine learning, natural language processing, computer vision, robotics, and expert systems। বলতে পারেন এটা সবথেকে বেশি ডিমান্ডফুল সেক্টর | এখন প্রতিটা বড় বড় কোম্পানি এ এটার উপরে ফোকাস করতেছে এবং ইউনিভার্সিটি ফান্ডিং অনেক বেশি For Research. আমার পেজে আমি আর্টিফিশিয়াল ইন্টেলিজেন্স এর যতগুলো Fields সবগুলোরই রোডম্যাপ কভার করেছি তো চাইলে কমেন্টসে লিঙ্ক থেকে পড়ে নিতে পারে |
2. ডেটা সায়েন্স এবং অ্যানালিটিক্স: বড় বড় Tech কোম্পানিগুলো থেকে শুরু করে ছোট কোম্পানিগুলো অনেক বেশি মানুষ Hire করতেছে এই ফিল্ডে | এই ক্ষেত্রে analyze and interpret data, build predictive models, and make data-driven decisions জন্য পরিসংখ্যান, গণিত এবং কম্পিউটার বিজ্ঞানের প্রয়োজন হয়। আমার পেজে আমি ডেটা সায়েন্স এবং অ্যানালিটিক্স এর রোডম্যাপ কভার করেছি তো চাইলে কমেন্টসে লিঙ্ক থেকে পড়ে নিতে পারে |
3. Cybersecurity: আমি জানিনা কেন But কম্পিউটার সায়েন্সের স্টুডেন্ট কেন জানি এই সেক্টরে ঢোকার একটা আলাদা রকম আগ্রহ থাকে | But মাথায় রাখেন, এটা কম্পিউটার সাইন্স এর সবচেয়ে হার্ডকোর সেক্টর | এই ক্ষেত্রে network security, cryptography, ethical hacking, and risk assessment মতো ক্ষেত্রগুলি জড়িত। আগামী জুলাই মাস থেকে আমি এটার উপরে পরিপূর্ণ পোস্ট করা শুরু করবো |
4. সফ্টওয়্যার ইঞ্জিনিয়ারিং: এই সেক্টর পপুলার আপনি বলতে পারেন যে এখন সবাই এই সেক্টরে আসার জন্য চেষ্টা করতাছে এবং সবচেয়ে বেশি রিসোর্সেস, ট্রেনিং, কোর্সেস অ্যাভেলেবল | ইউনিভার্সিটিগুলো আলাদাভাবে Major সাবজেক্ট খুলেছে যেটাকে SWE বলে | সফ্টওয়্যার ইঞ্জিনিয়ারিং systematic design, development, and maintenance of software systems উপর ফোকাস করানো হয় । এটি architecture, software testing, requirements engineering, and software project management ক্ষেত্রগুলি অন্তর্ভুক্ত করে।
5. Computer Graphics and Visualization: এই ফিল্ড টা কিন্তু খুব মজার | আমার দুই বন্ধু VR নিয়ে গবেষনা করতেছ তো আমি তাদের প্রজেক্টগুলো দেখেছিলাম খুবই মজার প্রজেক্টগুলো | এই ক্ষেত্রটি কম্পিউটার ব্যবহার করে creating and manipulating visual content করার সাথে সম্পর্কিত। এতে গ্রাফিক্স রেন্ডারিং, 3D মডেলিং, ভার্চুয়াল রিয়েলিটি (VR), অগমেন্টেড রিয়েলিটি (AR) এবং ইউজার ইন্টারফেস ডিজাইন অন্তর্ভুক্ত রয়েছে। রিসেন্টলি, Apple Vision Pro লঞ্চ করেছে সবাই জানে এবং সেখানে আলাদা M2 চিপ রয়েছে, আলাদা অপারেটিং সিস্টেম OS রয়েছে, তো বুঝতে পারতেছেন ফিউচারে কি আসতেছে |
6. Computer Networks: এই ক্ষেত্রটি কম্পিউটার নেটওয়ার্কগুলির design, implementation, and management উপর দৃষ্টি নিবদ্ধ করে। এতে নেটওয়ার্ক প্রোটোকল, নেটওয়ার্ক নিরাপত্তা, ওয়্যারলেস নেটওয়ার্ক এবং নেটওয়ার্ক পারফরম্যান্স অপ্টিমাইজেশানের মতো ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে।টেলিকমিউনিকেশন ফিল্ড ছাড়াও আরও অনেক কোম্পানি রয়েছে যারা ক্রমাগত ইঞ্জিনিয়ার এবং টেকনিশিয়ান নিয়োগ করছে তাই আমি মনে করি আপনি Focus করতে পারেন।
এসব ছাড়া আরো অনেকগুলো ফিল্ড রয়েছে Human-Computer Interaction (HCI), Computer Networks, Algorithms and Theory, Database Systems, Bioinformatics আপনারা চাইলে আমি এগুলোর পরে বিস্তারিত পোস্ট করব |
ইউনিভার্সিটি কি শেখাচ্ছে এবং তার সাথে রিয়েল লাইফ জব ফিল্ড এ কতটুকু মিল আছে ?
প্রতিটা ইউনিভার্সিটির কারিকুলাম ডিফারেন্ট এবং কিন্তু প্রতিটা ইউনিভার্সিটিতে কোনো-না-কোনো স্পেশালিজেশন ফলো করে পড়ানো হয় | তাই ইউনিভার্সিটি তে ভর্তি হওয়ার আগে সেখানে কি পড়ানো হয়, কি কি সুবিধা আপনি পাবেন, Research আছে কিনা এবং কি কি ধরনের Topic আপনাকে ফুলফিল করতে হবে, Credit আছে সেগুলো আপনাকে বের করে নিতে হবে |
এখন কথা হল যে ইউনিভার্সিটিতে আপনাকে থিউরিটিক্যাল টাইপের জিনিসের উপর Focus বেশি দেওয়া হবে এটাই স্বাভাবিক তাই আপনাকে একাডেমিক প্রেসার মেন্টেন করতে হবে এবং এটাত লাভ কি আছে সেটা আমি আপনাকে বলি, যখন ফিউচারে আপনি মাস্টার্স অথবা পিএইচডির জন্য যেকোনো ইউনিভার্সিটি তে এপ্লাই করবেন তখন আপনার একাডেমি ব্যাকগ্রাউন্ড যদি ভাল থাকে তাহলে আপনারা অনেক বেনিফিট পাবেন | ইউনিভার্সিটি to ইউনিভার্সিটি আপনার একাডেমিক রেজাল্ট/সিজিপিএ এটা অনেক ম্যাটার করে, Research, অনেক ম্যাটার করে |
কিন্তু বেশিরভাগ কোম্পানির রেডিমেট মানুষ চায় | তাই যে প্রফেশনাল স্কিল আপনাকে ভাললাগে সেটার উপরে নিজের কিছুটা হলেও ডেভলপমেন্ট হওয়া উচিত, কিছু প্রজেক্ট বানাইয়েন, একটা Portfolio/CV বানাইয়া ফেলেন যাতে আপনিও Jobটা খুব সহজে পেয়ে যান |
ডিগ্রী নিয়ে এলেই হবে ? সিজিপিএ কম হলে কি করব? নাকি আমার Skills ডেভলপ করতে হবে ?
বর্তমান বাজারে ডিগ্রিধারীর কিন্তু অভাব নাই এটাই সবচেয়ে বড় অসুবিধা হয়ে গেছে | জবের জন্য বর্তমানে কোম্পানিগুলো যেমন সিজিপিএ চাচ্ছে তার সাথে সাথে তারা এটাও চাচ্ছে তারা যে Noob হায়ার করবে তার কিছুটা হলেও প্রফেশনাল স্কিল থাকে যেটা জন্য তাদের তার পিছনে বেশি সময় নষ্ট না করতে হয় ট্রেনিং জন্য | তাই ডিগ্রির সাথে সাথে স্কিল ডেভেলপ করেন না হলে পরে পস্তাতে হবে | মজার ব্যাপার হচ্ছে অনেক বড় বড় Tech কোম্পানিগুলো ভাল সিজিপিএ অথবা ডিগ্রী ছাড়াই স্কিলফুল মানুষকে নিয়োগ দিয়ে থাকেন | আমার পরিচিত অনেকে আছে যাদের সিজিপিএ 2.5 কিন্তু বড় বড় Tech কোম্পানিগুলো Like tencent, huawei, Apple তারা কাজ করতাছে | কিন্তু তাদের মধ্যে এক্সট্রা কিছু না কিছু অবশ্যই আছে তাই আমার মনে হয় আপনাকে একাডেমি and ডেভলপমেন্ট দুইটাই করা উচিত |
ফ্রিল্যান্সিং করতে হবে ?
আমার মত ফ্রিল্যান্সিংয়ে তখনই ঢোকা উচিত যখন আপনি কোন একটা Skills মোটামুটি কাজ শিখে গেছেন আপনার Basic অনেক স্ট্রং এবং আপনি বেশ কয়েকটা প্রজেক্ট করেছেন, মোটামুটি পোর্টফলিও আছে | মার্কেটপ্লেসের প্রফেশনালদের ডিমান্ড সবচেয়ে বেশী, কেউ এইচটিএমএল সিএসএস দিয়ে ক্যালকুলেটর প্রজেক্ট দেখে আপনাকে কাজ দেবে না | অল্প কিছু টাকার জন্য নিজের মূল্যবান সময় নষ্ট না করে কোন স্কিল শেখেন যেটা অনেক বেশি High paid. সব সময় Common ফিল্ডে (Web, APP) ফ্রিল্যান্সিং করতে হবে এমন কোন মানে নেই | Time is Money, More Invest more gain.
কম্পিউটার সাইন্স ম্যাজিক রোডম্যাপ
একাডেমিক এবং স্কিল ডেভলপমেন্ট দুইটা একসাথে করা অনেক কঠিন | আমি সেই সমস্ত কথাই বলবো যেটা করলে আপনি মোটামুটি একাডেমিক ম্যানেজমেন্ট করার সাথে সাথে আপনি Skills করতে পারবেন | এগুলো যে step-by-step ফলো করতে হবে এমন কোন মানে নেই আপনি ইচ্ছামত এটা নিতে পারেন নিজের মতো করে মডিফাই করে নিতে পারেন | মূলত ব্যাচেলার স্টুডেন্টদের জন্য |
1. Know Course: প্রথমে খবর নেন আপনি যে আর ভার্সিটিতে পড়েন এটা কি ধরনের স্পেশালাইজেশন ফলো করে, স্নাতক হতে কত ক্রেডিট প্রয়োজন?তারপর আপনি ঠিক করেন যে স্পেশালাইজেশনের উপরে কি আপনি আসলেই ইন্টারেস্ট নাকি আপনি অন্য কিছু ভালো লাগে | বাংলাদেশের ভার্সিটিগুলোতে মেধা কে যারা প্রথমসারির দিকে থাকে তাদেরকে কম্পিউটার সাইন্স সাবজেক্ট হিসেবে দেওয়া হয়, এ ব্যাপারটা আমার একটু অপছন্দ, প্রথম সারির স্টুডেন্ট হলে যে তার কম্পিউটার ভালো লাগবে এমন কোন মানে নেই |
2. Establish a Strong Foundation: কখনো ক্লাস/HW মিস দিবেন না, algorithms, data structures, programming languages, Database, networking, computer architecture, and software development methodologies এই সাবজেক্ট গুলো একটু ভালভাবে পড়বেন পরবর্তীতে আপনার কাজে লাগবে | ক্লাসের নোট করার অভ্যাস করবেন বিকজ এটা পরীক্ষার সময় রিভিশন এবং পরবর্তী সময়ে আপনি ইন্টারভিউ কাজে দিবে | এমন ভাবে Note বানাবেন যাতে সেটা একবার চোখ বুলালেই আপনার পুরো কনসেপ্টে মাথার মধ্যে ঢুকে যায় |
3. Programming Language: আপনার যদি প্রোগ্রামিং ল্যাঙ্গুয়েজ সম্পর্কে ধারনা না থাকে তাহলে প্রথমে একটি প্রোগ্রামের ল্যাঙ্গুয়েজ সিলেক্ট করে নিন আমার মতে C/C++ Best. Basic খুব ভালোভাবে শেখার চেষ্টা করবেন, ফাকি দিবেন না ফাঁকি দিলে সমস্যা হবে | প্রোগ্রামিং এর ধারণা ক্লিয়ার হয়ে গেলে আপনি পাইথনে শিফট হতে পারেন | সি এবং পাইথনের Roadmap আমার পেজে অলরেডি দেওয়া আছে আপনার লিঙ্ক থেকে সেটা পড়ে আরো বিস্তারিত এ ব্যাপারে জানতে পারেন |
4. Problem-Solving: প্রোগ্রামিং ল্যাংগুয়েজের Core তখনই ভালো হবে যখন আপনি প্রবলেম সলভ করবেন | এই জিনিস কখনো একদিনে হবে না আপনাকে আস্তে আস্তে আগাতে হবে | তো প্রতিদিনই চেষ্টা করেন এক থেকে দুই ঘন্টা problem-solving এর পেছনে দেওয়ার জন্য | আমার পেজে অলরেডি বিষয় নিয়েও Details Roadmap আছে সেটা পড়ে আরো বিস্তারিত এ ব্যাপারে জানতে পারেন |
5. Open Profile: একটা LinkedIn প্রোফাইল বা পোর্টফলিও আপনাকে তৈরি করতে হবে যদিও আপনার কিছু না থাকে তাও তৈরি করতে হবে | এটা আপনার প্রফেশনাল লেভেল আপনাকে আগে রাখবে | আপনি প্রতিদিন কি করতেছেন, কি নতুন কোর্স, নতুন প্রজেক্ট, আপনি সেখানে পোস্ট করবেন এবং বিস্তারিত লিখবেন | Try To Upgrade it daily. আপনি ভবিষ্যতে যেরকম হতে চান এরকম মানুষদের ফলো করুন, Make A Network.
আর হ্যাঁ যারা Coding রিলেটেড কাজ করতে চান তারা অবশ্যই Github প্রোফাইল করবেন এটা আপনার ভবিষ্যতে অনেক কাজে লাগবে |
6. Explore Professional Skills: যে কোন একটা প্রফেশনাল ফিল্ড সিলেট করার আগে আপনাকে যতগুলো ফিল্টার্স প্রত্যেকটা ফিল্ডে কিছু এক্সপ্লোর করে নেওয়া উচিত | আপনার কোনটা ভালো লাগে সেটা ফাইন্ড আউট করা উচিত এবং কোনটা আপনি আসলে পারবেন সেটা আপনাকে খুঁজে বের করতে হবে | তাড়াহুড়া করবেন না বা অন্যরা কি করতেছে সে বিষয়ে দেখে যাবেন না, আপনার Job যে আপনাকে খুঁজতে হবে অন্য কেউ করে দিবে না |
7. Start Learning Skills: আপনি অলরেডি একটা ফিল্ড সিলেট করে নিয়েছেন যেটা আপনি ভবিষ্যতে হতে চান কংগ্রাচুলেশন !! জরুরী নয় আপনাকে এটাই হতে হবে In Future আপনি চাইলে আপনার ফিল্ড চেঞ্জ করতে পারেন | যেটা হতে চান সেটার রোডম্যাপ সিলেক্ট করুন এবং স্টেপ সেটা ফলো করে পড়াশোনা করুন |
8. Engage in Collaborative Learning: শেখার সবচেয়ে বেস্ট way হচ্ছে প্রজেক্ট করা | এক্ষেত্রে মেন্টরশিপ টা অনেক important এমন একজন মেন্টর খুঁজে বের করুন যে আপনাকে আপনার কাজগুলোতে সাহায্য করবে, আপনার ভুল ধরিয়ে দিবে | Attend conferences, seminars, workshops, and tech meetups to stay updated. চেষ্টা করুন এমন মানুষদের সাথে কাজ করতে যারা অলরেডি ফিল্ড অনেক কাজ করেছে, অনেক বেশি এক্সপার্ট |
9. Develop Communication and Leadership Skills: ব্যাপারটা আমরা অনেকেই Ignore করে But Communication and Leadership Skills অনেক ইম্পরট্যান্ট |
10. Stress Out: সারাদিন কম্পিউটারের সামনে বসে থাকবেন না | স্ট্রেস হলে সেটা কাটানোর চেষ্টা করুন না হলে পরবর্তী reader's ব্লক হয়ে যাবে আপনি আর পড়াশোনা করতে পারবেন না কোন কিছু মনে থাকবে না |