• Warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_advpoll_clear_votes_access' not found or invalid function name in _menu_check_access() (line 454 of /var/www/sachalayatan/s6/includes/menu.inc).
  • Warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_advpoll_electoral_list_access' not found or invalid function name in _menu_check_access() (line 454 of /var/www/sachalayatan/s6/includes/menu.inc).
  • Warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_advpoll_results_access' not found or invalid function name in _menu_check_access() (line 454 of /var/www/sachalayatan/s6/includes/menu.inc).
  • Warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_advpoll_votes_access' not found or invalid function name in _menu_check_access() (line 454 of /var/www/sachalayatan/s6/includes/menu.inc).
  • Warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_advpoll_writeins_access' not found or invalid function name in _menu_check_access() (line 454 of /var/www/sachalayatan/s6/includes/menu.inc).

যন্ত্র গণকের যন্তর মন্তর - ১

রাগিব এর ছবি
লিখেছেন রাগিব (তারিখ: সোম, ০৯/০২/২০০৯ - ১১:০৪পূর্বাহ্ন)
ক্যাটেগরি:
ভূমিকা
(সরাসরি চলে যান প্রথম পাঠে)




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

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

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

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

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

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


পাঠ ১

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


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


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


কম্পিউটার প্রোগ্রামিং এর মূল কথা হলো সমস্যা সমাধানকে ছোট ছোট ধাপে ভেঙে ফেলা। একেবারে বড় সমস্যা সমাধান হয়তো কঠিন, কিন্তু সমস্যাটাকে সমাধানযোগ্য ছোট ছোট ধাপে ভাগ করে ফেলতে পারলেই কম্পিউটারের মতো নির্বোধ যন্ত্র দিয়ে সেটা সমাধান করা যাবে।

আজ আমরা একটা গাণিতিক সমস্যা দিয়ে এই ব্যাপারটা বোঝার চেষ্টা করবো। ধরা যাক, আপনাকে বলা হলো ১ থেকে ৫ পর্যন্ত সংখ্যাগুলোর যোগফল বের করতে হবে, অর্থাৎ ১+২+৩+৪+৫=? । কাজটা খুবই সহজ, ক্লাস ২ এর বাচ্চাদের দিলে আধা মিনিটেই জবাব দিয়ে দেবে, প্রশ্ন হলো কম্পিউটারকে কীভাবে বোঝাবো সেটা। তার আগে আপনি নিজে ভেবে দেখুন, আপনাকে কাজটা করতে দিলে কীভাবে সেটা করবেন।

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

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

যেমন, ১ হতে ৫ পর্যন্ত যোগ করতে হলে, প্রথমে ডান হাতে কিছুই নাই, মানে ০। প্রথম সংখ্যাটি ১। সেটাকে শূন্যের সাথে যোগ করে পেলাম ১।

পরের সংখ্যাটি ২, সেটাকে আমাদের এপর্যন্ত যোগফল ১ এর সাথে সেটাকে যোগ দিলে হয় যোগফল ৩।

পরের সংখ্যাটা ৩, সেটাকে আমাদের এপর্যন্ত যোগফল ৩ এর সাথে যোগ করে পেলাম নতুন ফল ৬।

পরের সংখ্যাটা ৪, সেটাকে আমাদের এপর্যন্ত যোগফল ৬ এর সাথে যোগ করে পেলাম নতুন ফল ১০।

পরের সংখ্যাটা ৫, সেটাকে আমাদের এপর্যন্ত যোগফল ১০ এর সাথে যোগ করে পেলাম নতুন ফল ১৫।

ব্যস, আমাদের যোগফল বের করার কাজটা শেষ, ১ থেকে ৫ এর যোগ ফল দাঁড়ালো ১৫।


উপরের হিসাবের ধাপগুলো দেখলে একটা জিনিষ হয়তো খেয়াল হবে, আমরা একই রকম কাজ (মানে বাঁ হাত দিয়ে টেবিল থেকে সংখ্যা তোলা, আর ডান হাতের সংখ্যাটার সাথে যোগ করার কাজটা) বার বার করছি, কেবল টেবিল থেকে তোলা সংখ্যাটা পালটে যাচ্ছে। আর আমরা এই পুনরাবৃত্তি করছি একটা সীমা পর্যন্ত, মানে ১ থেকে ৫ পর্যন্ত যোগ ফল বের করার ব্যাপার থাকলে টেবিল থেকে ৫ তোলার পরেই থেমে যাচ্ছি। টেবিলের উপরে আরো অনেক সংখ্যা থাকতে পারে, কিন্তু আমরা খেয়াল করে ৫ পর্যন্ত তুলেই থামছি।

