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
Showing posts with label কম্পিউটার প্রোগ্রামিং. Show all posts
Showing posts with label কম্পিউটার প্রোগ্রামিং. Show all posts

Thursday, August 6, 2015

প্রোগ্রামিং ল্যাঙ্গুয়েজগুলো যদি কোন ব্যক্তি বিশেষ হত!

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

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

চার্লি সি

ল্যাঙ্গয়েজ ফ্যামিলির সবচেয়ে বয়োজ্যেষ্ঠ সদস্য হচ্ছে সি। ৭০ বছর বয়সী সি পরিবারের প্রধান কর্তা এবং অন্যান্ন ল্যাঙ্গুয়েজের জনক। বয়সের ভারে নুয়ে পড়া সি এখনও স্ব গৌরবে উজ্জল এবং কিছুটি ক্রিপ্টিক এবং দাম্ভিক ও বটে। খুবই শক্ত মনের মানুষ এবং কিছুই তার চিন্তা চেতনায় পরিবর্তন আনতে পারবে না। অতীতে সে “ডেভেল সিটি ইউনিভার্সিটি” র সবচাইতে কড়া এবং বদরাগী শিক্ষক হিসিবে পরিচিত ছিলেন।
C
ক্যারিয়ারে অনেক বড় বড় প্রজেক্টের অংশ হয়ছিলেন তিনি। লিনাক্স স্টেডিয়াম সহ আরো বড় বড় প্রজেক্টের বড় কর্তাই ছিলেন তিনি এবং এখনও অনেক বড় বড় কাজে ফ্রি ল্যান্সার হিসেবে নিজেকে নিয়োজিত রেখেছেন। ৭০ বছর বয়স্ক সি এর তিন মেয়ে এবং এক ছেলে। তিন মেয়ের নাম –
.          পার্ল
.          জাভা
.          সি #  এবং একমাত্র ছেলে সি ++

ভিন সি ++

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

মোনটানা পার্ল

৩৭ বছর বয়সী পার্ল সি++ এর বড় মেয়ে। নিয়োজিত আছে ডেভেল বিশ্ববিদ্যালয়ের লিংগুইস্টিক বিভাগের ডেটা এনালিষ্ট হিসেবে। তার গ্ল্যামার এবং অ্যাপিল তাকে কলিগদের মধ্যমনি করে তুলেছে অল্প দিনেই।
perl
সে খুবই বুদ্ধিমতি একজন মেয়ে তবে মাঝে বদ দের জন্যে খুবই রেস্ট্রিকটেড হয়ে পরে। নিজের মত করে কোন জিনিস এক্সপ্রেস করা এবং হেইস্টেকস এ অপ্রয়োজনীয় কোড বের করতে তার ইউনিকনেস তাকে আরো ইম্পরট্যান্ট করে তুলেছে। অনেক শুভাকাঙ্খী এবং কলিগরা অনেক সমস্যা ফিক্স করায় তাকে প্রধান হাতিয়ার হিসিবে ব্যবহার করে থাকে। তারা আদর করে তার নাম দিয়েছে “SWISS KNIFE”।

বিয়াঙ্কা জাভা

ল্যাঙ্গুয়েজ ফ্যামিলির সবচাইতে গ্ল্যামারাস এবং সেক্সি সদস্য জাভার বয়স ৩৭ বছর এবং সে নিজেও একজন মা। তার গ্ল্যামার এবং অ্যাডাপ্টিবিলিটি তাকে ডেভেল সিটির সবচাইতে জনপ্রিয় মহিলা করে তুলেছে। সে খুবই ফ্রেন্ডলি এবং সে কোন প্ল্যাটফর্মে কাজ করতে পারে। আর তার এই বৈশিষ্ট্যই তাকে ইতোমধ্যে অনেক বড় বড় প্রজেক্টের অংশ বানিয়েছে এবং ভবিষ্যতের অনেক বড় বড় প্রজেক্টেও সে সাইন করে ফেলেছে অলরেডি।
java1
সি++ এর আদরের বোন হওয়া সত্বেও সেই তার ভাইয়ের সবচাইতে বড় প্রতিদ্বন্দী হয়ে উঠেছে। মহিলা হিসেবে সে খুবই ক্লিন এবং ভেজাল মূক্ত এবং আজাইরা সমস্ত ঝামেলা থেকে নিজের নিরাপদ দূরত্ব বজায় রাখতেই পছন্দ করে। কর্মরত আছেন পোর্টস ক্রিয়েশানের জন্যে বিশ্ববিখ্যাত প্রতিষ্ঠান JVM এ। সে ভালোবাসে সান কে। তাদের ভালোবাসা অনেকদিনের এবং তার প্রিয় সময় হচ্ছে সামার এবং সে দুই মেয়ের মা -
.          গ্রুভি
.          স্ক্যালা

