কম্পিউটার বিজ্ঞানের পড়ালেখা

কেন কম্পিউটার সায়েন্স পড়া উচিত না, ওই লেখাটি পড়ার পরেও যারা আমার পরামর্শ না শুনে কম্পিউটার সায়েন্স এবং/অথবা ইঞ্জিনিয়ারিংয়ে ভর্তি হয়ে গিয়েছে, তাদের জন্য এই লেখা। লেখাটি ইতিপূর্বে শাহজালাল বিজ্ঞান ও প্রযুক্তি বিশ্ববিদ্যালয়ের কোনো একটা ইভেন্টের ম্যাগাজিনে ছাপা হয়েছে।

উচ্চ মাধ্যমিক পরীক্ষায় পাশ করার পরে শিক্ষার্থীরা যখন বিশ্ববিদ্যালয়ে ভর্তি হয়, তখন তাদের মধ্যে অনেকেই কম্পিউটার বিজ্ঞান বিষয়টি বেছে নেয়। কম্পিউটার বিজ্ঞান কিংবা কম্পিউটার বিজ্ঞান ও প্রকৌশল বিষয়টি শিক্ষার্থীদের মাঝে বেশ জনপ্রিয়। শিক্ষার্থীদের কম্পিউটার বিজ্ঞান বিষয়ে পড়ার সিদ্ধান্ত নেওয়ার পেছনে নানান কারণ থাকে। কেউ কম্পিউটার বিজ্ঞানী হতে চায়, কেউ হতে চায় সফটওয়্যার নির্মাতা, কেউবা হয়তো কম্পিউটারে গেম খেলতে পছন্দ করে তাই কম্পিউটার বিজ্ঞানে পড়তে আসে! আবার অনেকেই কিছু না বুঝে এমনি এমনি ভর্তি হয়—অনেকটা খুশিতে, ঠ্যালায়, ঘোরতে আর কি। তাই ভার্সিটির চার-পাঁচ বছরের শিক্ষাজীবনে একেকজনের একেক রকম অভিজ্ঞতা হয়। 

প্রোগ্রামিং

কম্পিউটার সায়েন্স বা সিএস পড়তে এসে যারা প্রথমবার প্রোগ্রামিং শেখা শুরু করে, তারা সবচেয়ে বড় ধাক্কাটা খায়। কারণ প্রোগ্রামিং শেখা অন্য অনেক কিছুর চেয়েই আলাদা— স্কুল-কলেজের মতো লেখাপড়া করে এটা শেখা যায় না। আবার প্রোগ্রামিং শেখানোটাও অন্য অনেক বিষয় পড়ানোর চেয়ে একেবারেই আলাদা। সকল শিক্ষক এ বিষয়ে সমানভাবে দক্ষ নন। তাই এক্ষেত্রে শিক্ষার্থীরা হতবুদ্ধি হয়ে পড়ে এবং তাদের ভেতরে প্রোগ্রামিং নিয়ে ভয় ঢুকে যায়, যেটি কাটিয়ে ওঠা অনেকের পক্ষেই আর সম্ভব হয় না। এক্ষেত্রে শিক্ষার্থীদের যা করতে হবে তা হলো—

  • আমি কেন প্রোগ্রামিং শিখতে পারছি না, এ জন্য দশ-বিশটা কারণ খুঁজে বের করে দেশ-সমাজ-শিক্ষাব্যবস্থা ইত্যাদির ওপর দায় চাপিয়ে দিয়ে ঘুরে-বেড়ানোর পরিবর্তে নিজের প্রোগ্রামিং শেখার দায়িত্ব নিজের কাঁধেই তুলে নিতে হবে।
  • প্রোগ্রামিং মাত্র তিন ক্রেডিট কিংবা ল্যাবসহ পাঁচ-ছয় ক্রেডিটের কোর্স হলেও প্রথম সেমিস্টারের ৬০-৭০% সময় প্রোগ্রামিং বই পড়া, শেখা ও চর্চা করার পেছনে দিতে হবে। পরীক্ষার আগের রাতের পড়া দিয়ে প্রোগ্রামিং শেখা যায় না, সপ্তাহে পাঁচ-ছয় দিন নিয়মিতভাবে তিন থেকে পাঁচ ঘণ্টা প্রোগ্রামিং নিয়ে কাটাতে হবে।
  • প্রোগ্রামিং শিখতে গিয়ে নানান ধরনের বাধার সম্মুখীন হবে, অনেক জায়গায় আটকে যাবে— মনে হবে, আমাকে দিয়ে হবে না। কিন্তু হতাশ হওয়া চলবে না, পর্যাপ্ত সময় দিলে প্রোগ্রামিং শেখাটা সহজ হয়ে যাবে। তাই দিনের পর দিন ঘণ্টার পর ঘণ্টা প্রোগ্রামিং প্র্যাকটিস করতে হবে।
  • প্রোগ্রামিং কিছুটা শেখার পরেও যদি ক্লাস টেস্টে কিংবা পরীক্ষায় প্রোগ্রামিং কোর্সে রেজাল্ট খারাপ হয়, তাহলে মন খারাপ করা চলবে না। পরীক্ষায় ভালো করতে হলে শিক্ষকের ক্লাস অনুসরণ করতে হবে, প্রোগ্রামিং বেশি জানলেই যে পরীক্ষায় ভালো ফল আসবে বিষয়টি এমন নয়।
  • এক হাজার ভিডিও কিংবা পিডিএফ বই কম্পিউটারে ডাউনলোড করে সময় নষ্ট করা উচিত নয়। প্রোগ্রামিং শিখতে হাজার হাজার বই কিংবা ভিডিও টিউটোরিয়ালের দরকার নেই। দু-তিনটি বই-ই যথেষ্ট।

