প্রোগ্রামিং শিখতে হলে

Last updated on: April 25, 2016

আমি অনেক দিন ধরেই লক্ষ্য করেছি – আমার আশে পাশে অনেকেই আছে যারা খুব তাড়াতাড়ি প্রোগ্রামিং রপ্ত করে ফেলতে পারে, নতুন জিনিষ শিখতে পারে। আমার ধারণা ব্যাপারটা বুদ্ধিমত্তার কিছু না। অনেক সময়ই দেখেছি, অনেক ছোট ভাই এসে বলে – ভাই – শিখতে পারছি না প্রোগ্রামিং। কি করলে শিখতে পারবো? তখন কিছু জিনিষ বলেছিলাম। কয়দিন আগে Learn Python the Hard way বইয়েও দেখি আমার কথাগুলো, সাথে আরো অনেক কিছু বলা হয়েছে যেগুলো আমি ঐসব ভালো প্রোগ্রামারের ভেতরে লক্ষ্য করেছি। আমার ধারণা প্রোগ্রামিং শিখতে না পারা, বা খুব ধীর গতিতে শেখাটা মোটামুটি সাধারণ আমাদের মাঝে। সেজন্যই ঐ বই আর আমার চিন্তা মিলিয়ে এই লেখাটা। নিজেদের ভেতরে কিছু ছোট্ট ছোট্ট পরিবর্তন আনলেই প্রোগ্রামিং শেখা ডাল ভাত।

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

অনেকেই প্রোগ্রামিং শিখতে গিয়ে ল্যাঙ্গুয়েজ নিয়ে আগে মাথা ঘামায়। দিনশেষে ল্যাঙ্গুয়েজ একটা টুল মাত্র। মূল কাজটা হলো কোন একটা সমস্যার সমাধান করার জন্য বিভিন্ন যৌক্তিক ভাগে ভাগ করে একটা সমাধান তৈরী করা। এমনও হয়েছে, আমি আরেকজনের কাছে শুনেছি যে এই সমস্যাটা এই প্রোগ্রামিং ল্যাঙ্গুয়েজে কিভাবে করবো বুঝতেছি না। আগে তো চিন্তা করতে হবে সমাধানটা কিভাবে করবো সেটা নিয়ে। তার পরে সেটা ল্যাঙ্গুয়েজ দিয়ে তৈরী করবো মাত্র। অবশ্যই ল্যাঙ্গুয়েজটা ব্যাবহার করা জানতে হবে, সেটা ব্যবহার করে করে সমাধানে পৌঁছানো শিখতে হবে। কিন্তু এই ছোট্ট পার্থক্যটা আমরা কেন জানি ভুলে যাই।

পড়া এবং লেখা

সাধারণত Herbert Schildt এর Teach Yourself C দিয়ে আমাদের অনেকের প্রোগ্রামিংয়ের হাতে খড়ি হয়। অবাক হয়ে দেখেছি বইয়ে এত সুন্দর সুন্দর উদাহরণ, অনুশীলনী থাকার পরেও অনেকে শিখতে পারছে না। একটু ঘাটাতেই লক্ষ্য করেছি তারা জিনিষগুলা পড়েই গেছে। কখনো টাইপ করেনি। উদাহরণের প্রোগ্রামিং দেখে দেখে হলেও টাইপ করে, বা লিখে শিখতে হবে। এটা করলে ঐ প্রোগ্রামিং ভাষা সমন্ধে জানা যায়, লেখার অভ্যাস হয়। আমাদের আয়ত্তে আসে।

খুঁটিনাটি লক্ষ্য করা

এইখানেই দুনিয়ার ভালো প্রোগ্রামার আর ভালো হতে চাওয়া প্রোগ্রামারদের মাঝে পার্থক্য। বই বা অন্য কিছু যখন আমরা পড়বো, তখন একদম প্রতিটা লাইন পড়ে পড়ে যেতে হবে। তা নাহলে অনেক ফাঁক ফোঁকর থেকে যায়। পরবর্তিতে সেগুলা সমস্যার সৃষ্টি করে। আমার বইগুলা তো আমি মোটামুটি রক্তাক্ত করে ফেলি দাগিয়ে পড়ার সময়।

পার্থক্য লক্ষ্য করা