জেসিকা গ্রুভি

groovy
গ্রুভির বয়স মাত্র একুশ বছর এবং খুবই ট্যালেন্টেড মেয়ে। ডেভেলসিটিতে তার চাহিদাও অনেক। তার বেষ্ট ফ্রেন্ড হচ্ছে রুবি এবং সে তার খালামনি “পার্ল” এর অনেক আদরের ভাগনি। তার অনেক কাজেই পার্লের প্রভাব লক্ষ করার মতই। মায়ের মতই শার্প এবং খালামনির মতই সে খুবই সহজ এবং এক্সপ্রেসিভ, মায়ের সাথেই কাজ করছে JVM এ। সে তার কলিগদের একটু স্পেশাল ওয়ে তে ট্রিট করে থাকে। সে জায়গায় জায়তায় (?) প্রশ্নবোধক চিহ্ন দিয়ে কলিগদের বলে দেয় এখানে আবারো চেক করো।

জেনা স্ক্যালা

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

পিয়ের্সান পিএইচপি

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

মেরী জাভাস্ক্রিপ্ট

সুন্দরী এই মহিলাকে অনেকেই জাভার সৎ বোন হিসেবে বিবেচনা করে থাকে। যা রটে, তার কিছুটা হলেও বটে। তবে জাভা এবং জাভাস্ক্রিপ্ট কেউই একে অপরকে বোন বলে পরিচয় দেয়নি। বন্ধুমহলে খুবই প্রিয় পাত্রী এবং আদর করে সবাই ডাকে “JS”। ডেভেল সিটির মেয়ে হলেও শাড়ি তার অনেক প্রিয় পোষাক। ডেভেল সিটির অনেক দরকার তাকে। প্রত্যেকেই কোন না কোন কাজে তাকে একবার হলেও টোকা মেরে দেখেছেন।
javascript-487x60
মহিলা কিসেবে ডেভেলসিটি তে সবচাইতে জনপ্রিয় তিনি। ২০টির চাইতেও বেশি কোম্পানীর নোটওয়ার্ক রান করতে সে কাজ করে যাচ্ছে। জেকোয়েরি, মটোটুল এবং ডোজেডিক এর মত বড় বড় কাজেও সে নিজেকে নিয়োজিত রেখেছে। সে শো অফ করা মোটেই পছন্দ করে না। আর তার মতে সফলতা পেতে হলে বন্ধুদের সবসময় কাছে কাছে রাখতে হয় এবং শত্রুদের আরো কাছে। অনেক সময় কোন কাজকে গুলিয়ে ফেল্লেও কেউ তাকে অপছন্দ করে না।

অ্যাজ্ঞেলিনা রুবী

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

জ্যাক পাইথন

