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

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
প্রোগ্রামিংটা হচ্ছে অনেকটা খেলাধুলার মত। যেমন ফুটবল, তুমি যদি সারাদিন ম্যারাডোনা বা পেলের জীবনী পড় তবে তুমি ভাল খেলোয়াড় হতে পারবে না। আবার এটাও ঠিক যে ফুটবল কিভাবে খেলে সেটা বই পড়ে বা কারো কাছ থেকে জানতে হবে, কিন্তু ভালো খেলোয়াড় হতে হলে তোমাকে ফুটবল খেলতে হবে। খেলতে খেলতেই তুমি খেলোয়াড় হতে পারবে। প্রোগ্রামিংও ঠিক সেইরকম, কম্পিউটার সায়েন্স যারা পড়ছ তারা কিন্তু জান যে কিভাবে প্রোগ্রামিং করতে হয় কিন্তু প্রোগ্রামার হতে হলে তোমাকে অবশ্যই প্রোগ্রামিং করতে হবে। তোমরা যদি চিন্তা করো যে তোমরা পড়াশুনা শেষ করে প্রোগ্রামিং করবা, তবে আমার মনে হয় তোমার অনেক দেরি করে ফেলেছ যদি যারা আগে থেকেই প্রোগ্রামিং করে তাদের সাথে তুলনা করা হয়। বাংলাদেশের মত জায়গায় যেখানে আইটি ইন্ডাস্ট্রি খুব ছোট, সেখানে সব কোম্পানিগুলো চায় যে ছাত্ররা বের হবে এবং তারা ইতিমধ্যে প্রোগ্রামিং জেনে থাকবে। প্রায় সব কোম্পানিই চায়, প্রোগ্রামিং জানা কেউ একজন আসবে। প্রোগ্রামিং শিখতে সময় লাগে। একজন ভালো প্রোগ্রামার হতে প্রায় ২/৩ বছর লেগে যায়। খুব ভালো হলে এবং খুব ভালো ট্রেইনিং দিলেও কমপক্ষে ১ বছর সময় লাগে একজন মোটামুটি মানের প্রোগ্রামার বানাতে। কাজেই এটার জন্য যদি কোম্পানিকে বিনিয়োগ করতে হয়, তবে বাংলাদেশের মত কোম্পানিগুলো জন্য এটা বেশ কষ্টকর হয়ে যায়। কাজেই আমি বলব, যারা সিএস বা কাছাকাছি ফিল্ডে ঢুকেছ, যারা প্রোগ্রামার হতে চাও, অবশ্যই প্রোগ্রামিং করতে হবে। আর ক্লাসে যেসব প্রোজেক্ট দেয়, ওইগুলো যথেষ্ট না। ক্লাসের প্রোজেক্টগুলো খুব সহজ হয়। তাই আরও ভাল ভাল প্রোগ্রামিং সমস্যা সমাধান করতে হবে। এক কথায় প্রচুর প্রোগ্রামিং করতে হবে। একা একা করার চেয়ে বন্ধুদেরকে নিয়ে করাটা আমি ভাল মনে করি। ছাত্র অবস্থাটা হচ্ছে সবচেয়ে ভালো সময়। এই সময়টা যদি সঠিক ভাবে কাজে লাগানো যায়, তবে পরে অনেক সুবিধা পাওয়া যায়। তোমার আশেপাশের মানুষকে সাহায্য করার জন্য সফটওয়্যার বানাতে পার। পড়াশুনার ব্যাপারে বলব, বেশির বিশ্ববিদ্যালয়ের সিলেবাস বেশ ভালো এবং বিশ্বমানের, কারণ বেশির ভাগ বিশ্ববিদ্যালয়ের সিলেবাস কিন্তু বাইরের কোন না কোন বিশ্ববিদ্যালয়ের অনুকরণে তৈরি করা। সিলেবাসের কন্টেন্টটা ভালো, সীমাবদ্ধতা হচ্ছে পড়ানোর পদ্ধতিতে।  হয়তো শিক্ষকরা যতটুকু আপ টু ডেট থাকা উচিৎ সেইরকম না। অনেকেই পড়ে শুধু জিপিএ পাওয়ার জন্য, এটা আমার মতে ভুল হবে। বিশেষ করে মূল সাবজেক্টগুলো যখন পড়ছ তখন মন দিয়ে পড়বে। তাতে যেমন জিপিএ চলে আসবে তেমনি তুমি প্রোগ্রামার বা ডাটাবেজ অ্যাডমিনিসট্রেটর হওয়ার লক্ষে এগিয়ে যেতে পারবা। শুধু যদি জিপিএর জন্য পড় তাহলে ওইটা হবে না।

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

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

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

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

