কম্পিউটার বিজ্ঞান ও প্রোগ্রামিং নিয়ে প্রচলিত কিছু ভুল ধারণা

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

এই আর্টিকেলে আমি প্রোগ্রামিং ও কম্পিউটার বিজ্ঞান সংশ্লিষ্ট কিছু ভুল ধারণা উপস্থাপন ও ব্যাখ্যা করব।

ভুল ধারণা ১: প্রোগ্রামিং শিখতে চাইলে গণিতে খুব দক্ষ হতে হবে

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

ভুল ধারণা ২: বিজ্ঞান বা প্রকৌশল বিষয়ে না পড়লে প্রোগ্রামিং শেখা যায় না

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

ভুল ধারণা ৩: প্রোগ্রামিং ভাষা জানলেই মোটা অঙ্কের টাকা কামানো যায়

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

একটু বিস্তারিত বলি। মনে করুন, আমি একজন বিখ্যাত ছুতারের কাছ থেকে আসবাবপত্র বানানো শিখলাম। এটি শিখতে আমার ছয়মাস সময় লাগল। এখন আমার দক্ষতা আছে এবং আমি জঙ্গলে ঘুরছি। আমার এই দক্ষতা আমাকে টাকা দেবে? না, এক পয়সাও দেবে না, যদি না আমি ভালো ভালো আসবাব (ফার্নিচার) তৈরি করতে পারি। আমি যদি এটিকে শখ হিসেবে শিখতাম, তাহলে নিজের জন্য কয়েকটি আসবাব তৈরি করেই খুশি থাকতাম। কিন্তু যদি এই দক্ষতা দিয়ে টাকা কামাতে যাই, তাহলে দক্ষতাকে এমন পর্যায়ে নিয়ে যেতে হবে যেন আমার তৈরি আসবাবগুলো বাজারে অন্যদের তৈরি আসবাবের সাথে প্রতিযোগীতা করতে পারে।

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

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

ভুল ধারণা ৪: কম্পিউটার বিজ্ঞান একটি জটিল বিষয়

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

ভুল ধারণা ৫: প্রোগ্রামিং শুধু ছেলেদের জন্য

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

ভুল ধারণা ৬: কম্পিউটার বিজ্ঞান পড়লেই গেম তৈরি করতে পারব

হ্যাঁ, আপনি যা ইচ্ছা তাই বানাতে পারেন। যেমন– একটি পিয়ানো সফটওয়্যার, বা একটি গিটার সফটওয়্যার। আপনার মাকে রান্নায় সাহায্য করার জন্য একটি সফটওয়্যার বানাতে পারেন? হ্যাঁ, অবশ্যই পারেন। আপনি একটি রোবট বানিয়ে দিতে পারেন। দুঃখের বিষয় হচ্ছে যে রোবট প্রযুক্তি এখনো এত উন্নত হয়নি (সাধারণের জন্য)। ধৈর্য ধরে আরেকটি দশক অপেক্ষা করুন।
আপনি কি গেম ডেভেলপ করতে পারেন? আচ্ছা, এত কিছু থাকতে কম্পিউটার বিজ্ঞান পড়ে আপনি গেমই কেন ডেভেলপ করতে চান? আপনি ইলেকট্রনিক যন্ত্রপাতি নিয়ন্ত্রণের জন্য সফটওয়্যার তৈরি করতে পারেন যা বাসাবাড়ির বিদ্যুত সাশ্রয় করবে। একটি স্মার্টফোন অ্যাপ তৈরি করতে পারেন যা বয়স্কদের কেনাকাটা বা পথ নির্দেশনা দিতে সাহায্য করবে।

এক নজরে ধারণাগুলো:

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

ড. মাহমুদ শাহরিয়ার হোসেন (সহকারী অধ্যাপক, ইউনিভার্সিটি অব টেক্সাস এট এল পেসো)-এর মূল লেখাটি পাওয়া যাবে এখানে https://bit.ly/2ENReAp। লেখাটি অনুবাদ করেছেন মোশারফ হোসেন।

সি শেখার গাইডলাইন!

বাংলা ভাষায় সি প্রোগ্রামিং ভাষা দিয়ে প্রোগ্রামিং শেখার গাইডলাইন

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

সি শেখার শুরুতেই এখন যেটা করা উচিত, এক ঘণ্টার সি ভিডিওটা দেখে ফেলা উচিত। এখানে কিছু কিছু বুঝা যাবে, আবার কিছু কিছু জিনিস নতুনরা হয়ত একেবারেই বুঝবে না – তাতে ঘাবড়ে যাবার কিছু নেই। বরং সম্ভব হলে পুরো ভিডিওটা দুইবার দেখতে হবে। এই ভিডিও দেখলে সি নিয়ে একটা ধারণা তৈরি হবে।

তারপর সি শেখা শুরু করতে হবে। প্রোগ্রামিংয়ে যারা একেবারেই নতুন, তাদের জন্য আমি “কম্পিউটার প্রোগ্রামিং ১ম খণ্ড” নামে একটি বই লিখেছি। এখানে জটিল-কঠিন-ভয়াবহ জিনিসগুলো বাদ দিয়ে বরং মৌলিক জিনিসগুলোর ওপর জোর দেওয়া হয়েছে। আশা করি, বইটি কেউ যদি দুইবার করে পড়ে ফেলে, তাহলে তার বেসিক শক্ত হয়ে যাবে। বইটি রকমারি ডট কম থেকে অর্ডার করা যাবে, এছাড়া আর কোথা থেকে পাওয়া যাব সেটি জানা যাবে দ্বিমিক প্রকাশনীর ওয়েবসাইটে। আবার বইটি ইন্টারনেটে ফ্রিও পড়া যাবে, cpbook.subeen.com ওয়েবসাইট থেকে।

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

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

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

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

