Matplotlib प्रोजेक्ट

इस पेज पर, तकनीकी लेखन वाले उस प्रोजेक्ट की जानकारी दी गई है जिसे Google Season of Docs के लिए स्वीकार किया गया है.

प्रोजेक्ट की खास जानकारी

ओपन सोर्स संगठन:
मैटप्लोटलिब
टेक्निकल राइटर:
jeromev
प्रोजेक्ट का नाम:
Matplotlib एंट्री पाथ डेवलप करना
प्रोजेक्ट की अवधि:
स्टैंडर्ड लंबाई (तीन महीने)

प्रोजेक्ट का विवरण

परिचय

इस साल के Google Season of Docs के लिए, Matplotlib का प्रोजेक्ट सुझाव है कि ऐसा कॉन्टेंट बनाया जाए जिससे नए उपयोगकर्ताओं को Matplotlib के बारे में जानकारी मिल सके. Matplotlib एंट्री पाथ डेवलप करने के लिए, मैं मौजूदा दस्तावेज़ के बजाय एक अन्य तरीका सुझाता हूं. मैं इंडस्ट्री में टेक्निकल लेखक के तौर पर नई हूं. हालांकि, मेरा बैकग्राउंड शिक्षा और शिक्षा से जुड़े क्षेत्रों में है. तकनीकी लेखन और शिक्षा के बीच काफ़ी समानताएं हैं. दोनों में, ऐसा कॉन्टेंट बनाने पर फ़ोकस किया जाता है जो उपयोगकर्ताओं की समस्याओं को समझता हो और उन्हें दिए गए संसाधनों की मदद से, उनके टास्क पूरे करने में मदद करता हो.

इस संदर्भ में, Matplotlib दस्तावेज़ को नए उपयोगकर्ताओं के साथ सहानुभूति बढ़ाने के लिए बेहतर बनाया जाएगा. फ़िलहाल, ज़्यादातर कॉन्टेंट में रैंडमाइज़ किया गया डेटा और बिना लेबल वाले विज़ुअल शामिल हैं. ये Matplotlib के विज़ुअल और सुविधाओं को तुरंत दिखाने के लिए बेहतरीन हैं. हालांकि, Matplotlib का इस्तेमाल पहली बार करने वाले लोगों के लिए, डेटा को विज़ुअल में बदलना मुश्किल होता है.

एक्सपोज़िटरी अप्रोच में कॉन्टेक्स्ट, इस समस्या का हल है. असल दुनिया के उदाहरण को ध्यान में रखकर किसी प्रोसेस को लिखकर, हम यह दिखाते हैं कि उपयोगकर्ता किस माहौल में काम करता है. इससे, किसी लक्ष्य तक पहुंचने या किसी टास्क को पूरा करने की उम्मीद के मामले में, दस्तावेज़ और उपयोगकर्ता के बीच का संबंध बेहतर होता है.

उपयोगकर्ता का एक तय मकसद होता है. उदाहरण के लिए, जूते बनाने वाली कंपनी के डेटा साइंटिस्ट को समय के साथ खरीदारी के रुझानों को दिखाने के लिए, टीम को ग्राहक का डेटा पेश करना होगा. ऐसे में, उपयोगकर्ता को Matplotlib को नेविगेट करना सीखें और साथ ही, लाइब्रेरी में मौजूद टूल का इस्तेमाल करके, अपने काम को अपने समय पर पूरा करना सिखाएं.

दस्तावेज़ के साथ ज़्यादा जानकारी देने से, नए उपयोगकर्ता को विषय के बारे में ज़्यादा जानकारी मिल सकती है. उपयोगकर्ता का मकसद, दस्तावेज़ में बताए गए मकसद से मेल खाता हो. मुझे उम्मीद है कि मैं उस विज़न को पूरा कर पाऊंगा जिसके बारे में लीड डेवलपर टॉम कैसवेल ने 2017 में एक इंटरव्यू में बताया था. उन्होंने कहा था, “हमें ऐसा व्यक्ति चाहिए जो असल में लिख सके और उपयोगकर्ताओं के बारे में सोच सके. वह 200 पेजों की ‘Intro to Matplotlib’ किताब लिख सके और उसे दस्तावेज़ों में मुख्य एंट्री के तौर पर शामिल कर सके.”

एक्सपोज़िटरी राइटिंग का वैकल्पिक तरीका

मौजूदा दस्तावेज़ में, Matplotlib की सुविधाओं के बारे में बताया गया है. जैसे, उपयोगकर्ता इस लाइब्रेरी का इस्तेमाल करके क्या-क्या कर सकता है. उदाहरण के लिए, अक्सर ट्यूटोरियल में किसी ऐसे पैटर्न का इस्तेमाल किया जाता है जिसमें इस्तेमाल किए गए तरीके के बारे में जानकारी नहीं दी जाती.

{what the method does} -> {parameters} -> {returns} -> {related links} -> {examples}

