Bangla - Sohan's Blog

Bangla

ভাইয়া আমি অমুক সেমিস্টারে পড়ি, আমার কি শেখা উচিত?

“ভাইয়া আমি অমুক সেমিস্টারে পড়ি, আমার কি শেখা উচিত?” এরকম কিছু প্রশ্ন আমি পাই মাঝে মাঝে। তাছাড়া AIUB রিলেটেড বেশ কিছু ফেসবুক গ্রুপের পোস্টের কমেন্ট পড়ে মনে হলো এই পোষ্ট টা লিখি। ফার্স্ট সেমেস্টার থেকে ৯-১০ সেমেস্টার পর্যন্ত CS/CSE/CSSE/SE তে পড়া এবং সফটওয়্যার ইঞ্জিনিয়ারিং এ আসার ইচ্ছা এমন AIUBian দের জন্য এই পোস্টটা লেখা, কিন্তু প্রায় সব কম্পিউটার সায়েন্স ব্যাকগ্রাউন্ডের ছাত্রদের ক্ষেত্রেই এটা প্রযোজ্য। আমার তথ্যে এবং মতামতে ভুল থাকতে পারে, সবই ব্যাক্তিগতভাবে যতটুকু বুঝা শেখা তা থেকে লেখা। আমি ধরে নিচ্ছি যে চার বছর Bsc শেষ করে আপনার ইচ্ছা ফিল্ডে ঢোকার, সেক্ষেত্রে কিছু জিনিষ যা আমি নিজে অবসার্ভ করে মনে হয়েছে তা বলিঃ দেশে হোক দেশের বাইরে হোক সফটওয়্যার ইঞ্জিনিয়ারিং এ সবচাইতে গুরুত্বপূর্ন স্কিল হল প্রবলেম সলভিং। আমি নিজে প্রবলেম সলভিং খুবি কম করসিলাম ভার্সিটি লাইফে, শুরু করে ভালো শুরু পেয়েও কনটিনিউ করি নাই, সেটার জন্য এখনও আমি রিগ্রেট ফিল করি। ফার্স্ট ইয়ার, সেকেন্ড ইয়ার এবংকি থার্ড ইয়ার পর্যন্ত আমার মনে হয় আর কিছু না দেখে জাস্ট চোখ বুঝে ACM কমিউনিটি/গ্রুপ এর লোকজনের সাথে মিলে মিশে প্রবলেম সল্ভিং শেখা এবং প্র্যাকটিস করা উচিত। ডেভেলপমেন্টের লোভে যত কম পড়া যায় তত ভাল। বেসিক ক্লিয়ার থাকলে একজন মানুষ ছয় মাসেই ডেভেলপমেন্ট বেশ ভাল মত আয়ত্বে নিয়ে আসতে পারে, যেখানে কয়েক বছর লেগে থাকা ছাড়া প্রব্লেম সলভিং এ ভালো হবার উপায় নাই। তাই প্রথম টার্গেট হওয়া উচিত এটা, কমিউনিটি ভাল লাগেন?

রেডিট আসলে কি? রেডিট ব্যাবহার না করলে আপনি যা যা মিস করছেন।

THIS IS AN INCOMPLETE EARLY DRAFT আমার অত্যন্ত প্রিয় ওয়েবসাইট হলো রেডিট, ইন্টারনেটে নষ্ট করা সময়ের অধিকাংশই আমি ব্যায় করি এই রেডিটে। কি এই রেডিট, কেন আমি এর এত ভক্ত, কেন রেডিট খ্রাপ, কেন ভাল, এইসব নিয়েই মোটামুটি লম্বাচৌড়া এই লেখাটা। কি এই রেডিট? ইন্টারনেটে সময় কাটানো যদি আপনার নিয়মিত এক্টিভিটির মধ্যে পড়ে থাকে তাহলে এটা নিশ্চিতভাবে বলা যায় যে কখনো না কখনো আপনি Reddit নামের ওয়েবসাইটটি দেখছেন। প্রথম দেখায় চোখে পড়ে হিজিবিজি অনেকগুলো নিল নিল লিংক, নিচে কি কি সব লিখা, বামে দুটো উপর-নিচ তিরচিহ্ন, আর কতগুলো সংখ্যা। ইউজার ইন্টারফেসটা যেন সেই ২০০৪-২০০৫ এ পড়ে আছে। সেটাকে আবার লিখে রেখেছে Reddit - The Frontpage of the Internet রেডিট - ইন্টারনেটের প্রথম পাতা প্রথম দেখায় যেমনই লাগুক, For much of The Internet, Reddit is the gateway to everything interesting going on in the world.

ন্যাশনাল হ্যাকাথন ২০১৬- নুবদের সেকেন্ড রানার্সআপ হবার অভিজ্ঞতা