কোড ইট গার্লের উদ্যোগে পাইথন নিয়ে কর্মশালা

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

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

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

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

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

পেইজের লিঙ্কঃ https://www.facebook.com/codeitgirl

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

প্রোগ্রামিং এর আশ্চর্য জগত!

প্রোগ্রামিংয়ের আশ্চর্য জগতে স্বাগত!

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

fractal-65474_640

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

programmer

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

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

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

প্রোগ্রামিং কিভাবে শিখব
তোমরা যারা গান শেখো, তারা যেমন নিয়মিত গানের চর্চা করো, প্রোগ্রামিংয়ের বেলাতেও তেমনি চর্চা করতে হয়। নিয়মিত লেখাপড়া আর চর্চার মাধ্যমেই তুমি হয়ে উঠতে পারবে একজন দক্ষ প্রোগ্রামিং শিল্পী। প্রোগ্রামিং শেখার জন্য শুরুতে প্রয়োজন একটি বই, যা তোমাকে প্রোগ্রামিংয়ের শুরুটা দেখিয়ে দেবে, প্রয়োজন একটি কম্পিউটার, সাথে ইন্টারনেট থাকলে ভালো হয়। তবে সবচেয়ে বেশি প্রয়োজন সপ্তাহে গড়ে দশ-বারো ঘণ্টার মতো সময়। অবশ্যই পরীক্ষা চলাকালীন সময়টা ছাড়া।  প্রোগ্রামিংয়ের বই কোথায় পাবে? দেশের বড় শহরগুলোর বইয়ের দোকানে প্রোগ্রামিংয়ের বই পাওয়া যায়, তবে সেগুলো বেশিরভাগই ইংরেজিতে। ইংরেজি বই পড়া অবশ্য তেমন কঠিন কোনো ব্যাপার নয়, একটু সাহস করে শুরু করে দিলেই হয়। আর বাংলা বই পড়তে চাইলে তোমরা http://cpbook.subeen.com ওয়েবসাইটে ঢুঁ মারতে পারো। এখানে বাংলা ভাষায় প্রোগ্রামিংয়ের উপর একটি বই ফ্রি দেওয়া আছে, যেটি কী না স্কুল-কলেজের ছাত্রছাত্রীদের কথা ভেবেই লেখা হয়েছে। এছাড়া ইন্টারনেটে ইংরেজিতে অনেক বই আছে প্রোগ্রামিং শেখার। সেগুলোর মধ্যে কিছু কিছু বই ফ্রি পাওয়া যায়। বই তো পেয়ে গেলে, তাহলে আর দেরি কেন? শুরু করে দাও। এ বিষয়ে আরো জানতে : প্রোগ্রামিং শেখা

প্রোগ্রামিং শেখার অনলাইন স্কুল
ছেলেবেলায় গান শেখার জন্য গানের স্কুল থাকে, নাচ শেখার জন্য নাচের স্কুল। ক্রিকেট খেলা শেখার জন্য ক্রিকেট একাডেমি। কী চমৎকারই না হতো বাংলাদেশে যদি প্রোগ্রামিং শেখার জন্য কোনো প্রোগ্রামিং স্কুল থাকতো! কিন্তু সমস্যা হচ্ছে কী, খুব ভালো প্রোগ্রামার না হলে অন্যকে প্রোগ্রামিং শেখানো যায় না। আর আমাদের দেশে খুব ভালো প্রোগ্রামাররা অনেক ব্যস্ত থাকেন বলে প্রোগ্রামিং শেখানোর বিষয়টি তাঁরা ভাবেন না। এই সমস্যার একটি সমাধান অবশ্য বের হয়েছে। প্রোগ্রামিং ও অন্যান্য বিষয় শেখার কিছু ওয়েবসাইট আছে, যেখানে অনলাইন কোর্স করা যায়। বেশিরভাগ কোর্সই বিনামূল্যে করা যায়। এরকম ওয়েবসাইগুলোর মধ্যে অন্যতম হচ্ছে coursera.org, edx.org ও udacity.com। তবে বাংলা ভাষায়ও প্রোগ্রামিং, সফটওয়্যার ডেভেলাপমেন্ট, ওয়েব ও মোবাইল অ্যাপ্লিকেশন ডেভেলাপমেন্ট শেখার জন্য অনলাইনে ভিডিও ও কোর্স পাওয়া যায়। এরকম একটি ওয়েবসাইট হচ্ছে দ্বিমিক কম্পিউটিং স্কুল : http://dimikcomputing.com। এর কোর্সগুলো ফ্রি কিন্তু তার জন্য তোমাদের থাকা চাই উচ্চ গতির ইন্টারনেট। আশার কথা এই যে, আমাদের দেশে ইন্টারনেট দিন দিন সহজলভ্য হচ্ছে। আর প্রতিটি কোর্স শেষেই ডিভিডি বের করছে দ্বিমিক কম্পিউটিং স্কুল (ফেসবুক পেজ : https://www.facebook.com/DimikComputing), যাতে করে যাদের ভালো ইন্টারনেট নেই, তারা ডিভিডি থেকে ভিডিও লেকচার দেখে শিখতে পারে। এছাড়া ইন্টারনেটে নানান ফোরাম ও ফেসবুকে বিভিন্ন গ্রুপ রয়েছে, যেখানে তুমি যোগ দিতে পারো ও প্রোগ্রামিং নিয়ে আলাপ করতে পারো।