এখন দেখা যাক, এই কাজটা বেকুব যন্ত্রগণককে কীভাবে বোঝানো যায় –

ডান হাতে শুরুতে কিছু নাই |

#(প্রথম ধাপ)# ডানহাতে = ০

একেবারে শুরুতে বাম হাতও খালি

#(দ্বিতীয় ধাপ)# বামহাত = ০

আমরা যেটা করবো, তা হলো বাম হাতে একটা একটা সংখ্যা তুলবো, শর্ত ৫ পর্যন্ত তুলার পরে থামবো। প্রতিবারে বাম হাতে আগে যা তুলেছিলাম, তার পরের সংখ্যাটি উঠাবো।

#(তৃতীয় ধাপ)# বামহাত (নতুন মান) = বাম হাতের আগের মান + ১

এইবার ডানহাতে যা ছিলো, তার সাথে বাম হাতেরটা যোগ করে ডান হাতেই রাখবো |

#(চতুর্থ ধাপ)# ডান হাত (নতুন মান) = ডান হাতের পুরানো মান + বাম হাতে যা তুলেছি।

এখন কাজ কি শেষ হয়েছে? মানে বাম হাতে ৫ তুলে ফেলেছি কি? যদি ফেলে থাকি, তাহলে কাজ শেষ, নইলে আবার উপরের ধাপে ফিরে যেতে হবে।

#(পঞ্চম ধাপ)# বাম হাতে যদি ৫ এর চেয়ে ছোট সংখ্যা থাকে, তাহলে কাজ শেষ হয়নি, সুতরাং তৃতীয় ধাপে ফেরত যাই। নইলে কাজ শেষ, পরের ধাপে যাই।

#(ষষ্ঠ ধাপ)# ডান হাতে যা আছে, সেটাই যোগফল, চটপট বলে ফেলি সেটা স্যারকে।

তাহলে ৫ পর্যন্ত যোগ করাটা বোঝা গেলো। ১০০ পর্যন্ত কীভাবে যোগ হবে? একই পদ্ধতি, তাই না? কেবল শর্তের লাইনটিতে ৫ তুলে ফেলেছি কি না তার বদলে আমরা দেখবো ১০০ তুলেছি কি না। সেই একটা সংখ্যা পালটে দিলেই উপরের পদ্ধতিতে ১০০ পর্যন্তও যোগ করা যাবে।

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


এই বুদ্ধিটা একটা সি ল্যাঙ্গুয়েজের প্রোগ্রাম আকারে লিখলে কেমন দাঁড়াবে দেখা যাক,

rightHand = 0 (ডান হাত শুরুতে খালি)

leftHand = 0 (শুরুতে বাম হাতও খালি)

do {
      leftHand = leftHand + 1 (বাম হাতে আগের সংখ্যাটা যা ছিলো, তার পরেরটা নিলাম। প্রথম বারে কিছুই ছিলোনা, তার সাথে ১ যোগ করে পেলাম বাম হাতে ১)

      rightHand = leftHand + rightHand (ডানহাতে আগে যা ছিলো, তার সাথে বামহাতেরটা যোগ করি, তারপর যোগফলটা ডান হাতেই জমা রাখি।)

} while (leftHand <5)

do–while দিয়ে লেখা অংশটি একটি লুপ বা চক্রকোড। সেটি চলবে ততক্ষণ, যখন while এর পরের শর্তটি সত্য থাকবে। যতক্ষণ ঐ শর্তটি সত্য থাকবে, প্রোগ্রামটি লুপের শেষ মাথায় পৌছে আবার প্রথম অংশে লাফ দিয়ে যাবে।

বাম হাতে ১ থেকে ৫ পর্যন্ত সংখ্যা তুলে ফেলার পর শেষ বারে শর্তটি ভঙ্গ হবে, (কারণ বাম হাতে ৫), তখন এই লুপ আর চলবে না, লুপ শেষ হয়ে পরের অংশের কাজ শুরু হবে।

ব্যস, এটাই হলো কম্পিউটারে সংখ্যা যোগের একটা প্রোগ্রাম।

------

(ব্যাখ্যা ছাড়া সি কোডটি হবে নিচের মতো)