प्रोग्रामिंग दस्तावेज़ और सहायता के साथ, अक्सर उपयोगकर्ता को यह समझने के लिए कोड को खुद चलाने का सुझाव दिया जाता है कि क्या होता है. प्रोग्रामिंग के बारे में जानने से, उपयोगकर्ता को विषय के बारे में बेहतर तरीके से समझने में मदद मिलती है. हालांकि, ट्रांसफ़ॉर्मेशन के बारे में जानने के लिए, बहुत कम कॉन्टेंट उपलब्ध है. दस्तावेज़ों की संख्या सीमित होने की वजह से, यह एक बड़ी चुनौती हो सकती है.

ज़्यादा डायग्राम, इमेज या अन्य विज़ुअल उपलब्ध कराने से, सीखने के नए अवसर पैदा करने में मदद मिलेगी. नीचे दिया गया स्ट्रक्चर, नए कॉन्टेंट के लिए टेंप्लेट के तौर पर भी काम करेगा. इसके अलावा, टेक्स्ट वाली इमेज या ग्राफ़िक जोड़ने से, कॉलआउट और कोचमार्क जैसी सुविधाओं का फ़ायदा मिल सकता है. कभी-कभी, इमेज में इस बात के संकेत न होने पर, इमेज में नेविगेट करना मुश्किल हो जाता है कि कोड को आउटपुट में कैसे या कहां बदला गया है. मुझे लगता है कि वीडियो में ऐसा कोई विज़ुअल एलिमेंट नहीं है जिससे विषयों को बेहतर तरीके से समझा जा सके.

{method explanation} -> {expository use case/scenario} -> {sample code} -> {parameters} -> {returns} -> {additional examples} -> {informational topic/subject affinity links}

दस्तावेज़ तैयार करने के लिए, एक्सपोज़िटरी राइटिंग का इस्तेमाल करने के इस वैकल्पिक तरीके में काफ़ी संभावनाएं हैं. डेटा को अलग-अलग तरह से दिखाने के लिए, उपयोगकर्ताओं को कई तरह के कॉन्सेप्ट दिखेंगे. इससे वे डेटा को विज़ुअलाइज़ करने की रणनीतियों को बेहतर तरीके से समझ पाएंगे. इस जानकारी से, उपयोगकर्ताओं को इन सुविधाओं का फ़ायदा पाने और इनमें नई चीज़ें जोड़ने में मदद मिल सकती है. ये सुविधाएं, असल इस्तेमाल के उदाहरणों के आधार पर बताई गई हैं.

Matplotlib की लोकप्रियता बढ़ने के साथ-साथ, लाइब्रेरी की लोकप्रियता भी बढ़ रही है. इसका मतलब है कि लाइब्रेरी को आसानी से इस्तेमाल किया जा सकता है और इसे ऐक्सेस करना भी आसान है. इन विशेषताओं की मदद से, पैटर्न और सामान्य रणनीतियों को दिखाया जा सकता है. ये पैटर्न और रणनीतियां, न सिर्फ़ कोड में बल्कि दस्तावेज़ में भी दिख सकती हैं. अगर Matplotlib, एकदम आसान और भरोसेमंद है, तो यह तकनीकी दस्तावेज़ के लिए भी ऐसा हो सकता है. यह तरीका, इसके बढ़ते इस्तेमाल और संसाधनों का दायरा बढ़ने से साफ़ तौर पर पता चलता है.

जब उपयोगकर्ताओं को कोई समस्या आती है, तो आम तौर पर वे उसे हल करने के लिए खोज का इस्तेमाल करते हैं. नेविगेट करने के लिए, खोज के मुख्य तरीके के तौर पर भरोसा करने के बजाय, उपयोगकर्ताओं को दस्तावेज़ में अपना करिक्यूलम बनाने के लिए कहना ज़्यादा असरदार हो सकता है. इस मामले में, जब कोई उपयोगकर्ता अपनी समस्या का हल खोजता है, तो अगर उसे कोई और समस्या आती है या उसे ज़्यादा जानकारी चाहिए, तो वह एम्बेड किए गए और पूरी जानकारी देने वाले लिंक का इस्तेमाल करेगा.

इसमें संगठन के सिस्टम में, नीचे से ऊपर की ओर जाने वाला आर्किटेक्चर शामिल होगा. Matplotlib में हर विषय के लिए, अफ़िनिटी ऑडियंस (एक जैसी पसंद वाले दर्शक) के लिंक और जानकारी वाले विषयों से जुड़ा एक बेहतरीन नेटवर्क है. इससे एक मज़बूत नेटवर्क बनाने में मदद मिलेगी. इस नेटवर्क में, उपयोगकर्ता अपने विषय पर नेविगेट करने और उस विषय से जुड़ी ज़्यादा से ज़्यादा जानकारी को एक्सप्लोर करने के दौरान, दस्तावेज़ों का इस्तेमाल जारी रखेगा.

रुकावटें