প্রবলেম সলভিং করতে করতে গিয়ে মনে হবে, একটু ডেটা স্ট্রাকচার ও অ্যালগরিদম জানলে ভালো হতো। সি দিয়ে ডেটা স্ট্রাকচার ও অ্যালগরিদমের সঙ্গে পরিচিত হওয়ার জন্য আমার লেখা “কম্পিউটার প্রোগ্রামিং ৩য় খণ্ড – ডেটা স্ট্রাকচার ও অ্যালগরিদম পরিচিতি” বইটি পড়তে পারো। বই পড়ার পাশাপাশি ইউটিউবে আমার ভিডিও লেকচারগুলোও কাজে আসবে বলে আমি মনে করি।

ওপরের কাজগুলো ঠিকঠাকভাবে করলে আমি মনে করি সি প্রোগ্রামিং ভাষা দিয়ে প্রোগ্রামিং শেখা – এই পথে তুমি বহুদূর এগিয়ে যাবে। তারপরও কেউ আরেকটি বই পড়তে চাইলে আমি বলব The C Programming Language বইটি পড়ার জন্য।

লিঙ্ক –

একটি লিস্টে দ্বিতীয় লিস্টের সকল উপাদানের উপস্থিতি – প্রোগ্রামিং ইন্টারভিউ সমস্যা ১৫

সহজ প্রোগ্রামিং ইন্টারভিউ সমস্যা।

সমস্যা – একটি ফাংশন লিখতে হবে, যেখানে দুটি লিস্ট ইনপুট দেওয়া হবে। প্রথম লিস্টে যদি দ্বিতীয় লিস্টের সকল উপাদান থাকে তাহলে True রিটার্ন করতে হবে, আর নইলে False রিটার্ন করতে হবে।

সমাধান – সমাধান খুবই সহজ। দ্বিতীয় লিস্টের প্রতিটি উপাদান প্রথম লিস্টে আছে কী না, সেটি পরীক্ষা করতে হবে। যদি না থাকে, তাহলে False রিটার্ন করতে হবে, আর যদি সব উপাদানই প্রথম লিস্টে পাওয়া যায়, তাহলে True রিটার্ন করতে হবে।

def is_sublist(listA, listB):
    for item in listB:
        if item not in listA:
            return False
    return True

এখন প্রশ্ন হচ্ছে, ওপরের কোডের কমপ্লেক্সিটি কত? অতিরিক্ত কোনো মেমোরি ব্যবহার করা হচ্ছে না, তাই স্পেস কমপ্লেক্সিটি হচ্ছে O(1)। আর টাইম কমপ্লেক্সিটি হচ্ছে O(n * m), যেখানে n হচ্ছে listA-এর উপাদান সংখ্যা আর m হচ্ছে listB-এর উপাদান সংখ্যা। অনেকেই এখানে ভুল করে টাইম কমপ্লেক্সিটি বলবে O(n), কিন্তু item not in listA – এখানে কিন্তু লিস্টের সকল উপাদান পরীক্ষা করতে হতে পারে, তাই শুধু এই কাজটির টাইম কমপ্লেক্সিটি হচ্ছে O(m)।

পরবর্তী প্রশ্ন হচ্ছে, ওপরের কোডটি কীভাবে আরো ইফিশিয়েন্ট করা যায়? এজন্য সেট (set) ব্যবহার করা যেতে পারে। প্রথমে listA-কে সেটে রূপান্তর করতে হবে। তারপরে কোড আগের মতোই। আমি আর এখানে কোড লিখে দেখালাম না, এটি নিজে লিখতে হবে।

লিস্টে যদি n সংখ্যক উপাদান থাকে, তাহলে এটিকে সেটে রূপান্তর করার কমপ্লেক্সিটি হচ্ছে O(n)। আর তারপরে যেই হোড হবে, সেটি ঠিকঠাকমতো লিখলে তার কমপ্লেক্সিটি হবে O(m)। কারণ একটি উপাদান সেটে আছে কী না, সেটি পরীক্ষা করার জন্য O(1) সময় লাগে। তাহলে প্রোগ্রামটির টাইম কমপ্লেক্সিটি হবে O(n) + O(m)। তবে সেট ব্যবহার করায় কিন্তু এই প্রোগ্রামের স্পেস কমপ্লেক্সিটি বেড়ে যাচ্ছে, স্পেস কমপ্লেক্সিটি কত সেটি পাঠকের জন্য কুইজ (কমেন্টে উত্তর দেওয়া যাবে)।

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

টাওয়ার অফ হ্যানয়

maya-organic-1-tower-of-hanoi-puzzle-400x400-imadx6hgmxvqvpdk

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

মনে হতে পারে চাকতি সরানো আর এমন কী ব্যাপার! কিন্তু সহজ হলে তো আর খেলার মজা থাকে না। চাকতি গুলো সরানোর জন্য রয়েছে তিনটি শর্ত। শর্তগুলো হলোঃ

১. চাকতিগুলো থেকে একবারে একটি করে চাকতি অন্য খুঁটিতে স্থানান্তর করতে হবে। একের অধিক চাকতি একবারে নেয়া যাবে না।

২. সবসময় সবার উপরে যে চাকতিটি থাকবে সেই চাকতিটিই সরিয়ে নিতে হবে, এবং যে খুঁটিতে স্থানান্তর করা হবে সেখানেও সবার উপরের স্থানেই তার জায়গা হবে।

৩. কখনোই ছোট চাকতির উপর বড় চাকতি রাখা যাবে না।

১৮৮৩ সালে ফরাসি গণিতবিদ, এ্যাডুইয়ার্ড লুকাস , টাউয়ার অফ হ্যানয় পাজল্‌টি আবিষ্কার করেন। টাওয়ার অফ হ্যানয়ের রয়েছে মজার একটি গল্প। জনশ্রুতি যে ভারতের কাশি বিশ্বনাথে একটি মন্দিরের একটি বিশাল কক্ষে ৬৪টি স্বর্ণের চাকতিসহ তিনটি স্তম্ভ আছে। একজন ব্রাহ্মণ পুরোহিত ব্রহ্মার নির্দেশ অনুসারে সেই চাকতিগুলোকে ক্রমাগত নিয়ম মেনে আদিকাল থেকে স্থানান্তর করে যাচ্ছে। কিংবদন্তীদের মতে যখন পাজলের ৬৪টি চাকতির শেষ চাকতিটি সফলভাবে স্থানান্তর করা যাবে, তখন পৃথিবী ধ্বংস হয়ে যাবে!

