প্রোগ্রামিংয়ের আশ্চর্য জগতে স্বাগত!
তোমাদের মধ্যে কেউ কেউ ইংরেজি সিনেমা দেখো। আবার অনেকেই দেখো না। তোমরা যারা ইংরেজি সিনেমা দেখো, প্রোগ্রামার শব্দটা শুনলেই তোমাদের মনে ভেসে ওঠে উশকো-খুশকো চুলের পুরু চশমা পরিহিত কোনো তরুণ, যে কী না ঠাস ঠাস করে দ্রুতলয়ে কম্পিউটারের কিবোর্ডের কি চাপছে আর একের পর এক নিরাপত্তা ভেদ করে ঢুকে যাচ্ছে বিভিন্ন সিস্টেমে, মানে হ্যাকিং করছে আর কী। আবার তোমরা যারা সিনেমা তেমন একটা দেখো না, প্রোগ্রামার শব্দটা শুনলে তোমাদের মনে ভেসে উঠবে গোবেচারা ধরনের কোনো যুবক যে অফিসের কম্পিউটার টেবিলের সামনে বসে অনবরত টাইপ করে চলে, আর আশেপাশে বস না থাকলে ফেসবুক খুলে বসে থাকে! এখানে মজার ব্যাপার হচ্ছে কম্পিউটার বলতেই আমরা যেমন মনিটর-কীবোর্ড কিংবা ল্যাপটপ বুঝি সেটি কিন্তু ঠিক হয়। যেই যন্ত্র কম্পিউট অর্থাৎ গণনা করতে পারে, সেটিই কম্পিউটার। হ্যাঁ, তোমার মোবাইল ফোন কিংবা ক্যালকুলেটরও একটি ছোট্ট কম্পিউটার। আবার গাড়ী কিংবা ওভেন – এখানেও আছে কম্পিউটার। এবারে আরেকটি মজার তথ্য দেই। প্রোগ্রামার বলতেই বেশিরভাগ মানুষের সামনেই কোনো ছেলের অবয়ব ভেসে উঠে, যদিও পৃথিবীর প্রথম প্রোগ্রামার ছিল একটি মেয়ে, অ্যাডা লাভলেস তার নাম।
প্রোগ্রামিং কী
তোমরা জানো, কম্পিউটারকে মোটা দাগে দুইটা অংশে পৃথক করা হয়, হার্ডওয়্যার ও সফটওয়্যার। হার্ডওয়্যার হচ্ছে বিভিন্ন যন্ত্রাংশ আর সফটওয়্যার হচ্ছে সেসব যন্ত্রাংশ চালাবার জন্য লেখা নির্দিষ্ট সংকেত বা কোড। হার্ডওয়্যার কীভাবে কী করবে, সেটি নির্ধারণ করে সফটওয়্যার, যাকে আমরা কম্পিউটার প্রোগ্রামও বলে থাকি। কম্পিউটার প্রোগ্রাম হচ্ছে এক বিশেষ ধরণের ভাষায় লেখা সংকেত, যেগুলো সাজানো থাকে এমনভাবে যাতে করে কম্পিউটারের হার্ডওয়্যার সহজেই বুঝতে পারে তাকে ঠিক কোন কাজটা কীভাবে করতে হবে। পৃথিবীতে মানুষের সাথে মানুষের যোগাযোগের জন্য যেমন অনেক ভাষা আছে, তেমনি কম্পিউটারের জগতেও অনেক ভাষা আছে, যেগুলোকে বলে প্রোগ্রামিং ল্যাঙ্গুয়েজ। যেমন: সি, সি প্লাস প্লাস, জাভা, পাইথন, পিএইচপি ইত্যাদি। এসব ভাষার কোনো একটি বেছে নিয়ে সেই ভাষার নিয়মকানুন মেনে ঠিকমতো কোড লিখলে তৈরি হয়ে যাবে কম্পিউটার প্রোগ্রাম বা সফটওয়্যার। তবে ভাষার নিয়মকানুন ঠিক রেখে শুধু কোড লিখে গেলেই সেটি প্রোগ্রাম হবে না, যেমনটি বাংলা ভাষায় নিয়মকানুন মেনে হাবিজাবি লিখলেই সেটি কবিতা হবে না। হ্যাঁ, কম্পিউটার প্রোগ্রামিংয়ে ভালো হতে হলে কবিদের মতো সৃজনশীল হওয়া চাই। সাথে অবশ্য আরেকটি জিনিস চাই- যুক্তি বা লজিক।
প্রোগ্রামারের কাজ কী
প্রোগ্রামারের কাজ হচ্ছে প্রোগ্রাম লেখা। প্রোগ্রামগুলো বিভিন্ন ধরনের সফটওয়্যার হতে পারে। যেমন, গেমস, মোবাইল অ্যাপ্লিকেশন, সাধারণ কোনো ওয়েবসাইট কিংবা ফেসবুকের মতো বিশাল ওয়েব অ্যাপ্লিকেশন, গুগলের মতো সার্চ ইঞ্জিন, কম্পিউটার ভাইরাস, অপারেটিং সিস্টেম বা পরীক্ষার রুটিন তৈরি করার মতো সফটওয়্যার। দুনিয়ায় যে কত রকমের সফটওয়্যার আর কত কাজে যে সেগুলো ব্যবহার হচ্ছে, তার কোনো হিসাব নেই। প্রোগ্রামাররা নিত্য নতুন সফটওয়্যার তৈরি করে চলেছেন। এত এত সফটওয়্যার, তাহলে পৃথিবীর সব সফটওয়্যার তো বানানো হয়ে যাবে একদিন, এমন ভাবনা কি তোমার মনে আসছে? মানুষ তো কত শত বছর ধরে গান গাইছে-লিখছে। তাই বলে কি পৃথিবীর সব গান লেখা হয়ে গেছে?
প্রোগ্রামিং ক্যারিয়ার
বিভিন্ন ধরণের প্রতিষ্ঠানে কমবেশি কাজের সুযোগ থাকলেও অধিকাংশ প্রোগ্রামার কাজ করতে চায় সফটওয়্যার তৈরির প্রতিষ্ঠানে। একজন ভালো প্রোগ্রামারের জন্য দেশে-বিদেশে কাজ করার সুযোগ রয়েছে ঢের। দেশের সীমারেখা কখনও কাজের প্রতি বাধা হয়ে দাঁড়ায় না। প্রতি বছরই বাংলাদেশের শীর্ষ কয়েকজন প্রোগ্রামার চাকরি নিয়ে চলে যাচ্ছে গুগল, মাইক্রোসফট, ফেসবুকের মতো বিশ্বখ্যাত প্রতিষ্ঠানে। এছাড়া দেশের ভেতরেও কাজের সুযোগ ক্রমাগতই বাড়ছে। একজন ভালো প্রোগ্রামারের কাছে প্রোগ্রামিং হচ্ছে নেশার মতো। নেশাকে পেশা হিসেবে নেওয়ার সৌভাগ্য পৃথিবীর খুব কম সংখ্যক মানুষ লাভ করে, আর সেই স্বল্পসংখ্যক মানুষদের মধ্যে প্রোগ্রামাররা অন্যতম।
উচ্চশিক্ষায় প্রোগ্রামিং
এ তো গেলো সেসব মানুষের কথা যারা প্রোগ্রামিংকে পেশা হিসেবে নেবে। কিন্তু তোমরা সবাই নিশ্চয়ই বড় হয়ে প্রোগ্রামার হবে না। বাংলাদেশের সব ছেলেমেয়ে প্রোগ্রামিং করা শুরু করলে আর সব কাজ করবে কে? হ্যাঁ, তোমরা এখন কিশোর, আর কবছর পরেই হয়ত তোমাদের অনেকেই পা দেবে বিশ্ববিদ্যালয়ে আর তখনই তোমরা ঠিক করে নেবে তোমাদের ভবিষ্যত। তবে তুমি যদি বিশ্ববিদ্যালয়ে উচ্চ শিক্ষা নিতে চাও, তাহলে তোমার প্রোগ্রামিং কিন্তু জানাই লাগবে। গণিত-বিজ্ঞানের নানান বিষয়, এমনকি বায়োলজি নিয়ে লেখাপড়া করতেও প্রোগ্রামিং দক্ষতা কাজে লাগে। কম্পিউটারে কোড লিখে হরেক রকম সমস্যার সমাধান করতে হয়। তবে প্রোগ্রামিং কেবল বিজ্ঞান কিংবা প্রকৌশলের ছাত্র-ছাত্রীদেরই কাজে লাগে এমনটি নয়, অন্য অনেকেরও কাজে আসে। তাই তো এখন পশ্চিমা বিশ্বের উন্নত দেশগুলোতে স্কুল থেকেই প্রোগ্রামিং শেখার শুরু হয়। প্রোগ্রামিং তোমাকে অন্যভাবে চিন্তা করতে শেখাবে, সমস্যার বিশ্লেষন ও সমাধান করার নতুন নতুন উপায় বাতলে দেবে। প্রোগ্রামিংয়ের চর্চা তোমার মস্তিষ্ককে সাহায্য করবে যেকোনো বড় সমস্যাকে ভয় না পেয়ে সেটিকে ছোট ছোট করে সমাধান করতে। তাই আধুনিক বিশ্বের বিশ্বনাগরিক হতে গেলে প্রোগ্রামিংটা কিন্তু জানা চাই।
প্রোগ্রামিং কিভাবে শিখব
তোমরা যারা গান শেখো, তারা যেমন নিয়মিত গানের চর্চা করো, প্রোগ্রামিংয়ের বেলাতেও তেমনি চর্চা করতে হয়। নিয়মিত লেখাপড়া আর চর্চার মাধ্যমেই তুমি হয়ে উঠতে পারবে একজন দক্ষ প্রোগ্রামিং শিল্পী। প্রোগ্রামিং শেখার জন্য শুরুতে প্রয়োজন একটি বই, যা তোমাকে প্রোগ্রামিংয়ের শুরুটা দেখিয়ে দেবে, প্রয়োজন একটি কম্পিউটার, সাথে ইন্টারনেট থাকলে ভালো হয়। তবে সবচেয়ে বেশি প্রয়োজন সপ্তাহে গড়ে দশ-বারো ঘণ্টার মতো সময়। অবশ্যই পরীক্ষা চলাকালীন সময়টা ছাড়া। প্রোগ্রামিংয়ের বই কোথায় পাবে? দেশের বড় শহরগুলোর বইয়ের দোকানে প্রোগ্রামিংয়ের বই পাওয়া যায়, তবে সেগুলো বেশিরভাগই ইংরেজিতে। ইংরেজি বই পড়া অবশ্য তেমন কঠিন কোনো ব্যাপার নয়, একটু সাহস করে শুরু করে দিলেই হয়। আর বাংলা বই পড়তে চাইলে তোমরা cpbook.subeen.com ওয়েবসাইটে ঢুঁ মারতে পারো। এখানে বাংলা ভাষায় প্রোগ্রামিংয়ের উপর একটি বই ফ্রি দেওয়া আছে, যেটি কী না স্কুল-কলেজের ছাত্রছাত্রীদের কথা ভেবেই লেখা হয়েছে। এছাড়া ইন্টারনেটে ইংরেজিতে অনেক বই আছে প্রোগ্রামিং শেখার। সেগুলোর মধ্যে কিছু কিছু বই ফ্রি পাওয়া যায়। বই তো পেয়ে গেলে, তাহলে আর দেরি কেন? শুরু করে দাও।
প্রোগ্রামিং শেখার অনলাইন স্কুল
ছেলেবেলায় গান শেখার জন্য গানের স্কুল থাকে, নাচ শেখার জন্য নাচের স্কুল। ক্রিকেট খেলা শেখার জন্য ক্রিকেট একাডেমি। কী চমৎকারই না হতো বাংলাদেশে যদি প্রোগ্রামিং শেখার জন্য কোনো প্রোগ্রামিং স্কুল থাকতো! কিন্তু সমস্যা হচ্ছে কী, খুব ভালো প্রোগ্রামার না হলে অন্যকে প্রোগ্রামিং শেখানো যায় না। আর আমাদের দেশে খুব ভালো প্রোগ্রামাররা অনেক ব্যস্ত থাকেন বলে প্রোগ্রামিং শেখানোর বিষয়টি তাঁরা ভাবেন না। এই সমস্যার একটি সমাধান অবশ্য বের হয়েছে। প্রোগ্রামিং ও অন্যান্য বিষয় শেখার কিছু ওয়েবসাইট আছে, যেখানে অনলাইন কোর্স করা যায়। বেশিরভাগ কোর্সই বিনামূল্যে করা যায়। এরকম ওয়েবসাইগুলোর মধ্যে অন্যতম হচ্ছে coursera.org, edx.org ও udacity.com। তবে বাংলা ভাষায়ও প্রোগ্রামিং, সফটওয়্যার ডেভেলাপমেন্ট, ওয়েব ও মোবাইল অ্যাপ্লিকেশন ডেভেলাপমেন্ট শেখার জন্য অনলাইনে ভিডিও ও কোর্স পাওয়া যায়।