নন-মেজর সাবজেক্ট

সিএস-এর চার বছরের সিলেবাসের একটা বড় অংশ জুড়ে থাকে নন-মেজর সাবজেক্ট, অর্থাৎ অন্য ডিপার্টমেন্ট থেকে যেসব বিষয় পড়ানো হয়, সেগুলো। এ নিয়ে শিক্ষার্থীদের অভিযোগের অন্ত থাকে না। যেমন– আমাদের এসব সাবজেক্ট পড়ার দরকার নেই, নন-মেজর সাবজেক্টের টিচার ভালো না, নম্বর দেয় না, আমাদের ডিপার্টমেন্টকে দেখতে পারে না ইত্যাদি। কিন্তু আসলে ওসব বিষয়ের ওপর জ্ঞানলাভ করা কম্পিউটার বিজ্ঞানের শিক্ষার্থীদের জন্য যথেষ্ট গুরুত্বপূর্ণ। একটা সহজ উদাহরণ দিই। আজকাল শিক্ষার্থীদের মধ্যে আর্টিফিশিয়াল ইন্টেলিজেন্স ও মেশিন লার্নিং নিয়ে অনেক আগ্রহ। পরিসংখ্যান, সম্ভাব্যতা, ম্যাট্রিক্স, লিনিয়ার অ্যালজেবরা—এসব বিষয় না জানলে আর্টিফিশিয়াল ইন্টিলিজেন্স ও মেশিন লার্নিংয়ের মতো বিষয় ঠিকঠাক পড়া যায় না। অথচ শিক্ষার্থীরা এসব বিষয় গুরুত্বসহকারে পড়ে না! তাই নন-মেজর বিষয়গুলো নিয়েও সচেতনভাবে পড়ালেখা করতে হবে। ক্লাসে টিচার পড়ান না, পড়াতে পারেন না কিংবা ক্লাস ঠিকমতো হয় না—এ রকম অজুহাত সত্যি হলেও নিজের ভবিষ্যত গড়ার দায়িত্ব নিজেকেই নিতে হবে। এক্ষেত্রে কোর্সেরা (Coursera) বা এডএক্স (EdX) থেকে সংশ্লিষ্ট বিষয়ের ওপর অনলাইন কোর্স করে ফেলতে পারলে ভালো হয়।

কম্পিটিটিভ প্রোগ্রামিং

