Bdhuge | Technology Journey.
  • Home
  • Business
    • Internet
    • Market
    • Stock
  • Parent Category
    • Child Category 1
      • Sub Child Category 1
      • Sub Child Category 2
      • Sub Child Category 3
    • Child Category 2
    • Child Category 3
    • Child Category 4
  • Featured
  • Health
    • Childcare
    • Doctors
  • Home
  • Business
    • Internet
    • Market
    • Stock
  • Downloads
    • Dvd
    • Games
    • Software
      • Office
  • Parent Category
    • Child Category 1
      • Sub Child Category 1
      • Sub Child Category 2
      • Sub Child Category 3
    • Child Category 2
    • Child Category 3
    • Child Category 4
  • Featured
  • Health
    • Childcare
    • Doctors
  • Uncategorized

Wednesday, July 1, 2015

কেন আমি প্রোগ্রামিং শিখবো?

 11:08 PM     কম্পিউটার প্রোগ্রামিং     No comments   

সকালে উঠেই টপকোডারে এ লেখা দেখলাম “একটি শিশুকে একই আইফোন দিলে সে দিনরাত অ্যাংগ্রি বার্ডস খেলবে, শিশুটিকে কোডিং শিখালে সে আইফোনটার জন্য সফট্ওয়্যার তৈরি করবে” দারুণ এই লেখাটা দেখে মনে হলো কেন আমরা প্রোগ্রামিং বা কোডিং শিখবো সেটা নিয়ে বাংলায় কিছু লিখি। এ লেখাটি প্রোগ্রামিং নিয়ে যাদের কোনো ধারণা নেই বা খুব সামান্য ধারণা আছে তাদের আগ্রহী করে তোলার একটি ছোট্ট প্রচেষ্টা।
কম্পিউটার একটি অসম্ভব ক্ষমতাবান কিন্তু নির্বোধ একটি যন্ত্র। একটি যন্ত্র ৫০জন সাধারণ মানুষের কাজ একাই করতে পারে কিন্তু ৫০টি যন্ত্র একটি অসাধারণ মানুষের কাজ করতে পারেনা(Hubbard, Elbert)। প্রোগ্রামিং শিখে আমরা একেকজন হয়ে উঠতে পারি সেই মানুষটি যে এই যন্ত্রকে ইচ্ছামত কথা শোনাতে পারে। তুমি যা বলবে যেভাবে কম্পিউটার তাই করবে, এটাই হলো সোজা কথায় প্রোগ্রামিং। হয়তো বলতে পারো এখনইতো কম্পিউটার সেটা করে, আমি গান শুনাতে বললে সে শুনিয়ে দেয়, আমি গেম খেলতে চাইলে সে আমার সাথে খেলতে শুরু করে। কিন্তু আসল ব্যাপারটা হলো একজন প্রোগ্রামার আগেই কম্পিউটারকে বলে রেখেছে যে তুমি গান শুনতে চাইলে সে যেন শুনিয়ে দেয়। সে যদি বলে রাখতো গেম খেলতে চাইলে পড়তে বসার উপদেশ দিতে তাহলে কম্পিউটার তাই করতো, তোমার কিছু করার থাকতোনা। প্রোগ্রামার হলো সে যার কথায় কম্পিউটার উঠা-বসা করে। দারুণ একটা ব্যাপার এটা, তাইনা?
কিন্তু তুমি কেন প্রোগ্রামিং শিখবে? বড় বড় কথা বলার আগে সবথেকে প্রথম কারণ আমি বলবো কারণ “প্রোগ্রামিং দারুণ মজার একটি জিনিস!”। কম্পিউটারের সাথে অন্য যন্ত্রের বড় পার্থক্য হলো এটা দিয়ে কতরকমের কাজ করানো যায় তার সীমা নেই বললে খুব একটা ভুল হবেনা। তাই প্রোগ্রামিং জানলে যে কতকিছু করা যায় তার তালিকা করতে বসলে শেষ করা কঠিন। তুমি দিনের পর দিন প্রোগ্রামিং করেও দেখবে জিনিসটা বোরিং হচ্ছেনা, প্রায় প্রতিদিনই নতুন মজার কিছু শিখছো, নতুন নতুন টেকনোলজী আবিষ্কারের সাথে সাথে তুমি আরো অনেক রকম কাজ করতে পারছো অথবা তুমিই করছো নতুন আবিষ্কার! আজ হয়তো জটিল কোনো সমীকরণ সমাধান করার জন্য ফাংশন লিখছো, কাল এসব ভালো লাগছেনা বলে লাল-নীল রঙ দিয়ে একটি অ্যানিমেশন বানাতে বসে গেলে, তোমার সৃষ্টিশীলতার সবটুকুই কাজে লাগাতে পারবে প্রোগ্রামিং এর জগতে। যে জীবনে প্রোগ্রামিং শিখলোনা সে যে কি মিস করলো কখনোই কল্পনা করতে পারবেনা।

ছবি: শাহরিয়ার মঞ্জুর, বিশ্বের সবচেয়ে সম্মানজনক প্রোগ্রামিং প্রতিযোগীতার বাংলাদেশি জাজ
A computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match. – Bill Bryson
একটি স্কুল-কলেজ পড়ুয়া ছেলেমেয়ে কম্পিউটার বা মোবাইল দিয়ে কি করে? রাশিয়া-চীনের ছেলেমেয়েরা অনেকেই হয়তো অ্যাসেম্বলিতে কোড লিখে, কিন্তু জরিপ না করেও বলা যায় আমাদের দেশে বেশিভাগই মুভি দেখা, ফেসবুক , গেমস ছাড়া খুব বেশি কিছু করেনা। আসলে কম্পিউটার দিয়ে কি করা যায় তার ধারণাও অনেকের নাই। ছেলে বা মেয়েটিকে প্রোগ্রামিং শিখিয়ে দেয়া হলে তার জগৎটাই পাল্টে যাবে। সে তখন সারাদিন গেমস না খেলে হয়তো একটি গেমস বানিয়ে ফেলবে। আমি বাংলাদেশেরই কিছু স্কুল-কলেজ পড়ুয়া প্রোগ্রামারদের জানি যারা বাংলা কিবোর্ড নিয়ে কাজ করে, ওপেন সোর্স কমিউনিটিতে অবদান রাখে। প্রোগ্রামিং জানলে তুমি বুঝতে পারবে কম্পিউটার শুধু বিনোদনের যন্ত্র নয়, কম্পিউটার তৈরা করা হয়েছিল এর ক্ষমতাকে ব্যবহার করে বড় বড় গবেষণা,হিসাব করার জন্য, তুমি যদি গবেষণা নাও করো অন্তত এই ক্ষমতাটা ব্যবহার শিখবে, সৃষ্টিশীল অনেক কাজ করতে পারবে। কম্পিউটারের জগতে অসাধারণ কিছু অগ্রগতি হয়েছে খুব কম বয়েসী প্রোগ্রামারদের দিয়ে, বিল গেটস স্কুলে থাকতেই চমকে দেয়ার মত কিছু প্রোগ্রাম লিখেছিলেন, প্রোগ্রামিং কনটেস্টে হাইরেটেড কোডারদের অনেকেই স্কুল-কলেজ এখনও শেষ করেনি।

