6 পাঠ আমি ওপেন সোর্স প্রকল্পের বিকাশ থেকে শিখেছি

একটি ডেটা সায়েন্টিস্টের দৃষ্টিকোণ

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

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

গত কয়েক বছরে, আমি সৌভাগ্যবান ছিলাম যে ওপেন-সোর্স-এর সাথে যুক্ত হতে পেরেছি এবং বেশ কয়েকটি প্যাকেজ বিকাশ ও প্রধান করার সুযোগ পেয়েছি!

ওপেন সোর্স ডেভেলপ করা শুধু কোডিং এর চেয়ে বেশি কিছু

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

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

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

যাইহোক, আপনার প্যাকেজের ব্যবহারযোগ্যতার উপর ডকুমেন্টেশনের প্রভাবকে অবমূল্যায়ন করবেন না! আপনি এটিকে জটিল অ্যালগরিদম ব্যাখ্যা করতে, বিস্তৃত টিউটোরিয়াল দিতে, ব্যবহারের ক্ষেত্রে দেখাতে এবং এমনকি ইন্টারেক্টিভ উদাহরণগুলির জন্য অনুমতি দিতে ব্যবহার করতে পারেন।

বিশেষ করে ডেটা সায়েন্স-সম্পর্কিত সফ্টওয়্যার বোঝা কঠিন হতে পারে যখন এতে জটিল অ্যালগরিদম জড়িত থাকে। একটি গল্পের মত এই ব্যাখ্যাগুলিকে প্রায়শই এগুলি আরও স্বজ্ঞাত করতে আমাকে সাহায্য করেছে।

আমাকে বিশ্বাস করুন, ভাল ডকুমেন্টেশন লেখা নিজেই একটি দক্ষতা।

আরেকটি সুবিধা হল যে কঠিন ডকুমেন্টেশন লেখা সমস্যাগুলিতে ব্যয় করা সময়কে কম করে। ব্যবহারকারীদের প্রশ্ন জিজ্ঞাসা করার কম কারণ আছে যদি তারা আপনার ডকুমেন্টেশনে উত্তর খুঁজে পায়।

কিভাবে একটি ওভারভিউ কীবার্ট কাজ ডকুমেন্টেশন পাওয়া যায়.

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

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

সম্প্রদায়ের সাথে জড়িত থাকার মাধ্যমে আপনি তাদের সমস্যা এবং বাগগুলি ভাগ করতে প্রলুব্ধ করেন, তবে আরও বিকাশের জন্য বৈশিষ্ট্য অনুরোধ এবং দুর্দান্ত ধারণাগুলিও পান! এই সব তাদের জন্য কিছু তৈরি করতে সাহায্য করে.

ওপেন-সোর্স সম্প্রদায়টি তার অংশগুলির যোগফলের চেয়ে সত্যিই বেশি

BERTopic-এ অনেকগুলি মূল বৈশিষ্ট্য যেমন অনলাইন বিষয় মডেলিং, প্রয়োগ করা হয়েছে যেহেতু তারা এর ব্যবহারকারীদের দ্বারা অত্যন্ত অনুরোধ করা হয়েছিল। ফলস্বরূপ, সম্প্রদায়টি বেশ সক্রিয় এবং সমস্যাগুলি সনাক্ত করতে এবং নতুন বৈশিষ্ট্যগুলি বিকাশে একটি অসাধারণ সাহায্য করেছে৷

সম্প্রদায়ের দ্বারা বৈশিষ্ট্য অনুরোধ বাস্তবায়ন একটি দীর্ঘ পথ যায়! আলোচনার একটি অংশ এখানে.

আপনার প্যাকেজ লক্ষ লক্ষ বার ব্যবহার করা হোক বা মাত্র কয়েকবার, একটি তৈরি করা ওপেন-সোর্স, MLOps, ইউনিট টেস্টিং, API ডিজাইন ইত্যাদি সম্পর্কে আরও জানার একটি চমৎকার সুযোগ। আমার প্রতিদিনের চাকরিতে আমার চেয়ে বেশি।

সম্প্রদায়ের সাথে মিথস্ক্রিয়া থেকে শেখার একটি বিশাল সুযোগ রয়েছে। তারাই আপনাকে বলে যে তারা কোন ডিজাইন পছন্দ করে বা না। মাঝে মাঝে, আমি কয়েক মাস ধরে একই সমস্যাটি বেশ কয়েকবার পপ আপ করতে দেখেছি। এটি ইঙ্গিত দেয় যে আমার ডিজাইনটি পুনর্বিবেচনা করা উচিত কারণ এটি আমার প্রত্যাশার মতো ব্যবহারকারী-বান্ধব ছিল না!

তার উপরে, ওপেন-সোর্স প্রকল্পগুলি বিকাশ করা আমাকে অন্যান্য বিকাশকারীদের সাথে সহযোগিতা করার সুযোগ দিয়েছে।

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

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

সৌভাগ্যবশত, আপনি প্রশ্নের উত্তর দেওয়ার সময়, ব্যবহারের ক্ষেত্রে দেখান ইত্যাদির সময় আপনাকে সাহায্য করার জন্য আপনার সম্প্রদায়ের দিকে তাকাতে পারেন।

গত কয়েক বছর ধরে, পরিবর্তনগুলি ভাঙার ক্ষেত্রে আমি একটু বেশি শিথিল হতে শিখেছি। বিশেষ করে যখন এটি নির্ভরতা নিয়ে উদ্বিগ্ন হয়, কখনও কখনও আপনি এত কিছু করতে পারেন!