rightHand = 0;
leftHand = 0;

do {
      leftHand = leftHand + 1;
      rightHand = rightHand + leftHand;
} while (leftHand<5);


মন্তব্য

শামীম এর ছবি

অ্যালগরিদমের ফ্লোচার্টগুলো আমার কাছে খুব উপকারী মনে হত।

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

অফটপিক:
১. QBASIC এর raw প্রোগ্রাম আধুনিক মেশিনে (লিনাক্স হলে ভাল হয়) চালানোর জন্য কীভাবে কী দিয়ে পরিবর্তন করা যায়? (আন্ডারগ্র্যাড থিসিসটা জীবন পাইতো তাহলে)
২. GCC (gfortran) দিয়ে কীভাবে কাজ করতে হয় এটার সহজবোধ্য টিউটোরিয়াল থাকলে উপকারে লাগতো (আমি নিজে জানলে লিখে ফেলতাম :( )।
________________________________
সমস্যা জীবনের অবিচ্ছেদ্য অংশ; পালিয়ে লাভ নাই।

________________________________
সমস্যা জীবনের অবিচ্ছেদ্য অংশ; পালিয়ে লাভ নাই।

এনকিদু এর ছবি

শামীম ভাই, লিনাক্সের জন্য BASIC compiler খুঁজে দেখতে পারেন । হয়তো খুঁজেছেনও, কিন্তু পাননি । সেক্ষেত্রে একটা BASIC to C/C++ কম্পাইলার বানিয়ে দেয়ার চেষ্টা করতে পারি । চলবে ?


অনেক দূরে যাব
যেখানে আকাশ লাল, মাটিটা ধূসর নীল ...


অনেক দূরে যাব
যেখানে আকাশ লাল, মাটিটা ধূসর নীল ...

প্রকৃতিপ্রেমিক এর ছবি

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

অনিশ্চিত এর ছবি

রাগিব ভাই, আমি এই সিরিজের একনিবিষ্ট পাঠক হলাম। কারণ বিজ্ঞানের ছাত্র নই, কিন্তু মাথার স্ক্রু ঢিলা বলে প্রোগ্রামিং শিখতে চাই। এইটুকু সহজেই বুঝেছি। এখন কাজে নামতে চাই।

তার আগে বলেন, ওয়েব প্রোগ্রামিঙের জন্য যেমন নোটপ্যাডে লিখতে হয়, সি-এর জন্য কী ব্যবহার করবো এবং এটা কীভাবে চালাবো।

আপনি যতোদিন চালাবেন, আমি আছি এই সিরিজের সাথে।

তবে এই লাইনে আমি শুধু নবিশই নই, পুরা নবিশ।
‌‌-------------------------------------
হাত বাঁধা, কিন্তু দড়ি মুক্ত - হায় পৃথিবী!

‌‌-------------------------------------
হাত বাঁধা, কিন্তু দড়ি মুক্ত - হায় পৃথিবী!

সবজান্তা এর ছবি
মাল্যবান এর ছবি

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

পুরুজিত এর ছবি

দারূণ উদ্যোগ!
"লুপ" এর বাংলা "পুনরাবৃত্তি" করা যেতে পারে।

সচল জাহিদ এর ছবি

রাগিব তোমার লেখাটি ভাল লাগল। সত্যি কথা বলতে কি প্রোগ্রামিং এর হাতে খড়ি আমার (বা আমার মত অনেকের যাদের মূল বিষয় কম্পিউটার কৌশল না ) হয়েছিল বুয়েটে দ্বিতীয় বর্ষে পড়ার সময়। আমার মনে হয় ১.৫ ক্রেডিটের অই বিষয়টিতে ১৪ সপ্তাহের মধ্যে একজন ছাত্রকে যার কম্পিউটার সম্পর্কে ন্যুনতম জ্ঞান নেই তাকে একটি প্রোগ্রামিং ভাষা শেখানোর ব্যর্থ চেষ্টা করা হতো। ফলাফল যেটি হতো তা হল সম সিরিজ এর বই কিছু সমস্যা সমাথান করে পরীক্ষায় পাস করা, কিংবা আর একটু ভাগ্য ভাল হলে ভাল একটি গ্রেড পাওয়া। কিন্তু আসল শিক্ষা রয়ে যেত অন্তরালে । সুতরাং এ বিষয়ে নিশ্চিত করে বলতে পারি কম্পিউটার প্রোগ্রামিং যা শিখেছি সেটা নেহায়েত নিজের তাগিদে বা আরো ভাল করে বলে বলা হয় নিজের আগ্রহে ( যা দিয়ে এখন কাজ চালিয়ে যাচ্ছি )। তোমার এই যোগফল এর সমস্যা দেখে আমার স্মৃতি হাতড়ে খুঁজে পেলাম একটা মজার অভিজ্ঞতার কথা। আমাদের তখন দ্বিতীয় বর্ষে FORTRAN ভাষাটি পড়ানো হচ্ছে। যথারিতী শিখ আর না শিখ , ক্লাসপরীক্ষা তোমাকে দিতে হবে। আমাদের একট সমস্যা দেয়া হলঃ ১ থেকে ১০০ পর্যন্ত যোগফল বের করার এলগরিদম ও কোড লিখতে হবে। তখনও আমি এলগরিদম কি জানিনা বা সমস্যা কিভাবে ধাপে ধাপে সমাধান করতে হয় তাও শিখিনি ( আরো ভাল করে বললে শেখানো হয়নি ) । আমার স্পষ্ট মনে আছে আমি নিচের কোড টি লিখলামঃ

A=1 ( প্রথম রাশি)
D=1 ( প্রতি পদে বৃদ্ধি)
N=100 (মোট সংখ্যা)
S=(N/2)*(2*A+(N-1)*D) (সমষ্টি)
WRITE(*,*) S

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

জাহিদুল ইসলাম
ইউনিভার্সিটি অফ আলবার্টা, এডমনটন, কানাডা


এ বিশ্বকে এ শিশুর বাসযোগ্য করে যাব আমি, নবজাতকের কাছে এ আমার দৃঢ় অঙ্গীকার।
ব্যক্তিগত ওয়েবসাইট
কৃতজ্ঞতা স্বীকারঃ অভ্র।

শেহাব [অতিথি] এর ছবি

রাগিব ভাই,

আমার এরকম একটা বই লেখার প্ল্যান আছে । আমি ঠিক করেছি ডিভাইড এন্ড কংকার ব্যাপার টা কোন একটা রেসিপি দিয়ে বুঝাবো। ধরেন কাউকে আগে কাচ্চি বিরিয়ানীর রেসিপি দেখাবো। ও দেখবে, সে রান্নার জন্য যা ভাবছে সেটাই ১, ২, ৩ নম্বর দিয়ে খুব স্পেসিফিক ছোট ছোট কাজে ভাগ করা আছে যাতে যে কেউ রান্নাটা বই দেখে করতে পারে। ঠিক যেকোন জটিল কাজ যদি খুব ছোট ছোট ধাপে ভাগ করা যায়, তবে যেকোন গাধা (যেমন কম্পিউটার) ও সে কাজ করে ফেলতে পারবে।

আমি যখন সি.এস.ই. তে পড়তাম, দেখেছি, এই ডিভাইড এন্ড কংকার যে যত আগে ধরতে পেরেছে সে তত আগে প্রোগামিং এর মজা পেতে শুরু করেছে।

এনকিদু এর ছবি

রাগিব ভাই, আমি প্রোগ্রামিং এবং CS এ ব্যবহৃত অনেক শব্দের ভাল বাংলা খুঁজে পাইনা তাই চাইলেও অনেক সময় wikipedia বা অন্যকোথাও লিখতে পারিনা । একটা অভিধান / সংকলনের মত কিছু কি করা যায় না ?


অনেক দূরে যাব
যেখানে আকাশ লাল, মাটিটা ধূসর নীল ...


অনেক দূরে যাব
যেখানে আকাশ লাল, মাটিটা ধূসর নীল ...

ইশতিয়াক রউফ এর ছবি

খুব, খুব ভাল সিরিজ। থামে না যেন, রাগিব ভাই।

হিমু এর ছবি

এ ধরনের বই লেখার উদ্যোগকে স্বাগত জানাই।


হাঁটুপানির জলদস্যু

স্বপ্নাহত এর ছবি

(গুরু)

নিয়মিত পাঠক বনে গেলাম এই সিরিজের। এখন শুধু প্রার্থনা লেখকও যেন নিয়মিত হন ;)