বিভিন্ন ওয়েবসাইটে অনেক প্রোগ্রামিং সমস্যা দেওয়া থাকে, যেগুলো সমাধান করে জমা দেওয়া যায় ও ওয়েবসাইটের স্বয়ংক্রিয় বিচারক সেই সমস্যাটির সমাধান সঠিক হলো কি না, সেটি চট করে বলে দেয়। এসব সমস্যা সমাধানের চেষ্টা করাকে অনেকে কম্পিটিটিভ প্রোগ্রামিং বলে, কারণ বিভিন্ন ধরনের প্রোগ্রামিং প্রতিযোগিতায় এ রকম সমস্যার সমাধান করতে হয়। তো প্রোগ্রামিং সমস্যার সমাধান করা মোটেও সহজ কোনো কাজ নয়, এ জন্য অনেক ধৈর্য ধরে দিনের পর দিন লেগে থাকতে হয়, অনেক পরিশ্রম করতে হয়। তারপরও সবাই যে জাতীয় পর্যায়ে প্রোগ্রামিং প্রতিযোগিতায় ভালো করবে, এমন নয়। কিন্তু তাতে হতাশ হওয়ার কিছু নেই, কারণ আসল কম্পিটিশন তো হচ্ছে নিজের সঙ্গে। আজকের তুমি গতকালের তোমার চেয়ে যেন একটু ভালো হও, আর আগামীকালের তুমি যেন আজকের তোমাকে ছাড়িয়ে যাও। আজকাল আন্তর্জাতিক পর্যায়ে শত শত টেকনোলজি প্রতিষ্ঠান তাদের ইন্টারভিউতে এমন সব প্রশ্ন করে, যেগুলো কম্পিটিটিভ প্রোগ্রামিং চর্চা না করলে উত্তর দেওয়া অনেক কঠিন। তাই ভবিষ্যতে আন্তর্জাতিক বাজারের জন্য নিজেকে প্রস্তুত করতে কম্পিটিটিভ প্রোগ্রামিংয়ের বিকল্প নেই। 

হ্যাকাথন, কোডস্প্রিন্ট, প্রজেক্ট

প্রোগ্রামিংয়ে শিক্ষার্থীদের উৎসাহিত করার জন্য আজকাল হ্যাকাথন, কোডস্প্রিন্ট, প্রজেক্ট কম্পিটিশন ইত্যাদি আয়োজন করা হয়। এগুলোতে অংশগ্রহণ করার চেষ্টা করতে হবে। এক্ষেত্রেও অংশগ্রহণই বড় কথা। এসব ইভেন্টে অংশ নেওয়ার উদ্দেশ্য কিন্তু পুরস্কার পাওয়া নয়, বরং নতুন পরিবেশ, নতুন মানুষের সঙ্গে পরিচিত হওয়া, দলবেঁধে কোনো কাজ করা, একটা নির্দিষ্ট লক্ষ নিয়ে কাজ করে সেটা শেষ করার চেষ্টা করা এবং নিজের কাজকে অন্যদের সামনে উপস্থাপন করা। কর্মজীবনে প্রবেশ করার আগে এ ধরনের অভিজ্ঞতা শিক্ষার্থীদের অনেক এগিয়ে দেবে। তাই বলে প্রতি মাসেই এ রকম আয়োজনে অংশ নিতে গেলে লেখাপড়া ও মূল প্রোগ্রামিং চর্চায় ক্ষতি হতে পারে। বছরে দু-তিনবার এ ধরনের আয়োজনে অংশ নেওয়াই যথেষ্ট। 

আগামী দিনের প্রযুক্তি

