Programming শিখার পূর্বশর্ত সঠিক Algorithm জানা। সকল টেকিদের জানা উচিত।

মূলত যারা Programming শিখতে চান তাদের জন্য সঠিক Algorithm  জানা আবশ্যক। সঠিক Algorithm না জানার কারনে অনেকে Programming  কিছুদিন শিখে পরে কঠিন মনে করে ছেড়ে দেয় অথবা মুখস্ত করে। আসলে Programming  তেমন কঠিন নয় আর এটা মুখস্ত করার মত বিষয়ও না। Programming দক্ষতা নির্ভর করে আপনি Logicaly কতটুকু develop  এবং কতটুকু সঠি্ক Algorithm করতে পারেন। তো আসুন জেনে নিই Algorithm কী? মূলত আমি কিছুদিনের মধ্যে PHP/MySQL নিয়ে ধারাবাহিক টিউন শুরু করব। তাই আমি চাই যারা PHP/MySQ  শিখতে চান তারা যেন এটা ভালো ভাবে জানে।

অ্যালগরিদম (Alogorithm) কি?

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

Alogorithm-এর প্রয়েজনীয়তা

Algorithm যেকোন Programming এর গুরূত্বপূর্ণ অংশ। Algorithm সঠি্ক না হলে Program সঠিকভাবে কাজ করবে না। Programming  দক্ষতা অর্জন করতে হলে Alogorithm  সম্পর্কে স্বচ্ছ ধারনা থাকতে হবে । Program কোন ধারাবাহিকতার কাজ করবে , Alogorithm  সেটি নির্ধান করে। তাছাড়াও Alogorithm –কে যত সুষ্ঠু ও সঠিকভাবে উপস্থাপনা করা যায় –Program  তত কম Memory Space  নেয় এবং তুলনামূ্লক কম সময়ে output –এ ফলাফল প্রদর্শিত হয়।

এখানে আমি Algorithm আরো সহজে বুজার জন্য কয়েকটা উদাহরন দিলাম।

Ex 1: মনে করি আমরা দুটি সংখ্যা্র যোগফল বের করবো। তাহলে একটু চিন্তা করে দেখুন কিভাবে এটা করবেন।

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

এটি একটি সহজ Algorithm.

আশাকরি সবাই বুজতে পেরেছেন।

সবাই ভালো থাকবেন।

Level 0

আমি তাপস। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 13 বছর 3 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 8 টি টিউন ও 140 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

হুম,শুরু ভালো, তবে এলগরিদমের সংগাটা আমার মতে একটু ভিন্ন।
"কোন সমস্যা(Program) সমাধানের জন্য নির্বাচিত সহজ ও সঠিক পথই Alogorithm."
শেষের উদাহরনে আপনি "input", "variable", "প্রিন্ট করা", ইত্যাদি প্রোগ্রামিং টার্ম ব্যবহার করেছেন। প্রোগ্রাম শুরু না করেই এগুলো উদাহরনে ব্যবহার করলে আমার মনে হয় প্রতিটিও টার্মও বুঝিয়ে বলার দরকার পড়ে যায়। তাই একেবারে নবীনদের জন্য আরেকটু সহজ করে(পারলে প্রোগ্রামিং টার্মগুলো ব্যবহার না করে) উদাহরণ দেয়ার চেষ্টা করলে ভালো হবে বলে আশা করি, ধন্যবাদ।

    আপনার সংঙ্গাটা আর আমার সংঙ্গাটা কী এক না? আর আমিতো এখানে programming কোন term ব্যবহার করি নাই। আমি এখানে যে step গুলো ব্যবহার করেছি তা হল Algorithm এর কয়েকটা বৈশিষ্ঠ। তারপরও update করে দিলাম।
    ধ্যনবাদ

    Level 0

    মনেহয় না সংগা দুটি এক,কারণ আপনি বলেছেন,কোন সমস্যা(Program) সমাধানের সহজ ও সঠিক পথ নির্বাচন করাই Alogorithm.

    অর্থাৎ, পথটা নয়, বরং পথ নির্বাচন <b>করাটা </b> এলগরিদম।"
    কিন্তু আমার সংগায় আমি বলেছি, নির্বাচিত <b>পথটি</b> এলগরিদম। আশা করি বুঝতে পেরেছেন।
    আর "input", "variable", "প্রিন্ট করা" এগুলো প্রোগ্রামিং এ আছে বলে আমি এগুলোকে প্রোগ্রামিং টার্ম বলেছি।ধন্যবাদ।

    সহজ ও সঠিক পথ নির্বাচন করা আর নির্বাচিত পত কি এক কথা না। আর আপনি যে সংঙ্গাটার বলছেন তা শুধু আমি আমার নিছের মতো করে বুজাতে ছেয়েছিলাম আসল সংঙ্গাটা হল "কোন সমস্যা সমাধানের সুস্পষ্ঠ ধা্পসমূহের ক্রমবিন্যাস কে Alogrithm বলে।" এটাও কি আপনার কাছে ভিন্ন মনে হয়?

    Level 0

    "কোন সমস্যা সমাধানের সুস্পষ্ঠ ধা্পসমূহের ক্রমবিন্যাস কে Alogrithm বলে।" এটা ঠিক আছে। বরঞ্চ এর সাথে "কোন সমস্যা(Program) সমাধানের সহজ ও সঠিক পথ নির্বাচন করাই Alogorithm" এই কথাটি মিল নেই। প্রথম সংগায় বুঝাচ্ছে,
    যে ক্রমবিন্যাসটি তৈরি করা হল সেই বিন্যাস বা সেই ছকটি নিজেই এলগরিদম। আর আপনার দেয়া ২য় সংগায় বুঝাচ্ছে,ক্রমবিন্যাস বা সহজ সঠিক পথ নির্বাচন করার কাজটি বা প্রক্রিয়াটিকে এলগরিদম বলে, পথ/ছক/ক্রমবিন্যাসকে নয়। আশা করি বুঝতে পারছেন।