এডুইয়ার্ড লুকাস
এডুইয়ার্ড লুকাস

মজার ব্যাপার হচ্ছে যদি কিংবদন্তীদের কথা সত্যি হয়, এক সেকেন্ডে নিয়ম মেনে একটি চাকতি সঠিকভাবে সরানো গেলেও পুরোহিতের সময় লেগে যাবে ২৬৪-১ সেকেন্ড মানে ২৪৫ বিলিয়ন বছর!

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

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

টাওয়ার অফ হ্যানয়ের ক্ষেত্রে n  সংখ্যক চাকতির জন্য 2n -1 সংখ্যক স্থানান্তরc(Move) হয়ে থাকে। সবচেয়ে সহজ টাওয়ার অফ হ্যানয় সমস্যায় তিনটি চাকতি থাকে।   

N সংখ্যক চাকতির জন্য টাওয়ার অফ হ্যানয়ের এ্যালগোরিদমটি নিম্নরূপঃ

TOWER (N, BEG, AUX, END)

  1. If N=1, then:
    1. Write: BEG—>END
    2. Return
  2. Call TOWER (N-1, BEG, END, AUX)
  3. Write: BEG—>END
  4. Call TOWER(N-1, AUX,BEG,END)
  5. Return

ধরা যাক, খুটি তিনটি যথাক্রমে A, B, C এবং N=3 ( যেহেতু আমরা তিনটি চাকতির জন্য সমাধান করবো।) সেক্ষেত্রে আমাদের স্থানান্তর সংখ্যা হবে 23 -1 = 7  . একদম শুরুতে আমাদের চিত্রটি হবে এমনঃ

n=3 এর জন্য টাওয়ার অফ হ্যানয়।
n=3 এর জন্য টাওয়ার অফ হ্যানয়।


 এখানে A , B এবং C যথাক্রমে BEG, AUX এবং END.  এ্যালগোরিদম এর ফাংশন মতে আমরা লিখতে পারি, TOWER (3, A, B, C) . যেহেতু আমাদের N এর মান 1 এর থেকে বেশি তাই এ্যালগোরিদমের 1 নাম্বার পয়েন্ট আপাতত আমাদের কাজে লাগবে না। আমরা চলে যাই এ্যালগরিদমের 2,3 এবং 4 নাম্বার পয়েন্টের কাছে। সহজ  এবং নির্ভুলভাবে টাওয়ার অফ হ্যানয় সমস্যাটি সমাধান করা জন্য আমরা নিচের তিনটি জিনিস মাথায় রাখবো।

Call Tower (N-1, BEG, END, AUX)

Write:  BEG—>END

Call Tower (N-1, AUX, BEG, END)

যেকোন সংখ্যক চাকতির জন্য কতগুলো স্থানান্তর(movement) এবং স্থানান্তরের ক্রম বের করার জন্য TOWER (N, BEG, AUX, END) এর ডানদিকে আমরা রাখবো TOWER (N-1, BEG, END, AUX ) স্টেটমেন্টটিকে এবং বামদিক রাখবো TOWER (N-1, AUX, BEG, END) .  এটার বেসিক স্ট্রাকচারটি হবে নিম্নরূপঃ

Untitled

 প্রতিবারেই আমাদের আউটপুট হবে BEG —> END . এক্ষেত্রে লক্ষণীয় ব্যাপার হচ্ছে এখানে BEG,  AUX, END এগুলো জায়গা বদলালে এদের নাম বদলাবে। যেমনঃ বামদিকে TOWER (N-1, AUX, BEG, END)  এ AUX কিন্তু আসলে BEG হয়ে গেছে কারণ সে প্রথমে।

এখন N=3 এর জন্য আমরা পাইঃ

matha

 উপরের চিত্রের প্রতিবার TOWER ফাংশন থেকে আমরা BEG—->END হিসেবে আউটপুট পাবো, যেটা হবে আমাদের টাওয়ার অফ হ্যানয় সমস্যার এক একটি স্থানান্তর। যেমনঃ

TOWER (3, A, B, C) ————————————— BEG —-> END —– A—>C

TOWER (3-1, B, A, C) = TOWER (2, B, A, C) ———- BEG—->END —– B—>C

ঠিক এভাবে N = 1 না হওয়া পর্যন্ত TOWER  ফাংশনটি কাজ করেই যাবে। শেষ পর্যন্ত আমরা নিম্নরূপ আউটপুট পাবো যেগুলো প্রত্যেকটি টাওয়ার অফ হ্যানয়ের এক একটি স্থানান্তর। এভাবে প্রতিবার টাওয়ার অফ হ্যানয়ের এ্যালগরিদম ব্যবহার করে আমরা নিম্নোক্ত সমাধান পাইঃ

DSC02719

 এই ছবিটিতে যে “MOVE” গুলো দেখা যাচ্ছে সেগুলো উপর থেকে নিচ পর্যন্ত পরপর সাজালেই আমরা তিনটি চাকতির জন্য টাওয়ার অফ হ্যানয়ের স্থানান্তরগুলো পেয়ে যাবো

টাওয়ার অফ হ্যানয় সমস্যার সমাধানের ক্ষেত্রে এই নিয়মটি দ্বারা N এর যেকোন মানের জন্য খুব সহজেই এর স্থানান্তর (Movement) বের করা সম্ভব।

 লেখক : তামান্না নিশাত রিনি

অ্যাডা লাভলেস – বিশ্বের প্রথম প্রোগ্রামার

সাল ১৮১৫। ডিসেম্বর মাসের ১০ তারিখ। ইংল্যান্ডে সে সময় বড্ড শীত। ইংল্যান্ডের বিখ্যাত বায়রন পরিবারে জন্ম হলো এক শিশু সন্তানের। সেই শিশু সন্তানটি বিখ্যাত কবি লর্ড বায়রন এবং অ্যানি ইসাবেলার কন্যা, অগাস্টা অ্যাডা; পৃথিবীর প্রথম প্রোগ্রামার-যিনি অ্যাডা লাভলেস নামেই সুপরিচিত।