Change is the only constant in life – দার্শনিকদের এই কথাটি প্রযুক্তি বিশ্বের বেলাতে আরো বেশি সত্য। প্রতি পাঁচ বছরেই যেন বিশাল পরিবর্তন ঘটে যাচ্ছে, নতুন প্রোগ্রামিং ভাষা, নতুন ফ্রেমওয়ার্ক, নতুন ডেটাবেজ, ক্লাউড কম্পিউটিং, মেশিন লার্নিংয়ের নতুন নতুন প্রয়োগ, মোবাইল কম্পিউটিং, আইওটি—লিখে শেষ করা যাবে না। এ জন্য দেশের সফটওয়্যার ইন্ডাস্ট্রির হর্তাকর্তারা প্রায়ই বলেন, আমাদের ভার্সিটিগুলোর সিলেবাস আধুনিক করতে হবে, নতুন নতুন জিনিস শেখাতে হবে ইত্যাদি। কিন্তু তারা আসলে ভুল বলেন। আগামী দিনের প্রযুক্তি নিয়ে কাজ করার জন্য তৈরি হতে হলে, বিশ্ববিদ্যালয়ের কম্পিউটার বিজ্ঞানের শিক্ষার্থীদের জন্য নতুন প্রযুক্তির পেছনে দৌড়ানোটা বোকামি হবে। বরং নিজের ভিত্তিটা অনেক বেশি মজবুত করার পেছনেই জোর দেওয়া উচিত। পাইথন লাইব্রেরি ব্যবহার করে মেশিন লার্নিং করার চেয়ে শিক্ষার্থীদের ডেটা স্ট্রাকচার ও অ্যালগরিদমের ওপর দখল থাকটা বেশি জরুরি। প্রবলেম সলভিং স্কিল থাকাটাও অনেক জরুরি। তবে প্রবলেম সলভিং স্কিল মানে এই নয় যে যেসব প্রবলেম আগে সলভ করা হয়েছে সেগুলো আবার সলভ করতে পারা, বরং নতুন প্রবলেম সলভ করা বা নতুন সমস্যা নিয়ে চিন্তা করার দক্ষতা। সমস্যার সমাধান করতে করতেই এই দক্ষতা তৈরি হবে এবং ভার্সিটির সময়টুকুই এই দক্ষতা তৈরির শ্রেষ্ঠ সময়। তেমনি লেটেস্ট ডেটাবেজ শেখার চেয়ে রিলেশনাল ডেটাবেজের মৌলিক ধারণা আয়ত্বে আনা বেশি জরুরি, নতুন ফ্রেমওয়ার্ক শেখার চেয়ে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং শেখাটা বেশি জরুরি। মোটকথা হচ্ছে, নতুন টেকনোলজির পেছনে না দৌড়ে, কম্পিউটার সায়েন্সের মৌলিক বিষয়গুলোর ওপর জ্ঞান ও দক্ষতা তৈরি করা অনেক বেশি গুরুত্বপূর্ণ। কম্পিউটার সায়েন্সের মূল বিষয়গুলো যাদের কাছে পরিষ্কার থাকবে, তাদের পক্ষে যেকোনো সময় নতুন টেকনোলজি আয়ত্বে আনতে বেগ পেতে হবে না। মনে রাখতে হবে, ভার্সিটি থেকে পাশ করার পরে ক্যারিয়ার কিন্তু ৩০ থেকে ৪০ বছরের। প্রযুক্তি নিয়ে এই দীর্ঘ ক্যারিয়ারের জন্য একটি শক্ত ভিত্তির ওপর নিজেকে দাঁড় করানোটাই সবচেয়ে গুরুত্বপূর্ণ।

রাজনীতি-আবহাওয়া-আকাশ-বাতাস ইত্যাদি বিষয়ে দোষারোপ করে ঘুরে বেড়িয়ে লাভ হবে না। বিশ্ববিদ্যালয় জীবনে কতটুকু জ্ঞান অর্জিত হলো, কতটুকু শেখা হলো – এর ওপরই নির্ভর করবে ভবিষ্যতে নিজের জীবন কেমন হবে। তাই এর দায়িত্ব নিজে নেওয়াটাই বুদ্ধিমানের কাজ হবে। 

কোন ভার্সিটিতে সিএসই পড়ব ?

সিএসই পড়ব, প্রাইভেট ইউনিভার্সিটিগুলোর মধ্যে কোনটা ভালো হবে? এই প্রশ্ন আমার ইনবক্সে, বইয়ের ফেসবুক পেজে, বিভিন্ন গ্রুপে দেখতে দেখতে আমি হয়রান। উত্তরটা লিখে দেই এখানে। উত্তর পছন্দ হলে কেউ এই প্রশ্নটা করলে তাকে উত্তরটা দিয়ে দিবেন। লক্ষ রাখতে হবে, আমার বক্তব্য কেবল সিএসই বা অনুরূপ বিষয়ের জন্য প্রযোজ্য, আর এগুলো আমার ব্যক্তিগত মতামত।

বাংলাদেশে কম্পিউটার সায়েন্স পড়ার দুইটা উদ্দেশ্য থাকতে পারে, এক কম্পিউটার বিজ্ঞানী হওয়া, দুই সফটওয়্যার ইঞ্জিনিয়ার হওয়া। আরেকটা অবশ্য আছে, সার্টিফিকেট পাওয়া, তবে তারা আমার আলোচনার বিষয়বস্তু না।

