# একজন নন-প্রোগ্রামার যা করতে পারেন
## শোনা শুরু করুন

ওপেন সোর্স-এ সবকিছুতেই অন্যরা জড়িত।

আপনি একটি দলে যোগ দিতে চাইছেন, এবং এর অর্থ হল সম্প্রদায়টি এবং এটি কীভাবে কাজ করে তা বোঝা।

একটি প্রকল্পে প্রবেশ করে "হাই, আমার মনে হয় এই প্রকল্পটি কী করা উচিত" বলা সাধারণত ভালো জিনিস হিসাবে নেওয়া হয় না।

কিছু প্রকল্প এই ধরণের পদ্ধতিকে স্বাগত জানাতে পারে, কিন্তু যদি প্রকল্পটি দীর্ঘদিন ধরে চলছে, তাহলে সেই মনোভাব গ্রহণের সম্ভাবনা কম।
**প্রকল্পের কী প্রয়োজন তা জানার জন্য শোনাই সর্বোত্তম উপায়।**

১. **একটি মেইলিং তালিকায় যোগদান করুন**: অনেক প্রকল্পের জন্য, মেইলিং তালিকা হল প্রকল্পের উন্নয়ন সম্পর্কে যোগাযোগের প্রধান মাধ্যম।

বড় প্রকল্পে, বেছে নেওয়ার জন্য অনেক মেইলিং তালিকা রয়েছে।

উদাহরণস্বরূপ, PostgreSQL প্রকল্পের মেইলিং তালিকা পৃষ্ঠায় কমপক্ষে ১২টি ব্যবহারকারী-ভিত্তিক তালিকা এবং ছয়টি বিকাশকারী তালিকা রয়েছে।

আমি আপনাকে প্রধান ব্যবহারকারী-ভিত্তিক তালিকা এবং মূল বিকাশকারী তালিকা অনুসরণ করার পরামর্শ দিচ্ছি যেখানে আপনি শুনতে শুরু করবেন।

২. **একটি ব্লগ অনুসরণ করুন**: মূল ডেভেলপারদের দ্বারা পরিচালিত ব্লগগুলি প্রায়শই ভবিষ্যতের রিলিজে কী আসছে,
এবং সেখানে পৌঁছানোর জন্য কী কী প্রয়োজন সে সম্পর্কে তথ্য দেয়। একটি প্ল্যানেট সাইট প্রকল্পের সাথে সম্পর্কিত অনেক উৎস থেকে সংবাদ এবং ব্লগ এন্ট্রি একত্রিত করে।

যদি planet.gnome.org বা planet.mysql.com এর মতো কোনও প্ল্যানেট সাইট থাকে, তাহলে সেখান থেকে শুরু করুন। "planet <projectname>" লিখে গুগলে অনুসন্ধান করুন।

৩. **একটি IRC চ্যানেলে যোগদান করুন**: অনেক ওপেন সোর্স প্রকল্পে ডেডিকেটেড ইন্টারনেট রিলে চ্যাট (IRC) চ্যানেল থাকে যেখানে ডেভেলপার এবং ব্যবহারকারীরা সমস্যা এবং উন্নয়ন নিয়ে আলোচনা করতে আড্ডা দেয়।
চ্যানেলটির নাম এবং এটি কোন IRC নেটওয়ার্কে পাওয়া যায় তার বিশদ জানতে প্রকল্পের ওয়েবসাইটটি দেখুন।

**টিকিট নিয়ে কাজ করুন**

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

এই ক্ষেত্রগুলিকে একটি প্রকল্পে আপনার পা রাখার সহজ উপায় হিসেবে দেখুন।

বেশিরভাগ প্রকল্পের একটি সর্বজনীনভাবে দৃশ্যমান সমস্যা টিকিট সিস্টেম থাকে, যা প্রকল্পের ওয়েবসাইটের প্রথম পৃষ্ঠা থেকে লিঙ্ক করা হয় এবং ডকুমেন্টেশনে অন্তর্ভুক্ত থাকে।

এটি ব্যবহারকারী এবং ডেভেলপারদের মধ্যে যোগাযোগের প্রাথমিক মাধ্যম। এটিকে আপডেট রাখা প্রকল্পকে সাহায্য করার একটি দুর্দান্ত উপায়।

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