অ্যাডা লাভলেস-প্রথম কম্পিউটার প্রোগ্রামার
অ্যাডা লাভলেস-প্রথম কম্পিউটার প্রোগ্রামার

পুরো নাম তাঁর অ্যাডা অগাস্টা কিং, আর ডাকা হতো কাউন্টেস অফ লাভলেস বা শুধুই অ্যাডা লাভলেস নামে। তাঁর বাবার সৎ-বোন অগাস্টা লেই এর নামে মেয়ের নাম রাখা হয়, আর বায়রন তাঁকে অ্যাডা নাম দেন। মাত্র একমাস যখন অ্যাডার বয়স, তখন থেকে তাঁর মা ইসাবেলা তাঁকে নিয়ে আলাদা হয়ে যান। পিতা বিখ্যাত রোমান্টিক কবি লর্ড বায়রনের সাথে অ্যাডার কখনো দেখা হয়নি। এমনকি ১৮৪১ সালের আগে অ্যাডা জানতেনই না লর্ড বায়রন তাঁর বাবা!

ছোট থেকেই অ্যাডা কিছুটা অসুস্থতায় ভুগছিলেন, প্রচণ্ড মাথাব্যথা হতো এবং দৃষ্টি প্রতিবন্ধকতা ছিল। ১৮২৯ সাল থেকে তিনি হাম এবং পক্ষাঘাতগ্রস্থতায় ভুগছিলেন। কিন্তু ক্র্যাচে ভর দিয়ে হলেও শিক্ষা চালিয়ে গিয়েছেন। বাসায় গৃহশিক্ষকেরা বিভিন্ন বিষয়ে শিক্ষা দিতেন তাঁকে। গণিতজ্ঞ ও যুক্তিবিদ ডি-মরগ্যান তাঁর শিক্ষক ছিলেন। স্যার চার্লস ডিকেন্স, স্যার চার্লস হুইটস্টোন এবং বিজ্ঞানি মাইকেল ফ্যারাডের সাথেও তাঁর জানাশোনা ছিল।

অ্যাডা লাভলেসের মায়ের একদমই ইচ্ছা ছিলনা তার মেয়ে বাবার প্রতিভা পাক। তাই ছোটবেলা থেকেই মেয়েকে তিনি সঙ্গীতে এবং গণিতে ব্যস্ত করে রাখেন। মায়ের প্রচেষ্টা বৃথা যায়নি – তাঁর গণিত প্রতিভা বিচ্ছুরিত হয়েছে উজ্জ্বল আলোকরশ্মির মত। ১৮৩২ সালে যখন তাঁর বয়স মাত্র ১৭ বছর, তখন তিনি ফ্লাইং মেশিনের নকশা প্রণয়ন করেন।

১৮৩৫ সালের ৮ জুলাই তিনি  উইলিয়াম কিং এর সাথে বিবাহ বন্ধনে আবদ্ধ হন এবং তাঁর নামের সাথে কিং যুক্ত হয়। ১৮৩৩ সালের ৫ জুন তাঁর সাথে পরিচয় হয় বিশ্ববিখ্যাত বিজ্ঞানী চার্লস ব্যাবেজের। স্যার চার্লস উইলিয়াম ব্যাবেজ তখন তাঁর ডিফারেন্স মেশিন বা অ্যানালাইটিক্যাল ইঞ্জিন নামক কম্পিউটার আবিষ্কারের নেশায় মত্ত। ব্যাবেজকে তখন লোকজন পাগল মনে করতো। তাঁর এই অ্যানালাইটিক্যাল ইঞ্জিনের ধ্যানধারণা যেই গুটিকয়েক মানুষ বুঝতে পেরেছিলেন, তাঁদের মধ্যে অ্যাডা অন্যতম। অ্যাডা তাঁর গণিতবিষয়ক বিশ্লেষণী ক্ষমতার দ্বারা বুঝতে পেরেছিলেন এই কম্পিউটারগুলোর নাম্বার ক্রাঞ্চিং এর অমিত সম্ভাবনা সম্পর্কে।চার্লস ব্যাবেজ তাই লিখে গেছেন তাঁর Decline of Science in England বইয়ে। তখনকার দিনে এই যন্ত্রটির কাজ ব্যাখ্যা করা খুবই কষ্টসাধ্য ছিল, এবং অনেক বিজ্ঞানী ও গণিতবিদ তাঁর চিন্তাধারাটিকে সমর্থন করেন নি। কিন্তু অ্যাডা যন্ত্রটির কার্যপদ্ধতি ও সম্ভাবনা সম্পর্কে সঠিক ব্যাখ্যা দেন। ব্যাবেজ অ্যাডার ধীশক্তি, সাবলীলতা, প্রতিভা এবং গাণিতিক দক্ষতায় মুগ্ধ ছিলেন। ব্যাবেজ অ্যাডা সম্পর্কে তাঁর লেখায় অ্যাডাকে সংখ্যার জাদুকরি (The Enchantress of Numbers) বলে আখ্যা দিয়েছেন।

অ্যাডার মৃত্যুর ১০০ বছর পর অ্যানালিটিকাল ইঞ্জিন সম্পর্কে তাঁর একটি নোট প্রকাশিত হয়। সেই নোটের G-নং এ তিনি Bernoulli numbers এর একটি সিকোয়েন্স ক্যালকুলেশন করার জন্য একটি অ্যালগরিদম বর্ণনা করেন যা পৃথিবীর প্রথম কম্পিউটার প্রোগ্রাম হিসেবেই পরিচিত। অ্যানালিটিকাল মেশিন (যা বর্তমান কম্পিউটারের পূর্বপুরুষ)-এর মত এই নোটটি ছিল মেশিনটির হার্ডওয়্যার ও সফটওয়্যার এর বর্ণনা। আর এ কারণেই অ্যাডা অগাস্টা লাভলেস পৃথিবীর প্রথম প্রোগ্রামার হিসেবেই পরিচিত।