ছবি: মেহেদি হাসান, তৈরি করেছেন আমাদের সবার প্রিয় অভ্র কিবোর্ড, তিনি মেডিকেলের একজন ছাত্র
প্রোগ্রামিং করা মানে আনন্দের সাথে শেখা। এই শেখাটা খালি কম্পিউটারের মধ্য সীমাবদ্ধ না, অধিকাংশ ভালো প্রোগ্রামারদের খুবই ভালো গাণিতিক এবং লজিকাল জ্ঞান থাকে। দাবা খেলার মতোই প্রোগ্রামিং পুরোটাই লজিকের খেলা, কোন কাজের পর কোনটা করলে কি হবে, কিভাবে করলে আরো দ্রুত ফলাফল আসবে এইসব নিয়ে চিন্তা করতে করতে মস্তিষ্কের লজিকাল সেক্টরটা ডেভেলপ করে। আমার মতে চিন্তা করার মত আনন্দের এবং গুরুত্বপূর্ণ কাজ ২য়টি নেই। বিশেষ করে কম বয়সে প্রোগ্রামিং শিখালে সে চিন্তাশক্তি বৃদ্ধির যেই সুফলটা পাবে সেটা সারাজীবন কাজে লাগবে, সে যদি প্রোগ্রামিং পরে ছেড়েও দেয় তারপরেও চিন্তা করার ক্ষমতাটা থেকে যাবে।
প্রোগ্রামিং কি শুধু কম্পিউটার সাইন্স যারা পড়ে বা পড়তে চায় তারা শিখবে? সেটার কোনো যুক্তি নেই, তুমি যেই বিষয় নিয়েই পড়ছো বা পড়তে চাও, প্রোগ্রামিং তুমি আনন্দের জন্যই শিখতে পারো এবং চাইলে তোমার কাজেও লাগাতে পারো। তুমি বিজ্ঞানের যেকোনো বিষয়ে লেখাপড়া করলেতো কথাই নেই, তোমার গবেষণায় প্রতি মূহুর্তে কম্পিউটার লাগবে, তুমি বিজনেস, আর্টস পড়লেও প্রোগ্রামিং কাজে লাগবে। তুমি কোম্পানির জন্য দারুণ একটি ওয়েবসাইট বানাতে পারো, একটি সফটওয়্যার বানাতে পারো যেটা যেসব কাজ বোরিং সেগুলো স্বয়ংক্রিয় ভাবে করে দিবে! আমি অনেক সময় ছোটো-খাটো কিন্তু বোরিং কাজ করার সময় চট করে একটা স্ক্রিপ্ট লিখে ফেলি, তারপর সেটাকে কাজ করতে দিয়ে ঘুম দেই!
প্রোগ্রামিং শেখা কি খুব কঠিন? উত্তর হলো হ্যা,যদি তোমার আগ্রহ না থাকে এবং কেও তোমাকে জোর করে শেখায়। যদি একবার মজা পেয়ে যান তাহলে এরপর কারো শেখানো লাগবেনা, নিজেই সব শিখে ফেলতে পারো। আমার উপদেশ হবে ২-৩ সপ্তাহ প্রোগ্রামিং করার পর যদি তোমার ভালো না লাগে তাহলে জোর করে করার দরকার নাই, এটা তোমার জন্য না, অন্য যেটা ভালো লাগে সেই কাজ করো। যদি একবার ভালো লাগে বাজী ধরে বলতে পারি কোড লিখতে লিখতে তুমি প্রায়ই খাবার কথাও ভুলে যাবে। যেকোন কাজের জন্যই সবথেকে গুরুত্বপূর্ণ ব্যাপার হলো ভালো লাগা, যেটা ভালো লাগেনা সেটা করার কোনো অর্থ আমি দেখিনা কারণ দুইদিন পর যা শিখসি সব ভুলে যাবো।
Screenshot-1
ছবি: lightoj, ঢাকা বিশ্ববিদ্যালয়ের জানে আলম জানের তৈরি করা অনলাইন জাজ যেখানে প্রবলেম সলভ করে সারা পৃথিবীর কোডাররা
শুরু কিভাবে করবে? তোমার যদি ইন্টারনেট কানেকশন থাকে তাহলে কথাই নেই, ইন্টারনেটে অসংখ্য টিউটোরিয়াল আছে। ইংরেজীর পাশাপাশী বাংলা কিছু ভালো রিসোর্সও তুমি পাবে। যেমন শ্রদ্ধেয় রাগিব হাসানের shikkok.com ওয়েবসাইট বা ফাহিম ভাইয়ের পাইথন সাইট। এছাড়া খান একাডেমিতেও প্রোগ্রামিং এর ভিডিও আছে, বরাবরের মতই খুবই সুন্দর করে বুঝিয়েছেন সালমান খান। ইন্টারনেট না থাকলে তোমাকে বই জোগাড় করতে হবে, ব্যাক্তিগত ভাবে বিগিনারদের জন্য আমি ইন্টারনেটের থেকে বইকেই বেশি গুরুত্ব দিবো। প্রোগ্রামিং এর বইয়ের অভাব নেই দোকানে, তামিম শাহরিয়ার সুবিন ভাইয়ের একটি দারুণ বাংলা বই আছে। তবে একটা ব্যাপারে সতর্ক থাকবে “৭দিনে প্রোগ্রামিং শেখা” এই ধরণের চটকদার বইয়ের বা সাইটের ধারেকাছে যাবে, এগুলো সবকিছু ঝাপসা ভাবে শেখাবে, হার্ভার্ড শিল্ডের বইয়ের মত নামকরা এবং ভালো বই দেখে শিখো, বেসিক জিনিসগুলো পরিষ্কার হবে। এছাড়া লাগবে প্রোগ্রামিং এর জন্য কিছু সফটওয়্যার, এগুলোও সহজেই জোগাড় করতে পারবে। এরপর শুরু করে দাও কোড লেখা!! প্রথম ২ সপ্তাহ আপনার বেশ ঝামেলা লাগবে কারণ বিষয়টা নতুন, একটু পরপর আটকে যাবে, তারপর হঠাৎ দেখবেন সবকিছু সহজ হয়ে গিয়েছে, মূহুর্তের মধ্যেই ১০০ লাইনের কোড লিখে ফেলেছো। প্রোগ্রামিং শেখার প্রধান শর্ত হলো হাল ছাড়া যাবেনা। প্রথম দিকে কোনো কোড কপি পেস্ট করবেনা, নিজের হাতে লিখবে।
A good programmer is someone who looks both ways before crossing a one-way street. — Doug Linder, systems administrator
চাকরী-ক্যারিয়ার নিয়ে সবার মধ্যেই অনেক টেনশন থাকে। আনন্দের জন্য প্রোগ্রামিং শিখলেও এটা তোমার ক্যারিয়ারে খুবই গুরুত্বপূর্ণ। তুমি প্রোগ্রামিং জানলে নিশ্চিত থাকতে পারো কাজের কোনো অভাব জীবনে হবেনা। তুমি কোনো চাকরী না করেও ফ্রি-ল্যান্স কাজ করতে পারবে, এমনকি ছোটোখাট একটা কোম্পানিও খুলে বসতে পারবে। আমি আশেপাশে অনেককে দেখেছি কয়েক বন্ধু মিলে একটি ছোট কোম্পানি খুলে স্বাধীনভাবে কাজ করে, কি দারুণ একটা ব্যাপার! প্রোগ্রামিং জানার আরেকটি দারুণ ব্যাপার হলো তুমি ভালো কোনো কাজ করলে খুব সহজেই সারা বিশ্ব জেনে যাবে। পৃথিবীর আরেক প্রান্তের মানুষ তোমার বানানো সফটওয়্যার দিয়ে গান শুনবে, তোমার অপারেটিং সিস্টেম বুট করবে, আবার পিসি হ্যাং করলে হয়তো আপনাকেই গালি দিবে!! গুগলের মতো কোম্পানিতে কাজ করতে চাইলে তোমার কিছু করতে হবেনা, আপনার কাজের খ্যাতিতে তারাই তোমাকে এসে অফার দিবে। তবে প্রোগ্রামিং শেখার উদ্দেশ্য কখনোই গুগলে চাকরী বা খ্যাতি অর্জন হওয়া উচিত নয়, শিখবে আনন্দের জন্য, জানার জন্য।
সি বা জাভার মতো প্রোগ্রামিং ল্যাংগুয়েজ শেখা মানেই কিন্তু তুমি প্রোগ্রামিং শিখে ফেলোনি। ল্যাংগুয়েজ শেখা খুব সহজ কাজ, প্রথমে একটা কষ্ট করে শিখে ফেললে এরপর যেকোনো ল্যাংগুয়েজ শেখা যায়। তোমাকে খুবই ভালো লজিক ডেভেলপ করতে হবে, অ্যালগোরিদম আর ডাটা স্ট্রাকচার নিয়ে পড়ালেখা করতে হবে, গণিত জানতে হবে, তাহলেই তুমি একজন ভালো প্রোগ্রামার হয়ে উঠবে। তবে ভয়ের কিছু নেই, সবই তুমি ধীরে ধীরে শিখে ফেলতে পারবো, শুধু লাগবে চেষ্টা আর সময়। এটা আশা করবেনা যে ৬ মাসে তুমি অনেক ভালো প্রোগ্রামার হয়ে যাবে তবে লেগে থাকলে ২-৩ বছরে অবশ্যই মোটামুটি ভালো একটা লেভেলে তুমি পৌছাতে পারবে।
তুমি যদি কম্পিউটার সাইন্সের স্টুডেন্ট হও তাহলে এইসব কথাই তুমি হয়তো জানো, শুধু বলবো প্রোগ্রামিং কে আর ৫টা সাবজেক্টের মতো ভেবোনা, খালি সিজিপিএ বাড়াতে কোডিং শিখলে তোমার মতো অভাগা কেও নাই, প্রোগ্রামিং উপভোগ করার চেষ্টা করো, জানার আনন্দে শিখো।
আমার স্বপ্ন আমাদের দেশে একটা চিন্তা করার সংস্কৃতি তৈরি হবে। মানুষ একে অন্যের ব্যক্তিগত ব্যাপারে মাথা ঘামাবেনা, বরং মাথা ঘামাবে গাণিতিক সমস্যা নিয়ে, পাজল নিয়ে, অ্যালগোরিদম নিয়ে। ছেলেমেয়েরা তাদের মেধা গেমস খেলার কাজে না লাগিয়ে কাজে লাগাবে পৃথিবীর উন্নয়নে। বই পড়া, গণিত চর্চা করার পাশাপাশি প্রোগ্রামিং শিখা এই সংস্কৃতি শুরু করতে বিশাল একটি ভুমিকা রাখতে পারে। আমি মনে করি বর্তমান যুগে প্রোগ্রামিং শেখাটা অন্য যেকোন বিষয় শেখার মতই গুরুত্বপূর্ণ, কারণ আমাদের সব কাজে কম্পিউটার লাগে। তাই আপনার আশেপাশের ছেলেমেয়েদের গেমস খেলতে দেখলে তাদের প্রোগ্রামিং সম্পর্কে জানাও, উৎসাহিত করো, অবশ্যই জোর করে শেখানোর কোনো মানে হয়না, যার ভালো লাগবে সে শিখবে তবে সবাই অন্তত জানুক প্রোগ্রামিং কি, এছাড়া কিভাবে শেখার জন্য উৎসাহিত হবে? অনেকেই ইউনিভার্সিটিতে আসার আগে জানেনা প্রোগ্রামিং বলে একটা বস্তু আছে! আর তোমরা প্রোগ্রামিং জানলে অন্যদেরও শিখতে সাহায্য করো, এভাবেই পরিবর্তন একসময় আসবেই, সবাই লজিক দিয়ে ভাবতে শিখবে, চিন্তা করার সংস্কৃতি তৈরি হবে।
শেষ করছি আমার খুব প্রিয় আরেকটি কোটেশন দিয়ে:
craftsman-ship has its quiet rewards, the satisfaction that comes from building a useful object and making it work. Excitement arrives with the flash of insight that cracks a previously intractable problem. The spiritual quest for elegance can turn the hacker into an artist.There are pleasures in parsimony, in squeezing the last drop of performance out of clever algorithms and tight coding. — steven skiena & miguel reville
হ্যাপি কোডিং!
সূত্রঃ http://www.shafaetsplanet.com
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

