বিগিনারদের জন্য প্রোগ্রামিং কন্টেস্ট

কম্পিটিটিভ প্রোগ্রামিং
বিগিনারদের জন্য প্রোগ্রামিং কন্টেস্ট

আর্টিকেলের উদ্দেশ্য: যারা কম্পিটিটিভ প্রোগ্রামিং “প” ও জানে না তবুও আগ্রহী তাদের উদ্দেশ্যে একটা সর্ট ইন্ট্রো
কম্পিটিটিভ প্রোগ্রামিং/ স্পোর্ট প্রোগ্রামিং / প্রোগ্রামিং কন্টেস্ট কি সেটা শুরুতে একটু ধারনা দেই।

কম্পিটিটিভ প্রোগ্রামিং বা প্রোগ্রামিং কনটেস্ট কি?

ছোট্ট করে বলতে গেলে ইন্ডিকেট টাইমের ভিতরে দ্বারা দেয়া সুনির্দিষ্ট কিছু সমস্যা সল্ভ করার উদ্দেশ্যে কম্পিউটার প্রোগ্রাম লিখাই কম্পিটিটিভ প্রোগ্রামিং। আর কোড করা প্রোগ্রাম সেই প্রবলেমের ইফেক্টিভ(অন্যভাবে বললে সঠিক) সলিউশন কিনা সেটা জাজ করে অনলাইন জাজ(oj)।
বিস্তারিত জানতে গুগল তো আছেই।

কম্পিটিটিভ প্রোগ্রামিং কন্টেস্ট এর প্রয়োজনীয়তাঃ


১) এইটা অনেকের আনন্দের খোরাক
২) ব্রেইন স্টর্মিং হয়
৩) নতুন নতুন প্রযুক্তির সমস্যা মোকাবেলা করার স্কিল তৈরী হয়। যেটাকে problem solving ability জানানো হয়।
শুধু computer science পড়ুয়াদেরই যে সমস্যা সল্ভ করা কর্তব্য তা নয় বরং যে কারোই করণীয় কেননা আমরা ডিভাইসের যুগে বসবাস করছি। দিন দিন খুব ডিভাইসের সাথে জয়েন হচ্ছি । এই যুগে সারভাইভ করার জন্য problem solving ability একটা মোক্ষম হাতিয়ার। কথা না বাড়িয়ে আরম্ভ থেকে কি কি বই বা সোর্স ঘাটিয়ে এই কম্পিটিটিভ প্রোগ্রামিং আরম্ভ করা করা যেতে পারে।

প্রব্লেম সল্ভের জন্য আমাদের যেকোনো একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করতে হবে নাহলে আমাদের সলিউশন সেই অনলাইন জাজ ব্যাটাকে বুঝাব কি করে? তার জন্য আমরা চাইলে c, c++, java , python সহ যেকোনো একটা বাছাই করতে পারি। কিন্তু কম্পিটিটিভ প্রোগ্রামিং এর জন্য কমবেশি সবাই c/c++ কেই প্রাধান্য দেয়। কেন? সেটা কন্টেস্ট শুরু করলেই বুঝে ফেলা যবে।

C এর জন্য কিছু বইঃ
১) teach yourself c – herbert schildt
২) programming in ansi – l balagurusamy
৩) পিসি প্রোগ্রামিং – তামিম শাহরিয়ার সুবিন
৪) c how to program – deitel & deitel
Quick tips: হারডকপি কিনতে না চাইলে পিডিএফ ডাউনলোড করেও নেয়া যেতে পারে তার জন্য গুগলে বইয়ের নামের শেষে “pdf download” জয়েন করলেই অত্যন্ত লিঙ্ক চলে আসবে। আমি চাইলেই লিংকগুলো যুক্ত করে দিতে পারি কিন্তু দিচ্ছিনা কারণ এতে একটা বিষয় খুঁজে পড়তে আলসেমি ধরে যাবে :p

সবগুলো বই সংগ্রহে থাকতে হবে এরূপ না । যেকোনো একটা চর্চা করলে ব্যাসিক টুকরো হয়ে যাবে। আর কোন বইয়ের একটা সুনির্দিষ্ট ভাগ বুঝতে না পারলে অন্য বইয়ের সেই টুকরো পরে নিলেই হল। যেমনঃ teach yourself c বইটা থেকে “function” খণ্ড টা পরম সত্য মতো বুঝছি না সেই সময় অন্য বই থেকে দেখে নিলেই হলো। আর অনলাইনে শিখতে চাইলে-

বাংলা-
১) শিক্ষক.কম
২) সিপিবুক ( তামিম শাহরিয়ার সুবিন )
৩) https://www.Howtocode.Com.Bd/
ইংরেজি –
১) tutorials point**

C++ এর জন্য কিছু বই
১) c++ primer – stanley lippman, josée lajoie, and barbara e. Moo
২) the c++ programming language – bjarne stroustrup
৩) c++ how to program – deitel & deitel
অনলাইনে –
১) www.Geeksforgeek.Com **
২) www.Cplusplus.Com **
৩) tutorials point **