Bernoulli numbers এর ক্যালকুলেশন- পৃথিবীর প্রথম কম্পিউটার প্রোগ্রাম।
Bernoulli numbers এর ক্যালকুলেশন- পৃথিবীর প্রথম কম্পিউটার প্রোগ্রাম।

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

এই টেক-জিনিয়াস ১৮৫২ সালের ২৭ নভেম্বর, মাত্র ৩৬ বছর বয়সে ক্যান্সারে আক্রান্ত হয়ে মৃত্যুবরণ করেন। তাঁকে মর্যাদা দিতে আমেরিকার প্রতিরক্ষা (US Defense) বিভাগের প্রমিত প্রোগ্রামিং ভাষার নাম রাখা হয় অ্যাডা (Ada)। Conceiving Ada নামে তাঁকে নিয়ে একটি সিনেমাও আছে। মাইক্রোসফটের প্রোডাক্ট অথেনটিসিটি হলোগ্রামে রয়েছে তাঁর ছবি। কম্পিউটিং এবং প্রোগ্রামিং এ বিশেষ অবদানের কারণে ২৪ মার্চকে Ada Lovelace Day হিসেবে বিশ্বব্যাপী উদযাপন করা হয়ে থাকে।

লেখকঃ তামান্না নিশাত রিনি।
তথ্যসূত্রঃ উইকিপিডিয়া।

গণিতে দুর্বল?

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

Image Source : http://blogs.discovermagazine.com/inkfish/2012/11/02/math-phobes-experience-arithmetic-like-bodily-pain/

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

এরপর নিজেকে প্রশ্ন করবে? ক্লাস এইটের বই পড়ার সময় কী সবকিছু ঠিকঠাক বুঝতে পেরেছ নাকি কোথাও কোথাও একটু সমস্যা হয়েছে? যদি সমস্যা হয়, তাহলে ক্লাস ফাইভের বই থেকে শুরু কর। তারপর ক্লাস সিক্স ও সেভেনের বই। প্রতিটা বই পড়তে এক সপ্তাহের মত সময় লাগবে। পড়ার সাথে সাথে উদাহরণগুলো করতে ভুলবে না।

ক্লাস এইট পর্যন্ত গণিতের বেসিক শক্ত করার পরে তুমি জাফর ইকবাল স্যারের লেখা “গণিত এবং আরো গণিত” বইটা পড়তে পার। বইটা আসলে ইংলিশ মিডিয়ামের (ও লেভেলের) গণিত বই অবলম্বনে লেখা। পড়তে এক মাসের মতো সময় লাগবে।

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

পৃথিবীর ৯৫% প্রফেশনাল প্রোগ্রামারই জীবনে এমন কিছু করবে না, যার জন্য এর চেয়ে বেশি গণিত শেখার দরকার হবে। বাকী ৫% এর অনেক কিছু শিখতে হবে। সেগুলো কী কী, এটা তাদের আলাদাভাবে বলে দেওয়া লাগবে না, তারা সামনে এগুতে থাকলে এমনিতেই জানতে পারবে। আর ৯৫%, যাদের মধ্যে তোমার থাকার সম্ভাবনা বেশি, তুমি নিশ্চিন্তে প্রোগ্রামিংকে ক্যারিয়ার হিসেবে নিতে পার, যদি প্রোগ্রামিং ভালো লাগে। তোমার জন্য শুভকামনা।

যারা আসলেই স্কুলে গণিত শেখায় ফাঁকি দিয়েছ, তারা গণিত করব জয় বইটি পড়তে পারো। বইটি আমি ও তাহমিদ রাফি মিলে লিখেছি।

কোড শেয়ার করার ওয়েবসাইট

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

১) paste.ubuntu.com

Screenshot from 2015-01-21 02:16:49এখানে নাম লিখতে হবে, প্রোগ্রামিং ল্যাঙ্গুয়েজ সিলেক্ট করতে হবে, কোড পেস্ট করতে হবে, তারপরে Paste! বাটনে ক্লিক করলে যেই নতুন লিঙ্কটি তৈরি হবে, সেটি দিয়েই কোড শেয়ার করা যাবে।

২) pastebin.com

Screenshot from 2015-01-21 02:18:22

এটিও আগেরটির মতোই। তবে পেস্ট এক্সপায়ার করার একটা সময় নির্ধারণ করে দেওয়া যায়। আর বেশি বেশি ব্যবহার করতে হলে একাউন্ট তৈরি করে নিতে হয়।

৩) pastie.org
এটির ব্যবহারও খুব সহজ। এখানে একাউন্ট তৈরি করা লাগে না।

এরকম আরো বেশ কিছু ওয়েবসাইট আছে, গুগলে সার্চ করলেই পেয়ে যাবে – যেকোনো একটি ব্যবহার করলেই চলবে। আশা করছি সবাই এখন থেকে আরো সুন্দরভাবে কোড শেয়ার করবে।

প্রোগ্রামিং সংক্রান্ত বাংলায় প্রশ্নোত্তর করার ভালো ওয়েবসাইট হচ্ছে  http://programabad.com, আর ফেসবুকে আছে প্রোগ্রামিং স্কুল নামে একটি গ্রুপ।

কোড ইট গার্লের প্রোগ্রামিং কর্মশালা

শেষ হল Code it, Girl-এর প্রথম ইভেন্ট – প্রোগ্রামিংয়ের ওপর দিনব্যাপী কর্মশালা। ২৩ টি স্কুল/ কলেজ থেকে মোট ৪৩ জন ছাত্রী কর্মশালায় অংশগ্রহণ করেছে।  ওয়ার্কশপটি ছিল আট ঘণ্টার এবং ওয়ার্কশপে শিক্ষার্থীরা কম্পিউটার ব্যবহার করে হাতে-কলমে প্রোগ্রামিং করে। কর্মশালার বেশিরভাগ সময়ই তারা কাটায় পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে নানান রকমের প্রোগ্রামিং করে। এছাড়া সার্চ ইঞ্জিনের ব্যবহার ও লিনাক্সের ব্যবহার সম্পর্কে তারা ধারণা লাভ করে ও আওয়ার অব কোড-এ অংশ নেয়।