ভয়ে ভয়ে একটা বইয়ের কথা বলি। জাভা র প্রাথমিক কনসেপ্টের জন্য হেডফার্স্ট সিরিজের "হেডফার্স্ট জাভা"(Head first Java) বইটা আমার কাছে ব্যাপক লাগসে। গতানুগনিক বইয়ের ধ্যান ধারণা ভেঙে আমার মনে হয় এই বইটাতে অনেক বেশি আকর্ষণীয় করে উপস্থাপন করা হয়েছে প্রাথমিক বিষয়গুলো।

---------------------------------

বিষণ্ণতা, তোমার হাতটা একটু ধরি?

---------------------------------

বাঁইচ্যা আছি

গৌতম এর ছবি

রাগিব ভাই যদি এই সিরিজে নিয়মিত না হন, তাহলে দেখা হলে খবর আছে!
.............................................
আজকে ভোরের আলোয় উজ্জ্বল
এই জীবনের পদ্মপাতার জল - জীবনানন্দ দাশ

ব্লগস্পট ব্লগ ::: ফেসবুক

.............................................
আজকে ভোরের আলোয় উজ্জ্বল
এই জীবনের পদ্মপাতার জল - জীবনানন্দ দাশ

অছ্যুৎ বলাই এর ছবি

এরকম লজিক বিল্ডআপ ছোটবেলা থেকেই শুরু করা দরকার। ভালো পোস্ট। কাজের ফাঁকে ফাঁকেও সিরিজ চলুক।