কম্পাইলারঃ কোন সোর্স কোডকে কম্পিউটারকে বুঝানোর জন্য কম্পাইল করার প্রয়োজন পরে যেটা কম্পাইলার করে থাকে। c/c++ এর জন্য সনামধন্য কম্পাইলার হচ্ছে codeblocks । যদিও অনেকে .C/.Cpp ফরমেটে সোর্স কোড সেইভ করে কমান্ড লাইনের মাধ্যমে কম্পাইল করতে স্বাচ্ছন্দ্যবোধ করে। এইজন্য যেভাবেই কম্পাইল করতে ভালো লাগে সেভাবে করলেই হলো।
এখন আসি অনলাইন জাজ প্লাটফর্ম অংশে । পূর্বেই বলেছি নির্দিষ্ট সমস্যা সল্ভ করার উদ্দেশ্যে কোড করে তা যথার্থ কিনা তা যেকোনো অনলাইন জাজের কর্তৃক যাচাই করে দেখতে হবে।

অনলাইন জাজ প্ল্যাটফর্মঃ
১) codeforces
২) uva
৩) uri
৪) lightoj
৫) codechef
৬) hackerrank
৭) সিপিবুক

Quick tips: এইখানে প্রব্লেম সল্ভ করে কোড যাচাই করতে হলে নিশ্চয়ই একাউন্ট থাকা লাগবে। এক পর্যায়ে দেখা যাবে খুব প্ল্যাটফর্মে একাউন্ট থাকার কারণে username & password গোলমেলে হয়ে যায়। একারণে একটা নোটপ্যাডে সেগুলো সেইভ করে রাখা উচিত।

এইসব প্ল্যাটফর্মের বিগিনার/ইজি লেভেলের প্রব্লেম গুলো কর্তৃক শুরু করা যেতে পারে। ১ম প্রথম সল্ভ করতে গেলে উটকো ঝামেলা ঝামেলা একটা অনুভূতি হবে কিন্তু কয়েকটা সল্ভ করে ধাঁচ টা বুঝে গেলে আর প্রবলেম হবে না মনস্কাম করি। আর হ্যা প্রব্লেম নিয়ে অনেকক্ষণ বসে থেকেও সল্ভ না করতে পারলে ফাস্ট জবাব নেট ঘেঁটে সল্ভ করে ফেলে লাভ নেই এতে বরং নিজেরই ক্ষতি। আগে যতভাবে সম্ভব নিজে চেষ্টা করে নেয়া উচিত।

ডাটা স্ট্রাকচার এন্ড অ্যালগরিদম সহায়ক বইঃ


১) কম্পিউটার প্রোগ্রামিং ৩য় যতি : ডেটা স্ট্রাকচার ও অ্যালগরিদম পরিচিতি- তামিম শাহরিয়ার সুবিন
২) প্রোগ্রামিং কন্টেস্ট ডাটা স্ট্রাকচার ও অ্যালগরিদম – মাহবুবুল হাসান শান্ত
৩) introduction to algorithms- thomas h. Cormen
৪) data structure and algorithm made easy – karumanchi

আরো পড়ুনঃ SEO কি? ‍SEO কিভাবে শিখবো? ‍এসইও কেন গুরুত্বপূর্ণ? SEO কত প্রকার ও কি কি? PDF সহ

আরো পড়ুনঃ ফ্রিল্যান্সিং এর জন্য কি রকম পিসি প্রয়োজন? কোন ধরণের পিসি বিল্ড করবেন?

প্রোগ্রামিং শিখার অনলাইন প্লাটফর্মঃ


১) শাফায়েত প্ল্যানেট **
২) edx *
৩) mit introduction to algorithms
৪) coursera *
৫)data structures and algorithms by mycodeschool
৬) data structure and algo(github collection)

মনে রাখতে হবে যে প্রোগ্রামিং একদিনের বিষয় না। এর জন্য চাই চেষ্টা আর লেগে থাকার মানসিকতা! অনেকেই একে এক খাবারের মতো মনে করে যে নব খাবারের নাম শুনলাম আর খেয়ে দেখি কেমন …ভালো না লাগলে বাদ। এটা হয়ে থাকে ধৈর্যের আর লেগে থাকার মানসিকতার অভাবে। peter norvig এর একটা আর্টিকেল আছে যে “teach yourself programming in ten years!” তবে বুঝতেই পারছ যে দু’ একদিনে প্রোগ্রামিং কিরণ হয় না। তবে যদি ২-৩ সপ্তাহ প্রোগ্রামিং নিয়ে বসে থাকার পরও যদি এটাকে কষ্টকর মনে হয় তবে কিছুটা সময় নিয়ে আবার পরে ট্রাই করে নোটিশ যেতে পারে। তাও ভালো না লাগলে জোর করে প্রোগ্রামিং করার গরজ নেই।

যারা এতক্ষণ মন দিয়ে পোস্টটি পড়ছেন আর ভাবছেন যে প্রোগ্রামিং টা না হয় শিখেই ফেলি তাদের উদ্দেশ্যে বলছি একবার এতে আহ্লাদ পেয়ে গেলে দেখবে এটিই আপনার একমাত্র আনন্দের খোরাক হয়ে দাঁড়াবে।

(বি দ্রঃ প্রোগ্রামিং এর জগতটা খুব বিশাল। গুটিকয়েক বই পড়লেই এতে বিস্ময় হওয়া যায় নাহ। একারণে সব কিছু শিখতে হলে গুগল করে নিজে নিজে শিখার অভ্যাস থাকতে হবে। কেননা ইন্টারনেট বা বই থেকে দ্রুত শিখার অভ্যাস ই তোমাকে ভালো প্রোগ্রামার হতে উপকার করবে)

error: দুঃখিত! কন্টেন্ট কপি করা যাবেনা! প্রয়োজনে শেয়ার অপশন থেকে শেয়ার করুন