যারা কম্পিউটার বিজ্ঞানী হবে, তারা যেকোনো একটা বিশ্ববিদ্যালয়ে পড়লেই হয়, কারণ আমাদের দেশের কোনো প্রাইভেট ভার্সিটিই বিদেশে খুব পরিচিত নয়। তাই এখানে কোনো অতিরিক্ত সুবিধা পাবে না। যেখান থেকেই পড়, জিপিএ ভালো থাকলে এবং জিআরই-টোফেলে ভালো স্কোর থাকলে তোমার সুযোগ থাকবে।

এবার আসি যারা সফটওয়্যার তৈরির কাজ করতে চাও। ভালো সফটওয়্যার ইঞ্জিনিয়ারদের চাকরির সুযোগ অনেক (দেশে এবং বিদেশে) আর বেতনও ভালো। আমি যদ্দূর জানি, এই কারণেই পোলাপান সিএসই পড়তে চায়।

ধরা যাক, বাংলাদেশে ৮০টা প্রাইভেট ইউনিভার্সিটি আছে, এবং সেগুলোর একটা ranking করা হলো। এখন সমান মেধার দুই বন্ধুর একজন ১ নম্বর ভার্সিটিতে পড়ল, আরেকজন পড়ল ৮০ নম্বর ভার্সিটিতে। ৮০ নম্বরেরটায় যে পড়বে, সে যদি ঠিকমতো প্রোগ্রামিং শেখে, চর্চা করে, সফটওয়্যার তৈরির কলাকৌশল সম্পর্কে খোঁজখবর রাখে, আর ১ নম্বর ভার্সিটিতে পড়ুয়া বন্ধু যদি কেবল গায়ে হাওয়া লাগিয়ে ঘুরে বেড়ায়, তাহলে ক্যারিয়ারের শুরুতে প্রথম জন, যে ৮০ নম্বর বিশ্ববিদ্যালয়ে পড়ছে, সে অনেক সুবিধাজনক অবস্থানে থাকবে। কারণ সফটওয়্যার প্রকৌশলবিদ্যায় ভালো করতে হলে কাজ জানা প্রয়োজন এবং পরিশ্রমীরাই এখানে ভালো করে।

একটি বিশ্ববিদ্যালয়ের ব্যাপারে খোঁজ নিতে গেলে প্রথমেই জানতে হবে, শিক্ষকরা কেমন। কথা হচ্ছে, কম্পিউটার সায়েন্স কিন্তু অন্য বিষয়ের মতো নয়, যে অমুক ভার্সিটিতে ভালো পড়ায়, তাই সেখানের শিক্ষার্থীরা ভালো। বেশিরভাগই নিজে নিজে শিখতে হয়, শিক্ষক কেবল অনুপ্রেরণা দেন। এখানে একজন তরুণ শিক্ষকও অনেক অনুপ্রেরণা দিতে পারেন, আবার পিএচইডি করা শিক্ষকও শিক্ষার্থীদের কাছে বিষয়বস্তু বোরিং করে তুলতে পারেন। তাই ডিগ্রীর দিকে না তাকিয়ে খোঁজ নিতে হবে, কোন ভার্সিটিতে এমন শিক্ষক বেশি যারা মনমানসিকতায় তরুন, শিক্ষার্থীদের সাথে বন্ধুর মতো ব্যবহার করেন – অনেকটা Dead Poets Soceity-এর মিস্টার কিটিংসের মতো। শিক্ষকরাই পারেন অন্যরকম একটি কালচার তৈরি করতে।

এছাড়া যেসব বিষয় মাথায় রাখতে হবে :
খরচ : শুধু টিউশন ফি ছাড়াও ভার্সিটিতে আরো অনেক খরচ থাকে। তাই খুব ভালো করে খোঁজ নিতে হবে।
যাতায়াত : বাসা থেকে দূরত্বের ব্যাপারটিও হিসাবে আনতে হবে। ভার্সিটিতে যাতায়াত করতে প্রতিদিন রাস্তার তিনঘণ্টা সময় ব্যায় করা কোনো সৃজনশীল ছাত্রের কাজ হতে পারে না। ব্যপারটি অস্বাস্থ্যকরও বটে।
বন্ধু : তোমার ভালো বন্ধুরা কোথায় পড়বে, সেটাও একটা বিবেচ্য বিষয় হতে পারে।