খুব কম মানুষই আছে যারা ওয়েবসাইট বা অন্য কোথাও থেকে দেখে দেখে প্রোগ্রাম করেছে এবং তার পরে নিজের লেখা প্রোগ্রামে বাগ(ক্রুটি) পায়নি। এমনটাই হওয়া স্বাভাবিক্। কিন্তু এর পরে আমরা সাধারণত বিরক্ত হয়ে প্রোগ্রামটা কপি পেস্ট মারি। এতে যা হয়, তা হলো আমরা দেখে দেখে করার পরেও যে ভুল করেছিলাম – সেটার সমন্ধে জানি না। দেখে দেখে করার সময়ই যদি আমরা ভেজাল পাকাই – নিজে নিজে প্রোগ্রাম করার সময় ভেজাল পাকাতে বাধ্য।

কপি পেস্ট

আমরা কপি পেস্ট করতে খুব পছন্দ করি। এসাইনমেন্ট, রিপোর্ট, প্রোগ্রামিং ইত্যাদি। অনেক ক্ষেত্রে হয়তো কপি পেস্ট করা লাগেই, কিন্তু সেটা প্রোগ্রামিংয়ে করা উচিত না। একদম প্রথম পর্যায়ে আমরা কপি পেস্ট করে প্রোগ্রামিং করতে গিয়ে নিজেদের গোড়াটাই দুর্বল করে ফেলি। সময়ের সাথে সাথে সেই দুর্বল গোড়া আরো দুর্বল হয়। কপি পেস্ট করা মানেই নিজেকে ঠকানো। এইটা করতে যাবেন না।

অনুশীলন এবং লেগে থাকা

প্রোগ্রামিং জিনিষটা লেগে থাকার। গান শিখতে হলে প্রতিদিন চেষ্টা করতে হয়, গিটার শিখতে হলেও প্রতিদিন চেষ্টা করতে হয়। অথচ প্রোগ্রামিং শিখতে হলেও যে লেগে থাকতে হয় – তা আমাদের মাথায় আসে না। টানা চেষ্টা করে যেতে হবে শেখার জন্য। এমনও দিন গেছে যখন আমি একটা বাগের পিছনে ৩ দিন মাথা কুটেও কিচ্ছু পাইনি। শেষে যখন বাগ ধরা পড়েছে, সেটা মোটামুটি আমার মাথায় গেঁথে গেছে। ভুল করা স্বাভাবিক। কিন্তু হাল ছেড়ে দেয়া মোটেও ঠিক না।

IDE বা Editor নিয়ে নাকানি চুবানি খাওয়া

এটা খুব কমন। প্রোগ্রামিং শেখার আগে কি দিয়ে প্রোগ্রামিং করবো, কোন এডিটর ভালো এইসব চিন্তা করি আমরা অনেকে। এত কিছু ভাবার দরকার নাই। আগে Notepad++ বা Gedit বা কোন সহজ Editor দিয়ে শুরু তো করেন। (অনেক অভিজ্ঞ প্রোগ্রামার চোখ উল্টে পরে যাবেন) যে সহজ সাধারণ এডিটর দিয়ে প্রোগ্রামিং করতে পারে, সে IDE তে খুব তাড়াতাড়ি রপ্ত হতে পারবে। প্রোগ্রামিংয়ের জন্য IDE, IDE এর জন্য প্রোগ্রামিং না।

শেষ কথা

প্রথম প্রথম প্রোগ্রামিং খুব কঠিন লাগে। কিচ্ছু আগা মাথা পাওয়া যায় না। মনে হয়, এটা আমার জন্য না। এইটা পারি না। কচু গাছে ঝুলার জন্য দঁড়িও খুঁজি আমরা মাঝে মাঝে যখন দেখি আশে পাশের সবাই পারছে কিন্তু নিজে পারছি না।

কিন্তু মানুষের যেকোন ভাষা শিখতে হলেই এর চাইতেও বেশি কষ্ট করা লাগবে। চেষ্টা করে যেতেই হবে, তাহলেই প্রোগ্রামিং শেখা সম্ভব। হাল ছাড়লে আমরা কখনো এগিয়ে যেতে পারবো না। এটা মনে রাখা দরকার।

[লেখাটা যারা প্রথম শিখছে প্রোগ্রামিং, তাদের জন্য। অনেকেই বলবে প্রোগ্রামিং সুজা, এইটা আমি দেখা মাত্র পারি। আপনারা পারেন সমস্যা নাই। আপনারা মহান, অসাধারণ প্রতিভার অধিকারী। আমি নিজে সাধারণ, লিখেছি সাধারণদের জন্য, যারা দেখা মাত্র পারে না। কষ্ট করে শিখতে হয় আমাদের। এবার আসুন।]

প্রথম প্রকাশিত হয়েছিলো আগের ব্লগে, ২০১২ সালে। তার পরে ইষৎ পরিমার্জিত করে আবারো লেখা।

Written on April 25, 2016