কোয়ান্টাম কম্পিউটার – ২ (শক্তি এবং সীমাবদ্ধতা)

 10:59 PM     কোয়ান্টাম কম্পিউটার     No comments   

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

কোয়ান্টাম কম্পিউটার সম্পর্কে বাস্তবতা হল এটা কিছু সমস‍্যা যেমন প্রাইম ফ‍্যাক্টরাইজেশন খুব দ্রুত করতে পারবে কিন্তু অন‍্য অনেক সমস‍্যা সমাধানের ক্ষেত্রে সাধারণ কম্পিউটারের থেকে ভালো পারফরমেন্স দিতে পারবে না।
ব‍্যাপারটা আরেকটু বিস্তারিত বোঝার চেষ্টা করি। একটা সমস‍্যা সমাধানের জন‍্য কম্পিউটারকে অনেকগুলো ধাপে কিছু হিসাব-নিকাশ করতে হয় যেটাকে আমরা বলি অ‍্যালগোরিদম। অ‍্যালগোরিদমে ধাপ সংখ‍্যা যত কম থাকবে তত কম হিসাব করতে হবে এবং তত দ্রুত কম্পিউটার সমস‍্যাটা সমাধান করতে পারবে। এখন ধাপ সংখ‍্যা নির্ভর করে ইনপুটের আকারের উপর। যদি ইনপুট হয় n আকারের এবং ধাপ লাগে n^2 টা তাহলে সেই অ‍্যালগোরিদমটাকে বলা হয় O(n2) অ‍্যালগোরিদম (পড়তে হবে order of n square algorithm)। O(n2) অ‍্যালগোরিদমে ইনপুটের আকার যদি হয় ১০০, তাহলে সর্বোচ্চ ১০০০০ ধাপে সমস‍্যাটা সমাধান করা যাবে। ঠিক সেরকম O(n), O(logn) অ‍্যালগোরিদম হতে পারে। এগুলোকে বলা হয় অ‍্যালগোরিদমের টাইম কমপ্লেক্সিটি, যা দেখে আমরা বুঝি কোন অ‍্যালগোরিদম দ্রুত কাজ করবে।
এখন কিছু প্রশ্ন, তোমার কাছে যদি দুটি অ‍্যালগোরিদম থাকে, একটা O(n^2) আরেকটা O(n3) তাহলে কোনটা ব‍্যবহার করলে দ্রুত সমস‍্যা সমাধান করা যাবে? যদি n টা বইয়ে মধ‍্য থেকে একটা বই খুজে বের করতে হয় তাহলে সর্বোচ্চ কয়টা বইয়ের টাইটেল তোমাকে পড়তে হবে? বই খুজে বের করার কমপ্লেক্সিটি তাহলে কত? এবার আরেকটু চিন্তা করার মত একটা প্রশ্ন, ডিকশনারিতে যদি ১০০ টা শব্দ থাকে তাহলে বুদ্ধিমানের মত খুজলে সর্বোচ্চ কয় ধাপে নির্দিষ্ট শব্দ খুজে পাওয়া যাবে? ১০০ এর জায়গায় n টা শব্দ থাকলে?
এখন n2, n3, nk এগুলো সবই হলো পলিনমিয়াল কমপ্লেক্সিটি। আরেক ধরণের কমপ্লেক্সিটি আছে যেগুলোকে বলা হয় এক্সপোনেনশিয়াল কমপ্লেক্সিটি, সেগুলো হলো kn আকারের, যেমন 2n, 3n। n এর মান যত বাড়ে অ‍্যালগোরিদমের ধাপসংখ‍্যা তত বাড়ে, পলিনমিয়াল অ‍্যালগোরিদমের ধাপ সংখ‍্যা যে হারে বাড়ে তার থেকে অনেক দ্রুত হারে বাড়ে এক্সপোনেনশিয়াল অ‍্যালগোরিদমের ধাপ। একটা গল্প মনে আছে যেখানে বাচ্চা ছেলে তার মায়ের কাছে প্রথমদিন ১টাকা, পরেরদিন ২টাকা, পরেরদিন গুলোতে ৪ টাকা, ৮ টাকা, ১৬ টাকা এভাবে করে ১ বছর টাকা চেয়েছিল? তারমানে n তম দিনে 2n টাকা দিতে হবে। নিচের টেবিলে দেখুন এভাবে বাড়াতে থাকলে ৫০ ধাপ পরেই সংখ‍্যাটা কত বড় হয়ে যায়:
nn2n32n
1010010001024
15225337532768
2040080001048576
5025001250001125899906842624
ইনপুটের আকার মাত্র ৫০ হলেই 2n অ‍্যালগোরিদমের জন‍্য ধাপ সংখ‍্যা ১৬ অঙ্কের একটা সংখ‍্যা হয়ে গিয়েছে।
দু:খজনক ভাবে বাস্তবজীবনে এমন অনেক সমস‍্যা আছে যেগুলোর জন‍্য আমরা এক্সপোনেনশিয়াল অ‍্যালগোরিদমের থেকে ভালো কিছু এখন পর্যন্ত জানি না। বিজ্ঞানীরা এগুলোকে np বা non-deterministic-polynomial ক‍্যাটাগোরির সমস‍্যা বলেন। কেও যদি এই ক‍্যাটাগরির কোনো সমস‍্যার পলিনমিয়াল সমাধান বের করে দিতে পারে ১০০% নিশ্চিত ভাবে পৃথিবীর চেহারা সেই মূহুর্তে বদলে যাবে, কম্পিউটার বিজ্ঞানের “হলি গ্রেইল” বলা যেতে পারে এই সমস‍্যাটাকে। আরো ইন্টারেস্টিং ব‍্যাপার হলো, মাত্র ১টা np সমস‍্যা কেও সমাধান করতে পারলে সবগুলো np সম‍স‍্যার সমাধান হয়ে যাবে। বর্তমানে এ ধরণের সমস‍্যার ক্ষেত্রে সবধরণের সম্ভাব‍্য ফলাফল দেখে সেরাটা বেছে নেয়া হয় এবং বিভিন্ন শর্ত আরোপ করে ধাপ কিছুটা কমানো হয়।
এখন একটা সুপারকম্পিউটার হয়ত তোমার-আমার কম্পিউটারের থেকে কয়েক হাজার গুণ দ্রুত কাজ করতে পারে কিন্তু সেগুলোকেও 2100ধাপের একটা অ‍্যালগোরিদম নিয়ে বসিয়ে দিলে গ‍্যালাক্সি আয়ু শেষ হয়ে যাবে কিন্তু সমস‍্যার সমাধান হবে না। সুপারকম্পিউটার তাই সাধারণ কম্পিউটারের থেকে দ্রুত কাজ করতে পারলেও অ‍্যালগোরিদমের কমপ্লেক্সিটি কমিয়ে আনতে পারে না। আমাদের দরকার এমন একটা কম্পিউটার যে অ‍্যালগোরিদমের ধাপ সংখ‍্যা কমিয়ে আনতে পারে। তাহলেই আমরা np ক‍্যাটাগরির সমস‍্যা দ্রুত সমাধান করে ফেলতে পারব।
এবার প্রশ্ন হলো কোয়ান্টাম কম্পিউটার কি np ক‍্যাটাগরির সমস‍্যা সমাধান করতে পারে? দু:খজনক হলেও উত্তর হলো এখন পর্যন্ত পারে না। তাই কোয়ান্টাম কম্পিউটারও এসব সমস‍্যার ক্ষেত্রে সাধারণ কম্পিউটারের থেকে ভালো করতে পারবে না।
তাহলে কোয়ান্টাম কম্পিউটার কোন সম‍স‍্যা সমাধানে ভালো কাজ করবে? সাধারণ কম্পিউটারের একটা বিট যেমন ০ বা ১ হতে পারে ঠিক সেরকম কিউবিটও ০ বা ১ হতে পারে। তবে কিউবিটের মজার ব‍্যাপার হলো সেটা একই সাথে ০ এর ১ এর মিলিত একটা অবস্থায় থাকতে পারে যাকে সুপারপজিশন বলা হয়। আমাদের কাছে ১০০০টা কিউবিট থাকলে সেখানে একই সাথে 21000 টা সংখ‍্যা ভরে রাখা সম্ভব যেটা দৃশ‍্যমান মহাবিশ্বের অণূর সংখ‍্যার থেকেও বেশি । এখন যদি আমাদের এমন একটা অ‍্যালগোরিদম থাকে যেটা একই সময়ে কিউবিটগুলোর উপর কোনো অপারেশন করে সবগুলো সংখ‍্যাকে একটা করে সম্ভাব‍্য উত্তর বানিয়ে দিবে তাহলে আমরা খুব দ্রুত সঠিক উত্তরটা খুজে বের করতে পারতাম। কিন্তু সমস‍্যা হল যখন আমরা অ‍্যালগোরিদম শেষে কিউবিটগুলোর কোন স্টেট এ আছে সেটা দেখার চেষ্টা করব তখন আমরা মাত্র ১টা স্টেট পাবো, কোয়ান্টাম মেকানিক্সের নিয়ম অনুযায়ী বাকিগুলো আমরা কিছুতেই পড়তে পারব না। [১]
তবে ব‍্যাতিচার বা ইন্টারফেয়ারেন্স(interference) বলে একটা ব‍্যাপার আছে যেটা ব‍্যবহার করে আমরা কিছু সুবিধা পেতে পারি, প্রথমে তরঙ্গের অ‍্যামপ্লিচিউড বা বিস্তারের একটা ছবি দেখি:
এবার ইন্টারফেয়ারেন্স[৬] দেখি:
উপরের ডানের ছবিটাতে পজিটিভ আর নেগেটিভ অ‍্যামপ্লিচিউড একসাথে মিলিত হয়ে একটা আরেকটাকে বাতিল করে দিয়েছে, বামের ছবিতে একই ধরণের অ‍্যামপ্লিচিউড একসাথে হয়ে অ‍্যামপ্লিচিউড আরো বাড়িয়ে তুলেছে। আমরা যদি এমন একটা অ‍্যালগোরিদম তৈরি করতে পারি যেটা ভুল উত্তরগুলোকে ডিস্ট্রাক্টিভ ইন্টারফেয়ারেন্সের মাধ‍্যমে বাতিল করে দিবে এবং সঠিক উত্তরের অ‍্যামপ্লিচিউড বাড়িয়ে দিবে তাহলে সবার শেষের স্টেটে সঠিক উত্তর পাবার প্রোবাবিলিটি অনেক বেড়ে যাবে। [১]
এই প্রোপার্টি ব‍্যবহার করে প্রাইম ফ‍্যাক্টরাইজেশন বা মৌলিক উৎপাদকে বিশ্লেষনের একটা অ‍্যালগোরিদম আছে যা শোর’স অ‍্যালগোরিদম(shor’s algorithm)। এই অ‍্যালগোরিদম O(n^3) ধাপে n কে কিছু প্রাইম স‍ংখ‍্যার গুণফল হিসাবে লিখতে পারে, ক্লাসিকাল কম্পিউটারে পলিনমিয়াল সময়ে কাজটা করতে পারে না (তবে এটা np ক‍্যাটাগরির কোনো সমস‍্যা না)। ক্রিপ্টোগ্রাফির অনেক প্রটোকল হয়েছে সাধারণ কম্পিউটার বড় সংখ‍্যাকে দ্রুত প্রাইম ফ‍্যাক্টরাইজেশন করতে পারে না এটাকে মূলনীতি ধরে, কোয়ান্টাম কম্পিউটার এসব প্রটোকলকে খুব দ্রুত ভেঙে ফেলতে পারবে। [৪]
শুরুর দিকে একটা প্রশ্ন করেছিলাম যে n টা বই থেকে ১টা বই খুজে বের করতে সর্বোচ্চ কয়টা বইয়ের টাইটেল পড়তে হবে? উত্তর খুব সহজ, বইটা সবার শেষে থাকতে পারে তাই n বইয়েরই টাইটেল পড়া দরকার হতে পারে, কমপ্লেক্সিটি হল O(n)। ডাটাগুলো কোনো নির্দিষ্ট নিয়মে (যেমন ছোট থেকে বড়) সাজানো না থাকলে তথ‍্য খুজে বের করতে O(n) সময় লাগবে বলেই এতদিন আমরা ধরে নিয়েছি। গ্রোভার সার্চ নামের একটা কোয়ান্টাম অ‍্যালগোরিদম দিয়ে দেখানো হয়েছে O( square_root(n) ) বা n এর বর্গমূল সংখ‍্যক ধাপেই ডাটা খুজে বের করা সম্ভব যেকোন ডাটাবেস থেকে! [৩]
তবে ক্রিপ্টোগ্রাফী ভাঙাটাই কোয়ান্টাম কম্পিউটারের একমাত্র কাজ না, আরো দারুণ কিছু সম্ভাবনা আছে। কোয়ান্টাম কম্পিউটার িদয়ে আমরা রাসায়নিক বিক্রিয়া সিমুলেট করতে পারব, কোনো পরমাণু কার সাথে কিভাবে বিক্রিয়া করে সেগুলো কম্পিউটার দিয়ে বের করতে পারব। ন‍্যানোটেকনোলজি যেহেতু কোয়ান্টাম মেকানিক্সের উপর নির্ভরশীল, সেখানেও কোয়ান্টাম সিমুলেশন খুবই গুরুত্বপূর্ণ ভূমিকা রাখবে। [২] সে সময় হয়তো নতুন ঔষধের কার্যকারিতা প্রাণীর উপর পরীক্ষা না করে আমরা কম্পিউটারে সিমুলেট করে ফেলতে পারব। তবে এমআইটির স্কট অ‍্যারনসনের মতে কোয়ান্টাম কম্পিউটিং নিয়ে গবেষণা করতে করতে যদি দেখা যায় যে কোয়ান্টাম কম্পিউটার তৈরি আসলে সম্ভব না তাহলেও আমরা বিশ্বজগৎ কিভাবে কাজ করে সেটা নিয়ে নতুন অনেক ধারণা পাব। [১]
কোয়ান্টাম কম্পিউটার বানিয়ে ফেলতে সমস‍্যা কোথায়? প্রধান সমস‍্যা হলো কোয়ান্টাম ডিকোহেরেন্স [১][৫] । কিউবিটগুলো পরিবেশের সাথে ইন্টার‍্যাকশনের কারণে সে যে স্টেট এ ছিল সেটা নষ্ট হয়ে যায়, পদার্থবিজ্ঞানীরা যাকে বলেন “ওয়েভ ফাংশন কলাপস” করে। আমরা জানি কিউবিট একই সাথে একাধিক স্টেট এ সুপারপজিশন অবস্থায় থাকতে পারে, ডিকোহেরেন্স এর ফলে একটা মাত্র স্টেট এ “কলাপস” করে। এবং একবার “কলাপস” করলে সেটাকে আর আগের অবস্থায় ফেরত নেয়া যায় না। কোয়ান্টাম কম্পিউটার তৈরির বাধাগুলোর মধ‍্যে এটাই সবথেকে বড়।
সূত্রঃ http://www.shafaetsplanet.com/
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