৫৪ বছর বয়সী পাইথন ডেভেলসিটির অনেক সম্মানী একজন ব্যক্তি। সে একজন কন্স্ট্রাকশান বিল্ডার। কাজ করার এক আলাদা রকম রাস্তা করে নিয়েছে পাইথন। অনেকে ফ্যানের কাছে সে যাদুকরও বটে। এবং ডেভেলসিটির জনগনের কাছে খুবই আশ্চর্যজনক একজন মানুষ।
python
সে সবসময় কাজ করার কোন না কোন নতুন রাস্তা খুজে বের করে থাকে। তার প্রিয় জিনিস হচ্ছে “স্প্যাম” এবং “এগ”। তার কাজ করার ভিন্নতার জন্যে তার প্রজেক্টের নামের আগে তার নাম সম্মান সূচক হিসেবে ব্যবহার করা হয়। যেমন - PyGameing station, PyS6000। তার ফেবারেট পেট হচ্ছে “এ্যনাকন্ডা”!!
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Tuesday, August 4, 2015

ওয়েবসাইট বা সফটওয়ার এর ভুল (BUG) খুজে বের করে আয় করুন।

 2:05 PM     অনলাইন আয়, কম্পিউটার প্রোগ্রামিং     No comments   


ওয়েব সিকিউরিটি

আপনি কি অনলাইন সিকিউরিটি স্পেশালিষ্ট কিংবা আপনার কি অনলাইন সিকিউরিটি নিয়ে কাজ করার ইচ্ছা আছে। আপনি যদি খুব ভাল মানের সিকিউরিটি স্পেশালিষ্ট হয়ে থাকেন তবে আয় করতে পারেন বিভিন্ন ওয়েবসাইটের ভুল (bug) খুজে বের করে ।
অ্যাভাষ্ট : জনপ্রিয় একটি অ্যন্টিভাইরাস। অ্যাভাষ্ট ওয়েবসাইটে বাগ খুজে বের করে আপনি পেতে পারেন সর্বনিম্ন ৪০০ ডলার থেকে ১০০০০ ডলার পুরষ্কার। যে সকল ক্ষেত্রে অ্যাভাষ্ট পুরস্কার প্রদান করে থাকে । তা হচ্ছে Remote Code Execution. Local privilege escalation, Denial-of-service (DoS), Scanner bypass সহ অন্যান্য সিকিউরিটি ইস্যুতে । বিস্তারিত দেখুন : এভাষ্ট ওয়েবসাইট
কয়েনবেস : খুব ক্ষুদ্র ভুল থেকে শুরু করে রিমোট কোড এক্সিকিউশনের মত ভুলের জন্য আপনাকে পুরষ্কুত করবে কয়েন বেস । সর্বনিম্ন ১০০ ডলার থেকে শুরু করে ১০০০০ ডলার এর পুরষ্কার পেতে পারেন। বিস্তারিত দেখুন : কয়েনবেস
গুগল ক্রোম : শুধু মাত্র তথ্য চুরি করতে পারলেও পুরষ্কৃত করে গুগল ক্রোম। সর্বনিন্ম ৫০০ ডলার থেকে এই পুরষ্কার শুরু। সর্বোচ্চ ১৫০০০ ডলার। যেকোন ধরনের রিপোর্টের জন্য পুরষ্কৃত করে গুগল ক্রোম । বিস্তারিত দেখুন : গুগল ক্রোম
গুগল: ভুল ধরার জন্য সবচেয়ে বেশী পরিমান পেমেন্ট দিয়ে থাকে গুগল । ছোট খাট ভুল থেকে ৫০০ ইউএসডি থেকে ২০০০০ ইউএসডি পর্যন্ত প্রদান করে থাকে গুগল । যেসকল সাইটের ভুল ধরার জন্য গুগর পুরষ্কৃত করে থকে তাহচ্ছে google.com , blogger.com , youtube.com
বিস্তারিত দেখুন : গুগল রিওয়ার্ড প্রোগ্রাম
মাইক্রোসফট: প্রতিবছর নিদির্ষ্ট সময়ের জন্য ভুল ধরার প্রোগ্রাম রান করে থাকে মাইক্রোসফট। এই প্রজেক্টের আওতায় আপনি ভুল ধরতে পারলে আপনাকে দেওয়া হবে মোটা অংকের পুরষ্কার। প্রোজেক্ট সম্পর্কে বিস্তারিত জানা যাবে : মাইক্রোসফট ওয়েবসাইট
এছাড়া আরও অসংথ্য প্রতিষ্ঠান ওয়েবসাইটের ভুল ধরার জন্য পুরষ্কৃত করে থাকে । যেমন ফেইসবুক, পেপাল, মজিলা সহ আরও অসংথ্য প্রতিষ্ঠান।
এছাড়াও সিকিউরিটি স্পেশালিষ্ট এর অনেক কাজ মার্কেট প্লেস এ পাওয়া যায়। কাজের তুলানায় মার্কেটপ্লেস এ সিকিউরিটি স্পেশালিষ্ট এর সংখ্যা অনেক কম। তাই আজই মনোযোগ দিন সিকিউরিটি স্পেশালিষ্ট হয়ে উঠুন।
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Sunday, July 5, 2015

