প্রোগ্রামিং বা কোডিং সহজ। যে কেউ শুরু করতে পারে। অনেক প্রোগ্রামার হয়তো অনেক ভাব আর গম্ভীরতা নিয়ে বলতে পারে, প্রোগ্রামিং কঠিন, প্রোগ্রামিং করতে হলে অনেক বুদ্ধি দরকার হয়। এটা না বললেও হয়তো বলবেঃ কোড যে কেউ লিখতে পারে, ভালো কোড লিখতে হলে ভালো প্রোগ্রামার হতে হয়।
প্রোগ্রামিং কঠিন এ কথাটা সত্যি না হলেও ভালো কোড লিখতে হলে ভালো প্রোগ্রামার হতে হয়, কথাটা সত্য।
আসলে যে কোন কিছুতে ভালো হতে হলেই ঐ বিষয় সম্পর্কে অনেক জ্ঞান থাকতে হয়। এটা যে কোন বিষয়ের ক্ষেত্রেই প্রযোজ্য। প্রোগ্রামিং এ থেকে ভিন্ন কিছু না। আর কোন কিছুতে ভালো এক দিনে হওয়া যায় না। সময় লাগে। তাই প্রোগ্রামিং এ ভালো হতে হলেও কিছু সময় লাগে। এর থেকে বেশি কিছু না। এটার মানে এই নয় যে, প্রোগ্রামিং কঠিন। আসলে প্রোগ্রামিং অন্য সব সহজ বিষয় গুলোর মতই একটা।
প্রোগ্রামিং করার শুরুতে হয়তো দেখা যাবে ছোট খাট ভুলের জন্য প্রোগ্রাম রান হচ্ছে না। এটা হচ্ছে কারণ আমার প্রোগ্রামে ভুল আছে। কি ভুল রয়েছে, তা হয়তো আমার চোখে পড়ছে না। কিন্তু ভুলটা একবার বের করতে পারলে জীবনে আর ঐ ভুল নিয়ে কোন সমস্যা দেখা দিবে না। তাই যারা নিয়মিত প্রোগ্রামিং করে, তারা হয়তো একটা কোড দেখেই বলে দিতে পারে, এ লাইনে ভুল। এটা এক দিনে হয় না। ঐ প্রোগ্রামার নিজে এক দিন ঐ একই ভুল করেছে। এবং ঐ ভুল থেকে শিক্ষা নিয়েছে।
ভালো কোড বা ভালো প্রোগ্রামিং এর সাথে দুইটা জিনিস খুব ভালো ভাবেই জড়িত। একটা হচ্ছে ডেটা স্ট্র্যাকচার। আরেকটা হচ্ছে অ্যালগরিদম। ডেটা স্ট্র্যাকচার হচ্ছে কিভাবে আমার ডেটা কিভাবে রাখব। ডিম যেমন আমরা যে কোন বাক্সে রাখতে পারব না, ভেঙ্গে যাবে, ডিম রাখার জন্য স্পেশাল ডিমের কেইস লাগে। তেমনি প্রোগ্রামিং করার সময় ও এক রকম ডেটা এক এক ভাবে রাখতে হয়। আর এ বিষয় গুলোই শেখা হয় ডেটা স্ট্র্যাকচারে।
অ্যালগরিদম জিনিসটা আরেকটু মজার। একটা কাজ করার সহজ পদ্ধতি বের করা। এটাও এক দিনে শেখা যায় না। আমরা প্রথমবার একটা প্রোগ্রাম লিখি। পরে চিন্তা করি, এর থেকে ভালো ভাবে প্রোগ্রামটা লেখা যায় কিনা। যদি যায়, তা করি। ঐটা করার পর আবার চিন্তা করি, এর থেকে ভালো উপায় আছে কিনা। যদি থাকে, তা ব্যবহার করি।
কমন যে বিষয় গুলো সব গুলো প্রোগ্রামেই লিখতে হয়, ঐ সব কমন বিষয় গুলো কিভাবে সহজে করা যায়, তার প্রসেস আমাদের পূর্বে গণিতবিদ বা প্রোগ্রামাররা আমাদের জন্য লিখে গিয়েছে। ঐ গুলোই হচ্ছে অ্যালগরিদম। আগের অ্যালগরিদম গুলোর উপর পড়ালেখা করে আস্তে আস্তে আমরা নিজেদের জ্ঞান বাড়িয়ে নি। যদি আমরা নতুন কোন সমস্যা নিয়ে কাজ করি, আর তা নিয়ে আগে কেউই কাজ করে নি, তাহলে আমাদের নতুন কোন অ্যালগরিদম ডেভেলপ করতে হয়।
আবার ডেটা স্ট্র্যাকচার এবং অ্যালগরিদম ছাড়াও আরো কয়েকটি বিষয় সম্পর্কে জানতে হয়। যেমন সফটওয়ার ডিজাইন প্যাটার্ন। আমার সফটওয়ারটা কিভাবে তৈরি করব। কোন ডিজাইন প্যাটার্ন ব্যবহার করব ইত্যাদি।
এ গুলো আসলে প্রথম দিন থেকেই হবে না। প্রথম দিনেই কেউ একটা ক্যানভাস আর রঙ তুলি নিয়ে মোনালিসা আঁকতে পারবে না। প্রথম দিন হয়তো ক্যানভাসে কয়েকটা আচড় দিতে পারবেন। প্রতিদিন রঙ তুলি আর ক্যানভাস নিয়ে বসলে এক দিন হয়তো মোনালিসা থেকেও দারুণ কিছু হবে। প্রোগ্রামিং এও একই রকম। “Hello world!” দিয়ে শুরু। এরপর আস্তে আস্তে নিজের স্বপ্ন, নিজের পৃথিবীটাকে কোডে পরিনত করে ফেলতে পারবেন। একদিন!
ভাই দোয়া চাই, যেন সফল হতে পারি।
দোয়া কইরেন ভাই, যেন একজন সফল প্রোগ্রামার হতে পারি।
ইনশাল্লাহ্ !! 🙂