কোয়ান্টাম কম্পিউটার – ১ (কোয়ান্টাম কম্পিউটার কী?)

 10:56 PM     কোয়ান্টাম কম্পিউটার     No comments   

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

আরো অদ্ভূত ব‍্যাপার হলো যেই আমরা সুপারপজিশনে থাকা কণিকাটা কোন দিকে ঘুরছে দেখার চেষ্টা করবো সাথে সাথে সে যে কোনো একদিকে ঘোরা শুরু করবে, কোন দিকে ঘুরবে আগে থেকে জানার কোন উপায় নেই। ধরা যাক আমি কিউবিটটাকে দেখার চেষ্টা করলে সেটা বামে ঘোরা শুরু করলো, এরপরে আরো ১০জন দেখার চেষ্টা করলেও বামেই ঘুরবে সেটা। কিন্তু তারমানে এই নয় আমি দেখার আগেই সে বামে ঘুরছিলো, এমন হতে পারে যে আমি দেখার পর ডানে ঘুরবে। কোনদিকে ঘুরবে সেটার “প্রোবালিটি” বা “সম্ভাব‍্যতা” আমরা বের করতে পারি, কিন্তু নিশ্চিত করে বলতে পারিনা। ব‍্যাপারটা এমন না যে আমরা মুর্খ, কম জানি তাই বের করতে পারিনা, আসলে গাণিতিক সমীকরণ দিয়ে প্রমাণ করে দেয়া যায় যে আগে থেকে জানা সম্ভব না।
এনট‍্যাঙ্গলমেন্ট এবং টেলিপোর্টেশন:
আরেকটা বিচিত্র ব‍্যাপার হলো এনট‍্যাঙ্গলমেন্ট। সহজ কথায় দুটি বিষয় একটা আরেকটার উপর পুরোপুরি নির্ভরশীল হলে আমরা বলতে পারি বিষয় দুটি এনট‍্যাঙ্গলড হয়ে আছে। পৃথিবী আর চাঁদের গতি একটা আরেকটার অভিকর্ষ বলের উপর নির্ভরশীল। তারপরেও আমরা চঁাদের কথা উল্লেখ না করেই পৃথিবীকে অবস্থান আর গতি দিয়ে চিহ্ণিত করে ফেলতে পারি, তাই বিষয়দুটি এনট‍্যাঙ্গলড না।
এখন ধরা যাক দুটি কিউবিট আছে A এবং B নামের। তারা এনট‍্যাঙ্গলড মানে হলো একটার প্রোপার্টি আরেকটার সাথে জড়িয়ে আছে। কিউবিট A কিভাবে ঘুরছে আমরা যেই দেখার চেষ্টা করবো সাথে সাথে কিউবিট B এর স্পিন নির্দিষ্ট হয়ে যাবে। আমরা A এর স্পিন মাপার আগে দুইজনই একইসাথে বামে আর ডানে ঘুরছিলো। যেই আমরা A কে দেখলাম সাথে সাথে A যেকোন একদিকে ঘোরা শুরু করে দিলো, আর তখনই B ও একসাথে দুইদিকে ঘোরার বদলে যেকোন একদিকে ঘোরা শুরু করবে। তারমানে একটা কিউবিটকে মাপার চেষ্টা করে আমরা আরেকটির দিক নির্দিষ্ট করে দিলাম। এখানে অবাক করার মত ব‍্যাপার হলো A আর B যদি ১০০০০ আলোকবর্ষ দূরেও থাকে তাহলেও এটা ঘটবে।
Quantum_entangled_zps6af353df
এনট‍্যাঙ্গলমেন্ট ব‍্যাপারটা অবিশ্বাস‍্য হলেও কল্পনা না, বিজ্ঞানীর দুটি ল‍্যাবে বসে পরীক্ষা করে দেখেছেন সত‍্যিই এটা ঘটে থাকে। এনট‍্যা্ঙ্গলমেন্ট ব‍্যবহার করে কিউবিট “টেলিপোর্ট” করে দেয়া সম্ভব, তারমানে কণিকাটা বাতাস বা ভ‍্যাকুয়াম বা অন‍্য কোনো মাধ‍্যম দিয়ে না পাঠিয়েই জাদুর মত আরেকজায়গায় পাঠিয়ে দেয়া যায়।
তবে আইনস্টাইন বলেছিলেন আলোর গতিকে কখনো অতিক্রম করা যাবেনা, এদিকে আমি বলছি এনট‍্যাঙ্গলমেন্ট দিয়ে ১০০০০ আলোকবর্ষ কিউবিট দূরে টেলিপোর্ট করে দেয়া সম্ভব, তাহলে নিশ্চয় এটা ভূল। আসলে এনট‍্যা্ঙ্গলমেন্ট হাজার হাজার আলোকবর্ষ দূরে ঘটলেও কোন তথ‍্য চলে যায় না কারণ সবকিছু “সম্ভাব‍্যতা” অনুযায়ী হচ্ছে। টেলিপোর্ট করলে তথ‍্য পাঠানো যায়, কিন্তু সেক্ষেত্রে সেই তথ‍্য পড়ার জন‍্য কিছু সাধারণ বিট ও পাঠিয়ে দিতে হয় গন্তব‍্যে, সেটা আলোর গতি অতিক্রম করে না। তাই তথ‍্য এখানে আলোর গতি অতিক্রম করছেনা, সিনেমার মত টেলিপোর্ট করে নিমেষেই অন‍্য গ‍্যালাক্সিতে চলে যাবার আশা করে থাকলে হতাশ করতে হচ্ছে।
শুধুই গাণিতিক থিওরি?
জাদুর মত এই ব্যাপারগুলো যে শুধুই কাগজে-কলমে ঘটে না তার একটা প্রমাণ “ট্রানজিস্টর”, যার সাহায্যে কম্পিউটার, মোবাইল ফোন সহ হাজার রকমের যন্ত্রপাতি কাজ করে। কোয়ান্টাম মেকানিক্স নিয়েই গবেষণা করতে গিয়ে বিজ্ঞানিরা অনুমান করেছেন এই ধর্মগুলো ব‍্যবহার করে ট্রানজিস্টর বানানো সম্ভব, একসময় টেকনোলজীর উন্নতির পরে সেটা বানানো সম্ভবও হয়েছে।
এনট‍্যাঙ্গলম‍্যান্ট, টেলিপোর্টেশন এখন ল‍্যাবে খুব নিখুতভাবে পরীক্ষা করা যায়। আমি যেখানে কাজ করছি সেখানকার ল‍্যাবেও এগুলো করা হয়।
কোয়ান্টাম কম্পিউটার কি?
কোয়ান্টাম লেভেলের কণিকায় তথ‍্য সংরক্ষণ করা যায়, এদেরকে বলা হয় কোয়ান্টাম ইনফরমেশন। এনট‍্যাঙ্গলমেন্ট, টেলিপোর্টেশন, সুপারপজিশন ইত‍্যাদি ধর্ম ব‍্যবহার করে তথ‍্য আদান-প্রদান, হিসাব নিকাশ করা সম্ভব। কোয়ান্টাম কম্পিউটারে সব গণনা এভাবেই করা হয়। কোয়ান্টাম কম্পিউটারে এমন অনেক কাজ করা যায় যেগুলো সাধারণ কম্পিউটারে করা যায় না। যেমন পলিনমিয়াল টাইমে প্রাইম ফ‍্যাক্টরাইজেশন বা লিনিয়ার সার্চের কমপ্লিক্সিটি স্কয়ার রুট এ নামিয়ে নিয়ে আসা, রাসায়নিক বিক্রিয়া সিমুলেট করা ইত‍্যাদি।
কিন্তু এখনো কোয়ান্টাম কম্পিউটার ল‍্যাবে তৈরি করা যায় নি। গুগলের কেনা ডি-ওয়েভকে কোয়ান্টাম কম্পিউটার দাবী করা হলেও বেশিভাগ বিজ্ঞানীরা মনে করেন কোয়ান্টাম কম্পিউটার হবার সবগুলো শর্ত ডি-ওয়েভ পূরণ করে না। অনেক লেখাতে দাবী করতে দেখেছি কোয়ান্টাম কম্পিউটার গতির ঝড় তুলবে, অনেকে বলে np-complete সমস‍্যা সমাধান করতে পারবে। এসব দাবীর কতটা সত‍্যি আর কতটা কল্পনা, কি কাজে লাগবে কোয়ান্টাম কম্পিউটার, কোয়ান্টাম কম্পিউটার তৈরির বাধা কোথায়, এসব নিয়ে আলোচনা হবে পরের পর্বে।
সূত্রঃ http://www.shafaetsplanet.com/
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Monday, June 29, 2015