আর ভর্তি হওয়ার পরে ক্লাস শুরুর আগ পর্যন্ত যে সময়টা পাওয়া যায়, সেসময়ে একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখে ফেললে সবচেয়ে ভালো হয়। তাহলে ক্লাস শুরু হলে কোনো চাপ পরে না, নইলে প্রোগ্রামিং নিয়ে হিমশিম খেতে হয়। আর এই বিষয়গুলো শিক্ষক ক্লাসে পড়ান আর নাই পড়ান, নিজে নিজে পড়ে বা বন্ধুদের সাহায্য নিয়ে আয়ত্বে আনতে হবে। এগুলো না শিখলে রেজাল্ট ভালো হলেও বিপদে পড়বে।

স্ট্রাকচার্ড প্রোগ্রামিং, অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং, ডিসক্রিট ম্যাথমেটিকস, ডাটা স্ট্রাকচার, অ্যালগরিদম, ডাটাবেজ, কম্পিউটার নেটওয়ার্কিং, আর্টিফিশিয়াল ইন্টিলিজেন্স, ওয়েব প্রোগ্রামিং, সফটওয়্যার ইঞ্জিনিয়ারিং, সফটওয়্যার অ্যানালাইসিস ও ডিজাইন। মোটামুটি সব ভার্সিটিতেই এগুলো পড়ায়। এসব বিষয়ে ওস্তাদ হয়ে যেতে হবে।

আর ক্যারিয়ার বিষয়ক এই লেখাটাও দেখতে পারো :  http://blog.subeen.com/?p=175

তোমাদের জীবন সুন্দর হোক, ভালো প্রোগ্রামার হও, পাশ করে ভালো চাকরি পাও, অনেক টেকাটুকা কামাও, এই দোয়া রইল। 🙂

প্রোগ্রামিং ক্যারিয়ার গড়তে ৫টি টিপস্

ধরা যাক, তুমি প্রোগ্রামিং ভালোই পারো। তোমার হয়ত কম্পিউটার সায়েন্সের উপর কোনো ডিগ্রী নেই, কিন্তু তুমি প্রোগ্রামিং ক্যারিয়ার গড়তে আগ্রহী।  কিংবা ডিগ্রী নিচ্ছ কিন্তু বুঝতে পারছ না যে কিভাবে তুমি তোমার সিভিতে নিজেকে এমনভাবে তুলে ধরতে পারবে যাতে কোম্পানীগুলো বুঝতে পারে যে তুমি আসলেই কাজ জানো। প্রোগ্রামিং ক্যারিয়ারে কাজ করতে পারাটাই আসল, ডিগ্রী না থাকলেও চলে।

কিভাবে নিজের দক্ষতা প্রকাশ করবে?

১) প্রোগ্রামিং প্রতিযোগিতায় অংশগ্রহন : তুমি যদি বিশ্ববিদ্যালয় পড়ুয়া শিক্ষার্থী হও, তাহলে প্রোগ্রামিং প্রতিযোগিতাগুলোতে নিয়মিত অংশগ্রহন করতে পারো। এসিএম আইসিপিসি’র ঢাকা রিজিওনাল প্রতিযোগিতায় শীর্ষ দুই বা তিনটি দলের মধ্যে থাকলে তোমার গুগল বা ফেসবুকে ইন্টারভিউ দেওয়ার জোরালো সম্ভাবনা তৈরি হয়। তুমি কম্পিউটার সায়েন্সে পড় নাকি ফিজিক্সে পড়, এটি নিয়ে তাদের মাথাব্যাথা থাকবে না। আরেকটি সুবিধা হবে, দেশের শীর্ষ প্রোগ্রামারদের সাথে তোমার জানাশোনা হবে।