10931001_895620120470590_5378801531121384549_n10940492_10153018552575797_3949335118392846653_n

কর্মশালাটি পরিচালনা করেন দ্বিমিক কম্পিউটিং-এর তামিম শাহরিয়ার সুবিন এবং তাহমিদ রাফি। তাদের সাথে আরো ছিলেন সফটওয়্যার প্রকৌশলী আশিকুর রহমান মুশফিক এবং রাশিদুল হাসান সৈকত।

10580036_10153018552515797_7995244114120466878_n

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

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

Code it, girl! একটি অলাভজনক ও স্বেচ্ছাসেবামূলক প্রতিষ্ঠান, এর উদ্যোক্তারা দেশে-বিদেশে বিভিন্ন সফটওয়্যার প্রতিষ্ঠানে কর্মরত। আয়োজকরা হলেন আফরীন হোসেন, মিরফাত শারমিন, রিজভী বিন ইসলাম, মোশ্তাক আহমেদ ম্যাক, তাপস পাল, আশিকুর রহমান মুশফিক, শুভ্র সরকার, রাশিদুল হাসান সৈকত, ওয়াজদা আখতার এবং নাদিয়া রাহমান বৃষ্টি। আয়োজকরা সবাই এক সময় ওয়ালট ডিজনির অংশ, প্লেডম বাংলাদেশ প্রাইভেট লিমিটেডে গেম ডেভেলপমেন্ট এর কাজ করতেন।

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

ফেসবুক গ্রুপ এর লিঙ্কঃ https://www.facebook.com/groups/292738210923130/
পেইজের লিঙ্কঃ https://www.facebook.com/codeitgirl

– প্রেস বিজ্ঞপ্তি।

ক্যারিয়ার এডভাইজ – ৪

[থেরাপ সার্ভিসেস লিমিটেড কর্তৃক আয়োজিত নিয়মিত ওয়েবিনারের একটি পর্ব ছিল প্রোগ্রামিং ক্যারিয়ার নিয়ে। সেখানে বক্তা ছিলেন থেরাপের প্রধান কারিগরি কর্মকর্তা (সিটিও) মোজাহেদুল হক আবুল হাসনাত (মাসুম)। থেরাপ কর্তৃপক্ষের অনুমতিক্রমে সেই ওয়েবিনার থেকে টেক্সটে রূপান্তর করে আমার ব্লগের পাঠকদের জন্য পোস্ট করলাম। এটি চতুর্থ ও শেষ পর্ব।]

ইন্ডাস্ট্রি এখন কোন দিকে যাচ্ছে
ইন্ডাস্ট্রি এখন ক্লাউড ভিত্তিক SaaS টাইপ প্রোডাক্ট এর দিকে যাচ্ছে। অর্থাৎ এখন নতুন সফটওয়্যার ডেভেলপ হলে সেটা ক্লাউডের মাধ্যমে করে, আর ইউজাররা ওয়েবের মাধ্যমে সফটওয়্যার ব্যবহার করে এবং মাসিক বা বাৎসরিক ফি প্রদান করে। SaaS মডেলটা বর্তমানে বেশ জনপ্রিয়। এরপর আছে মোবাইল অ্যাপ্লিকেশান। এটা সম্পর্কে তোমরা সবাই জান। কিন্তু একটা জিনিস আমরা অবহেলা করি, সেটা হল, আমি শুনেছি, কোন কোন বিশ্ববিদ্যালয়ে জাভা’র পরিবর্তে অ্যান্ড্রয়েড এর কোর্স করাচ্ছে। এটা আসলে ঠিক না। শুধু মোবাইল অ্যাপ্লিকেশান ডেভেলপমেন্ট করলে তো হবে না, মোবাইলটা হলে ফ্রন্টএন্ড। সব অ্যাপ্লিকেশানের ব্যাকএন্ড আছে, তো ব্যাকএন্ডটাও করতে হবে। কাজেই শুধু মোবাইল ডেভেলপমেন্ট শিখলে হবে না, ব্যাকএন্ডও শিখতে হবে। বর্তমানে ক্লাউডের জনপ্রিয়তার কারণে ভালো কোন আইডিয়া গ্রাহকদের কাছে খুব সহজেই পৌঁছান যায়। PaaS এর মাধ্যমে খুব সহজেই সফটওয়্যার ডেভেলপমেন্ট করা যায়। যেমনঃ তুমি যদি গুগল অ্যাপ ইঞ্জিন শিখো তবে এটাতে ডাটাবেজও আছে, ওয়েব ডেভেলপমেন্টের সব কিছুই আছে এবং একটা ল্যাঙ্গুয়েজের উপর ভিত্তি করে একটা প্রোডাক্ট তৈরি করতে পার এবং এই প্রোডাক্টটা ১০ জন ইউজার ব্যবহার করলে যে কার্যকারিতা দেখাবে ১০ লক্ষ ইউজার ব্যবহার করলেও একই কার্যকারিতা দেখাবে।