প্রোগ্রামিং শুরু করবেন যেভাবে : পরিপূর্ণ গাইডলাইন

 10:53 AM     কম্পিউটার প্রোগ্রামিং     1 comment   



আরিয়ান খান আরিফ

শুরুর আগে ::

আপনি যখন এই পোস্ট পরছেন, আমি ধর নিচ্ছি আপনি প্রোগ্রামিং এর প্রতি শুধু ইন্টারেস্ট এবং আপনি প্রোগ্রামিং শিখতে চান । এবার আসল আলোচনায় আসি, যখন থেকে প্রোগ্রামিং শিখবো বা করব বলে ঠিক করেছি, তখন থেকেই শুনছি এটা খুব কঠিন, যা অনেকের পক্ষেই সম্ভব হয় না শেখা । এখন আমার প্রশ্ন হল পৃথিবীতে কোন জিনিসটা আছে , যা সহজ বা খুব সহজ কিন্তু মানুষের কাজে লাগে ? কেউ কি এমন কিছু একটা বলতে পারেন আমাকে ? অপেক্ষায় থাকলাম । তো যা বলছিলাম, প্রোগ্রামিং কোন কঠিন বিষয় নয় (), তাই বলে একদম সহজ তাও নয় । তাহলে ? এটা কি ? হ্যাঁ বলতেছি, প্রোগ্রামিং শিখতে বা করতে আপনার দুইটা জিনিস থাকতে হবে ১. ধৈর্য ২. পরিশ্রম ।  যদি আপনার ধৈর্য থাকে, ার আপনি পরিশ্রম করতে পারেন, তাহলে প্রোগ্রামিং শেখা বা প্রোগ্রামার হওয়া কেউ আটকাতে পারবে না ।
তো, প্রোগ্রামার হওয়ার আগে নিজেকে প্রশ্ন করুন এই দুইটা জিনিস আপনার আছে কিনা ? যদি থাকে তাহলে চলুন মুল আলোচনায় যাই,
একে একে জানার চেষ্টা করব,
  • প্রোগ্রামিং কি ?
  • প্রোগ্রামিং ল্যাঙ্গুয়েজ কি ?
  • প্রোগ্রামার কে বা  কারা ?
  • প্রোগ্রামিং কেন ?
  • কোথা থেকে শুরু করবেন ?
  • কি কি ল্যাঙ্গুয়েজ শিখবেন ?
  • কোথা থেকে, কিভাবে শিখবেন ?