আইসিটি মন্ত্রনালয় এর আয়োজিত ন্যাশনাল হ্যাকাথন ২০১৬ ছিলো আমার এটেন্ড করা প্রথম হ্যাকাথন। এর আগেই কখনো হ্যাকাথনে যাওয়া হয়নি, আমরা মাত্র ফার্স্ট ইয়ারের থার্ড সেমেস্টারে। শুধুই অভিজ্ঞতা অর্জন, ফ্রি ফুড এবং মজা করার ইচ্ছা নিয়েই ছয়জন নুব বন্ধু মিলে একটা টিম করে রেজিস্ট্রেশান করে ফেলি। আর কিছু না হোক, ফ্রিতে ফুডতো পাওয়া যাবে! হ্যাকাথনে কিভাবে কি হলো, সেকেন্ড রানার্স আপ কিভাবে হলাম এসব অভিজ্ঞতা বর্ননা করেই এই ব্লগ পোস্ট। পদার্থ বিজ্ঞানে ইলেক্ট্রনের গতি ও অবস্থানের রহস্যময় অনিশ্চিত আচরনের “আনসার্টেইনিটি প্রিনসিপাল” এর আবিস্কারক হলেন বিজ্ঞানী হাইজেন-বার্গ। আর কম্পিউটার প্রোগ্রামের রহস্যময়ী অনিশ্চিত আচরন করা বাগ’গুলোকে তারই স্মরনে প্রোগ্রামাররা নাম দিয়েছেন হাইজেন-বাগ। একটা “হাইজেনবাগ”কে যখন বোঝার বা সমাধান করার চেস্টা করা হয় তখন হয় সেটা গায়েব হয়ে যায় নাহয় আরো উদ্ভট নতুন রুপ নিয়ে প্রোগ্রামারের ঘুমের তেরটা বাজিয়ে দেয়। আমাদের এবং আমাদের লিখা কোডের সাথে তাই মিল করেই টিমের নাম রাখি “দ্যা হাইজেনবাগস” (The Heisenbugs) আমি লিডার হবার প্রেশার নিতে চাইনি একদমই কিন্তু এরপরেও টিমের লিডার নির্বাচন করা হয় আমাকে। রেজিস্ট্রেশানে আমরা বেছে নিয়েছিলাম “সাস্টেইনেবল টুরিজম” প্রবলেম সেটটি। তো আমরা হ্যাকাথনের আগেই এদিক সেদিক বিভিন্ন আইডিয়া নিয়ে ভাবতে থাকি। আমরা প্রথমেই যেটা বুঝতে পারি যে আমরা কেউই আসলে সি,সি++ এর বাইরে তেমন কিছু পারিনা। টিমের দুইজন খুবই বেসিক পিএইচপি, কোডইগনাইটার পারে, আর বাকিরা কয়েকজন বেসিক এইচটিএমএল, সিএসেস, জাভাস্ক্রিপ্ট, বুটস্ট্রাপ এসব পারি। অন্যরা তাও পারিনা। এসব কারনেই আমরা নলেজ বাড়ানোর চেস্টা করতে থাকি আর এক পর্যায়ে আমরা সিদ্ধান্ত নিই যে আমাদের পক্ষে নেটিভ মোবাইল অ্যাাপ করা সম্ভব না, আমরা একটা ওয়েব এপ্লিকেশান করারই চেস্টা করবো। আমাদের প্লান ছিলো সেখানে বাংলাদেশের সব টুরিস্ট স্পটের একটা সুন্দর ডাটাবেস থাকবে, নেভিগেশান, রেটিংস, ইন্টেলিজেন্ট সার্চ সিস্টেম, প্লেস সাজেস্ট সিস্টেম, গাইড রেজিস্ট্রেশান, ইভেন্ট, কালচারাল ক্যালেন্ডার ইত্যাদি ইত্যাদি বিভিন্ন ফিচার সহ। এসব ফিচারের অধিকাংশই কিভাবে ইমপ্লেমেন্ট করতে হয় তার বেসিক ধারনাটাও আমাদের ছিলোনা। ইভেন্টের কয়েকদিন আগে আমরা এই উদ্দেশ্যে ডাটা কালেকশন ও করে রাখি প্রায় একশটার মত স্থানের। এরপর যা হবে হবার, ফ্রি ফুড, ফ্রি টিশার্ট আর কি লাগে ভেবে রওনা দিলাম হ্যাকাথনে। আমাদেরকে বার বার ফোন করে বলে দেয়া হয়েছিলো যাতে আমরা ৮টার আগে উপস্থিত থাকি। আমরা মিরপুর ১৪, পুলিশ কনভেনশন সেন্টারে গিয়ে পৌছাই সাড়ে সাতটার দিকে। সেখানে গিয়েই দেখি প্রচুর মানুষ অলরেডী সেখানে হাজির, একেকটা টিমকে দেখেই আমাদের গলা শুকিয়ে যাচ্ছিলো। যাকেই দেখি মনে হয় যেন এ তো সেই লেভেলের কোডার, আমরা এ কই আসলাম, আমাদেরকে “কিছু পারেন না”, “আপনারা আসতে পারেন” এমন কিছু বলে ভাগিয়ে দিবে নাতো?

প্রোগ্রামিং শিখা, এবং গুগল সার্চ এর জাদুবিদ্যা

আমি নিজে এখনো নুব প্রোগ্রামার দেখেই সম্ভবত প্রায় সময় অনেককে পাই, যারা ভাল প্রোগ্রামিং শিখতে চায়, কিন্তু “পারছে না”। তাদের নানান সমস্যা, প্রশ্ন। কিভাবে প্রোগ্রামিং এ ভাল হওয়া যায়? ওমুক কনসেপ্টটা বুঝছিনা, একটু বুঝিয়ে দিবা? কোড লিখেছি কিন্তু কম্পাইল হয়না কেন বুঝিনা। আমার লজিক ঠিকাছে, প্রোগ্রাম ও রান হয় কিন্তু রেসাল্ট ঠিকমত আসেনা। … … এ ধরনের ঝাপসা প্রশ্ন থেকে শুরু করে অনেক স্পেসিফিক প্রশ্ন যেমন, একটা মেইন ক্লাস থেকে দুটো ক্লাস ইনহেরিট করে আবার আরেকটা ক্লাসে সেই দুটো ক্লাসকে ইনহেরিট করলে প্রোগ্রাম রান হচ্ছেনা কেন?