অনলাইন জাজ
প্রোগ্রামিং শেখার শুরুটা তো হলো। চর্চাটা হবে কীভাবে? ইন্টারনেটে হাজার হাজার প্রোগ্রামিং সমস্যা পাওয়া যায়, যেগুলো সমাধান করে তোমার প্রোগ্রাম সেখানে জমা দিলে তুমি কিছুক্ষণের মধ্যেই জানতে পারবে যে তোমার সমাধানটি সঠিক হয়েছে কী না। যেসমস্ত ওয়েবসাইটে এই সুবিধাটা আছে, সেগুলোকে বলে অনলাইন জাজ বা সংক্ষেপে ওজে (OJ)। লাইটওজে (lightoj.com) একটি চমৎকার অনলাইন জাজ যেখানে তুমি প্রোগ্রামিং চর্চা শুরু করতে পারো। আর বাংলা ভাষায় প্রোগ্রামিং সমস্যা পেতে চাইলে তোমাদের যেতে হবে কম্পিউটার প্রোগ্রামিং বইয়ের ওয়েবসাইটে। এই লেখাটি পড়তে পার : প্রোগ্রামিং চর্চার জন্য ১০টি অনলাইন জাজ

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

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

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

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

তোমাদের জন্য গুরুত্বপূ্র্ণ দশটি ওয়েবসাইটের লিঙ্ক :

  1. http://scratch.mit.edu
  2. http://code.org
  3. http://edx.org
  4. http://coursera.org
  5. http://udacity.com
  6. http://dimikcomputing.com
  7. http://programabad.com
  8. http://dimik.pub
  9. http://cpbook.subeen.com
  10. http://www.khanacademy.org

 

কোডিং নিয়ে এক ঘণ্টা

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

কম্পিউটার বিজ্ঞান শিক্ষা সপ্তাহ উপলক্ষ্যে যেসব অনুষ্ঠান আয়োজন করা হয়, তার অন্যতম হচ্ছে Hour of Code বা কোডিং নিয়ে এক ঘণ্টা। বিভিন্ন শিক্ষাপ্রতিষ্ঠানে এবং শিক্ষাপ্রতিষ্ঠানের বাইরে এটি পালন করা হয়। code.org ওয়েবসাইটে বেশ কিছু জিনিস আছে, যেগুলো ব্যবহার করে এক ঘণ্টা কোডিং নিয়ে মাতামাতি করা হয়।

বাংলাদেশে এবছর এটি যৌথভাবে পালন করার উদ্যোগ নিয়েছে দ্বিমিক কম্পিউটিং স্কুল এবং বাংলাদেশ ওপেন সোর্স নেটওয়ার্ক (বিডিওএসএন)। ঢাকার বেশ কটি কলেজে ও স্কুলে ডিসেম্বর মাসের ৮ থেকে ১১ তারিখ এই অনুষ্ঠান করা হবে। অনুষ্ঠানে প্রথম তিরিশ মিনিট বক্তৃতা, তারপর এক ঘণ্টার কোডিং, তারপর তিরিশ মিনিট কুইজ ও প্রশ্নোত্তর পর্ব হবে।

তবে সব জায়গায় যাওয়া তো আমাদের পক্ষে সম্ভব নয়, স্কুল-কলেজগুলো, বিশেষ করে ঢাকার বাইরে যারা, নিজেরা নিজেরা এই অনুষ্ঠান আয়োজন করে ফেলতে পারে। কোনো পরামর্শের প্রয়োজন হলে ফেসবুকে তাহমিদ রাফি‘র সাথে যোগাযোগ করা যাবে।

আর কোনো কারণে এই অনুষ্ঠানে অংশ নিতে না পারলে বাসায় বসেই করে ফেলা যাবে এক ঘণ্টার কোডিং, এই ওয়েবসাইট থেকে : http://learn.code.org/

বাংলাদেশের শিক্ষার্থীরাও পিছিয়ে থাকবে না!