চলুন কোথা না বাড়িয়ে শুরু করা যাক,……………………

প্রোগ্রাম, প্রোগ্রামিং কি?

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

প্রোগ্রামিং ভাষা কি ?

কমপিউটারের মাধ্যমে কোন সমস্যা সমাধান তথা প্রোগ্রাম রচনার জন্য ব্যবহৃত শব্দ, বর্ণ, অংক, চিহৃ প্রভৃতির সমম্বনেয় গঠিত রীতিনীতিকে প্রোগ্রা ভাষা (Programming Language) বলা হয়। বিভিন্ন ধরনের প্রোগ্রাম রচনার জন্য বিভিন্ন ধরনের প্রোগ্রাম ভাষা ব্যবহৃত হয়। পৃথিবীতে কোটি কোটি মানুষ অনেক ধরনের ভাষা ব্যবহার করে। কিন্তু কমপিউটার এই সব ভাষা বোঝে না, সে শুধু বুঝে ( 1 , 0 ) যাকে বাইনারি সংখ্যা বলে । মেশিন ল্যাঙ্গুয়েজ নামেই বেশি পরিচিত । সুতরাং এখানে স্পষ্ট যে কম্পিউটার এর ল্যাঙ্গুয়েজ মেশিন ল্যাঙ্গুয়েজ আর প্রোগ্রামিং ল্যাঙ্গুয়েজ হচ্ছে C, C++, C#, Python, Perl , Ruby ইত্যাদি, যা নিয়ে পোস্ট এর শেষ দিয়ে আমি আলোচনা করব

প্রোগ্রামার কে বা  কারা ?

সাধারণ ভাবে বলা যায় এভাবে, “যে বা যিনি কম্পিউটার এর জন্য সফটওয়্যার তিরি করেন, সমস্যা সৃষ্টি ও সমাধান করে, ওয়েব ডেভলপ করে, কোড লিখে এবং কোড আনলাইসিস করে , সেই প্রোগ্রামার ।”
“The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software.”
“The term programmer can be used to refer to a software developer, Web Developer, Mobile Applications Developer, Embedded Firmware Developer, software engineer, computer scientist, or software analyst.”
“টাচ লাইন থেকে”
“web developer, Analysis, computer scientist(engineer) Coder / Programmer এর সংজ্ঞার মধ্যে রয়েছে সূক্ষ্ম পার্থক্য  এবং রয়েছে জথা রীতি অনেক বেশি বিতর্ক .
পিছনের কথা
ব্রিটিশ mathematician Ada Lovelace ইতিহাসের প্রথম প্রোগ্রামার হিসেবে সমধিক পরিচিত । তিনিই প্রথম অ্যালগরিদম বিষয়টা ব্যাখা করেন । ১৮৪২ সালে চার্লস ব্যবেজের analytical engine ব্যবহার করে কাজ শুরু করেন ।

প্রোগ্রামিং কেন ?

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

কোথা থেকে শুরু করবেন ?

এই টা একটা প্রশ্ন বটে। কোথা থেকে শুরু করবেন ? এত দিনে হয়ত দেখে ফেলেছেন হাজার হাজার ল্যাঙ্গুয়েজ আছে প্রোগ্রামিং এর । তাহলে আপনি শুরু করবেন কন্তা দিয়ে ? আবার একেক জন একেক টা ল্যাঙ্গুয়েজ ভাল বলে, সহজ বলে (আমি আগেই বলেছি সহজ বা কঠিন বলে কিছু নেই, আপনি যেটা যেভাবে নেন, সহজ মনে করলে সহজ কঠিন মনে করলে কঠিন ) . ল্যাঙ্গুয়েজ লিস্ট দেখতে পারেন এখানে……… কি মাথা ঘুরতেছে কি ? ব্যপার না । প্রথম প্রথম ধুরবে । আসতে আসতে ঠিক হয়ে যাবে ।
এবার আসল কথা বলি, প্রোগ্রামিং আমার মতে শুরু করা উচিত C দিয়ে । আপনি যদি ভাল ভাবে  সি  শিখতে পারেন, তাহলে প্রোগ্রামিং এর মুল ধারণাটা আপনার হাতে চলে আসবে । প্রায় ৫০% – ৬০% ধারনা বা কাজ করার ক্ষমতা আপনার নিজে থেকে তৈরি হয়ে যাবে । এর পর সি ++ শিখবেন তাহলে নিজেকে আর ও একধাপ পরে নিয়ে গেলেন আপনি । এখান থকে আপনি  ৬৫% – ৭০% নিজেকে তৈরি করে নিতে পারবেন । এর পর নিজেকে অনন্য উচ্চতায় তলার  পালা । ধারাবাহিক ভাবে আপনি JAVA, Python, Ruby, Perl , C# শিখতে  পারেন  . আর হ্যাঁ, পিএইচপি নিয়ে তো কিছু বললাম না, তাই না ?? ওটা আর আপনাকে জোর করে শিখাতে হবে না । C আর C++ শিখে গেলে পিএইচপি আপনার পায়ে এসে লুটিয়ে পড়বে, আর বলবে আমাকে একটু দেখেন না , প্লিজ (হা… হা… হা… হা… হা… হা… হা… হা… হা… হা… হা…) ।

কি কি ল্যাঙ্গুয়েজ শিখবেন ?

উপরের লিস্ট নিশ্চয়ই দেখেছেন । ল্যাঙ্গুয়েজ এর কোন শেষ নাই । এত গুলো তো আর একটা মানুষের পক্ষে সেখা সম্ভব না তাই আমি জনপ্রিয় ১০ টি ল্যাঙ্গুয়েজ নিয়ে হাল্কা আলোচনা করব । ধারাবাহিকভাবে ,
  • Programming C

  • Programming C++

  • Programming C#

  • Visual Basic

  • Python

  • Perl

  • Ruby

  • Java

  • JavaScript (along with CSS and HTML)

  • Php

C Programming

1. Programming C

ডেনিস রিচি ১৯৭০ সালে বেল ল্যাবরেটরিতে সি ভাষার উদ্ভাবন করেন। প্রথমে পিডিপি-১১ এ ইউনিক্স অপারেটিং সিস্টেমের নিয়ন্ত্রনে এ ভাষার প্রয়োগ শুরু হয়েছিল। বর্তমানে অত্যন্ত শক্তিশালী এবং জনপ্রিয় উচ্চতর ভাষা হিসেবে সি পরিচিত। বর্তমানে বিভিন্ন ধরনের কমপিউটারে এবং বিভিন্ন অপারেটিং সিস্টেমের নিয়ন্ত্রনে সি ব্যাপকভাবে ব্যবহৃত হয়।
সি প্রোগ্রামিং/কেন সি শিখবেন?
সি হল অপারেটিং সিস্টেম লেখার জন্য সবচেয়ে বেশী ব্যবহৃত প্রোগ্রামিং ভাষা । ইউনিক্স সি ভাষায় লেখা প্রথম অপারেটিং সিস্টেম । উত্তরকালের মাইক্রোসফট উইন্ডোস , ম্যাক ও এস এক্স , গ্নু/লিনাক্স সবগুলোই সি প্রগ্রামিং ভাষায় লেখা । সি শুধু অপারেটিং সিস্টেমের ভাষাই নয় , বর্তমানকালে জনপ্রিয় প্রায় সকল প্রোগ্রমিং ভাষার প্রেরণা সি প্রোগ্রমিং ভাষা । প্রকৃতপক্ষে পার্ল , পিএইচপি , পাইথন , রুবি প্রত্যেকটা ভাষাই সি তে লেখা । ধরুন আপনি স্পেনিশ , ইটালিয়ান , ফ্রেঞ্চ বা পর্তুগিজ ভাষা শিখতে চাচ্ছেন । তার আগে ল্যাটিন শেখা কি আপনার কাজে আসবে নাকি না ? যেহেতু ল্যাটিন ভাষা থেকেই এসকল ভাষার উৎপত্তি । সি শেখা আপনাকে সি ভাষায় তৈরি করা পুরো প্রোগ্রমিং ভাষার পরিবারকে বুঝতে সাহায্য করবে – আপনাকে দেবে স্বাধীনতা । মার্টিন রিটির তৈরিকৃত BCPL থেকে প্রোগামিং ভাষা খেকে B প্রোগামিং ভাষা ডেভেলোপ করা হয় এবং সেখান থেকে ১৯৭০ সালে আমেরিকার বেল ল্যাবরেটরিতে ডেনিস রিটি নামক প্রোগামার এই C ভাষাটি ডেভেলোপ করেন। ১৯৮৩ সালে আমেরিকার National Standard Ins সে সময়ে প্রচলিত Unix C এর জন্যে মান (Standard) নির্ধারণ করে দেন। C প্রোগমিং এর ক্সেত্রে অনেকগুলো পথ রযেছে। যেমন: ANSI C, Borland C, Turbo C, Microsoft C etc. এগুলোর মধ্যে ১ম টি হলো Standard এবং বাকিরা এই Standard অনুসরণ করে। আবার এরা প্রত্যেকে এক একটি Compiler।
Pdf Download Link :
  1. Programming in ANSI C by Balaguruswamy  [আমার মতে প্রোগ্রামিং শেখার সেরা বই !]
  2. Practical C Programming, 3rd Edition (1997)