hmmmm….. khob valo hoto apni selected algoritham nia discuss koran…….. jamon heapshort, quick short etc…

    আমার টিউনের মুল উদ্দেশ্য হলে Algorithm কি সেটা। আর আপনি যে heap sort, quick sort এগুলো বুজাতে হলে আগে তো এই sort টা কি সেটা বুজাতে হবে। আর আপনার যদি খুব ভালো জানেন তাহলে টিউন শুরু করে দেন।

তাপস ভাই, সুন্দর একটা টিউন করলেন। ধন্যবাদ।

    ধন্যবাদ জাকির ভাই

প্রোগ্রামিং নিয়ে আগ্রহ আছে। সুন্দর জিনিস জানলাম। সামনে আশা করি আপনার থেকে আরও কিছু শিখতে পারব।
সুন্দর টিউনটির জন্য ধন্যবাদ

Level 0

ধন্যবাদ চালিয়ে যান….আপনার পোস্টের মান খুব ভাল হচ্ছে……….আশা করি সামনে আমাদেরকে এইরকম পোস্ট দিবেন……..

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

    Level 0

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

ভাই আপনার টিউনের আমি ফ্যান হয়ে যাচ্ছি।টিউন নিয়মিত করবেন সেই প্রত্যাশা রইল।

Level 0

Mithu Bai valo bolesen.tobe Taposh vai er cheye jodi valo kichu aponar moddhe thake to amader Din.valo kisu jante chai.oppekkhai roilam.valo thakun.

Level 0

Thanks Taposh Bai.

vai apnera ki kou kindly akti tune korben on

how to setup QUBEE GIGASET and ROUTER with laptop or mobile