৪. **একটি বাগ নির্ণয়**: বাগগুলি প্রায়শই খারাপভাবে রিপোর্ট করা হয়।

একটি বাগ নির্ণয় এবং ট্রাইএজিং ডেভেলপারদের সমস্যার সুনির্দিষ্ট দিকগুলি খুঁজে বের করার সময় সময় বাঁচাতে সাহায্য করতে পারে।

যদি কোনও ব্যবহারকারী রিপোর্ট করেন, "আমি যখন X করি তখন সফ্টওয়্যারটি কাজ করে না," তাহলে সেই সমস্যার মধ্যে কী কী যায় তার সুনির্দিষ্ট দিকগুলি খুঁজে বের করার জন্য কিছু সময় ব্যয় করুন।

এটি কি পুনরাবৃত্তিযোগ্য? আপনি কি বারবার সমস্যাটি তৈরি করার জন্য পদক্ষেপের একটি সেট তৈরি করতে পারেন? আপনি কি সমস্যাটি সংকুচিত করতে পারেন, যেমন শুধুমাত্র একটি ব্রাউজারে ঘটছে কিন্তু অন্য ব্রাউজারে নয়, অথবা একটি ডিস্ট্রো কিন্তু অন্য ব্রাউজারে নয়?

যদিও আপনি জানেন না যে সমস্যাটি কী, পরিস্থিতি সংকুচিত করার জন্য আপনি যে প্রচেষ্টা করেন তা অন্য কারও পক্ষে এটি ঠিক করা সহজ করে তোলে।

আপনি যা আবিষ্কার করেন, তা সকলের দেখার জন্য বাগ সিস্টেমের টিকিটে যুক্ত করুন।

৫. **সংশোধিত বাগগুলি বন্ধ করুন**: প্রায়শই কোডবেসে বাগগুলি ঠিক করা হয় কিন্তু তাদের সম্পর্কে রিপোর্ট করা টিকিট টিকিটিং সিস্টেমে আপডেট করা হয় না।

এই ক্রাফ্টটি পরিষ্কার করা সময়সাপেক্ষ হতে পারে, তবে এটি পুরো প্রকল্পের জন্য মূল্যবান।

এক বছরেরও বেশি পুরানো টিকিটের জন্য টিকিট সিস্টেমে জিজ্ঞাসা করে শুরু করুন এবং দেখুন বাগটি এখনও বিদ্যমান কিনা।

বাগটি ঠিক করা হয়েছে কিনা এবং বন্ধ করা যেতে পারে কিনা তা দেখতে প্রকল্পের রিলিজ পরিবর্তন লগটি পরীক্ষা করুন।

যদি এটি ঠিক করা হয়েছে বলে জানা যায়, তাহলে টিকিটের সংস্করণ নম্বরটি নোট করুন এবং এটি বন্ধ করুন।

সফ্টওয়্যারের সর্বশেষ সংস্করণ দিয়ে বাগটি পুনরায় তৈরি করার চেষ্টা করুন।

যদি এটি সর্বশেষ সংস্করণ দিয়ে পুনরায় তৈরি করা না যায়, তাহলে টিকিটে এটি লিখে রাখুন এবং বন্ধ করে দিন।

যদি এটি এখনও বিদ্যমান থাকে, তাহলে টিকিটেও এটি লিখে রাখুন এবং এটি খোলা রাখুন।

কোডের সাথে কাজ করা
সকল অভিজ্ঞতা স্তরের প্রোগ্রামাররা প্রকল্পের কোডের সাথে সাহায্য করতে পারে।

ভাববেন না যে আপনার প্রিয় প্রকল্পে প্রকৃত অবদান রাখার জন্য আপনাকে একজন কোডিং প্রতিভা হতে হবে।

যদি আপনার কাজের ক্ষেত্রে কোড পরিবর্তন জড়িত থাকে, তাহলে প্রকল্পটি অবদানকারীদের কাছ থেকে কোড পাওয়ার জন্য যে পদ্ধতি ব্যবহার করে তা অনুসন্ধান করুন।

প্রতিটি প্রকল্পের নিজস্ব কর্মপ্রবাহ থাকে, তাই কোড জমা দেওয়ার আগে এটি কীভাবে করবেন তা জিজ্ঞাসা করুন।

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

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