इस तरह के बड़े और ज़्यादा जानकारी वाले प्रोजेक्ट में हमेशा चुनौतियां आती हैं. इस उद्योग में एक नए तकनीकी लेखक के तौर पर, मेरे पास दस्तावेज़ लिखने के लिए स्फ़िंक्स और रीएसटी का सीमित अनुभव है. जब बात Matplotlib और Git की हो, तो मैं भी एक नौसिखिया हूं. इन चार सिस्टम को समझने और इनका इस्तेमाल करके, मिलकर काम करने और रिसर्च करने में समय लगेगा. मुझे कम्यूनिटी बॉन्डिंग के दौरान और उससे पहले, एंट्री लेवल पाथ के लिए ज़रूरी बुनियाद बनाने के लिए समय देना होगा. इस दौरान, अगर मुझे कॉन्सेप्ट और बुनियादी बातों में कोई समस्या आती है, तो मुझे ज़्यादा मदद पाने के लिए कम्यूनिटी से संपर्क करना होगा.

अलग-अलग टाइम ज़ोन और ऑनलाइन प्लैटफ़ॉर्म पर, साथ मिलकर काम करने के लिए भी कुछ बदलाव करने होंगे. इंडस्ट्री में लोग अलग-अलग तरह से बातचीत करते हैं. इसलिए, यह पक्का करना ज़रूरी है कि मैं सभी माध्यमों से लोगों तक पहुंच सकूं और वे मुझसे संपर्क कर सकें. मैं इस बात की पूरी जानकारी देता हूं कि किसी भी समय मेरी अलग-अलग उम्मीदें हैं. मैंने इस इंडस्ट्री में इस तरह का काम अभी-अभी शुरू किया है. हालांकि, मैं खुद को जवाबदेह मानती हूं और सुझावों और आलोचनाओं को स्वीकार करती हूं. मुझे लगता है कि ये गुण किसी भी फ़ील्ड के लिए अहम हैं.

साथ ही, उपयोगिता की जांच करना, दस्तावेज़ का एक सेक्शन है. मेरे हिसाब से, इससे Matplotlib के एंट्री पाथ को फ़ायदा होगा. कॉन्टेंट की उपयोगिता के लिए सर्वे करने से, उपयोगकर्ता की प्रोफ़ाइल यानी पर्सोना बनाने में मदद मिलती है. उपयोगकर्ता का अनुभव, उनका उद्योग, और समस्या हल करने का इतिहास जैसी जानकारी अहम होती है. इनसे, प्रोसेस के बारे में जानकारी देने वाली भाषा बनाने में मदद मिलती है. जब लेखन, पाठकों के लेवल के हिसाब से होता है, तो कॉन्टेंट सिर्फ़ निर्देश देने वाला नहीं होता.

इस्तेमाल करने लायक होने की जांच को लगातार करने में अक्सर बड़ी समस्याएं आती हैं. अगर कॉन्टेंट डेवलपमेंट के दौरान टेस्टिंग का एक ही उदाहरण दिया गया हो, तो यह बहुत आम बात है. नियमित तौर पर इस्तेमाल करने से जुड़ी जांच करने से, कॉन्टेंट को बेहतर बनाने में मदद मिलती है. उम्मीद है कि मैं एक शेड्यूल सेटअप करूं या Matplotlib कम्यूनिटी के साथ बार-बार उपयोगिता की जांच करूं.

नतीजा

मुझे खाली समय में Python और Matplotlib का इस्तेमाल करने का थोड़ा-बहुत अनुभव है. पिछले कुछ महीनों में, मैंने खुद को बहुत कुछ सिखाया है. इसके लिए, मौजूदा दस्तावेज़ों और अपनी जिज्ञासा का इस्तेमाल किया है. उस दौरान, मेरे पास कुछ वीडियो और मेंटर भी थे. अपनी पसंदीदा प्रोग्रामिंग का अपना पाठ्यक्रम तैयार करने की वजह से, मुझे अब भी बहुत कुछ सीखना है और अपनी परफ़ॉर्मेंस को बेहतर बनाने के लिए भी बहुत कुछ करना बाकी है.

GSoD के लिए Matplotlib और समुदाय के आइडिया देखकर, मुझे लगता है कि यह एक बेहतरीन अनुभव होगा. इससे मुझे तकनीकी लेखक के तौर पर अपनी स्किल को बेहतर बनाने और इस प्रोग्राम के पीछे काम करने वाले लोगों से ज़्यादा सीखने का मौका मिलेगा. मुझे लगता है कि Matplotlib प्रोजेक्ट, काम का है और मुझे इसकी भावनाएं भी पसंद हैं.

टेक्निकल लेखक के तौर पर, मेरा मकसद इस्तेमाल से जुड़ी गाइड को पूरी तरह से बदलना है. इससे उपयोगकर्ताओं को उपलब्ध सुविधाओं के बारे में जानकारी मिल पाएगी और वे आसानी से अपने टास्क पूरे कर पाएंगे. मेरा मानना है कि सबसे अच्छे दस्तावेज़ों की संख्या में लगातार बढ़ोतरी होती रहेगी और वे उपयोगकर्ताओं के हिसाब से काम करते रहेंगे. साथ ही, इससे कोई भी उपयोगकर्ता अपने हिसाब से समस्याओं को हल कर पाएगा.