ভালো প্রোগ্রামার হতে হলে সফটওয়্যার ডিজাইন প্যাটার্ন সম্পর্কে অন্তত বেসিক জ্ঞান থাকলেও থাকা জরুরী

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

শুধু কিছু if … else conditional statement দিয়ে লাইনের পর লাইন কোড লিখতে পারার মানে এই নয় যে। আপনি ভাল প্রোগ্রামার। ভাল প্রোগামার হতে হলে কোড কোয়ালিটি মেইনটেইন করাও অনেক গুরুত্বপূর্ণ বিষয়। ভাল ডিজাইন প্যাটার্নে করা প্রোগ্রামিং কোডের কোয়ালিটিই আলাদা।
.
Wikipedia এর মতে “In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design”
.
ভাল Design Pattern-এর অন্যতম বৈশিষ্ট্য, এটি হবে language independent. অর্থাৎ আপনি কোন Pattern Design করলেন তবে আপনি PHP প্রোগ্রামার হন, বা C++ বা C# বা Java যে ল্যাঙ্গুয়েজেই কোড লিখেন না কেন। কিছু ক্ষেত্র বাদে আপনার ডিজাইন করা প্যাটার্ন সবার সাথেই ইমপ্লিমেন্ট করা যাবে।
.
সহজ ভাষায়, Software Design Pattern হল আপনার প্রোগ্রামিং এর সমস্যার reusable অংশ গুলো চিহ্নিত করে ছোট ছোট ব্লকে ভাগ করে নেয়া, যখন যেটা প্রয়োজন তখন সেটা ব্যবহার করা।
.
আপনি প্রতিদিন ঘুমান, রান্না-বান্না করেন, খাওয়া-দাওয়া করেন আর টয়লেট করেন। এটা আপনার প্রতিদিনের reusable কাজ।
.
এখন আপনি যদি আপনার বাড়িকে সুবিশাল একটা হল রুম বানিয়ে সেখানেই থাকা শুরু করেন, মানে এক রুমেই রান্না-বান্না করেন,এক রুমেই ঘুমান, খাওয়া-দাওয়াও সেই রুমেই ... আবার টয়লেটও সেখানেই করেন। তাহলে কোন সমস্যা নেই।
.
অথবা যদি বাড়িটা ছোট ছোট ব্লকে ভাগ করে নেন। মানে এক ব্লক আপনার কিচেন, এক ব্লক আপনার বেড রুম। অন্য একটা ব্লকে ডাইনি। আর একটা ব্লক বাথরুম বা টয়লেট। তাহলে সেটা ভাল হবে না প্রথমটা?
.
আমি যদি আপনাকে নির্দেশ দেই, যাও ভাত রান্না কর। তবে বড় হল রুমের ক্ষেত্রে কি হবে? আপনি পুরো রুম জুড়ে আতিপাতি করে খুঁজবেন চুলা কই, রান্নার হাড়িটা বা কই, চাল কোথায় রাখা আছে? চামচ রাখা কোথায়? পানি কই পাব ইত্যাদি ইত্যাদি।
.
আর যদি দ্বিতীয় ক্ষেত্রে একই নির্দেশ দেই। তবে আপনি সোজা রান্না ঘরে চলে যাবেন। কারণ আপনি জানেন ভাত রান্নার প্রয়োজনীয় সব উপকরণ আপনি সেখানেই সাজানো-গোছানো পাবেন।
.
ভাত হয়তো দুই ক্ষেত্রেই রান্না হবে। কিনতু পারফরমেন্স কোন ক্ষেত্রে ফাস্ট এন্ড বেস্ট হবে সেটাতো বুঝাই যাচ্ছে, তাই না ? এটাই হলPattern Design এর মহাত্ম। একটা বাড়ির কোথায় কি হবে তা যেমন নির্ধারণ করেন একজন Building Architect, ঠিক তেমনিPattern Design হল Software Architect দের হাতিয়ার।
.
আবার বড় হলের ক্ষেত্রে যদি এমন হয় আপনার গোসল করার শাওয়ার লিক করেছে। তবে দেখা যাবে পানি পুরো হলে ছড়িয়ে পড়েছে। আপনাকে শাওয়ার মেরামত করলেই শুধু হবে না সেই সাথে পুরো রুমে ছড়িয়ে পড়া পানি ড্রেনেজও করা লাগবে। আর দ্বিতীয় ক্ষেত্রে আপনাকে শুধু বাথরুমে গিয়ে শাওয়ার মেইন্টেইন করাই এনাফ। কারণ পানি ড্রেনেজের সিস্টেম সেখানে আগে থেকেই করা আছে।
.
আবার যদি এমন হয় আমি আপনাকে নির্দেশ দিলাম। যাও চা রান্না কর। আপনি নিয়ে আসলেন ভাত। আমি বললাম যাও পোলাও রান্না কর। আপনি নিয়ে আসলেন ডিম ভাজি। তখন আমি কি বুঝব? আমি এটাই বুঝব যে, রান্না ঘরে কোন গোলমাল আছে। তাই আমি সমস্যা সমাধানে কিচেনে যাব নাকি বাথরুম বা ডায়নিং রুমে যাব? অবশ্যই কিচেনে তাই না?
.
কিনতু একই সমস্যা যদি সেই বড় হল রুমে ক্ষেত্রে হোত তবে? তখন পুরো হল রুমে আমার স্পাই গিরি করা লাগত তাই নয় কি?যা সময় সাপেক্ষ হোত বেশি কেননা আমি জানতাম না ঠিক কোন জায়গায় সমস্যা।
.
ঠিক সেই রকম Software Pattern Design এর ক্ষেত্রে কোন কোড ব্লকে সমস্যা বা Bug দেখা দিলে শুধু সেই ব্লকে Fix করলেই কাজ শেষ। পুরো সিস্টেম নিয়ে ভাবতে হবে না।
.
আমি কোন কোড ব্লকের কোন ক্লাশ বা ফাংশনে প্রয়োজনীয় আরগুমেন্ট দিলাম কিনতু আউটপুট আসল আনেক্সেপ্টেড। তখন আমি সহজেই বুঝতে পারব যে, কোড ব্লকের সেই জায়গায় সমস্যা আছে। পুরো কোড স্ক্রিপ্টের হাজার হাজার লাইন আমাকে ইনভেস্টিগেট করে সময় নষ্ট করতে হবে না। এভাবে বাগ ফিক্সিং এর কাজও সহজ করে দেয় SDP
.
এভাবেই Software Pattern Design আপনার জটিল কাজ গুলোকে সহজ করে দেয়। সেই সাথে encapsulation ও ভাল SDP এর বৈশিষ্ট্য। আমি আপনাকে নির্দেশ দেব যাও ভাত রান্না কর। আপনি রান্না ঘরে গিয়ে রান্না করে নিয়ে আসবেন। আপনি কিভাবে রান্না করে আনলেন সেটা আমার ভাবনার বিষয় নয়। কারণ আমি আগেই ভাত রান্নার সব উপকরণ রান্না ঘরে সিস্টেম করে সাজিয়ে রেখেছি। এখন আমি শুধু নির্দেশ দেব আর আপনি কাজ করবেন। এটাই encapsulation 😀 ...
.
1994 সালে Erich, Richard, Ralph ও John মিলে একটি বই লিখেন যার নাম ছিল ... Design Patterns - Elements of Reusable Object-Oriented Software. এই চারজনকে একসাথে বলা হয় Gang of Four বা সংক্ষেপে GoF ... GoF pattern এর শ্রেণী ভাগ গুলো হল, Creational, Structural ও Behavioral. রয়েছে বিভিন্ন রকমের SPD যেমনঃ Facade, Bridge, Adapter ইত্যাদি।
.
থীমফরেস্টে Kriesi এর থীমগুলো খুব বেশি সেল হয় তাই না। অথবা Total, Impreza, Brroklyn, Kleo থীম গুলোর সেল অনেক বেশি। এক একটার ইনকাম কোটি টাকারও উপরে তাই না? শুধুই কি ডিজাইন আর মার্কেটিংই সব? না আসলে এদের কোড কোয়ালিটিও এ প্লাস গ্রেড।
.
থীমফরেস্টের WPExplorer থীমগুলো দেখেন ডিজাইনের দিক দিয়ে খুবই সাদামাটা। কিনতু সেল ভলিউমও কি সাদামাটা? WPExplorerএর AJ এর যে ওয়ার্ল্ড ক্লাস কোড কোয়ালিটি কিনতু একজন অথর হিসেবে তার সাফল্যের অনেক বড় কারণ, AJ এর থীম গুলোর পারফরম্যান্সই আলাদা। এজন্যই সিরিয়াস বায়াররা যাদের ওয়েব ডেভেলপিং জ্ঞান খুব ভাল, থীম কেনার ক্ষেত্রে এদের গুরুত্ব দেয় বেশি।
.
তাই আপনি যদি ভাল আইটেম ডেভেলপ করতে চান, WP Plugin Developer বা Theme Developer হোন বা হোন Android বা iOS Apps Developer. আপনার প্রোগ্রামিং জ্ঞানকে নেক্সট লেভেলে নিয়ে যেতে ডিজাইন প্যাটার্ন নিয়ে পড়াশোনা করুন। দেখবেন আপনার কাজ গুলো কত সোজা হয়ে যাচ্ছে। সেই সাথে বেড়ে যাচ্ছে কোড কোয়ালিটি ও সফটওয়্যার পারফরমেন্স।
.
আরেকটি কথা না বললেই নয় ডিজাইন প্যাটার্ন একটু এডভান্সড টার্ম। তাই শুরুতে বেশ কঠিন লাগতে পারে। সেই সাথে এটা এক বা দু'রাতে শিখে ফেলার জিনিস নয়। সময় সাপেক্ষ। বড় ধরণের প্রজেক্টে ডিজাইন প্যাটার্ন যে কত ফল প্রসূ তা বলার অপেক্ষা রাখে না। কাজ অনেক অনেক সহজ হয়ে যায়। কাজের জটিলতা অনেক কমে যায়।
ডিজাইন প্যাটার্ন নিয়ে যাদের কোন পড়াশোনা নেই। PHP এর বেসিক লেভেল পার হয়ে Advanced লেভেলে আছেন। থীমফরেস্টে আরও ভাল করতে চান তারা চাইলে ঢু মেরে আসতে পারেন নিচের লিঙ্কে।
.
TutsPlus এর এই টিউটোরিয়ালে PHP তে ব্যবহৃত ৭ ধরণের Design Pattern নিয়ে খুবই সুন্দর ভাবে আলোচনা করা হয়েছে। আপনার প্রোগ্রামিং জ্ঞানকে আরও ধারাল করুন। নিয়ে যান নেক্সট লেভেলে ... 
টিউটোরিয়াল লিঙ্কঃ http://tiny.cc/qjk5zx
পূর্বে প্রকাশিতঃ http://tiny.cc/ovk5zx
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

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

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
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