---------
চাবি থাকনই শেষ কথা নয়; তালার হদিস রাখতে হইবো

ষষ্ঠ পাণ্ডব এর ছবি

এমন একটি সিরিজ শুরু করার জন্য কৃতজ্ঞতা। কাজের জন্য দেরি হোক তবু যেন বন্ধ না হয় এই সিরিজ।



তোমার সঞ্চয়
দিনান্তে নিশান্তে শুধু পথপ্রান্তে ফেলে যেতে হয়।


তোমার সঞ্চয়
দিনান্তে নিশান্তে শুধু পথপ্রান্তে ফেলে যেতে হয়।

স্পর্শ এর ছবি

দারুণ উদ্যোগ। (y)
....................................................................................
ইচ্ছার আগুনে জ্বলছি...


ইচ্ছার আগুনে জ্বলছি...

তানভীর এর ছবি

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

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

রণদীপম বসু এর ছবি

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

-------------------------------------------
‘চিন্তারাজিকে লুকিয়ে রাখার মধ্যে কোন মাহাত্ম্য নেই।’

বিমূঢ় [অতিথি] এর ছবি

‌‌‌রাগিব স্যারকে ধন্যবাদ দিয়ে খাটো করব না। শুধুই বলব স্যার অনেক কিছু শেখাতে পারবেন। যদিও আমার পড়াশুনা এই সিএসসি বা সিএসই'তে তবুও বলব অনেক কিছু শিখেছি এই ছোট চ্যাপ্টার থেকে। ধন্যবাদ স্যার :}

সৈয়দ নজরুল ইসলাম দেলগীর এর ছবি

ব্যস্ততার কারনে ব্লগ পড়া, কমেন্ট করা একেবারে কমে গেছে। এই অসম সময়ে আপনার এই পোস্টে আমার ঢোকারই কথা না। তবু ঢুকলাম এবং পুরাটা তিনবার খুব মনোযোগ দিয়া পড়লাম।

আমার একটা বড় সমস্যা হলো আমি পৃথিবীর সবকিছু শিখার আগ্রহ নিয়া জন্মাইছি। সবকিছু আমার খালি শিখতে ইচ্ছা করে। কিন্তু ক্লাস করতে পারি না। ঢাকা কলেজের মতো চরম সরকারি কলেজ থেকেও আমার বাড়িতে চিঠি গেছে বাপের নামে, কারন আমি ফার্স্ট ইয়ারে একটাও ক্লাস করি নাই।

এইখানে যেহেতু ক্লাস করা ছাড়া শেখার সুযোগ আছে তাই ঢুকলাম। কারন প্রোগ্রামিং বিষয়টাতে আমার ঝোঁক আছে। আমি এইটা শিখতে চাই।

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

এগুলা যদি পারি তাইলে আমি কেন প্রোগ্রামিং পারবো না শিখতে? অবশ্যই পারবো। তাই এই সিরিজের পিছে লেগে রইলাম। শিখবোই।