Reference WebSite Link :
  1. C Programming 
  2. programming simplified
Video Tutorial Link :
  1. C Programming Video Tutorial – 1
 [ নোট :: প্রতিটি লিঙ্ক এ সর্বনিম্ন ৫ টি এবং সর্বচ্চো ১০ টি লিঙ্ক দিব । বাকিটা আপনাদের সংগ্রহ করতে হবে ]
Programming C++

2. Programming C++

C++একটি বহুল ব্যবহৃত অবজেক্ট অরিযেন্টেড প্রোগ্রাম ভাষা। ১৯৮০ সালে যুক্তরাষ্ট্রের এটি এন্ড টি বেল ল্যাবরেটরিতে জর্ন স্ট্রাউসট্রপ এ ভাষা উদ্ভাবন করেন। প্রথমে এর নাম ছিল সি উইথ ক্লাস। পরবর্তীতে আরও নতুন নতুন কিছু বৈশিষ্ট্য ও সুবিধা যোগ করে ১৯৮৩ সালে নাম করন করা হয় C++। C++ এ সি এর সকল বৈশিষ্ট্য ও সুবিধা সহ অতিরিক্ত আরও কিছূ সুবিধা আছে। এজন্য C++ কে C এর বর্ধিত সংস্করন বা সুপারসেট বলা হয়।
  • Pdf Download Link :
  1. Programming C++ by  bala gurusamy [আমার মতে প্রোগ্রামিং শেখার সেরা বই !]
  2. Object-Oriented Programming With C++ By Balaguruswamy

  • Video Tutorial Link :
  1. Video Tutorial – 1
  • Reference WebSite Link :
  1. সি প্লাস প্লাস ১
  2. সি প্লাস প্লাস ২ 
  3. http://tutorialvid.com/videoList.php?pg=videonew&tags=dreamweaver%20cs4
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

প্রোগ্রামিং শুরু করার জন্য গাইডলাইন।

 10:26 AM     কম্পিউটার প্রোগ্রামিং     No comments   

নিজের ভাষা কম্পিউটারকে বুঝানোর জন্যই পোগ্রামিং ল্যাঙ্গুয়েজ এর উৎপত্তি। এ পর্যন্ত কয়েক হাজার পোগ্রামিং ল্যাঙ্গুয়েজের উৎপত্তি হয়েছে। বিশ্বাস না হলে নিচের লিস্ট গুলো দেখুন। এ লিস্টের বাহিরে অনেক বেশি পোগ্রামিং ল্যাঙ্গুয়েজ আছে।
  • List of programming languages
  • Generational list of programming languages
  • List of programming languages by type
মনে হয় এবার বিশ্বাস করছেন যে কয়েক হাজার প্রোগ্রামিং ল্যাঙ্গুয়েজ থাকা সম্ভব। আচ্ছা এত গুলো শেখা কি সম্ভব? একটুও না। তবে প্রায় প্রোগ্রামিং ল্যাঙ্গুয়েজের মূল কাঠামো একই রকম। একটা জানলে আরেকটা সহজেই বুঝা যায়। আর আপনাকে কাজ করার জন্য সব গুলো প্রোগ্রামিং ল্যাঙ্গুয়েজ ও জানতে হবে না। একটা ভালো করে জানলেই হবে। এখন আপনি কোনটা শিখবেন তা আগে ঠিক করুন। ঠিক করতে না পারলে এ পোস্টটা দেখুন। একটু আইডিয়া পাবেন কোনটা আপনার শেখা উচিত। কোডিং যুদ্ধ – কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখবেন?

যদি পাইথন শিখতে চানঃ

পাইথন  প্রোগ্রামিং শুরু করার জন্য একটা অসাধারন ল্যাঙ্গুয়েজ। আপনি যদি একদম নতুন হয়ে থাকেন প্রোগ্রামিং এ তাহলে পাইথন দিয়ে শুরু করতে পারেন। অনেক সুন্দর ভাবেই শুরু করতে পারবেন। হুকুশ পাকুশেরপ্রোগ্রামিং শিক্ষা নামক প্রোগ্রামিং বই এর সাথে অনেকেই পরিচিত। যারা এখনো দেখেননি তারা দেখে নিতে পারেন, কম্পিউটার প্রোগ্রামিং শুরু জন্য অনেক সুন্দর গাইডলাইন। কিভাবে কোড লিখবেন রান করাবেন সবই লেখা রয়েছে।পাইথন বাংলাদেশ নামক ওয়েবসাইট ও দেখে নিতে পারেন।
বাংলা টিউটোরিয়ালঃ
  • http://hukush-pakush.appspot.com/
  • http://pybangla.appspot.com/
ইংরেজী টিউটোরিয়ালঃ
  • http://www.python.org/ & http://docs.python.org/tutorial/ 
  • Google's Python Class: http://code.google.com/edu/languages/google-python-class/ 
  •  A Beginner's Python Tutorial: http://www.sthurlow.com/python/
আরো অনেক পাবেন যদি একটু সার্চ করে থাকেন।
ভিডিও টিউটোরিয়ালের জন্য ইউটিউবে গিয়ে সার্চ করুন। অনেক গুলো টিউটোরিয়াল পাবেনঃ
  •  Python 2.7 Tutorial Part 1
  • Google Python Class Day 1 Part 1
  •  Python Video Tutorials
  •  Python Tutorial Video Series:.:Video One
  • showmedo.com এর পাইথন টিউটোরিয়াল
একটু সার্চ করলে আপনি নিজেই অনেক ভালো টিউটোরিলা পাবেন। আশা করি শুরু করতে পারবেন এবার।
 

আর যদি সি প্রোগ্রামিং শিখতে চান তাহলে বাংলা টিউটোরিয়ালঃ 

  • http://cpbook.subeen.com/p/blog-page.html
  • http://www.techtunes.com.bd/programming/tune-id/24810 
এ গুলো দেখতে পারেন। একটু ঘাটাঘাটি করলে আরো অনেক গুলো বাংলাটিউটোরিয়াল পাবেন সি এর উপর।
সি প্রোগ্রামিং এর ইংরেজি টিউটোরিয়ালঃ 
  • http://c.learncodethehardway.org/book/ 
  • http://www.cprogramming.com/tutorial/c/lesson1.html
  • http://www.cplusplus.com/doc/tutorial/
আরো অনেক পাবেন একটু সার্চ করলে।
ভিডিও টিউটোরিয়ালের ও অভাব নেই। নিচের লিঙ্কে ক্লিক করুন।
  • সি ভিডিও টিউটোরিয়াল। 

আপনি যদি জাভা প্রোগ্রামিং শুরু করতে চান:

বাংলার জন্য এ পোস্টটা দেখুঃ
  • http://tech.jakir.me/615
জাভা ইংরেজী টিউটোরিয়ালঃ
  • http://www.javabeginner.com/
  • http://www.freejavaguide.com/corejava.htm
  • http://www.tutorialspoint.com/java/index.htm
  • http://docs.oracle.com/javase/tutorial/
জাভা ভিডিও টিউটোরিয়ালের জন্য ইউটিউভে একটু সার্চ করুন। অনেক গুলো ভিডিও পাবেন শুরু করার জন্য।
  • জাভা ভিডিও টিউটোরিয়াল।  
আপনার প্রিয় প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখতে থাকুন। শুভ কামনা আপনার জন্য। ইন্টারনেট থেকে কোন বিষয় সহজে খুজে বের করার উপায় নিয়ে এ লেখাটা পড়ে দেখতে পারেন। কাজে লাগতে পারে।
বিদ্রঃ আপনি যদি ওয়েব প্রোগ্রামিং শুরু করতে চান তাহলে কিছু স্টেপ অনুযায়ী এগুতে হবে। তার জন্য আমি আরেকটা পোস্ট লেখার চেষ্টা করব। জাভা এবং পাইথন দুটা দিয়েই ওয়েব প্রোগ্রামিং করা যায়। বেশি ব্যবহৃত হয় PHP. ASP ইত্যাদি।
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

এন্ড্রয়েড মোবাইল দিয়ে সি প্রোগ্রামিং

 10:22 AM     এন্ড্রয়েড ফোন, সি প্রোগ্রামিং     1 comment   


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

এন্ড্রয়েড মোবাইল দিয়ে সি প্রোগ্রামিং

এন্ড্রয়েড ব্যবহারকারীরা নিচের লিংক থেকে সফটওয়্যারগুলো ডাউনলোড করে ইনস্টল করে নিন।