যেই যেই ল্যাঙ্গুয়েজ এখন জনপ্রিয়
জাভা অনেক দিন আগের থেকেই জনপ্রিয়। রুবি, পাইথন, জাভাস্ক্রিপ্ট। জাভাস্ক্রিপ্ট গত ৫/৬ বছরে খুবই জনপ্রিয় হয়ে গেছে। সি# এবং পিএইচপি বাংলাদেশে অনেক চাহিদা। লোকাল কোম্পানিগুলো অনেক বেশি ডট নেট এবং পিএইচপি ব্যবহার করে। যারা লোকাল কোম্পানিতে কাজ করতে চাও, তারা এগুলো শিখতে পার। যেহেতু এগুলো সহজ এবং অনেক লোক এগুলো উপর কাজ করে, যদিও কাজও অনেক কিন্তু অনেক প্রতিযোগিতাও আছে। তাই শত শত প্রোগ্রামার থেকে ভাল প্রোগ্রামার খুঁজে বের করা বেশ কঠিন। বাংলাদেশে জাভা, রুবি, পাইথন এইসব প্রোগ্রামার খুব বেশি নাই, তাই তোমরা যারা এই সব ল্যাঙ্গুয়েজে ভাল করবা, তারা ভাল জব পাবা। বর্তমানে ফাংশনাল প্রোগ্রামিংও জনপ্রিয়। আর এ প্রোগ্রামিং করার প্লাটফরম হচ্ছে node.js এবং Scala। node.js হচ্ছে জাভাস্ক্রিপ্ট দিয়ে ব্যাকএন্ডে কাজ করার প্লাটফরম। এটাও বেশ জনপ্রয় হচ্ছে। অনেকগুলো নোএসকিউএল ডাটাবেজ আছে। এর মধ্যে MongoDB সবচেয়ে জনপ্রিয়।

java-151343_640
জাভা ওয়ার্ল্ড
যেহেতু থেরাপ জাভা ভিত্তিক। তাই জাভা সম্পর্কে কিছু বলতে চাই। অনেক মিথ আছে বাংলাদেশে, যেমন জাভা একটি মৃত ল্যাঙ্গুয়েজ অর্থাৎ জাভার জনপ্রিয়তা কম। বাংলাদেশের লোকাল ইন্ডাস্ট্রির সাপেক্ষে এটা সত্য। কারণ, লোকাল কোম্পানি গুলো ডট নেট বেশি ব্যবহার করে তারপর পিএইচপি। কিন্তু বিশ্বব্যাপী চিন্তা করলে জাভা হচ্ছে দ্বিতীয় জনপ্রিয় ল্যাঙ্গুয়েজ – তাইওবি(TIOBE) এর ভিত্তিতে। প্রথম ল্যাঙ্গুয়েজ হচ্ছে সি। আর জাভা হচ্ছে এন্টারপ্রাইজ ওয়ার্ল্ডে ১ নম্বর ল্যাঙ্গুয়েজ। জাভার কতগুলো ফ্রেমওয়ার্ক আছে। যারা জাভা নিয়ে ক্যারিয়ার গড়তে চাও, তারা ফ্রেমওয়ার্কগুলো শিখে ফেলতে পার। স্প্রিং হচ্ছে সবচেয়ে জনপ্রিয় জাভা ফ্রেমওয়ার্ক। স্প্রিং একটি বিশাল ফ্রেমওয়ার্ক। তবে মজার বিষয় হচ্ছে, পুরোটা একসাথে শেখার দরকার নাই। একটু একটু করে শিখলেই চলবে। যারা স্প্রিং দিয়ে ওয়েব অ্যাপ্লিকেশান বানাতে চাও, তারা স্প্রিংএমভিসি  শিখতে পার। JEE হচ্ছে Java Enterprise Edition, এটাও একটা ফ্রেমওয়ার্ক। এটাও শিখতে পার। হাইবারনেটও শিখতে পার। জাভা ওয়ার্ল্ডে কিছু টুল ব্যবহার করা হয়। এখানে দুইটা টুলের কথা উল্লেখ করলাম। একটা Ant আর একটা Maven. ছাত্র অবস্থায়ই এগুলো শিখে রাখা ভাল।

বাংলাদেশে কী করা যায়
বাংলাদেশে বেশ কিছু ভাল সফটওয়্যার কোম্পানি আছে। কিন্তু কোম্পানিগুলো ছোট। ছোট মানে কোম্পানিগুলোতে হয়ত ১০০/২০০ বা ২০/৩০ জন কর্মী আছে। কাজেই অনেক মানুষ এসব কোম্পানি সম্পর্কে জানে না। পেপারে হয়তো এদের ছবি দেখনা, টিভিতে হয়তো এদের এড দেখ না। কিন্তু এরা যথেষ্ট ভাল কোম্পানি। সবচেয়ে বড় কথা হচ্ছে, কোম্পানিগুলো ভালো লোক খুঁজছে, থেরাপ তো খুঁজছেই সাথে আরও যেসব ভাল কোম্পানি আছে, তারাও ভাল প্রোগ্রামার, টেস্টার খুঁজছে, কিন্তু পাচ্ছে না। আবার অনেক ভাল প্রোগ্রামার, টেস্টারও আছে যারা ভালো কোম্পানি খুঁজে পায়নি। ভালো কোম্পানি না পেয়ে হয়তো কোন বাজে কোম্পানিতে ঢুকে পরে। তাই তোমাদেরকে ভাল করে খোঁজ খবর নিতে হবে। বাংলাদেশে বেশ কিছু সফটওয়্যার কোম্পানি আছে যারা বড় হতে পারছে না বা বড় হবার লিমিটিং ফ্যাক্টর হচ্ছে ভালো লোক পাচ্ছে না। এদের হাতে প্রচুর কাজ আছে, প্রচুর প্রোজেক্ট আছে, প্রচুর প্রোডাক্ট তৈরি করতে পারবে, অনেক কাজ নিয়ে আসতে পারবে। কিন্তু এই কাজ করার জন্য যে পরিমাণ লোক দরকার সেই লোকজন নাই। এটা হচ্ছে সবচেয়ে বড় লিমিটিং ফ্যাক্টর কোম্পানিগুলোর জন্য। যারা চাকরি করতে চাও না, তাদের জন্যও এখন খুব ভালো সময়। যাদের মাথায় ভালো সফটওয়ারের আইডিয়া আছে, প্রোডাক্টের আইডিয়া আছে তারা স্টার্টআপ করতে পার। বাংলাদেশে এখন ছোটখাট বেশকিছু স্টার্টআপ আছে, যারা ৩/৪ জন মিলে একটা স্টার্টআপ তৈরি করে, বা কিছু প্রোডাক্ট তৈরি করে, গেমস তৈরি করে। অর্থাৎ স্টার্টআপ করার জন্য এখন সবচেয়ে ভাল সময়।

