গিটহাবে যে কয়েকজন প্রোগ্রামারের লেখা কোড পড়লে আমার মস্তিষ্কে এড্রেনালিনের ক্ষরণ বেড়ে যায় তার ভিতর Randall Degges অন্যতম। আমেরিকার সান ফ্রানসিস্কো বে এরিয়ায় মানুষ, গিটহাবে যোগ দিয়েছেন ২০০৯ সালের ৩১ মার্চ। এখন পর্যন্ত প্রায় ১২৪ টা জনপ্রিয় রিপোজিটরির মূল হোতা আর পাইথন, রুবি, সি++, জাভাস্ক্রিপ্ট সবকিছুতেই সমান সিদ্ধহস্ত। তার নিজস্ব ব্লগে লেখা ‘Programming and Motivation’ পোস্টে তিনি এমন কিছু পরামর্শ শেয়ার করেছেন যা যে কোন মুষড়ে পড়া প্রোগ্রামারকে পথ দেখাতে পারে মূুহুর্তে। আমি সেটার ভাবানুবাদ করে দিচ্ছি এখানে।

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

আমার ব্যক্তিগত অভিজ্ঞতায় আমি দেখেছি যে প্রোগ্রামিং-দক্ষতা সরাসরি প্রেরণার সাথে সম্পর্কিত। যেহেতু আজকে আমি অস্থির মুডে আছি, আমি ভাবলাম ‘প্রোগ্রামিং আর প্রেরণা’ নিয়ে একটা ছোট সাইজের ভাষণ দিই।

যেভাবে ভাল সফটওয়্যার তৈরি হয়

ভাল সফটওয়্যার হল গভীর অনুরাগের ফলাফল। তুমি অস্থির টাইপের প্রোগ্রামার হলে তোমার কথা বাদ- তবে যদি তুমি প্রত্যেকদিন ঘুম থেকে উঠেই তোমার কাজকে খিস্তি দিতে দিতে কাজ করতে শুরু কর, সেক্ষেত্রে তোমার সেই কাজে এই খিস্তির ছাপ অবশ্যই থাকবে।

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

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

যেভাবে মজা নিবা

প্রোগ্রামিং একটা মানসিক কর্ম (কর্মই ধর্ম!)। যেকোন মানসিক কাজের মতই, যদি তুমি এটাকে ভুলভাবে কর তবে তুমি ফিনিশ, একেবারে শেষ।

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

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

এইভাবে আমি কোড লেখা আর ক্রমাগত সব বিষয় নিয়ে চিন্তা-ভাবনা বাদ দিয়ে শুধু একটা সিঙ্গেক টাস্কের উপর ফোকাস করতে পারি। এতে পুরো কাজটা ভালভাবে শেষ করার জন্য নিরলসভাবে কাজ করে যেতে পারি।

এর দ্বারা তুমি শুধু তোমার কাজের উপরে ফোকাস করতে পারবা তা নয়। বরং যখন এক-একটা কাজ শেষ করবা তখন ব্যাপক মজাও পাবা। প্রত্যেকবার আমি যখন কাজ করা শেষ করি, আমার ভিতরে একটা অস্থির রকমের ফিলিংস আসে। আর এই ফিলিংসটা আমাকে আরো প্রেরণা দেয়।

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

গাঞ্জা না, কফি খাও

আমি ডাক্তার না, তবে কফি আমারে অস্থির ফিলিংস দেয়। এটা সত্যি যে কিছু মানুষের শরীর-মন কফিতে তেমন একটা সাড়া দেয় না, তবে আমার ক্ষেত্রে কফি হল প্রেরণার উৎস। আবার কফি খাইলে আমার যে শুধু অস্থির ফিলিংসই হয় তা না কিন্তু। এটা আমার ভিতরে টেকনিকাল কৌতূহলের জাগরণ ঘটায় আর নতুন কিছু করার মুডে নিয়ে যায়।

কফি আর প্রোগ্রামিং মানে হল ঐন্দ্রজালিক মিশ্রণ। (বোঝ? বোঝবা তো না!)

তোমার লক্ষ্যকে উপলব্ধি কর

প্রত্যেকেরই নিজস্ব লক্ষ্য আছে - তোমারটা কি? তুমি কি চাও গিটহাবে রাখা তোমার ওপেনসোর্স প্রজেক্টির কয়েক লক্ষ ফলোয়ার থাক? তুমি কি তোমার সেই প্রজেক্টটাকে লঞ্চ করতে চাও যেটার উপর বিগত তিনমাস কাজ করছ? তুমি কি এইমাসে ৫০০ জন নতুন ইউজার চাও?

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

অগ্রগতি কেবল তখনই হয় যখন তুমি কঠিন পরিশ্রম কর, যা চাও তার জন্য সংগ্রাম কর আর যতক্ষণ সেটা না পাও ততক্ষণ সংগ্রাম চালিয়ে যাও।

এর পরেরবার যখন তোমার কাজ করতে ভাল লাগবে না তখন তুমি কি কি করতে চাও তা নিয়ে কয়েক মিনিট চিন্তা কর। আর চিন্তা করে শেষে কাজে লেগে যাও। মন খারাপ করে সময় পার করার মানে হল সময় অপচয় করা। সবসময় চেষ্টা কর সময় থাকতে সাধন করার (লালন বলেন, সময় গেলে সাধন হবে না!) আর নিজের কাজটা যথাসম্ভব উপভোগ করার।

দিনশেষে, তোমার সফলতা বা ব্যর্থতা তোমার কাজের উপরেই নির্ভর করে। নিজেকে সামনে নিয়ে যাও আর রাস্তায় থেম না যত যা যাই আসুক।

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

প্রোগ্রামিংয়ের জন্য সবসময় মোটিভেটেড থাকা খুব গুরুত্বপূর্ণ। কারণ তোমার মুড সরাসরি তোমার কাজকে প্রভাবিত করবে।

এখন পড়া বন্ধ কর আর কিছু কোড লেখ।