ধন্যবাদ মিঠু ভাই। অনেক উপকার হল।

    গ্রামের বাডিতে যাওয়ার কারনে আপনার কমেন্টের উওর দিতে দেরি হল। প্রথমে আপনাকে অনেক ধন্যবাদ জানাই যেহেতু আপনি একজন programmer হতে চান। মিঠু ভাই যে বলল ২ সপ্তাহে PHP শিখা যায় তা আমি মেনে নিতে পারছিনা। কারন PHP environment সম্প্রকে জানতে ১ মাস সময় লাগে। আর থাকতো PHP programming. আপনি যেহেতু programmer হতে চান সেহেতু আমি আপনাকে বলব আপনি web programmer হন। কারন ওয়েব প্রোগ্রামিং এর অনেক চাহিদা আছে। প্রথমত সি টা ভালো ভাবে শিখে ফেলুন। সি শিখার জন্য জাকির ভাইয়ের টিউন গুলো দেখতে পারেন https://www.techtunes.io/chain-tunes/learn-c-programming-language/
    পাশাপাশি একটা বই কিনে নিবেন। আর একটা কথা সব সময় মনে রাখবেন programming এর statement গুলো শিখা খুব সহজ কিন্তু progrmming এর skill নির্ভর করে কতটুকু logicaly develop ও কতটুকু practice করেন। সি শিখার পরে HTML শিখতে হবে।এটা শিখতে বেশি সময় লাগবেনা। তারপর আপনি PHP শিখতে পারেন। এই দুইটা দিয়ে আপনি মোটামুটি চলতে পারবেন। তবে পূর্নাঙ্গ একজন web programmer হতে হলে আরো কিছু শিখতে হবে। যেমন
    1.HTML
    2. CSS
    3.JavaScript
    4.Ajax
    5.PHP
    6.MySQL
    7. ASP(এটা না শিখলেও হবে)
    8.jQUERY(এটা না শিখলেও হবে)
    আরো কিছু তবে এইগুলো দিয়ে হবে। আর এগুলো ভালো ভাবে শিখতে পারলে কাজের পাশাপাশি ফ্রীলাঞ্চিং করতে পারবেন। আশাকরি বুজাতে পেরেছি। আর কোন সাহায্য দরকার হলে জানাইবেন।

ধন্যবাদ তাপস ভাই। আশা করি চালিয়ে যাবেন।
আসলে আপনারাই পারেন দেশ ও জাতিকে এগিয়ে নিতে।

আমিও আপনার টিউনের ফ্যান হয়ে যাচ্ছি।

ও আরেকটা কথা, কারো সাহায্য ছাড়া শুধু নেট ঘেটে কি প্রোগ্রামিং এ expert হওয়া সম্ভভ?
(আমি যেহেতু ডিপ্লোমার ছাত্র সেহেতু সব কিছু সম্পর্কে ধারনা আছে, তবে অল্প অল্প!!!)

    আমি একটা কথা ছোট বেলা থেকে জানি যে "শুনা কথা মনে থাকে বেশি"।এজন্য প্রথমত কারো সাহায্য নিতে পারেন বিশেষ করে আপনার স্যার দের। ওনাদের কাছ থেকে একটু উৎসাহ পেলে দেখবেন এমনি তে শিখা হয়ে যাচ্চে। আর আপনি যেহেতু ডিপ্লোমার ছাত্র সেহেতু আপনাকে ভালো ভাবে programming শিখতে হবে। এজন্যে প্রথমত সি টা ভালো ভাবে শিখতে হবে। তাই আমি বলব প্রথমত জাকির ভাইয়ের কিছু সি উপর টিউন আছে তা দেখতে পারেন পাশাপাশি একটা বই পডতে পারেন এবং আপনার স্যার দের সাথে যোগাযোগ রাখতে পারেন। দেখবেন খুব আল্প কয় দিনে programming এ expert হয়ে যাবেন। programming শিখার সময় যদি মনের ভিতর কোন শয়তান ঢুকে তখন নিজের মন টা কে বলবেন programming আমার শিখতেই হবে বাচাঁর জন্য। দেখবেন শয়তান কোথায় চলে গেছে। আর programming নিয়ে কোন ভয় পাবেন না। একদম সহজ একটা বিষয়। আর আমরা তো আছি। আর আমার Kausar Alam কে দেওয়া উপরের কমেন্টা টা দেখতে পারেন।

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

সবকিছু আবার প্রথম থেকে শুরু করতে চাচ্ছি।

    ebook থেকে এমনি বই অনেক ভালো হবে। আপনাদের সিলেবাসে যেটা ছিল সেটাও থেকেও শিখতে পারেন। তবে এর আগে জাকির ভাইইয়ের সি এর উপর টিউন গুলো দেখতে পারেন। এগূলো সি এর বেসিক। খুব উপকার করবে। তারপর এইখানেও সি উপর টিউন আছে। তবে এগুলো একটু advance. তাই আগে জাকির ভাইয়ের গুলো দেখেন। http://www.acmsolver.org/bangla/

Thanks

@তাপস

JavaScript
Ajax
এই ২টা জিনিস কথা থেকে শিখা যায়?!!