২) প্রোগ্রামিং ব্লগ : তুমি প্রোগ্রামিং বিষয়ক ব্লগ লেখতে পারো। প্রতিদিন প্রোগ্রামিং করতে গিয়ে তুমি যা শেখো, সেগুলো লিখে রাখতে পারো নিজের ভাষায়। কোনো সমস্যায় পড়লে কিভাবে সেই সমস্যার সমাধান করলে, সেটিও লিখে রাখতে পারো। এতে অন্যরা যেমন উপকৃত হবে, তেমনি তোমার একটি পরিচিতি তৈরি হবে এবং সিভিতে তুমি তোমার ব্লগের লিঙ্ক দিয়ে দিবে। এতে যিনি তোমার ইন্টারভিউ নিবেন, তিনি সেটি দেখে তোমার দক্ষতা সম্পর্কে খানিকটা ধারণা পাবেন। কিন্তু খবরদার, নিজের ব্লগে অন্যের লেখা চুরি করবে না।

৩) ওয়েব অ্যাপ্লিকেশন তৈরি : তুমি নিজে বিভিন্ন ওয়েব অ্যাপ্লিকেশন তৈরি করে সেগুলো ইন্টারনেটে হোস্ট করে রাখতে পারো। আর নিজের একটি ওয়েবসাইট তৈরি করে সেখানে সবকিছু সাজিয়ে রাখো, এটাকে পোর্টফোলিও (Portfolio) বলে। তুমি কোন লেভেলের ওয়েব ডেভেলাপার, সেটা তোমার পোর্টফোলিওই বলে দেবে।

৪) মোবাইল অ্যাপ : তুমি যদি মোবাইল অ্যাপ তৈরি করতে পারো, তাহলে নিজে নিজে কিছু আইডিয়া বের করে, বা অন্যের আইডিয়া দেখে কয়েকটি মোবাইল অ্যাপ্লিকেশন বানিয়ে ফেলো এবং হোস্ট করে রাখো। আর ইন্টারভিউ দেওয়ার সময় একটি অ্যান্ড্রয়েড (বা আইফোন, তুমি যেই প্ল্যাটফর্মে কাজ করো) মোবাইল সাথে রাখবে যেখানে তোমার তৈরি অ্যাপগুলো ইনস্টল করা থাকবে।

৫) বিভিন্ন ফোরামে অংশগ্রহন : বিভিন্ন ফোরামে কিংবা গ্রুপে মাঝে-মধ্যে সময় দাও। সেখানে অন্যরা যেসব সমস্যা দিয়ে সাহায্য চেয়েছে, সেগুলো সমাধান করে দাও (ক্লাশের এসাইনমেন্ট করে দিবে না কিন্তু!)। এতে তোমার দক্ষতা যেমন বাড়তে, তেমনি অন্য প্রোগ্রামারদের নজরেও তুমি পড়ে যাবে!

তোমার জন্য শুভকামনা রইল।

বি.দ্র. আরো কোনো টিপস্ জানা থাকলে দয়া করে মন্তব্যে লিখুন। ধন্যবাদ।

সিএসই বিভাগের ক্লাস শুরুর আগে

তোমরা যারা বিভিন্ন বিশ্ববিদ্যালয়ে কম্পিউটার সায়েন্স বা কাছাকাছি কোনো বিষয়ে ভর্তি হয়েছ এবং ক্লাশ শুরুর অপেক্ষা করছ, তাদের জন্য আমার অভিজ্ঞতা থেকে কিছু পরামর্শ। উল্লেখ্য যে, এই লেখায় যেসব বইয়ের কথা বলেছি, সেগুলো আমারই লেখা।

screen-shot-2016-12-02-at-9-17-16-am

তোমার যদি কম্পিউটার না থাকে, তাহলে কম্পিউটার কিনে ফেলো, যত কম টাকায় পারা যায় (প্রোগ্রামিং করার জন্য দামি ল্যাপটপের প্রয়োজন নেই)। ডেস্কটপের চেয়ে ল্যাপটপ কেনাই ভালো হবে, কারণ বিদ্যুৎ না থাকলেও ব্যাটারিতে চলবে। ক্লাশ শুরুর আগে তুমি যদি প্রোগ্রামিং (সি ল্যাঙ্গুয়েজ) মোটামুটি শিখে ফেলতে পারো, তাহলে অনেক এগিয়ে যাবে এবং ভার্সিটি লাইফ তোমার জন্য অনেক সহজ ও আনন্দময় হয়ে যাবে। প্রোগ্রামিং শেখার জন্য বাংলায় ‘কম্পিউটার প্রোগ্রামিং (প্রথম খণ্ড)‘ বইটি পড়তে পারো।