C4droid
Download
GCC plugin for C4droid C++ IDE
Download
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Sunday, June 28, 2015

বিগিনারদের জন্য সেরা প্রোগ্রামিং ল্যাঙ্গুয়েজ

 5:19 PM     সি প্রোগ্রামিং     No comments   


ধারণা বদলাইয়াছে। একটা সময় মনে করিতাম ছালছোলা সি দিয়া প্রোগ্রামিং শেখা শুরু করা উচিত। তাহার কিছুদিন পর ভাবিতাম আছোলা পাইথন দিয়া শুরু করিলে আরো ভাল হয়। এই কয়েকদিন আগেও মনে করিতাম জাভা দিয়া শুরু করিলেও মন্দ হয় না।
তবে ব্যাপক গবেষণার পর এই সিদ্ধান্তে উপনীত হইলাম যে সবচেয়ে উত্তম হইল সি  দিয়া প্রোগ্রামিং ক্যারিয়ার আরম্ভ করা।ইহা সহজ, সাধারণ, আর ইহা শেখার পর, বাকি সকল ল্যাঙ্গুয়েজই তুড়িতে তুড়িতে শিখিতে পারা যায়।
যদিও অনেক প্রোগ্রামার মনে করিয়া থাকেন যে শেখার জন্য উৎকৃষ্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ নির্বাচন করার চেয়ে উত্তম হল উৎকৃষ্ট প্রোগ্রামার হওয়া। তথাপি একজন কত ভাল বীজ বুনতে জানেন তার চেয়েও বীজ কতটা ভাল তার গুরুত্ব বেশি। কিন্তু যেকোন ল্যাঙ্গুয়েজ দিয়েই প্রোগ্রামিং শেখা শুরু করা যাইতে পারে। মূল কথা হজম করা। কেউ কুমির খাইয়া হজম করিতে পারিলে সে তা খাইতেই পারে। :)
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Newer Posts Older Posts Home

Popular Posts

  • ফ্রিল্যান্সার সাক্ষাৎকার: থ্রিডি ডিজাইনার
    আউটসোর্সিং এ থ্রিডি কাজের রয়েছে ব্যাপক সম্ভা বনা। যত দিন যাচ্ছে ভিডিও গেমস এবং থ্রিডি এনিমেটেড মুভিগুলো আরো বাস্তবসম্মত হয়ে উঠছে, যা খুব স...
  • পেওনার ডেবিট মাস্টারকার্ড
    বিভিন্ন ধরনের ফ্রিল্যান্সিং সাইট থেকে টাকা উত্তোলনের সহজ এবং ঝামেলামুক্ত পদ্ধতি হচ্ছে Payoneer সাইট কর্তৃক প্রদত্ত একটি ডেবিট মাস্টারকার...
  • প্রোগ্রামিং শুরু করার জন্য গাইডলাইন।
    নিজের ভাষা কম্পিউটারকে বুঝানোর জন্যই পোগ্রামিং ল্যাঙ্গুয়েজ এর উৎপত্তি। এ পর্যন্ত কয়েক হাজার পোগ্রামিং ল্যাঙ্গুয়েজের উৎপত্তি হয়েছে। বিশ...
  • ইংলিশ ভোকাবুলারি শেখার দূর্দান্ত ১০ টিপস
    ইংরেজিতে শব্দ আমাদের সবারই কম বেশি জানা আছে। তারপরেও আমরা কোন জটিল বাক্য গঠন করার সময় কিংবা ইংরেজিতে কথা বলার সময় এই শব্দ কম জানার জন্য অনে...
  • আউটসোর্সিং এ আলফা ডিজিটাল টিমের সফলতা
    বর্তমানে ওডেস্ক ( www.oDesk.com ) মার্কেটপ্লেসে বাংলাদেশী ফ্রিল্যান্সররদের অবস্থান বেশ সন্তোষজনক। ওডেস্কে যে কয়জন ফ্রিল্যান্সার সফলতার সা...

Recent Posts

banner image

Categories

অনলাইন আয় আবিষ্কার উইন্ডোজ ১০ উইন্ডোজ ফোন উইন্ডোজ সফটওয়্যার এন্ড্রয়েড ফোন ওয়েবসাইট ডিজাইনিং ওয়েবসাইট ডেভেলপমেন্ট কম্পিউটার প্রোগ্রামিং কোয়ান্টাম কম্পিউটার গ্রাফিক্স ডিজাইন জাভা স্ক্রীপ্ট টিপস অ্যান্ড ট্রিকস ডাটা এন্ট্রি থিমস পাইথন প্রোগ্রামিং বই ব্লগস্পট সাইট ভিডিও এডিটিং মাইক্রোওয়ার্কারস মোবাইল ফোন রেন্ট-এ-কোডার লিনাক্স শিক্ষা সংক্রান্ত সংখ্যা পদ্ধতি সাক্ষাৎকার সি প্রোগ্রামিং হ্যাকিং

Blog Archive

Kategori

Kategori

Recent Comments

Featured Post

ডাউনলোড করে নিন অ্যাডোবি ফটোশপের সর্বশেষ ভার্সন “Adobe Photoshop CC” সম্পূর্ণ ফ্রি আজীবন মেয়াদসহ।

Formulir Kontak

Name

Email *

Message *

মোট পৃষ্ঠাদর্শন

Sparkline
  • Post Style
  • Feature
  • _Gadget
  • _Mobile
  • Pages
  • Categories
  • Buddypress
  • Forum
  • Home
  • About
  • Contact
  • Advertise
  • __DropDown 3
  • _ShortCodes
  • _SiteMap
  • _Error Page
  • Seo Services
  • Documentation
  • Download this template

Blog Archive

  • ▼  2015 ( 125 )
    • ▼  September ( 7 )
      • Lollipop Lockscreen Android L Premium [APK]
      • KK Launcher Prime Free Download
      • PicsPlay Pro 3.6.1 APK এখানে ! [LATEST]
      • Aurora 3D Text & Logo Maker (Portable Version)
      • CMD commands পরিচিতি
      • Slow Computer ফাস্ট করে নিন ১১টি টিপস দেখে।
      • ইংলিশ ভোকাবুলারি শেখার দূর্দান্ত ১০ টিপস
    • ►  August ( 34 )
    • ►  July ( 15 )
    • ►  June ( 44 )
    • ►  May ( 25 )

Recent

Comment

Label

  • অনলাইন আয়
  • আবিষ্কার
  • উইন্ডোজ ১০
  • উইন্ডোজ ফোন
  • উইন্ডোজ সফটওয়্যার
  • এন্ড্রয়েড ফোন
  • ওয়েবসাইট ডিজাইনিং
  • ওয়েবসাইট ডেভেলপমেন্ট
  • কম্পিউটার প্রোগ্রামিং
  • কোয়ান্টাম কম্পিউটার
  • গ্রাফিক্স ডিজাইন
  • জাভা স্ক্রীপ্ট
  • টিপস অ্যান্ড ট্রিকস
  • ডাটা এন্ট্রি
  • থিমস
  • পাইথন প্রোগ্রামিং
  • বই
  • ব্লগস্পট সাইট
  • ভিডিও এডিটিং
  • মাইক্রোওয়ার্কারস
  • মোবাইল ফোন
  • রেন্ট-এ-কোডার
  • লিনাক্স
  • শিক্ষা সংক্রান্ত
  • সংখ্যা পদ্ধতি
  • সাক্ষাৎকার
  • সি প্রোগ্রামিং
  • হ্যাকিং

Tags

অনলাইন আয় আবিষ্কার উইন্ডোজ ১০ উইন্ডোজ ফোন উইন্ডোজ সফটওয়্যার এন্ড্রয়েড ফোন ওয়েবসাইট ডিজাইনিং ওয়েবসাইট ডেভেলপমেন্ট কম্পিউটার প্রোগ্রামিং কোয়ান্টাম কম্পিউটার গ্রাফিক্স ডিজাইন জাভা স্ক্রীপ্ট টিপস অ্যান্ড ট্রিকস ডাটা এন্ট্রি থিমস পাইথন প্রোগ্রামিং বই ব্লগস্পট সাইট ভিডিও এডিটিং মাইক্রোওয়ার্কারস মোবাইল ফোন রেন্ট-এ-কোডার লিনাক্স শিক্ষা সংক্রান্ত সংখ্যা পদ্ধতি সাক্ষাৎকার সি প্রোগ্রামিং হ্যাকিং

Facebook

banner image

Flickr

banner image

Football

Popular Posts

  • ফ্রিল্যান্সার সাক্ষাৎকার: থ্রিডি ডিজাইনার
    ফ্রিল্যান্সার সাক্ষাৎকার: থ্রিডি ডিজাইনার
  • পেওনার ডেবিট মাস্টারকার্ড
    পেওনার ডেবিট মাস্টারকার্ড
  • প্রোগ্রামিং শুরু করার জন্য গাইডলাইন।
    প্রোগ্রামিং শুরু করার জন্য গাইডলাইন।

Sample Text

Copyright © Bdhuge | Technology Journey. | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By blogger Templates