কিভাবে প্রোগ্রামিং এ দক্ষতা বাড়ানো যায় ?
প্রোগ্রামিং এর একটা মৌলিক বিষয় হচ্ছে তুমি যত বেশি অনুশীলন করবে তত বেশি দক্ষতা অর্জন করবে।
এখন আমাদের মনের প্রশ্ন হল সবাই বলে যে অনুশীলন (practice) করার জন্য কিন্তু কোথায় করব কিভাবে করব অনুশীলন (practice) ?
আসলে এখানে অনুশীলন করা বলতে বুঝায় প্রতিনিয়ত প্রোগ্রামিং এর নতুন নতুন বৈশিষ্ট্য বা (feature) গুলু সম্পর্কে জ্ঞান অর্জন করতে থাকা ।
বিভিন্ন কৌশল বা (technique) শিখা , কিভাবে কোড (code) এর রান করার সময় কমিয়ে আনা যায় , কিভাবে প্রোগ্রামের স্টোরেজ বা মেমোরি আয়তন কমিয়ে আনা যায়। কিভাবে কোড (code) লিখলে সবাই বুঝতে সুভিদে হয় ইত্যাদি ইত্যাদি, এই পর্যন্ত হল প্রোগ্রামিং ভাষা শিখার জন্য যা যা করা লাগে । তবে শুধু এই পর্যন্ত শিখে আর অনুশীলন করা পর্যন্তই শেষ না , তুমি উপরের সবগুলো কাজ ই অনেক সুন্দর ভাবে করলে এখন তোমাকে প্রোগ্রামিংয়ে আরো ভাল এবং নিযেকে আরো দক্ষ করে তোলতে হবে।
## এখন প্রশ্ন হল প্রোগ্রামিংয়ে আরো ভাল করতে হলে অথবা প্রোগ্রামিং এ নিজেকে আরও দক্ষ করতে হলে কি করা উচিত ? কিভাবে এগোলে প্রোগ্রামিং এ ভাল করা যাবে ?
তোমার মনে যদি এই প্রশ্ন ঘুরে আর তুমি যদি প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখে থাক তাহলে আমি বলব তুমি নিচের বিসয়গুলু শিখা শুরু করে দাও। নিচে ক্রমান্বয়ে বিষয়বস্তু গুলু তুলে ধরা হল।
(১) Data structure
* Array
* Linked list
* Stack
* Queue
* Searching
* Sorting
* Graph Data structure
* Tree Data structure
* Recursion
==> DATA STRUCTURE এর এই বিষয়(topic) গুলো ভাল ভাবে শিখে ফেল এবং এই সব বিষয় সম্পর্কিত প্রোগ্রামিং প্রব্লেম গুলু অনলাইন থেকে এবং নিজের প্রচেষ্টায় বাস্তবায়ন(implement) করতে থাক এবং অনুশীলন করতে থাক।
এবং কোন DATA STRUCTURE টা কেন কখন এবং কোথায় ব্যবহার করব এই সবকিছু জানার চেষ্টা কর এবং ব্যবহারের পধ্যতিগুলু অনুশীলন করতে থাক।
এখন তোমার যখনই মনে হবে DATA STRUCTURE এর বিসয়গুলু তুমি বুঝতে পেরেছ এবং এইগুলুকে প্রোগ্রাম এ ব্যবহার করতে পারছ তখনই তোমার পরবর্তী ধাপ হবে Algorithm শিখা ।
(২) Algorithm
* Complexity of algorithme
* Recursion
* Search Algorithms
* Sorting Algorithms
* Divide and Conquer
> Quick Sort
> Merge Sort
* The Greedy Algorithm
* Dynamic Programming
* Backtracking Algorithm
এখানে শুধু ধারনা দেয়ার জন্য কয়েকটি বিসয়বস্তুর নাম তুলে ধরলাম যখন তুমি শিখবে তখন আরো বিস্তারিত ভাবে শিখবে । Algorithm শিখার জন্য তুমি অনলাইন থেকে সাহায্য অথবা Algorithm এর বই অনুসরন করে শুরু করতে পার । তাছারা অনলাইনে অনেক ওয়েবসাইট আছে যেমন (tutorialspoint.com) এইরকম আরো অসংখ্য ওয়েবসাইট রয়েছে, ইউটিউবে অনেক চেনেল আছে
সেখান থেকে শিখতে পার ।
তবে মনে রাখবে যখনই কোনকিছু বুঝতে সমস্যা হবে তখনই GOOGLE এ গিয়ে খোঁজে বের করে শিখে ফেলবে । কোনকিছু গুগল করে নিজে নিজে শিখাটা অনেক ভাল অভ্যাস।
এখানে আরো একটি বিষয় তা হল String সম্পর্কেও ভাল ধারনা প্রয়োজন।
তাই সময় নষ্ট না করে এখনি সুরু করে দাও।
এতক্ষণ যা বললাম এইগুলু ছিল শিখার জন্য প্রাথমিক কিছু ধারনা এখন আসি আসল কথায় , উপরের বর্ণিত বিসয়গুলি শিখার পাশাপাশি অথবা শিখার পর প্রোগ্রামিংয়ে আরো ভাল করতে হলে যেটা করতে হবে সেটা হল বিভিন্ন প্রোগ্রামিং সমস্যা সমাধার করা। যেমন অনলাইনে অনেক সাইট রয়েছে যেগুলুতে প্রচুর পরিমান সমস্যা দেয়া আছে তাদের মধ্যে কয়েকটি অন্যতম হল hackerrank.com, leetcode.com, codeforces.com and codechef.com) etc। এই সাইটগুলোতে গেলে তুমি পাবে অনেক মজার মজার প্রোগ্রামিং সমস্যা । তাই এখনি Account খুলে practice আরম্ভ করে দাও।
এইভাবেই তুমি যখন বিভিন্ন সাইটে গিয়ে সমস্যা সমাধান করতে থাকবে আসতে আসতে তত বেশি তোমার প্রোগ্রামিং দক্ষতা বাড়তে থাকবে ।
প্রোগ্রামিং কে ভালবাসতে হবে না হলে পথের মাঝেই আটকে যেতে হবে। আরেকটা কথা হল প্রোগ্রামিং একটা মজার জিনিশ, এখানে তোমার চিন্তাশক্তির সম্পূর্ণ স্বাধীনতা রয়েছে। তোমার প্রোগ্রামিং রাজ্যের রাজা তুমিই। ভাল কিছু সিখতে অথবা করতে পথে বাধা আসবেই আর এই বাধাগুলুকে পিছনে ফেলেই সামনে যেতে হবে, তাই আর না ভেবে শুরু করে দাও।
লিখাটি পড়ে যদি ভাল লাগে তাহলে অবশ্যই comment আশা করছি।😎😎
আরো কিছু জানার থকলে কমেন্ট বক্স এ কমেন্ট করতে পারো। অথবা আমাকে মেইল করতে পারো
( saiful.comilla24@yahoo.com ) অথবা ফেইসবুকে আমাকে বার্তা পাঠাতে পার।
ভুল ভ্রান্তি মার্জনীয়..................।।😎😏
প্রোগ্রামিং এর একটা মৌলিক বিষয় হচ্ছে তুমি যত বেশি অনুশীলন করবে তত বেশি দক্ষতা অর্জন করবে।
এখন আমাদের মনের প্রশ্ন হল সবাই বলে যে অনুশীলন (practice) করার জন্য কিন্তু কোথায় করব কিভাবে করব অনুশীলন (practice) ?
আসলে এখানে অনুশীলন করা বলতে বুঝায় প্রতিনিয়ত প্রোগ্রামিং এর নতুন নতুন বৈশিষ্ট্য বা (feature) গুলু সম্পর্কে জ্ঞান অর্জন করতে থাকা ।
বিভিন্ন কৌশল বা (technique) শিখা , কিভাবে কোড (code) এর রান করার সময় কমিয়ে আনা যায় , কিভাবে প্রোগ্রামের স্টোরেজ বা মেমোরি আয়তন কমিয়ে আনা যায়। কিভাবে কোড (code) লিখলে সবাই বুঝতে সুভিদে হয় ইত্যাদি ইত্যাদি, এই পর্যন্ত হল প্রোগ্রামিং ভাষা শিখার জন্য যা যা করা লাগে । তবে শুধু এই পর্যন্ত শিখে আর অনুশীলন করা পর্যন্তই শেষ না , তুমি উপরের সবগুলো কাজ ই অনেক সুন্দর ভাবে করলে এখন তোমাকে প্রোগ্রামিংয়ে আরো ভাল এবং নিযেকে আরো দক্ষ করে তোলতে হবে।
## এখন প্রশ্ন হল প্রোগ্রামিংয়ে আরো ভাল করতে হলে অথবা প্রোগ্রামিং এ নিজেকে আরও দক্ষ করতে হলে কি করা উচিত ? কিভাবে এগোলে প্রোগ্রামিং এ ভাল করা যাবে ?
তোমার মনে যদি এই প্রশ্ন ঘুরে আর তুমি যদি প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখে থাক তাহলে আমি বলব তুমি নিচের বিসয়গুলু শিখা শুরু করে দাও। নিচে ক্রমান্বয়ে বিষয়বস্তু গুলু তুলে ধরা হল।
(১) Data structure
* Array
* Linked list
* Stack
* Queue
* Searching
* Sorting
* Graph Data structure
* Tree Data structure
* Recursion
==> DATA STRUCTURE এর এই বিষয়(topic) গুলো ভাল ভাবে শিখে ফেল এবং এই সব বিষয় সম্পর্কিত প্রোগ্রামিং প্রব্লেম গুলু অনলাইন থেকে এবং নিজের প্রচেষ্টায় বাস্তবায়ন(implement) করতে থাক এবং অনুশীলন করতে থাক।
এবং কোন DATA STRUCTURE টা কেন কখন এবং কোথায় ব্যবহার করব এই সবকিছু জানার চেষ্টা কর এবং ব্যবহারের পধ্যতিগুলু অনুশীলন করতে থাক।
এখন তোমার যখনই মনে হবে DATA STRUCTURE এর বিসয়গুলু তুমি বুঝতে পেরেছ এবং এইগুলুকে প্রোগ্রাম এ ব্যবহার করতে পারছ তখনই তোমার পরবর্তী ধাপ হবে Algorithm শিখা ।
(২) Algorithm
* Complexity of algorithme
* Recursion
* Search Algorithms
* Sorting Algorithms
* Divide and Conquer
> Quick Sort
> Merge Sort
* The Greedy Algorithm
* Dynamic Programming
* Backtracking Algorithm
এখানে শুধু ধারনা দেয়ার জন্য কয়েকটি বিসয়বস্তুর নাম তুলে ধরলাম যখন তুমি শিখবে তখন আরো বিস্তারিত ভাবে শিখবে । Algorithm শিখার জন্য তুমি অনলাইন থেকে সাহায্য অথবা Algorithm এর বই অনুসরন করে শুরু করতে পার । তাছারা অনলাইনে অনেক ওয়েবসাইট আছে যেমন (tutorialspoint.com) এইরকম আরো অসংখ্য ওয়েবসাইট রয়েছে, ইউটিউবে অনেক চেনেল আছে
সেখান থেকে শিখতে পার ।
তবে মনে রাখবে যখনই কোনকিছু বুঝতে সমস্যা হবে তখনই GOOGLE এ গিয়ে খোঁজে বের করে শিখে ফেলবে । কোনকিছু গুগল করে নিজে নিজে শিখাটা অনেক ভাল অভ্যাস।
এখানে আরো একটি বিষয় তা হল String সম্পর্কেও ভাল ধারনা প্রয়োজন।
তাই সময় নষ্ট না করে এখনি সুরু করে দাও।
এতক্ষণ যা বললাম এইগুলু ছিল শিখার জন্য প্রাথমিক কিছু ধারনা এখন আসি আসল কথায় , উপরের বর্ণিত বিসয়গুলি শিখার পাশাপাশি অথবা শিখার পর প্রোগ্রামিংয়ে আরো ভাল করতে হলে যেটা করতে হবে সেটা হল বিভিন্ন প্রোগ্রামিং সমস্যা সমাধার করা। যেমন অনলাইনে অনেক সাইট রয়েছে যেগুলুতে প্রচুর পরিমান সমস্যা দেয়া আছে তাদের মধ্যে কয়েকটি অন্যতম হল hackerrank.com, leetcode.com, codeforces.com and codechef.com) etc। এই সাইটগুলোতে গেলে তুমি পাবে অনেক মজার মজার প্রোগ্রামিং সমস্যা । তাই এখনি Account খুলে practice আরম্ভ করে দাও।
এইভাবেই তুমি যখন বিভিন্ন সাইটে গিয়ে সমস্যা সমাধান করতে থাকবে আসতে আসতে তত বেশি তোমার প্রোগ্রামিং দক্ষতা বাড়তে থাকবে ।
প্রোগ্রামিং কে ভালবাসতে হবে না হলে পথের মাঝেই আটকে যেতে হবে। আরেকটা কথা হল প্রোগ্রামিং একটা মজার জিনিশ, এখানে তোমার চিন্তাশক্তির সম্পূর্ণ স্বাধীনতা রয়েছে। তোমার প্রোগ্রামিং রাজ্যের রাজা তুমিই। ভাল কিছু সিখতে অথবা করতে পথে বাধা আসবেই আর এই বাধাগুলুকে পিছনে ফেলেই সামনে যেতে হবে, তাই আর না ভেবে শুরু করে দাও।
লিখাটি পড়ে যদি ভাল লাগে তাহলে অবশ্যই comment আশা করছি।😎😎
আরো কিছু জানার থকলে কমেন্ট বক্স এ কমেন্ট করতে পারো। অথবা আমাকে মেইল করতে পারো
( saiful.comilla24@yahoo.com ) অথবা ফেইসবুকে আমাকে বার্তা পাঠাতে পার।
ভুল ভ্রান্তি মার্জনীয়..................।।😎😏
Thanks..
ReplyDeletehlw vai,ami online judge a registration korar por amr email a confirmation mail ase na.ami koeak ta online judge a try korci jamon UVa,Light oj etc sobti te ai rokom confirmation mail ase nai.ki problem hoice ba ki korle confirmation mail asbe bolte prben.Thank You.
ReplyDeletetomar mail check korso?
Deletetry korte thako,,......
DeleteJi vai mail check korci but ase na.
ReplyDeleteanother mail use koro........ekhon na hole abar pore try koro.inshahallah hoy jabe
DeleteCheck Spam Mails.
Deletevalo laglo pore
ReplyDeletethanks vai aonader comment goloi amake onupranito korbe aro....
DeleteThank you.
ReplyDeleteThis comment has been removed by the author.
DeleteI think most important issue we always miss is we use to leave a problem after solving it.very few of us analyse others solution.But when you read others solution your thinking capability will increase gradually.And always try to participate in online contest.It is not only interesting but also speed up your coding.
ReplyDeleteyes . i will write about it and about contest in my upcoming article .....thank you very much.
DeleteThis comment has been removed by the author.
ReplyDeletethnks.....one of my brother send it to me and told that,read it.
ReplyDelete------precious -----