আপনাকে অসংখ্যর চেয়ে বেশি ধন্যবাদ এই সিরিজ চালু করার জন্য। আর করুণা... আমার অত্যাচারে আপনি ভবিষ্যতে ছেড়ে দে মা কেঁদে বাঁচি বলবেন বলে। (দেঁতোহাসি)

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

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

______________________________________
পথই আমার পথের আড়াল

s-s এর ছবি

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

জীবন জীবন্ত হোক, তুচ্ছ অমরতা

ধুসর গোধূলি এর ছবি

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

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

জ্বিনের বাদশা এর ছবি

সুন্দর প্রোজেক্ট (Y)
লিখেছেনও সেরকম সহজ করে

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

শুভকামনা।

========================
যার ঘড়ি সে তৈয়ার করে,ঘড়ির ভিতর লুকাইছে

========================
যার ঘড়ি সে তৈয়ার করে,ঘড়ির ভিতর লুকাইছে

এইচ আহমদে এর ছবি

@ রাগিব ভাই, এই ঠিকানায় গিয়ে পোস্ট টি পড়ে আমাকে যদি সমাধান দেন, খুব ভালো হয়
http://www.somewhereinblog.net/blog/ieee/28907988

জলদস্যু এর ছবি

রাগিব ভাই ৭/৮ বছর আগে আপনি কোথায় ছিলেন? এখন এইগুলা দিয়া আমি কি করব? খেলব না ভাই আপনার সাথে। মাইন্ড খাইছি।

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

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

জলদস্যু এর ছবি

মিস হয়ে গেল। আমি ঢাবির শহীদুল্লাহ হলে ১ মাস উলুবনে মুক্তা ছড়িয়ে কাট মেরেছিলাম। যার কাছে পড়তাম, উনার থেকে আমার ইউনিভার্সিটির শিক্ষকরা সহজ ভাষায় কথা বলতেন। তবে বেতন মারি নাই। ঐ কাজটা এই জীবনে আমার দ্বারা হল না। :-(

গৌতম এর ছবি

এই ধরনের বই বাংলায় না থাকলেও ইংরেজিতে কি আছে? থাকলে সেটা কিনতে চাই।

আপনার পরবর্তী পোস্ট দেওয়ার সময় হয়েছে। অধীর আগ্রহে অপেক্ষা করছি।
.............................................
আজকে ভোরের আলোয় উজ্জ্বল
এই জীবনের পদ্মপাতার জল - জীবনানন্দ দাশ

ব্লগস্পট ব্লগ ::: ফেসবুক

.............................................
আজকে ভোরের আলোয় উজ্জ্বল
এই জীবনের পদ্মপাতার জল - জীবনানন্দ দাশ

শেহাব [অতিথি] এর ছবি

আপনি যদি অলরেডি ড্রাফট করে ফেলে থাকেন তাহলে তো ভালই। আমি আমার কিছু অভিজ্ঞতা শেয়ার করি। আমি জীবনে প্রথম কম্পিউটার দেখি ফাস্র্ট সেমিস্টারে সি এর ল্যাব এ। প্রথমদিন স্যার যখন প্রজেক্টরের পাশে দাড়িয়ে বলছিলেন ডেস্কটপে মাই কম্পিউটারে ক্লিক করে তারপর সি ড্রাইভে ক্লিক করার পর টিসিথ্রি নামে একটা ফোল্ডার দেখতে পাব - আমার মনে হয়েছিল আমি ম্যাজিক দেখছি। প্রায় ২০ ফিট দূরে দাড়িয়ে মনিটরের পিছন সাইড দেখে কিভাবে একজন আমার মনিটরে কি আছে হুবহু বলে দিচ্ছে এটা আমার মাথায় ঢুকতে গোটা ১ দিন লেগেছিল। আমার মত অঘাদেরকে আপনি টার্গেট করবেন।

সনৎ এর ছবি

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

আর একটা ব্যাপার, কোন কোন ক্ষেত্রে বোঝানোর জন্য ভিডিও ব্যবহার করলে কেমন হয়? না হয় আপাতত: ইউটিউবেই হলো, বই করলে তখন ডিভিডি হিসেবে থাকতে পারে, অথবা, বই না করে পুরোটাই ভিডিও টিউটোরিয়াল করে ডিভিডিতে প্রকাশ করা যেতে পারে।

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

নতুন মন্তব্য করুন

এই ঘরটির বিষয়বস্তু গোপন রাখা হবে এবং জনসমক্ষে প্রকাশ করা হবে না।