কম্পিউটার প্রোগ্রামিং ১ম খণ্ড – চতুর্থ সংস্করণ

এটি নীলক্ষেতে ও রকমারি ডট কম (rokomari.com) -এ কিনতে পাওয়া যায়। আর টাকার সমস্যা থাকলেও অসুবিধা নাই। বইটি অনলাইনে ফ্রি পড়া যায়। আর বইয়ের সাথে সাথে তোমরা চাইলে অনলাইনে একটি প্রোগ্রামিং কোর্স করে ফেলতে পারো। এটিও সম্পূর্ণ ফ্রি, কোনো টাকাপয়সা লাগবে না। একা একা কিংবা বন্ধুরা কয়েকজন মিলে শিখতে পারো। বই এবং (অথবা) কোর্স করার পরে তোমরা কম্পিউটার প্রোগ্রামিং বইয়ের ওয়েবসাইটে দেওয়া প্রবলেমগুলো সলভ করার চেষ্টা করতে পারো। আর সমস্যাগুলোর সমাধান নিয়ে আলোচনা করেছি ‘৫২টি প্রোগ্রামিং সমস্যা ও সমাধান‘ বইতে। এই সমস্যাগুলোর সমাধানের চেষ্টা করলে তোমার প্রোগ্রামিং ও সি ল্যাঙ্গুয়েজের বেসিক শক্ত হয়ে যাবে। ভার্সিটির ক্লাশ শুরুর আগে এতটুকু ভালোভাবে রপ্ত করতে পারলে তোমার আর পেছনে ফিরে তাকাতে হবে না।

ক্লাশ শুরু হওয়ার পরে বইগুলো আবার পড়বে (হ্যাঁ, প্রোগ্রামিং বই কেবল একবার পড়ার জন্য নয়)। তারপরে “কম্পিউটার প্রোগ্রামিং ২য় খণ্ড” বইটি পড়া শুরু করে দাও। বইতে প্রোগ্রামিং ও সি ল্যাঙ্গুয়েজের বেশ কিছু জটিল ও গুরুত্বপূর্ণ বিষয় নিয়ে আলোচনা করা হয়েছে।

cpbook2pp         52_book_cover

(বইগুলো রকমারি ডট কম ছাড়াও daraz.com.bd এবং ঢাকায় নীলক্ষেতের হক লাইব্রেরি ও মানিক লাইব্রেরি-তে পাওয়া যায়।)

নিচের দুইটা বই অপশনাল – পড়তেই হবে এমন কোনো কথা নেই, তবে পড়লে শিক্ষার্থীরা উপকৃত হবে।

rokimg_20150817_102370

আর ভার্সিটিতে অনেক সিনিয়র ভাইয়া-আপুরা তাদের নিজেদের দূর্বলতা ঢেকে রাখার জন্যই হোক, কিংবা নিজেদের কম জানার কারণেই হোক, জুনিয়রদের অনেক উল্টা-পাল্টা গাইডলাইন দেয় – ‘এটা করলে ভালো হবে’, ‘সেটা করার দরকার নাই’ এরকম। তাই আমি বাংলাদেশের এক ডজন সফল প্রোগ্রামারের সাক্ষাৎকার নিয়েও একটি বই লিখেছি ‘প্রোগ্রামিং ক্যারিয়ার গাইডলাইন: এক ডজন প্রোগ্রামারের কথা‘ – যেটি শিক্ষার্থীদের অনুপ্রেরণা যোগাবে ও সঠিক পথ দেখাবে। এর মধ্যে বেশ কিছু সাক্ষাৎকার এই ব্লগে প্রকাশিত হয়েছে।

এছাড়া আমি নিজেও প্রোগ্রামিং শেখার গাইডলাইন হিসেবে একটি বই লিখেছি, যার নাম “প্রোগ্রামিংয়ের আশ্চর্য জগৎ“। বইটির বেশিরভাগ লেখাই এই ব্লগে পাওয়া যাবে। যারা বই পড়তে পছন্দ করো, তারা কিনতে পারো।

প্রোগ্রামিং যাত্রা শুভ ও আনন্দময় হোক।