ক্যারিয়ার এডভাইজ – ৩

থেরাপ সার্ভিসেস লিমিটেড কর্তৃক আয়োজিত নিয়মিত ওয়েবিনারের একটি পর্ব ছিল প্রোগ্রামিং ক্যারিয়ার নিয়ে। সেখানে বক্তা ছিলেন থেরাপের প্রধান কারিগরি কর্মকর্তা (সিটিও) মোজাহেদুল হক আবুল হাসনাত (মাসুম)। থেরাপ কর্তৃপক্ষের অনুমতিক্রমে সেই ওয়েবিনার থেকে টেক্সটে রূপান্তর করে আমার ব্লগের পাঠকদের জন্য পোস্ট করলাম।

প্রথম পর্ব পড়তে এখানে ক্লিক করুন

তৃতীয় পর্ব

আমার মতে একজন ছাত্রের জন্য কী গুরুত্বপূর্ণ
প্রথম হচ্ছে, তুমি যদি প্রোগ্রামার হতে চাও, তাহলে প্রোগ্রামিং করতে হবে। প্রোগ্রামার হতে চাই, এই স্বপ্ন নিয়ে বসে থাকলে চলবে না, ছাত্র অবস্থাতেই তোমার প্রোগ্রামিং করতে হবে।

kung-fu-panda-3d-film-animazione1
প্রোগ্রামিংটা হচ্ছে অনেকটা খেলাধুলার মত। যেমন ফুটবল, তুমি যদি সারাদিন ম্যারাডোনা বা পেলের জীবনী পড় তবে তুমি ভাল খেলোয়াড় হতে পারবে না। আবার এটাও ঠিক যে ফুটবল কিভাবে খেলে সেটা বই পড়ে বা কারো কাছ থেকে জানতে হবে, কিন্তু ভালো খেলোয়াড় হতে হলে তোমাকে ফুটবল খেলতে হবে। খেলতে খেলতেই তুমি খেলোয়াড় হতে পারবে। প্রোগ্রামিংও ঠিক সেইরকম, কম্পিউটার সায়েন্স যারা পড়ছ তারা কিন্তু জান যে কিভাবে প্রোগ্রামিং করতে হয় কিন্তু প্রোগ্রামার হতে হলে তোমাকে অবশ্যই প্রোগ্রামিং করতে হবে। তোমরা যদি চিন্তা করো যে তোমরা পড়াশুনা শেষ করে প্রোগ্রামিং করবা, তবে আমার মনে হয় তোমার অনেক দেরি করে ফেলেছ যদি যারা আগে থেকেই প্রোগ্রামিং করে তাদের সাথে তুলনা করা হয়। বাংলাদেশের মত জায়গায় যেখানে আইটি ইন্ডাস্ট্রি খুব ছোট, সেখানে সব কোম্পানিগুলো চায় যে ছাত্ররা বের হবে এবং তারা ইতিমধ্যে প্রোগ্রামিং জেনে থাকবে। প্রায় সব কোম্পানিই চায়, প্রোগ্রামিং জানা কেউ একজন আসবে। প্রোগ্রামিং শিখতে সময় লাগে। একজন ভালো প্রোগ্রামার হতে প্রায় ২/৩ বছর লেগে যায়। খুব ভালো হলে এবং খুব ভালো ট্রেইনিং দিলেও কমপক্ষে ১ বছর সময় লাগে একজন মোটামুটি মানের প্রোগ্রামার বানাতে। কাজেই এটার জন্য যদি কোম্পানিকে বিনিয়োগ করতে হয়, তবে বাংলাদেশের মত কোম্পানিগুলো জন্য এটা বেশ কষ্টকর হয়ে যায়। কাজেই আমি বলব, যারা সিএস বা কাছাকাছি ফিল্ডে ঢুকেছ, যারা প্রোগ্রামার হতে চাও, অবশ্যই প্রোগ্রামিং করতে হবে। আর ক্লাসে যেসব প্রোজেক্ট দেয়, ওইগুলো যথেষ্ট না। ক্লাসের প্রোজেক্টগুলো খুব সহজ হয়। তাই আরও ভাল ভাল প্রোগ্রামিং সমস্যা সমাধান করতে হবে। এক কথায় প্রচুর প্রোগ্রামিং করতে হবে। একা একা করার চেয়ে বন্ধুদেরকে নিয়ে করাটা আমি ভাল মনে করি। ছাত্র অবস্থাটা হচ্ছে সবচেয়ে ভালো সময়। এই সময়টা যদি সঠিক ভাবে কাজে লাগানো যায়, তবে পরে অনেক সুবিধা পাওয়া যায়। তোমার আশেপাশের মানুষকে সাহায্য করার জন্য সফটওয়্যার বানাতে পার। পড়াশুনার ব্যাপারে বলব, বেশির বিশ্ববিদ্যালয়ের সিলেবাস বেশ ভালো এবং বিশ্বমানের, কারণ বেশির ভাগ বিশ্ববিদ্যালয়ের সিলেবাস কিন্তু বাইরের কোন না কোন বিশ্ববিদ্যালয়ের অনুকরণে তৈরি করা। সিলেবাসের কন্টেন্টটা ভালো, সীমাবদ্ধতা হচ্ছে পড়ানোর পদ্ধতিতে।  হয়তো শিক্ষকরা যতটুকু আপ টু ডেট থাকা উচিৎ সেইরকম না। অনেকেই পড়ে শুধু জিপিএ পাওয়ার জন্য, এটা আমার মতে ভুল হবে। বিশেষ করে মূল সাবজেক্টগুলো যখন পড়ছ তখন মন দিয়ে পড়বে। তাতে যেমন জিপিএ চলে আসবে তেমনি তুমি প্রোগ্রামার বা ডাটাবেজ অ্যাডমিনিসট্রেটর হওয়ার লক্ষে এগিয়ে যেতে পারবা। শুধু যদি জিপিএর জন্য পড় তাহলে ওইটা হবে না।

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

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

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

শেষ পর্ব পড়তে এখানে ক্লিক করুন