আপনার প্যাকেজটি কত ঘন ঘন ব্যবহার করা হয় তা জানা এটি কতটা জনপ্রিয় তা বোঝার জন্য একটি অসাধারণ সাহায্য। যাইহোক, অনেকে এখনও গুণমান এবং জনপ্রিয়তার সাথে একটি প্যাকেজ সমান করতে গিথুব তারকা ব্যবহার করছেন।

সঠিক মেট্রিক সংজ্ঞায়িত নিশ্চিত করুন. সঠিক বিপণনের কারণে গিটহাব তারকাদের অতিরঞ্জিত করা যেতে পারে। অনেক তারকা জনপ্রিয়তা বোঝায় না।

ডেটা সায়েন্টিস্ট হিসাবে, আমাদের প্রথমে বুঝতে হবে যে আমরা ঠিক কী পরিমাপ করছি। GitHub তারকারা একটি প্যাকেজে একটি তারকা প্রদানকারী ব্যবহারকারী ছাড়া আর কিছুই নয়। এর মানে এই নয় যে তারা সফটওয়্যারটি ব্যবহার করেছে বা এটি আসলে কাজ করছে!

KeyBERT এর জন্য ডাউনলোডের সংখ্যা। গিথুব তারার চেয়ে অনেক ভালো সূচক।

টেকনিক্যালি, আমি আমার রেপো স্টার করার জন্য এক হাজার লোককে দিতে পারি। পরিবর্তে, আমি ডাউনলোড এবং ফর্কের মতো বিভিন্ন পরিসংখ্যানের উপর ফোকাস করি, তবে আমি প্রতিদিন কতগুলি সমস্যা পাই।

উদাহরণস্বরূপ, আপনার প্যাকেজগুলি বৈশিষ্ট্যযুক্ত হলে এটি দুর্দান্ত হ্যাকার নিউজ তবে এটি আপনাকে বলে না যে এটি ধারাবাহিকভাবে ব্যবহৃত হয় কিনা।

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

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

সাথে টপিক মডেলিং এর মডুলার ডিজাইন BERTopic.

নতুন বৈশিষ্ট্যগুলি বিকাশ করার সময় একজন মনোবিজ্ঞানীর দৃষ্টিভঙ্গি গ্রহণ করা কীসের উপর ফোকাস করতে হবে তা জানা আরও সহজ করে তুলেছে। ব্যবহারকারীরা কি খুঁজছেন? অ্যালগরিদম ব্যাখ্যা করে এমন একটি উপায়ে আমি কীভাবে কোড করতে পারি? কেন ব্যবহারকারীরা আসলে এই প্যাকেজ ব্যবহার করছেন? আমার কোডের প্রধান অসুবিধাগুলি কি কি?

গড় ব্যবহারকারী ড্রাইভ গ্রহণ বুঝতে সময় নেওয়া

উপরের সবগুলি প্রায়ই একটি মৌলিক কিন্তু গুরুত্বপূর্ণ নিয়মের দিকে পরিচালিত করে;
এটি সুপার সিম্পল রাখুন

ব্যক্তিগতভাবে, যদি আমি একটি নতুন প্যাকেজ ইনস্টল করা এবং ব্যবহার করা কঠিন মনে করি, তবে আমার কর্মপ্রবাহে এটি গ্রহণ করার সম্ভাবনা কম।

আপনি যদি আমার মত, AI, ডেটা সায়েন্স বা সাইকোলজি সম্পর্কে অনুরাগী হন, তাহলে অনুগ্রহ করে নির্দ্বিধায় আমাকে যোগ করুন লিঙ্কডইন অথবা আমাকে অনুসরণ করুন Twitter. আপনি আমার উপর আমার কিছু বিষয়বস্তু খুঁজে পেতে পারেন ব্যক্তিগত ওয়েবসাইট.

একটি উৎস ক্রেডিট ছাড়া সমস্ত ছবি লেখক দ্বারা তৈরি করা হয়েছে

ওপেন-সোর্স প্রকল্পের বিকাশ থেকে আমি যে পাঠ শিখেছি তা উৎস থেকে পুনঃপ্রকাশিত https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-6e4617f26c?source=rss—-247f7cf60c5620—9via https://towardsdatascience.com/feed

<!–

->

সময় স্ট্যাম্প:

থেকে আরো ব্লকচেইন পরামর্শদাতা

ইরানি অ্যাসোসিয়েশন স্থিতিশীল ক্রিপ্টো নিয়ন্ত্রণের আহ্বান জানিয়েছে কারণ সরকার বিদেশী বাণিজ্যে ক্রিপ্টোর ব্যাপক ব্যবহারের পরিকল্পনা করছে

উত্স নোড: 1636661
সময় স্ট্যাম্প: আগস্ট 23, 2022

মেটা 'টিউলিপ' প্রবর্তন করেছে, একটি বাইনারি সিরিয়ালাইজেশন প্রোটোকল যা এআই এবং মেশিন লার্নিং কাজের চাপের জন্য প্রোটোকল নির্ভরযোগ্যতাকে সম্বোধন করে ডেটা স্কিম্যাটাইজেশনে সহায়তা করে

উত্স নোড: 1755699
সময় স্ট্যাম্প: নভেম্বর 12, 2022