সহজে শেখা যায় “Programming”

November 24, 2015

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

শুরু করতে হবে সি শেখা দিয়ে। ভালোভাবে সি শিখতে চাইলে কিছু বই আছে যেগুলো পড়ে অনেকটাই ধারনা অর্জন করা সম্ভব। সেগুলোর মধ্যে অন্যতম – Herbert Schildt-এর Teach Yourself C , Brian Kernighan ও Dennis Ritchie-এর লেখা The C Programming Language  যিনি মূলত সি ল্যাঙ্গুয়েজ ডিজাইন করেছেন।
ইংরেজি বইয়ের মধ্যে Stephen G. Kochan-এর Programming in C  হচ্ছে সি শেখার জন্য চমৎকার ও সহজ একটি বই। Schaums Outlines সিরিজের Programming with C বইটিও ভালো। এই বইতে প্রচুর উদাহরণ আর অনুশীলনী আছে।

সি শেখার পর  সি প্লাস প্লাস বা জাভা শেখাটা বুদ্ধিমানের কাজ। সি প্লাস প্লাস শেখার জন্য ভালো বই হচ্ছে – Herbert Schildt এর লেখা Teach Yourself C++ । আর জাভার জন্য Paul Deitel and Harvey Deitel এর Java How to Program। এছাড়া বাকি ল্যাঙ্গুয়েজ শিখতে গেলে বই কেনার দরকার নেই। ইন্টারনেটে প্রচুর টিউটোরিয়াল আছে। সেগুলো পড়ে শিখে  ফেলা সম্ভব।

সি এবং পাইথনের জন্য চমৎকার দুটি বই আছে অনলাইনে –
learnpythonthehardway
learncodethehardway

কেউ যদি কম্পিউটার বিজ্ঞানে পড়তে চায়, কিংবা প্রোগ্রামিং কন্টেস্টে ভালো করতে চায়, তাহলে Discrete Mathematics ভালো করে শিখতে হবে। এর জন্য Kenneth H. Rosen-এর Discrete Mathematics বইটি খুব ভালো। শুধু পড়লেই চলবে না সঙ্গে সঙ্গে অনুশীলনীর সমস্যাগুলো সমাধানের চেষ্টা করতে হবে।

Discrete Mathematics শেখার পরে শিখতে হবে অ্যালগরিদম। অ্যালগরিদম শেখার শুরু আছে কিন্তু শেষ নেই। আর শুরু করার জন্য লেখক: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein এর Introduction to Algorithms  বইটি খুব কাজের। অ্যালগরিদমের মৌলিক বিষয়গুলো শেখার জন্য এটা সবচেয়ে ভালো বই।

প্রোগ্রামার তো হয়ে গেলে, কিন্তু কেমন প্রোগ্রামিং  পার সেটা জানতে এবং কনফিডেন্স বাড়াতে প্রোগ্রামিং প্রতিযোগিতাগুলোতে অংশগ্রহণ করার বিকল্প নেই।

প্রোগ্রামিং প্রতিযোগিতার জন্য কিছু লিংক:

Projecteuler

এখানে অনেক মজার সমস্যা আছে যেগুলোর বেশিরভাগই প্রোগ্রাম লিখে সমাধান করতে হয়। এখানে প্রোগ্রাম জমা দেওয়া লাগে না, কেবল প্রোগ্রাম দিয়ে বের করা উত্তরটা জমা দিতে হয়

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

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

Delos – এটি যদিও আমেরিকার ইনফরমেটিক্স অলিম্পিয়াড ট্রেনিং প্রোগ্রাম, কিন্তু সাইটে যেকোনো দেশের প্রোগ্রামাররাই রেজিস্ট্রেশন করে অনুশীলন করতে পারে। তোমরা যারা প্রোগ্রামিং প্রতিযোগিতায় ভালো করতে চাও, তাদের অবশ্যই এখানে অনুশীলন করা উচিত।

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

Codeforces – এই সাইটে নিয়মিত বিভিন্ন ধরনের প্রোগ্রামিং কন্টেস্ট হয়। অভিজ্ঞ প্রোগ্রামারদের জন্য ভালো। এটিও প্রোগ্রামিং প্রতিযোগিতার জন্য একটি ভালো ওয়েবসাইট এবং অভিজ্ঞ প্রোগ্রামারদের জন্য।

Ioinformatics –   আন্তর্জাতিক ইনফরমেটিক্স অলিম্পিয়াডের অফিসিয়াল ওয়েবসাইট।

Matholympiad – প্রোগ্রামিং ছাড়াও বিজ্ঞান ও গণিতের নানা বিষয়ের জন্য এই ফোরামে অংশগ্রহণ করলে স্কিল ইম্প্রুভ করতে পারবে।