যন্ত্র গণকের যন্তর মন্তর - ১
১৫ ই ফেব্রুয়ারি, ২০০৯ ভোর ৫:১২
ভূমিকা
আমার ছেলেবেলায় বিটিভিতে “বিন্দু থেকে সিন্ধু” নামের একটা অনুষ্ঠান দেখাতো। আশির দশকের কথা ... কম্পিউটার তখন দেশে আছে হাতে গোণা কয়েকটা মাত্র। টিভিতে সেই জাদুর বাক্স দেখে অবাক বিষ্ময়ে তাকিয়ে রইতাম, ভাবতাম কী জাদু জানে এই যন্ত্রটা, কীভাবে করে দেয় সব কাজ।
ঘটনাচক্রে আমার বিদ্যা লাভ করা হয় এই গণক প্রকৌশলেই। প্রোগ্রামিং শেখার শুরুটা আমার কাগজে কলমে, মানে কম্পিউটার কেনার আগেই প্রোগ্রামিং শেখা শুরু করি, মাস খানেক পরে সারা জীবনের বৃত্তির টাকাগুলো ভেঙে কম্পিউটার কেনা হয়। সে এক যুগ আগের কথা।
এই এক যুগ ধরে কম্পিউটার প্রোগ্রামিং শেখার বই এক গাদা দেখলাম। সেই হার্বার্ট শিল্ড থেকে শুরু করে ডেইটেল অ্যান্ড ডেইটেল সহ অনেক লেখকের লেখা সি বা জাভা শেখার বই পড়েছি, পড়িয়েছি। কিন্তু সবগুলো বইয়েরই একটা সাধারন বৈশিষ্ট্য, তা হলো, বইগুলোতে “প্রোগ্রামিং” শেখানো হয়না, যা শেখানো হয় তা হলো সংশ্লিষ্ট ভাষাটির বৈশিষ্ট্য, এবং তা দিয়ে কীভাবে প্রোগ্রাম লেখা যায়।
কম্পিউটার প্রোগ্রামিং এর যে মূল ধারণা, তা সব ভাষার জন্যই প্রায় সমান। কিন্তু দুঃখের বিষয়, বইগুলোতে সেরকম করে মূল ধারণাগুলোর বদলে প্রায়োগিক দিকগুলোই প্রাধান্য পায়।
প্রোগ্রামিং শেখানোটা এক সময় আমার পেশা ছিলো। ছাত্রাবস্থায় ব্যাচে করে সি, জাভা, এসব শেখাতাম। আমার বিদেশে ভর্তির আবেদনের পেছনে যে লাখ টাকার মতো খরচ হয়েছিলো, তার পুরোটাই সেই প্রোগ্রামিং পড়ানোর আয় থেকে যোগান দেয়া। প্রায় দেড়শোর মতো ছাত্রকে একেবারে প্রাথমিক অবস্থার প্রোগ্রামিং শেখাতে গিয়ে আমার মনে হয়েছে, নির্দিষ্ট কোনো ভাষা শেখানোর আগে প্রোগ্রামিং এর মূল ধারণাগুলো, আর কম্পিউটার কীভাবে কাজ করে, তাই যদি শুরুতে শিখিয়ে দেয়া হয়, তাহলে সেই ছাত্রের পক্ষে পরে যে কোনো ভাষাই শেখাটা অনেক অনেক সহজ হয়ে যায়।
বুয়েটে শিক্ষকতার স্বল্প সময়ে প্রোগ্রামিং শেখাবার কোর্স আমি পাইনি, আর পেলেও লাভ হতোনা, কারণ গৎবাঁধা সিলেবাস আমূল পালটে ফেলাটা রীতিমত “অপরাধ” সেখানে। তাই অনেক দিন থেকেই আমার ইচ্ছা, একটা বই লিখবো, যাতে এই ব্যাপারে খুব সহজ করে কথাগুলো বলা যাবে। এই ধারাবাহিক লেখাগুলো এই সিরিজেরই অংশ।
এই লেখাগুলো প্রোগ্রামিং যারা জানেন, তাদের জন্য মামুলি ব্যাপার। এটা মূলত একেবারে কম্পু-কানা নবীস শিক্ষার্থীদের জন্য। তাই ভাষাগত জটিলতা দেখতে পেলেই জানিয়ে দেবেন, আমি ভাষাগুলো আরো সহজ করার চেষ্টা করবো। মিস্তিরি মানুষ হিসাবে ভাষায় দক্ষতা আমার নগন্য, কাজেই দুর্বোধ্য ভাষার ব্যবহার দেখলে সেটাও ধরিয়ে দেবেন।
পাঠ ১
কম্পিউটারের বুদ্ধি কতটুকু? গল্প উপন্যাসে যাই পড়ে থাকুননা কেনো শুরুতেই একটা গোপন কথা ফাঁস করে দেই -- কম্পিউটার একটা চরম নির্বোধ যন্ত্র মাত্র। কম্পিউটার প্রোগ্রামিং শেখার আগেই তাই এই বিষয়টা মেনে নিতে হবে ... টিভি ফ্রিজ বা ওয়াশিং মেশিন, অথবা বাসার ফ্যানটির মতো যেমন বিদ্যুৎ দিয়ে চলে, ঠিক তেমনি কম্পিউটারও বিদ্যুতে চলা একটি যন্ত্র।
তাহলে, কম্পিউটার এতো সব সমস্যার সমাধান কীকরে করে? এর মূলে রয়েছে অ্যালগরিদম, বা গণনা পদ্ধতি। সহজ ভাষায় বলতে গেলে কম্পিউটার সমস্যা সমাধান করতে পারে, তার একমাত্র কারণ হলো, আমরাই সমস্যাগুলোকে ছোট ছোট ভাগে ভেঙে দেই, আর কীভাবে সমাধান করতে হবে, তাও কম্পিউটারকে বাতলে দেই। এই “বাতলে দেয়া বুদ্ধি”টুকু বাদে কম্পিউটার কেবলই সিলিকন-জার্মেনিয়ামের কিছু যন্ত্রাংশের সমাহার।
কম্পিউটার তাহলে কেনো এতো সফল? তার কারণ একটাই, আমাদের বাতলে দেয়া পদ্ধতিতে ছোট ছোট কাজগুলো প্রচন্ড দ্রুতগতিতে কম্পিউটার করতে পারে। হিসাব নিকাশ করার জন্য কম্পিউটারের যে সার্কিট বা বর্তনী রয়েছে, তাতে প্রতি সেকেন্ডে লাখ লাখ থেকে কোটি কোটি ওরকম হিসাব করা যায়। তাই আমাদের বাতলে দেয়া পদ্ধতিতে ছোট ছোট সেই ধাপগুলো কম্পিউটার চোখের নিমেষে করে ফেলে।
কম্পিউটার প্রোগ্রামিং এর মূল কথা হলো সমস্যা সমাধানকে ছোট ছোট ধাপে ভেঙে ফেলা। একেবারে বড় সমস্যা সমাধান হয়তো কঠিন, কিন্তু সমস্যাটাকে সমাধানযোগ্য ছোট ছোট ধাপে ভাগ করে ফেলতে পারলেই কম্পিউটারের মতো নির্বোধ যন্ত্র দিয়ে সেটা সমাধান করা যাবে।
আজ আমরা একটা গাণিতিক সমস্যা দিয়ে এই ব্যাপারটা বোঝার চেষ্টা করবো। ধরা যাক, আপনাকে বলা হলো ১ থেকে ৫ পর্যন্ত সংখ্যাগুলোর যোগফল বের করতে হবে, অর্থাৎ ১+২+৩+৪+৫=? । কাজটা খুবই সহজ, ক্লাস ২ এর বাচ্চাদের দিলে আধা মিনিটেই জবাব দিয়ে দেবে, প্রশ্ন হলো কম্পিউটারকে কীভাবে বোঝাবো সেটা। তার আগে আপনি নিজে ভেবে দেখুন, আপনাকে কাজটা করতে দিলে কীভাবে সেটা করবেন।
খুব আস্তে আস্তে ভাবুন। আপনি নিশ্চয়ই এক বারে ৫টা সংখ্যা যোগ করে বসেননি, তাই না? কাজটা যদি কাগজে কলমে দেয়া হয়, তাহলে আমরা সংখ্যাগুলোকে একটার নিচে আরেকটা লিখে ফেলি। তার পর উপর থেকে শুরু করি, একটা করে সংখ্যা নেই, এপর্যন্ত যা যোগফল ছিলো, তার সাথে সংখ্যাটা যোগ করি, তার পর একই কাজ পরের সংখ্যাটা দিয়ে করি। মুখে মুখে এভাবে চিন্তা করি, "এক আর দুইয়ে তিন, তিন আর তিনে ছয়, ছয় আর চারে দশ, দশ আর পাঁচে পনের", অর্থাৎ আমাদের চিন্তাটা ধাপে ধাপে আগাচ্ছে, প্রতি ধাপে একটা করে সংখ্যা আমরা আগের যোগফলে যোগ করে দিচ্ছি।
হাতে হাতে করার জন্য, ধরা যাক আমরা টেবিলের উপরে ১ থেকে ৫ পর্যন্ত সংখ্যাগুলো রেখেছি, আর ডান হাতে সাময়িক যোগফলগুলো রাখবো। যোগ করার বুদ্ধিটা করলাম এমন, বাঁ হাত দিয়ে টেবিল থেকে একটা সংখ্যা তুলবো, আর সেটাকে ডান হাতে যা ছিলো তার সাথে যোগ করে ডান হাতেই ধরে রাখবো
--------------------
যেমন, ১ হতে ৫ পর্যন্ত যোগ করতে হলে, প্রথমে ডান হাতে কিছুই নাই, মানে ০। প্রথম সংখ্যাটি ১। সেটাকে শূন্যের সাথে যোগ করে পেলাম ১।
পরের সংখ্যাটি ২, সেটাকে আমাদের এপর্যন্ত যোগফল ১ এর সাথে সেটাকে যোগ দিলে হয় যোগফল ৩।
পরের সংখ্যাটা ৩, সেটাকে আমাদের এপর্যন্ত যোগফল ৩ এর সাথে যোগ করে পেলাম নতুন ফল ৬।
পরের সংখ্যাটা ৪, সেটাকে আমাদের এপর্যন্ত যোগফল ৬ এর সাথে যোগ করে পেলাম নতুন ফল ১০।
পরের সংখ্যাটা ৫, সেটাকে আমাদের এপর্যন্ত যোগফল ১০ এর সাথে যোগ করে পেলাম নতুন ফল ১৫।
---------------------
ব্যস, আমাদের যোগফল বের করার কাজটা শেষ, ১ থেকে ৫ এর যোগ ফল দাঁড়ালো ১৫।
উপরের হিসাবের ধাপগুলো দেখলে একটা জিনিষ হয়তো খেয়াল হবে, আমরা একই রকম কাজ (মানে বাঁ হাত দিয়ে টেবিল থেকে সংখ্যা তোলা, আর ডান হাতের সংখ্যাটার সাথে যোগ করার কাজটা) বার বার করছি, কেবল টেবিল থেকে তোলা সংখ্যাটা পালটে যাচ্ছে। আর আমরা এই পুনরাবৃত্তি করছি একটা সীমা পর্যন্ত, মানে ১ থেকে ৫ পর্যন্ত যোগ ফল বের করার ব্যাপার থাকলে টেবিল থেকে ৫ তোলার পরেই থেমে যাচ্ছি। টেবিলের উপরে আরো অনেক সংখ্যা থাকতে পারে, কিন্তু আমরা খেয়াল করে ৫ পর্যন্ত তুলেই থামছি।
এখন দেখা যাক, এই কাজটা বেকুব যন্ত্রগণককে কীভাবে বোঝানো যায় –
-----------------------
ডান হাতে শুরুতে কিছু নাই |
#(প্রথম ধাপ)# ডানহাতে = ০
একেবারে শুরুতে বাম হাতও খালি
#(দ্বিতীয় ধাপ)# বামহাত = ০
আমরা যেটা করবো, তা হলো বাম হাতে একটা একটা সংখ্যা তুলবো, শর্ত ৫ পর্যন্ত তুলার পরে থামবো। প্রতিবারে বাম হাতে আগে যা তুলেছিলাম, তার পরের সংখ্যাটি উঠাবো।
#(তৃতীয় ধাপ)# বামহাত (নতুন মান) = বাম হাতের আগের মান + ১
এইবার ডানহাতে যা ছিলো, তার সাথে বাম হাতেরটা যোগ করে ডান হাতেই রাখবো |
#(চতুর্থ ধাপ)# ডান হাত (নতুন মান) = ডান হাতের পুরানো মান + বাম হাতে যা তুলেছি।
এখন কাজ কি শেষ হয়েছে? মানে বাম হাতে ৫ তুলে ফেলেছি কি? যদি ফেলে থাকি, তাহলে কাজ শেষ, নইলে আবার উপরের ধাপে ফিরে যেতে হবে।
#(পঞ্চম ধাপ)# বাম হাতে যদি ৫ এর চেয়ে ছোট সংখ্যা থাকে, তাহলে কাজ শেষ হয়নি, সুতরাং তৃতীয় ধাপে ফেরত যাই। নইলে কাজ শেষ, পরের ধাপে যাই।
#(ষষ্ঠ ধাপ)# ডান হাতে যা আছে, সেটাই যোগফল, চটপট বলে ফেলি সেটা স্যারকে।
-------------------
তাহলে ৫ পর্যন্ত যোগ করাটা বোঝা গেলো। ১০০ পর্যন্ত কীভাবে যোগ হবে? একই পদ্ধতি, তাই না? কেবল শর্তের লাইনটিতে ৫ তুলে ফেলেছি কি না তার বদলে আমরা দেখবো ১০০ তুলেছি কি না। সেই একটা সংখ্যা পালটে দিলেই উপরের পদ্ধতিতে ১০০ পর্যন্তও যোগ করা যাবে।
কম্পিউটারের সুবিধা হলো, এই বাম হাত ডান হাতের ব্যাপারটা আর শর্তগুলো একবার বুঝিয়ে দিলে কাজটা সে ৫ পর্যন্ত না, ৫ কোটি পর্যন্তও করতে দিলে অনায়াসে করতে থাকবে। বাচ্চাদের মতো বিস্কুট চকলেটের লোভ দেখিয়ে অংক করতে বসানো লাগবে না।
এই বুদ্ধিটা একটা সি ল্যাঙ্গুয়েজের প্রোগ্রাম আকারে লিখলে কেমন দাঁড়াবে দেখা যাক,
--------------
rightHand = 0 (ডান হাত শুরুতে খালি)
leftHand = 0 (শুরুতে বাম হাতও খালি)
do {
leftHand = leftHand + 1 (বাম হাতে আগের সংখ্যাটা যা ছিলো, তার পরেরটা নিলাম। প্রথম বারে কিছুই ছিলোনা, তার সাথে ১ যোগ করে পেলাম বাম হাতে ১)
rightHand = leftHand + rightHand (ডানহাতে আগে যা ছিলো, তার সাথে বামহাতেরটা যোগ করি, তারপর যোগফলটা ডান হাতেই জমা রাখি।)
} while (leftHand less than 5 ); (less than এর চিহ্নটি সামহয়ার দেখাতে পারেনা, ঐটা less than এর বদলে বসবে আসল কোডে)
----------------
do–while দিয়ে লেখা অংশটি একটি লুপ বা চক্রকোড। সেটি চলবে ততক্ষণ, যখন while এর পরের শর্তটি সত্য থাকবে। যতক্ষণ ঐ শর্তটি সত্য থাকবে, প্রোগ্রামটি লুপের শেষ মাথায় পৌছে আবার প্রথম অংশে লাফ দিয়ে যাবে।
বাম হাতে ১ থেকে ৫ পর্যন্ত সংখ্যা তুলে ফেলার পর শেষ বারে শর্তটি ভঙ্গ হবে, (কারণ বাম হাতে ৫), তখন এই লুপ আর চলবে না, লুপ শেষ হয়ে পরের অংশের কাজ শুরু হবে।
ব্যস, এটাই হলো কম্পিউটারে সংখ্যা যোগের একটা প্রোগ্রাম।
(ব্যাখ্যা ছাড়া সি কোডটি হবে নিচের মতো)
---------------------
rightHand = 0;
leftHand = 0;
do {
leftHand = leftHand + 1;
rightHand = rightHand + leftHand;
} while (leftHand less than 5 ) ;
(১ম পাঠ সমাপ্ত)
লেখাটির বিষয়বস্তু(ট্যাগ/কি-ওয়ার্ড): প্রোগ্রামিং, বই ;
প্রকাশ করা হয়েছে: স্মৃতিচারণ বিভাগে । সর্বশেষ এডিট : ১৫ ই ফেব্রুয়ারি, ২০০৯ ভোর ৫:২২ | বিষয়বস্তুর স্বত্বাধিকার ও সম্পূর্ণ দায় কেবলমাত্র প্রকাশকারীর...
রাগিব বলেছেন:
পুরাটা এক বারে দিলে ব্লগ ব্ল্যাংক হয়ে যাচ্ছে, তাই একটু একটু করে প্রিভিউ দেখছি। ২ মিনিট পরে পুরাটা দেখতে পাবেন।
তনুজা বলেছেন:
অসাধারণ একটা সিরিজের সূচনা মনে হচ্ছে, আপনাকে অভিনন্দন জানাবার ভাষা নেই। পড়ে যাচ্ছি অন্তত নিজের কাজে লাগবে।
লেখক বলেছেন: ধন্যবাদ।
রাগিব বলেছেন:
সমস্যাটা বোঝা গেছে, সামহয়ারে less than এর গাণিতিক চিহ্নটি দেখানো যায় না, ঐটা কথায় লিখে দিলাম
বিষাক্ত মানুষ বলেছেন:
এখন পর্যন্ত বুঝতে পারতাছি রাগিব ভাই। পরের কথা বলা যাচ্ছে না । আমার কাম হইলো তার-ক্যাবল-কানেক্টর নিয়া দৌড়াদৌড়ি এই বিষয়ে জ্ঞান ক্লাস টুর ছাত্রর সমান ।সত্য কথা হইলো কখনো আগ্রহও পাইনাই এইসবে .. এইবার যদি কিছু একটা হয় শেষ বয়সে আইসা ।
লেখক বলেছেন: এইটা একেবারে সহজ করে লেখা। প্রোগ্রামিং ভাষা শিখাবোনা, কথা দিচ্ছি, এখানে শিখাবো প্রোগ্রামিং এর মূল ধারণা। লজিক বুঝলে ভাষা ব্যাপার না।
এন এইচ আর বলেছেন:
বোকা শুকা মানুষ আমি কম্পিউটার চালাই না কম্পিউটার আমারে চালায় । তাই দেখি রাগিব ভাইয়ের সিরিজ থেকে আমি কম্পিউটারকে চালাতে পারি কিনা। অগ্রিম ধন্যবাদ।
দেশী ক্যাঙ্গারু বলেছেন:
পোস্টটা সোজা প্রিয়তে। আশা করছি, সফল পাবো, আমরা যারা আপনার মত কারঁ প্রত্যক্ষ সংস্পর্শ পাইনি (পাবার সৌভাগ্য হয়নি), আমার দৃঢ বিশ্বাস তারা অনেক উপকৃত হবে।সাধুবাদ জানাই আপনার প্রচেষ্টাকে। ভাল থাকুন।
নুশেরা বলেছেন:
পরের বইমেলায় রাগিবের এই বইয়ের শুভপ্রকাশ বাঞ্ছনীয়।
লেখক বলেছেন: দেখা যাক, সময় হয় কি না এই সিরিজ পুরোটা লেখার।
টুশকি বলেছেন:
আমি স্কুলে থাকতে প্রোগ্রামিং এর একটা ক্লাস নিসিলাম। জাভা শিখাতো। পুরা এক বছরের কোর্স শেষে এখন আমার শুধু মনে আছে এই জাতীয় প্রোগ্রাম লেখার শেষে System Out Print লেখা লাগছিলো! আর for না কি কি যেন আরেকটা লুপের কথাও বলছিলো, বেশি কিছু মনে নাই। আমার চেনা জানা কম্পু বিশেষজ্ঞ ভাইয়েরা বলসে জাভার আগে নাকি সি++ শেখানো উচিত। কি জানি, ঐ ক্লাসের পর এসব ব্যাপারে আগ্রহ হারায় ফেলসি
শফিউল আলম ইমন বলেছেন:
দারুণ। ফ্রিতে কতটুকু শিখতে পারি দেখি।আপনার সত্যিই বই লেখা উচিত। আমি পোগ্রামিং কখনো পড়িনি বাসায় দুএকটা বই দেখার জন্য কিনেছিলাম মাত্র। আপনার লেখার ষ্টাইল সাবলীল। উৎসাহিদের জন্য আপনার বই উপকারে আসবে কোন সন্দেহ নেই।
আশা করি ভালো আছেন। ভালো থাকুন।
লেখক বলেছেন: ধন্যবাদ। এখানে আসলে সমস্যা সমাধানের কৌশল নিয়েই কথা বলবো। সেই কৌশল বাস্তব জীবনের বিভিন্ন ক্ষেত্রেও ব্যবহার করতে পারবেন। মূল সমস্যাকে ছোট ছোট ভাগে ভেঙে ফেলে বলেই কম্পিউটার তা সমাধান করতে পারে।
মোসতফা মনির সৌরভ বলেছেন:
সত্যিই একটা দুর্দান্ত উদ্যোগ নিয়েছেন। প্রযুক্তির বিষয়গুলো বাংলায় সহজভাবে পাওয়া যায় না। প্রথম পাঠে কম্পিউটার যে ফ্লো চার্ট টা ব্যবহার করছে, তা চার্ট করে বুঝিয়ে দিলে হয়ত আরও ভাল হত, লেখার চেয়ে ছবি মানুষ সহজে বোঝে।
আশা করছি আপনার লেখায় উপকৃত হবে অনেকে।
লেখক বলেছেন: কিন্তু সেই ক্ষেত্রে তো ফ্লো-চার্ট কী, তাই আগে ব্যাখ্যা করতে হবে, তাই না? দেখি পরবর্তিতে হয়তো ওটা ব্যবহার করতে পারি।
মুকুট বলেছেন:
চমৎকার উদ্যোগ। লিখে যান, অনেকেরই অনেক অনেক উপকার হবে। মৌলিক ধারনা চলে আসবে, ভীতি দুর হবে!
লেখক বলেছেন: আসলেই ভীতি একটা বড় সমস্যা। কী করছি, কেনো করছি তা না জেনেই প্রোগ্রাম লিখতে বসিয়ে দেয়া হয় বলেই অনেকে প্রোগ্রামিংকে ভয় পায়।
আতিকুল হক বলেছেন:
হ্যালো ওয়ার্ল্ডের চেয়ে এভাবে শুরু করার ধারনাটা ভালো। সিনট্যাক্সের চেয়ে কনসেপ্ট গড়াতেই তো জোরটা বেশি হওয়া উচিত। চমৎকার একটা কাজ হবে আশা করছি।
লেখক বলেছেন: ঠিক, খেয়াল করে দেখো, প্রোগ্রামিং বই যা যা পড়েছো, সবখানেই কিন্তু বলা নেই কওয়া নেই, হুট করে কোডিং শুরু করে দেয়। কেনো লুপ চালাবে, কীভাবে চিন্তা করবে, সেই সবের ধার ধারেনা কেউ। এমনকি তোমাদের সি ক্লাসের কথাও মনে করে দেখো, সেখানেও কিন্তু একই অবস্থা ছিলো, তাই না?
অমাবশ্যার চাঁদ বলেছেন:
চমৎকার উদ্যোগ।
যুগান্তকারী বলেছেন:
রাগিব ভাই ভালো উদ্যোগ সচলায়তনে অনেক আগেই দিয়েছেন এখানে এত দেরী হল কেন?আমার অনেক কাজে লাগবে।
লেখক বলেছেন: কাজে লাগলেই লেখা সার্থক।
দ্বিতীয়নাম বলেছেন:
বই আকারে বাইর হওয়া দরকার
ভাঙ্গা পেন্সিল বলেছেন:
রাগিব ভাই, কিছু কাজ স্ক্রীনশট মেরে দিতে পারেন। একই ছবি সব জায়গায় কাজে লাগানো যাবে। বাগ টাইপের ভেজাল থাকবে না।
লেখক বলেছেন: তাই মনে হয় করতে হবে। ![]()
চাঙ্কু বলেছেন:
রাগিব ভাই @ প্রোগ্রামিং এর বই নিয়ে যা বলছেন পুরা ২০০% সত্য কথা । সময় করে প্লিজ এই সিরিজটা শেষ কইরেন । বিমা ভাইয়ের মত আমিও যদি শেষ বয়সে কিছু শিখতে পারি বিশেষ করে প্রোগ্রামিং এর লজিকগুলা ।
অচেনা সৈকত বলেছেন:
রাগিব ভাই@ধন্যবাদ খুবই ভালো একটা উদ্যোগের জন্য। নিয়মিত যদি চালাতে পারেন তাহলে আমিও নিয়মিত পাঠক হিসেবেই আসব।
লেখক বলেছেন: সময় পেলে লিখবো অবশ্যই। এই ভাবে লেখার ইচ্ছা প্রায় ৮ বছর ধরে মনে মনে আছে।
এগুলো নিয়ে একটা বই বের করতে পারলে সবচেয়ে ভাল হবে।
মুহম্মদ জায়েদুল আলম বলেছেন:
অনেক ভালো হচ্ছে রাগিব ভাই। আপনার লেখাটা যদি আজ থেকে সাত বছর আগে বের হতো, তাহলে আর আমার প্রোগ্রামিং শিখতে এতো কষ্ট হতো না।লেখক বলেছেন: সাত বছর আগে আমি প্রচুর ছাত্রকে পড়াতাম। আমার সেই ছাত্রদের কয়েকজন খোদ মাইক্রোসফটে চাকরি করে এখন।
মুহিব বলেছেন:
ভূমিকা পড়লাম। বাকিটা অন্যরা পড়বে। আপনি তত্বকে সহজভাবে বুঝানোর যে চেষ্টা করছেন তার জন্য অভিনন্দন। ব্লগে লিখুন কিন্তু বই আকারে বইটি দেখার অপেক্ষায়।
লেখক বলেছেন: কী মনে হয়?
উল্টা পাল্টা আ্যাসাইনমেন্ট দিয়া পোলাপাইনের চিন্তা ইনফিনিট লুপে ফালায় দিতে চাই
কাক ভুষুন্ডি বলেছেন:
রাগিব ভাই অফটপিক একটা প্রশ্ন করি- উইকিতে পৃথিবীর সর্ব প্রথম আঁকা ম্যাপ সম্বন্ধে তথ্য পাচ্ছিনা। কি করবো?
লেখক বলেছেন: হা হা, বুঝলাম ![]()
এই যে Click This Link
"The earliest ancient Greek who is said to have constructed a map of the world is Anaximander of Miletus (611–546 BCEc. 611–546 BCE), pupil of Thales. He believed that the earth was a cylindrical form, like a stone pillar and suspended in space"
ঐখানে আরো অনেক তথ্য আছে।
ওয়ার হিরো বলেছেন:
শুরুতেই যদি এমন কইরা শিখতে পারতাম ,তাইলে আজকে আর এত ভেজাল করা লাগত না।ধুর, আপনে কেন আরো ৩ বছর আগে এই কাম শুরু করলেন না????
আমার এতে বেশ আগ্রহ ছিল। কিন্তু কুইজটেস্টে আর পরীক্ষায় প্রোগ্রাম মুখস্তকারীরা আমার চেয়ে ভাল(আমি মোটামুটি পারতাম) করার পর(কারন প্রতি বছর একই প্রশ্ন ঘুরে ফিরে আসে) একদম আগ্রহ হারিয়ে ফেলি।
পরীক্ষার খাতায় কোড লিখার ব্যাপারটি আমার কাছে হাস্যকর মনে হয়। কারন শুধুমাত্র টানা মুখস্ত না করলে একে বারে নির্ভুল প্রোগ্রাম কি লিখা সম্ভব, যেখানে সামান্য একটি (
লেখক বলেছেন: আসলে খাতায় কোড লিখতে দিলে লজিক ঠিক থাকলেই নম্বর দেয়া উচিৎ।
বুয়েটে আমাদের কম্পিউটার কৌশল বিভাগেও প্রোগ্রাম মুখস্তকারীরা নম্বর পেতো প্রচুর। প্রোগ্রামের "চোথা" পলাশীতে পাওয়া যায়।
কাঙাল মামা বলেছেন:
হাহাহাহাহা!!!!!! এত মজা নিয়া প্রোগ্রামিং কখনও পড়ি নাই!!! জটিল হইছে ভাই। বিশেষ করে বাংলা ফ্লোচার্টটা দেখার পর মনে হইছে অনুবাদ ছাড়াও বাংলায় খুব সোজা করে সি/জাভার বই লেখা যাবে।প্রোগ্রামিং বইগুলাও খুব আজব! "বলা নেই কওয়া নেই, হুট করে কোডিং শুরু করে দেয়।" আপনি একটা বই বের করে ফেলেন। আমাদের জন্য।
সিরিজ চলতে থাকুক.............
নির্বাসন বলেছেন:
বই আকারে দেখার অপেক্ষায় রইলাম...
লেখক বলেছেন: আগামী বছর বইমেলাতে খবর নিয়েন। ![]()
রাজামশাই বলেছেন:
অফ টপিক - প্রথমেই লুপে চইলা গেলি ?
বেশী জানা লোকের কাছ থাইক্যা শিখলে এই সমস্যা হয়, তারা মনে করে অন্যরা সবাই এই গুলা জানে
rightHand = 0 (ডান হাত শুরুতে খালি)
leftHand = 0 (শুরুতে বাম হাতও খালি)
rightHand আর leftHand এই গুলান কি?
লেখক বলেছেন: কী যে বলেন রাজামশাই ... ডাইন হাত আর বাম হাত চিনছেন না!!
মন মণষা বলেছেন:
আপনার ভাষায় আমি একেবারে “কম্পুকানা”, প্রগ্রামিং বিষয়টা নিয়ে আগ্রহ আছে তবে তার চেয়েও বেশি ভাষা প্রয়োগের লজিক নিয়ে। আপনার এই লেখার জন্য সাধুবাদ অবশ্যই। সা.ইন. -এ যদি প্রকাশে টেকনিক্যাল সমর্সা থাকে তবে আপনার কাছে দাবী জানাব বই আকারে প্রকাশ টা দায়িত্ব হিসেবে নিন। আমরা সত্যই শিখতে আগ্রহী। আশা করি লম্বা বিরতীতে আশাহত করবেন না।
লেখক বলেছেন: আমি অন্তত ই-বুক আকারে হলেও এটা লেখার চেষ্টা করবো। তবে সময় লাগবে অনেক। এখন প্রচন্ড ব্যস্ত।
...অসমাপ্ত বলেছেন:
সচলায়তনে দেখার পর থেকেই অপেক্ষায় আছি পরের পর্বের জন্য.... ওখানে কমেন্ট করতে পারিনি... তবে ... বই কিন্তু একটা লিখতেই হবে... ....পরের পর্ব জলদি দ্যান...
সিউল রায়হান বলেছেন:
"সবগুলো বইয়েরই একটা সাধারন বৈশিষ্ট্য, তা হলো, বইগুলোতে “প্রোগ্রামিং” শেখানো হয়না, যা শেখানো হয় তা হলো সংশ্লিষ্ট ভাষাটির বৈশিষ্ট্য, এবং তা দিয়ে কীভাবে প্রোগ্রাম লেখা যায়।"একদম ঠিক বলছেন ভাইয়া...........লো লেভেল ল্যাংগুয়েজ গুলোর সিনট্যাক্স যেমন এক তেমনি অবজেক্ট ওরিয়েন্টেড সব ল্যাংগুয়েজের সিনট্যাক্স প্রায় একই .......
তাই কেউ যদি প্রবলেম ফর্মুলেট করতে পারে তাহলে খুব সহজেই যেকোন ল্যাংগুয়েজ কে সামান্য চেষ্টাতেই আত্মীকরন করতে পারবে........
সবার আগে তাকে বুঝতে হবে কেন ও কিভাবে কাজটা সে করতে চাইছে, এরপর আসবে কোডিং এর অংশটা.........
আপনার লিখাগুলোয় ভাইয়া ফ্লোচার্ট দিতে পারেন......... তাহলে বুঝা আরো সহজ হবে
রায়হান(তন্ময়) বলেছেন:
চমৎকার একটি উদ্যোগ নেয়ার জন্য আপনাকে অসংখ্য ধন্যবাদ। আমি আইডিবি এর স্কলারশিপে সি শার্প + ডটনেট এর উপর কোর্স করছি। আমাদেরও শুরুতে এরকম একটা কোর্স ছিল প্রোগ্রামিং প্রাকটিস এন্ড টেকনিকস। প্রথম প্রথম খানিকটা বোরিং লাগতো। কিন্তু এখন বুঝি প্রোগ্রামার হতে হলে ওইভাবে মাথার ভেতরে নিয়ে চিন্তা করার কোন বিকল্প নেই। আপনি লিখে যান। আবারো অনেক ধন্যবাদ।
পারভেজ রবিন বলেছেন:
আমি ছাত্র হইলাম, ভয়ে আছি আবার ছাতু না হইয়া যাই।
নিদ্রালু বলেছেন:
রাগিব ভাই,বই আকারে বের করার জন্যে অনুরোধ করছি। তাহলে আসলেই অনেকে, অনেক বেশি উপকৃত হবে।
অকৃতকার্য বলেছেন:
আমার ১-১ এর সি টার্ম প্রজেক্ট ছিল রাগীব ভাই এর আন্ডারে ম্যানুয়্যালী বাটন ড্র করার সময় কিভাবে থি-ডি ইফেক্ট আনতে হবে বা বিটম্যাপ ফাইলের বিট স্টাফিং এর বিষয়গুলো সুন্দর ভাবে বুঝিয়েছিলেন। ওনার অবশ্য মনে থাকার কথা না
বাংলাদেশে সত্যিকার যোগ্য লোকরা কম্পিউটার প্রোগ্রামিং বা এই ধরনের বই লিখে না। হয়তো সময় কম/প্রকাশনার ঝামেলা। আর অ্যাপ্লকেশন প্যাকেজগুলোর উপর লিখা বইগুলো তো মূলত ঐ সফটওয়্যার এর হেল্প ফাইলের অনুবাদ।
রাগীব ভাই আশা করছি সাহস করে আগাতে থাকবেন।
লেখক বলেছেন: হুম, তাই নাকি!! আমার মনে আছে ... আমি অবশ্য খুব অল্প সময় শিক্ষকতা করেছি। তাই ক্লাসে বা সেশনালে শেখানোর সুযোগ বেশি পাইনি।
বেশ সুন্দর বলেছেনতো! এভাবে কখনো ভাবিনি। শিক্ষার্থী হিসেবে আমারও দরকার। +++++
আমাদের ক্লাসে যখন প্রোগ্রামিং পড়ানো শুরু করে তখন মনে হয়েছিল এর চেয়ে জটিল কিছু আর পৃথিবীতে নাই, পরে দেখলাম জিনিসটা আসলে এত জটিল কিছুনা, আমাদের শুরু করানো হয়েছিল জটিল ভাবে।
আপনাকে অনেক ধন্যবাদ রাগিব ভাই।++
বাবুয়া বলেছেন:
অসাধারন!
অসাধারন!!
অসাধারন!!!
অসাধারণ একটা সিরিজের সূচনা করেছো রাগীব! আমি হলপ করে বলতে পারি-এই ব্লগে এমন লেখার চাইতে সুন্দর, প্রয়োজনীয় কোন লেখা এপর্যন্ত শুরু হয়নি! তোমাকে অভিনন্দন জানাবার ভাষা নেই।
তোমার ভাষায় "একেবারে কম্পু-কানা নবীস শিক্ষার্থীদের জন্য"। আমি আসলেই তাদের দলের অন্যতম।তারপর বলতে চাই-এমন সাবলীল ভাষায়, এমন সুন্দর উপস্থাপনায় আমি কম্পুটার বিশয়ক কোন লেখা কখনো পড়িনি। লেখাটা আমার দুই ছেলের সাথেই শেয়ার করলাম। ওরাও আমার মতই উচ্ছসিত-তোমার লেখা দেখে।
ধন্যবাদ।
অনেক অনেক ধন্যবাদ।
তোমার প্রচেস্টা সফল হবে ইনশ
আল্লাহ।
লেখক বলেছেন: আপনাকেও ধন্যবাদ।
সাঁঝবাতি'র রুপকথা বলেছেন:
আমরা যখন মাত্র ক্লাস শুরু করেছি, তখন অনেক সিনিয়র এক ভাইয়া একদিন বললেন উনি সি এর উপরে ওয়ার্কশপ নিবেন, আম্রাও গেলাম ...প্রথমে উনি শুরু করলেন,"শুন্যের ভিতর অসীম নিহিত", এই কথাটার ব্যাখা দিয়ে...তার তিরিশ মিনিটের মাথায় পয়েন্টার নিয়ে বুঝাতে আরম্ভ করলেন, সি এর প্রতি আগ্রহ টা সেদিন ই অনেকটা কমে গিয়েছিল, পরে বুঝতে পেরেছি, ভয় পাবার কিছু ছিল না ...
লেখক বলেছেন: আঁতেলদের এই সমস্যা। এক দিনেই সবকিছু ট্যাবলেট বানিয়ে গেলাতে চায়।
সাদাকালোরঙিন বলেছেন:
আপনার উদ্যোগ অসাধারন রাগিব ভাই। বুয়েটেও অনেক অজপাড়াগাঁয়ের ছেলেরা প্রথম কম্পিউটার দেখে। তাদেরকে একবারে সি এর মত প্রোগ্রামিং ল্যাংগুয়েজ গেলানো হয় । এধরনের ছেলেরা শুরুতেই হতাশ হয়ে পড়ে প্রোগ্রামিং নিয়ে। আপনার এই উদ্যোগকে প্রাইমারি স্কুল স্তরে ছড়িয়ে দেয়া উচিৎ। একটা যুগান্তকারী উদ্যোগের সাক্ষি হলাম এটাই ভালো লাগছে।
লেখক বলেছেন: এইটা যেহেতু আমি একাই লিখতে চাই, উইকি বুকে দিচ্ছিনা। আর আরেকটা কারণ হলো, আমি এটাকে যে লাইসেন্সে দিতে চাই (creative commons attribution-nc-nd), উইকি বইতে সেটা ব্যবহার করা যায় না। ![]()
ভবঘুরে ছেলেটি বলেছেন:
প্রথমেই loop-এ যাওয়াটা কি ঠিক হল? আর logic বুঝানোর জন্য মনে হয় flow-chart দিয়ে বুঝানো বেশি সুবিধাজনক
লেখক বলেছেন: মন্তব্যের জন্য ধন্যবাদ।
লুপে যাইনি। সি এর কোডটুকু অগ্রাহ্য করলে ক্ষতিবৃদ্ধি হবে না।
আগেই একজনকে বলেছিলাম, ফ্লোচার্ট দিয়ে কাউকে কিছু ব্যাখ্যা করতে হলে আগে ফ্লো চার্ট কী, তা বোঝাতে হবে। এর চেয়ে ভাষার উদাহরণটাই শ্রেয়।
মোতাব্বির কাগু বলেছেন:
চালিয়ে যান। পরেরটার অপেক্ষায় রইলাম।
পাপী বলেছেন:
খাইসে রে কমার্সে ছাত্র হইয়াও প্রোগ্রাম করা শিখা ফেলতেসি!!
সবুজ সাথী বলেছেন:
ধন্যবাদ রাগিব ভাই এরকম সিরিজের জন্য। আশা করি বই আকারে পাব।"মিস্তিরি মানুষ হিসাবে ভাষায় দক্ষতা আমার নগন্য"
আমার এক কলিগ (হার্ডওয়ার + নেট ইঞ্জি।) এরকম অভিধা পাইছিল। সে পুরান ঢাকার এক বাড়িতে গেছিল কম্পিউটারের সমস্যা ঠিক করতে। বাড়িওয়ালা তাকে বসতে দিয়ে ছেলেকে ডাক দিয়ে বলল "কম্পুটারের মিস্তিরি আইছে চা নাস্তা দে"।
লেখক বলেছেন: "কম্পুটারের মিস্তিরি আইছে চা নাস্তা দে"
হা হা, কথা তো ভুল বলে নাই
ভাদাইম্মা বলেছেন:
কিছু ভিডিও সঙ্গে দিলে মনে হয় আরো ভালো হবে
লেখক বলেছেন: আর ভিডিও!!
লেখা লিখতেই অবস্থা খারাপ ![]()
তবে দেখা যাক, মাস তিনেক পরে যদি কিছু সময় পাওয়া যায়।
সহেলী বলেছেন:
শীগগীর পালাই , যদি আসি এক শর্তে আসতে পারি -- তা হল পড়া ধরা যাবে না !অনেকের কাজে লাগবে ।
হুমায়রা হারুন বলেছেন:
খুব দারুণ পোস্ট এবং দরকারী। প্রিয়তে রাখলাম।
'লেনিন' বলেছেন:
রাগিব বলেছেন: সমস্যাটা বোঝা গেছে, সামহয়ারে less than এর গাণিতিক চিহ্নটি দেখানো যায় না, ঐটা কথায় লিখে দিলাম < আর > এর মাঝে যা লেখা হয় তা সা.ই. এর পার্সার HTML কোড হিসেবে দেখে আর সব আউটপুটে স্ট্রীপ করে দেয়। যাতে XSS বা CSRF এটাক না হতে পারে। তবে, সা.ই. কর্তৃপক্ষকে অনুরোধ করবো যাতে তারা কোড প্রকাশের জন্য কোনো BBCode চালু করেন।
আমি HTML character & coding ব্যবহার করে & lt ; এভাবে লিখে দেই। তবে একবার সেভ করার পর যদি আবার এডিট করেন তাহলে আবার তা বদলে দিতে হবে। খুবই ঝক্কিপূর্ণ।
ওহ! 'বিন্দু থেকে সিন্ধু'র আমিও একজন একনিষ্ঠ দর্শক ছিলাম। বাসার পাশের অফিসের কালো স্ক্রীনওয়ালা সবুজ হরফের গণকযন্ত্রগুলোর দিকে ঘন্টার পর ঘন্টা তাকিয়ে থাকতাম
শাফ্ক্বাত বলেছেন:
এই ছেলে এতদিন কৈ ছিলে?ইউনিভার্সিটিতে একটা বাধ্যতামূলক প্রোগ্রামিং কোর্স ছিলো, কী কষ্ট পাইছি!! মাথার সার্কিট ছিড়ে গেসিলো, ইফ-এন্ড ইফ টাইপ লুপ করতে করতে!!
আর ইন্ডেক্সিং/ডিলিট/ট্রাংকেট/রোল ব্যাক কী সব এমাথা-ওমাথা হাবিজাবি!!
যদি তোমার লেখা পড়ে কোনওদিন "আমি" প্রোগ্রামিং পারি, তাহলে বুঝবো তুমি ভালো টিচার!
হুমায়রা হারুন বলেছেন:
রাগিব ভাইঅনলাইনে সি++ শিখার প্রচুর লিংক আছে যদিও কিন্তু আপনার সাজেশান চাই।
খুব ভাল কোন লিংক আপনার জানা আছে কি?
জুনায়েদ হাসান বলেছেন:
আমি CSE-এর 1st semister-এর ছাত্র। এখনো Programming Language নিই নাই। আপনার লেখা আমার খুব ভাল লাগে, Please-এটা যন বন্ধ না হয়। আমি এটা থেকে ভীষন উপকৃত হব। আর ভাল programmer হতে হলে কার বই পড়ব বা tips ইত্যাদি দিলে আরো ভাল হয়। আপনার সুন্দর প্রচেষ্টার জন্য ধন্যবাদ।
অসমাপ্ত কবিতা বলেছেন:
রাগিব ভাই , অসাধারণ লিখেছেন। এভাবে যদি বই গুলতে লেখা থাকত তাহলে আমাদের প্রোগামিং শেখা সহজ হত। আশা করি আপনি আরো লিখবেন।
সাজিদ বলেছেন:
রাগিব ভাই, জামিল (EEE), ইশতিয়াক (EEE) আর আমি (ME) আপনার সেই ছাত্রদের কুয়েকজন। আপনি চট্টগ্রাম আসলে আমরা তিনজন আপনের বাসায় হাজির হতাম। আমাদের ১/২ তে একজন মহান(!) শিক্ষক সি পড়িয়েছিলেন। আপনের কাছে আগে না শিখলে কি হতো জানি না। যৌবনের ইগো সমস্যার কারনে কামরুজ্জামান নিটনের বই পড়ি নাই। হারবার্ট শিল্ড, টিচ ইউরসেল্ফ আর সোয়াম পড়তাম। আপনি কি ইংলিশে কোথাও লিখছেন এই পোস্টগুলো? আমার ছোট ভাইকে রেফার করার জন্য।
লেখক বলেছেন: সাজিদ, তোমাদের কথা ভালোই মনে আছে ![]()
ইংরেজিতে আসলে লেখার সময় হচ্ছে না। বাংলাতেই সময় পাচ্ছিনা ...
। হার্বার্ট শিল্ডের বই আমার সব সময়েই ভালো লাগতো। নিটনের বইটা বিশেষ সুবিধার মনে হয়নি কখনোই। কেবল বাংলাতে শুরুর দিকের বই বলেই হয়তো চলেছিলো।
মাহফুজ খান বলেছেন:
অসাধারন হয়েছে। ধন্যবাদ।
অবাঞ্চিত বলেছেন:
অসাধারন
চে২১ বলেছেন:
আমি বুঝিনা এই লিখা আমার নজরে পড়লনা কিভাবে?.......।যেখানে রাগিব ভাই এর লিখা খুজেঁ বেড়াই আমি....শুধু মাত্র শিখানো ভাল টিচারের অভাবেই আজ আমি প্রোগ্রামার না হয়ে নেট ইন্জি........।
ধূসরধ্রুব বলেছেন:
এই লেখার পরের অংশটা কই???????????????
মোঃ সিরাজুল হক বলেছেন:
অনেক দিন পর মন্তব্য সু্যোগ পেলাম। রাগিব ভাই আপনার আগের লেখা ও পড়ছি আপনাকে অনেক ধন্যবাদ
লেখক বলেছেন: ধন্যবাদ।
সামহোয়্যার ইন...ব্লগ বাঁধ ভাঙার আওয়াজ, মাতৃভাষা বাংলায় একটি উন্মুক্ত ও স্বাধীন মত প্রকাশের সুবিধা প্রদানকারী প্ল্যাটফর্ম। এখানে প্রকাশিত লেখা, মন্তব্য, ছবি, অডিও, ভিডিও বা যাবতীয় কার্যকলাপের সম্পূর্ণ দায় শুধুমাত্র সংশ্লিষ্ট প্রকাশকারীর...















.jpg)





