पायथन प्रगति पथ - प्रशिक्षु से गुरु तक


659

मैं डेढ़ साल से पायथन के साथ सीख रहा हूं, काम कर रहा हूं और खेल रहा हूं। एक जीवविज्ञानी के रूप में धीरे-धीरे जैव-सूचना विज्ञान की बारी है, यह भाषा लैब में मेरे द्वारा किए गए सभी प्रमुख योगदानों के मूल में है। जिस तरह से पायथन ने मुझे सुंदर समाधान व्यक्त करने की इजाजत दी और साथ ही भाषा के शब्दार्थों के साथ मुझे प्यार हो गया, जो विचारों से लेकर काम करने योग्य कोड तक इस तरह के प्राकृतिक प्रवाह की अनुमति देता है।

जो मैं जानना चाहता हूं, वह इस तरह के सवाल का जवाब है जो मैंने शायद ही कभी इस या अन्य मंचों पर देखा हो। पायथन सुधार की राह पर किसी के लिए भी यह सवाल मुझे केंद्रीय लगता है लेकिन जो सोचता है कि उसके अगले कदम क्या होने चाहिए।

मुझे पहले जो मैं नहीं पूछना चाहता हूं उसे संक्षेप में बताएं;)

  • मैं यह जानना नहीं चाहता कि कैसे जल्दी से पायथन सीखें
  • न ही मैं भाषा से परिचित होने का सबसे अच्छा तरीका खोजना चाहता हूं
  • अंत में, मैं एक 'एक चाल जानना चाहता हूँ जो यह सब करती है'।

मैं आपकी राय जानना चाहता हूं:

वे कौन से कदम हैं जो आप पायथन यात्रा करने वाले से कहेंगे, प्रशिक्षुता से गुरु की स्थिति तक (अपनी विशेषज्ञता के अनुसार इसे रोकने के लिए स्वतंत्र महसूस करें), ताकि एक समय में एक कदम बेहतर और बेहतर पायथन कोडर बन जाए। SO पर कुछ लोग लगभग अपने पायथन कौशल के लिए पूजा के योग्य लगते हैं, कृपया हमें बताएं :)

इस तरह के उत्तर मुझे पसंद आएंगे (लेकिन पाठक को आश्चर्यचकित करने के लिए स्वतंत्र हैं: पी), इस तरह से कम या ज्यादा स्वरूपित है:

  • इसे पढ़ें (जैसे: अजगर ट्यूटोरियल), उस तरह के विवरण पर ध्यान दें
  • इतने समय के लिए कोड / समस्याएं / कोड की लाइनें
  • फिर, इसे पढ़ें (जैसे: यह या वह पुस्तक), लेकिन इस बार, इस पर ध्यान दें
  • कुछ वास्तविक जीवन की समस्याओं से निपटें
  • फिर, वाई पढ़ने के लिए आगे बढ़ें।
  • इन अवधारणाओं को समझें
  • X समय के लिए कोड
  • ऐसी और मूल बातों पर वापस आएं या आगे बढ़ें ...
  • (तुम समझ गए :)

मैं वास्तव में विभिन्न चरणों में, निश्चित रूप से (नियत प्रयासों के साथ, निश्चित रूप से) प्रगति करने के लिए, विभिन्न चरणों में ध्यान देना चाहिए, इस पर आपकी राय जानने के बारे में परवाह है। यदि आप विशेषज्ञता के एक विशिष्ट क्षेत्र से आते हैं, तो इस क्षेत्र में आपके द्वारा देखे गए पथ पर चर्चा करें।

संपादित करें: आपके महान इनपुट के लिए धन्यवाद, मैं पायथन सुधार ट्रैक पर वापस आ गया हूं! मैं सचमुच प्रशंसा करता हूँ!

जवाबों:


471

मैंने सोचा कि अजगर की महारत की प्रक्रिया कुछ इस तरह से हुई:

  1. खोज सूची समझ
  2. जनरेटर की खोज करें
  3. समाविष्ट नक्शा, को कम करने, फिल्टर, आईटीईआर, रेंज, xrange अक्सर अपने कोड में
  4. डेकोरेटर्स की खोज करें
  5. पुनरावर्ती कार्य, बहुत कुछ लिखें
  6. डिस्कवर itertools और functionalools
  7. पढ़ें रियल वर्ल्ड हास्केल ( मुफ्त ऑनलाइन पढ़ें )
  8. उच्च आदेश कार्यों, पुनरावृत्ति, और क्या नहीं के टन के साथ अपने सभी पुराने पायथन कोड को फिर से लिखें।
  9. हर बार जब आप एक अजगर वर्ग के साथ प्रस्तुत करते हैं, तो आपका क्यूबिकल साथी। दावा है कि यह "बेहतर" हो सकता है एक शब्दकोश प्लस कुछ कार्यों के रूप में लागू किया गया। कार्यात्मक प्रोग्रामिंग को गले लगाओ।
  10. रणनीति पैटर्न को फिर से खोज लें और फिर जरूरी कोड से उन सभी चीजों को आपने हास्केल के बाद भूलने की कोशिश की।
  11. एक संतुलन खोजें।

सुपर सुंदर सूची @wheaties, इसे प्यार करता हूँ! आपको लगता है कि कार्यात्मक प्रोग्रामिंग और ऑब्जेक्ट ओरिएंटेड से दूर एक पूर्वाग्रह है ... क्या कोई विशेष कारण है? क्या हास्केल अनुभव ने आपको इस दृष्टिकोण की ओर फिर से बढ़ाया है?
मॉरलॉक

8
हां और ना। मुझे लगता है कि मैं बेहतर और अधिक संक्षिप्त कोड लिखता हूं मैं कार्यात्मक प्रोग्रामिंग के करीब पहुंचता हूं। उस ने कहा, ऐसी बहुत सी जगह हैं जहां चीजें अनिवार्य रूप से अधिक स्पष्ट रूप से व्यक्त की जाती हैं। रियल वर्ल्ड हास्केल पायथन सम्मेलनों में बिकने का एक कारण है, यह आपको एक बेहतर प्रोग्रामर बनाता है। मेरी सलाह, अजगर के कई पहलुओं का पता लगा सकते हैं, फिर एक कार्यात्मक भाषा का प्रयास करें।
गेहूँ

@ व्हाट्सएपियों को जवाब मिलता है क्योंकि यह दोनों के लिए पूछे गए प्रारूप के करीब है और बहुत प्रेरणादायक है। जवाब देने के लिए अपना समय निकालने के लिए धन्यवाद!
मॉरलॉक

1
शुरुआती: शब्दकोश फिर बाद में ... महारत: मेटाप्रोग्रामिंग
गट

क्या आप इसे विस्तृत कर सकते हैं >> यह "बेहतर" हो सकता है एक शब्दकोश और कुछ कार्यों के रूप में लागू किया जा सकता है। <<
कोबज़ सिप

108

अपने पायथन ज्ञान को आगे बढ़ाने का एक अच्छा तरीका आपके द्वारा पहले से उपयोग किए जाने वाले पुस्तकालयों, प्लेटफार्मों और फ़्रेमवर्क के स्रोत कोड में खुदाई करना है।

उदाहरण के लिए यदि आप Django पर एक साइट का निर्माण कर रहे हैं , तो कई सवाल जो आपको स्टंप कर सकते हैं, उन्हें देखकर जवाब दिया जा सकता है कि Django कैसे सुविधा को प्रश्न में लागू करता है।

इस तरह आप नए मुहावरे, कोडिंग स्टाइल और पायथन ट्रिक्स अपनाते रहेंगे । (कुछ अच्छे होंगे और कुछ बुरे होंगे।)

और जब आप कुछ पायथोनी देखते हैं, जिसे आप स्रोत में नहीं समझते हैं, तो #python IRC चैनल पर हॉप करें और आपको "भाषा के वकील" को समझाने में बहुत खुशी होगी।

वर्षों से इन छोटे स्पष्टीकरणों का एक संचय भाषा की गहरी समझ और इसके सभी ins और outs की ओर जाता है।


1
मैं इसमें यह जोड़ना चाहूंगा कि केवल django extension / plugin को इंस्टॉल करने के बजाय, मैन्युअल रूप से git ब्रांच का उपयोग करके कोड जोड़ने का प्रयास करें। यह आपको उस कोड को वास्तव में पढ़ने के लिए मजबूर करेगा जिसे आप प्रोजेक्ट में जोड़ रहे हैं।
g33kz0r

14
मैं उत्सुक हूं कि आईआरसी का उपयोग क्यों करें जब हम में से बाकी लोग प्रश्न से लाभ उठा सकते हैं?
tshepang

1
"मुहावरों, शैलियों और चाल" के लिए +1। संपर्क में वास्तविक लोगों द्वारा बनाई गई एक वास्तविक संस्कृति को जीना (भले ही यह संपर्क का मतलब ज्यादातर इस मामले में एक दूसरे के कोड को पढ़ना हो) जिसने कभी समय के साथ मानव ज्ञान को बनाया है।
हेल्टनबिकर

92

मेमोरी mgmt के संबंध में पायथन के डेटा प्रकारों और उनकी भूमिकाओं को अधिक गहराई से समझें

जैसा कि समुदाय में आप में से कुछ लोग जानते हैं, मैं पायथन पाठ्यक्रम पढ़ाता हूं , सबसे लोकप्रिय इंट्रो + इंटरमीडिएट पाठ्यक्रम के साथ-साथ एक "उन्नत" पाठ्यक्रम है जो आवेदन विकास के विभिन्न क्षेत्रों का परिचय देता है।

काफी बार, मुझे एक सवाल काफी हद तक मिलता है, "क्या मुझे आपका इंट्रो या एडवांस कोर्स करना चाहिए? मैं पहले से ही 1-2 साल से पायथन की प्रोग्रामिंग कर रहा हूं, और मुझे लगता है कि इंट्रो मेरे लिए बहुत सरल है। उन्नत करने के लिए सीधे कूद करने के ... की तरह जो पाठ्यक्रम होगा आप की सलाह देते हैं? "

उनके प्रश्न का उत्तर देने के लिए, मैं यह देखने के लिए जांच करता हूं कि वे इस क्षेत्र में कितने मजबूत हैं - ऐसा नहीं है कि यह वास्तव में मापने का सबसे अच्छा तरीका है कि वे किसी भी उन्नत पाठ्यक्रम के लिए तैयार हैं, लेकिन यह देखने के लिए कि उनका मूल ज्ञान अजगर की वस्तुओं का कितना अच्छा है। मेमोरी मॉडल, जो कई का एक कारण है उन लोगों द्वारा लिखे गए पायथन बग जो न केवल शुरुआती हैं, बल्कि वे जो इससे आगे निकल गए हैं।

ऐसा करने के लिए, मैं उन्हें इस सरल 2-भाग प्रश्नोत्तरी प्रश्न पर इंगित करता हूं: Ex1: x = 42;  y = x;  x + = 1;  प्रिंट x, y Ex2: x = [1,2,3]; y = x; x [0] = 4; प्रिंट x, y;

कई बार, वे आउटपुट प्राप्त करने में सक्षम होते हैं, लेकिन क्यों एक प्रतिक्रिया के लिए अधिक कठिन और अधिक महत्वपूर्ण है ... मैं आउटपुट को 20% उत्तर के रूप में तौला जाऊंगा जबकि "क्यों" को 80% क्रेडिट मिलता है। यदि वे क्यों नहीं मिल सकते हैं, भले ही पायथन का अनुभव उनके पास हो, तो मैं हमेशा लोगों को व्यापक इंट्रो + इंटरमीडिएट कोर्स में शामिल करूंगा क्योंकि मैं एक व्याख्यान वस्तुओं और स्मृति प्रबंधन पर उस बिंदु पर खर्च करता हूं जहां आपको उत्तर देने में सक्षम होना चाहिए पर्याप्त आत्मविश्वास के साथ आउटपुट और क्यों। (सिर्फ इसलिए कि आप 1-2 साल के बाद अजगर के वाक्य-विन्यास को जानते हैं, आपको "शुरुआती" लेबल से आगे बढ़ने के लिए तैयार नहीं करता है जब तक कि आपके पास बहुत अच्छी तरह से समझ नहीं आती है कि पायथन कवर के तहत कैसे काम करता है।)

इसी तरह के उत्तर की आवश्यकता वाली सफल जांच और भी कठिन है, जैसे,

उदाहरण 3

x = ['foo', [1,2,3], 10.4]
y = list(x) # or x[:]
y[0] = 'fooooooo'
y[1][0] = 4
print x
print y

मेरे द्वारा सुझाए गए अगले विषय अच्छी तरह से संदर्भ गणना को समझने के लिए हैं, "इंटर्निंग" का अर्थ क्या है (लेकिन जरूरी नहीं कि इसका उपयोग करें), उथले और गहरी प्रतियों के बारे में सीखें (जैसा कि ऊपर उदाहरण 3 में), और अंत में, विभिन्न प्रकारों के बीच अंतर्संबंध। भाषा में निर्माण, अर्थात् सूची बनाम ट्यूपल्स, डिक्ट्स बनाम सेट, सूची समझ बनाम जनरेटर अभिव्यक्ति, पुनरावृत्तियों बनाम जनरेटर, आदि; हालांकि उन सभी अन्य सुझावों को एक और समय के लिए एक और पोस्ट है। उम्मीद है कि इस बीच मदद मिलेगी! :-)

ps। मैं आत्मनिरीक्षण के साथ अधिक अंतरंगता प्राप्त करने के साथ-साथ अन्य परियोजनाओं के स्रोत कोड का अध्ययन करने के लिए अन्य प्रतिक्रियाओं से सहमत हूं और दोनों सुझावों के लिए एक मजबूत "+1" जोड़ रहा हूं!

पी पी एस। बड़ा सवाल बी.टी.डब्ल्यू। काश मैं शुरुआत में इतना स्मार्ट होता कि कुछ इस तरह से पूछ पाता, लेकिन यह बहुत समय पहले था, और अब मैं अपने कई वर्षों के पूर्णकालिक पायथन प्रोग्रामिंग के साथ दूसरों की मदद करने की कोशिश कर रहा हूँ !!


वेस्ले चुन! Morlock, यह उस तरह का लड़का है जिसके बारे में आप अपने प्रश्न के निर्भीक हिस्से में बात कर रहे थे। एक गहराई से जानने वाला लड़का, जो एक बहुत ही प्रतिभाशाली शिक्षक था, मुझे पुस्तक से बहुत बड़ा प्रोत्साहन मिला।
अप्रकाशित

thx @bvmou! मैं केवल इस प्रश्न का उत्तर दे सकता था क्योंकि मुझे इस सीखने की प्रक्रिया से गुजरना था जैसे हर किसी को ... केवल 13 साल पहले मेरा था! :-) corepython.com tho प्लगिंग के लिए thx ! :-)
wescpy

@wescpy क्या आप मुझे उदाहरण 3 के लिए आउटपुट की व्याख्या कर सकते हैं या इस सामान को सीखने के लिए एक अच्छे संसाधन की ओर इशारा कर सकते हैं। धन्यवाद।
संकल्प

1
चाल यह है कि केवल ऑब्जेक्ट संदर्भों की प्रतिलिपि बनाई जाती है, न कि वस्तुओं को स्वयं। यह सब वहाँ है ... आशा है कि यह मदद करता है! मैंने कुछ हफ्तों पहले वास्तव में, OSCON में इस पर बात की थी। मुझे उस समय सुखद आश्चर्य हुआ जब किसी ने मुझसे कहा कि यह सम्मेलन में सबसे अधिक मूल्यांकित पायथन वार्ता है! आप यहां स्लाइड डाउनलोड कर सकते हैं: oscon.com/oscon2013/public/schedule/detail/29374
wescpy

आउटपुट SyntaxError है: अमान्य सिंटैक्स, है ना? क्यों? क्योंकि मैंने पायथन 3 का उपयोग किया है, और printएक बयान नहीं है।
कोनराड बोरोस्की

67

: 10 साल में एक मास्टर प्रोग्रामर बनने पर पीटर Norvig द्वारा लिखे गए निबंध की जाँच करें http://norvig.com/21-days.html । मैं चाहता हूँ कि यह किसी भी भाषा के लिए सच हो।


59

आत्मनिरीक्षण को समझें

  • एक dir()बराबर लिखें
  • एक type()बराबर लिखें
  • "बंदर-पैच" कैसे पता करें
  • disमॉड्यूल का उपयोग करके देखें कि विभिन्न भाषा कैसे काम करती है

इन चीजों को करने से होगा

  • अजगर कैसे कार्यान्वित किया जाता है, इसके बारे में आपको कुछ अच्छा सैद्धांतिक ज्ञान दें
  • आपको निचले स्तर की प्रोग्रामिंग में कुछ अच्छा व्यावहारिक अनुभव देना है
  • अजगर डेटा संरचनाओं के लिए आपको एक अच्छा सहज ज्ञान देता है

1
"एक type()समतुल्य लिखें " जो कि बहुत कठिन होगा यदि आप पूर्ण रूपक का अनुमान लगाते हैं type!
asmeurer

48
def apprentice():
  read(diveintopython)
  experiment(interpreter)
  read(python_tutorial)
  experiment(interpreter, modules/files)
  watch(pycon)

def master():
  refer(python-essential-reference)
  refer(PEPs/language reference)
  experiment()
  read(good_python_code) # Eg. twisted, other libraries
  write(basic_library)   # reinvent wheel and compare to existing wheels
  if have_interesting_ideas:
     give_talk(pycon)

def guru():
  pass # Not qualified to comment. Fix the GIL perhaps?

4
गुरु () पास होना चाहिए। कुछ भी नहीं गुरु का वर्णन कर सकते हैं, यह पारित
निवेश संबंधी निर्णय

1
आप जीआईएल ठीक है तो मुझे लगता है कि एक स्तर पर है कि कहते हैं आप उच्च गुरु से, लेकिन सिर्फ उदार तानाशाह नीचे। ;)
एडम पार्किन

41

मैं आपको सलाह का सबसे सरल और सबसे प्रभावी टुकड़ा दूंगा जो मुझे लगता है कि कोई भी आपको दे सकता है: कोड

आप केवल एक भाषा का उपयोग करके बेहतर हो सकते हैं (जो इसे समझने का मतलब है) कोडिंग द्वारा । आपको सक्रिय रूप से कोडिंग का आनंद लेना है, प्रेरित होना है, प्रश्न पूछना है, और अपने आप से उत्तर ढूंढना है।

एक घंटे के लिए छोड़ दिया? कोड लिखें जो एक स्ट्रिंग को उलट देगा, और सबसे इष्टतम समाधान का पता लगाएगा। एक शाम? क्यों कुछ वेब-स्क्रैपिंग की कोशिश नहीं की। अन्य लोगों का कोड पढ़ें। देखें कि वे कैसे काम करते हैं। अपने आप से पूछें कि आप क्या करेंगे।

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

यह आपके कौशल स्तर के अनुसार मान्य है। आपने कभी सीखना बंद नहीं किया। अपने खाली समय में सक्रिय रूप से कोडिंग करके, आप थोड़े अतिरिक्त प्रयास के साथ, भाषा को समझने के लिए आएंगे, और अंततः, एक गुरु बन जाएंगे। आप ज्ञान और पुन: प्रयोज्य कोड बनाएंगे और मुहावरों को याद करेंगे।


24

यदि आप विज्ञान के लिए अजगर का उपयोग कर रहे हैं (जो ऐसा लगता है कि आप हैं) तो इसका हिस्सा वैज्ञानिक पुस्तकालयों को सीखना और समझना होगा, मेरे लिए ये होंगे

  • numpy
  • scipy
  • matplotlib
  • मायावी / mlab
  • चाको
  • Cython

वैज्ञानिक पुस्तकालयों के लिए सही पुस्तकालयों का उपयोग करना और अपने कोड को वेक्टरकृत करना जानना आवश्यक है।

मैं जोड़ना चाहता था कि, सामान्य पायथन तरीकों (ऑब्जेक्ट ओरिएंटेड एप्रोच, सूचियों, पुनरावृत्तियों) में बड़े संख्यात्मक डेटासेट को संभालना बेहद अक्षम हो सकता है। वैज्ञानिक कंप्यूटिंग में, अपने कोड को उन तरीकों से संरचना करना आवश्यक हो सकता है, जो सबसे पारंपरिक अजगर कोडर्स के डेटा तक पहुंचने में काफी भिन्नता रखते हैं।


धन्यवाद। बड़े डेटासेट के लिए मेमोरी उपयोग में दक्षता हासिल करने के लिए निश्चित रूप से सुन्न और डरावना सीखना समय लेने लायक है!
Morlock

1
संभवतः सूची में पांडा और आईपीथॉन जोड़ें।
एरिक विल्सन

23

Google ने अभी हाल ही में एक ऑनलाइन पायथन क्लास ("क्लास" को "अध्ययन के एक कोर्स" के रूप में) जारी किया।

http://code.google.com/edu/languages/google-python-class/

मुझे पता है कि यह आपके पूर्ण प्रश्न का उत्तर नहीं देता है, लेकिन मुझे लगता है कि यह शुरू करने के लिए एक शानदार जगह है!


6
वास्तव में, Google के ये वीडियो लेक्चर इटर्मेड्रिएट की ओर अधिक उन्नत किए गए हैं जो मुझे लगता है कि उन्नत हैं। code.google.com/intl/fi-FI/edu/languages/…
टॉम विलीस


12

पूरी तरह से सभी डेटा प्रकारों और संरचनाओं को समझें

प्रत्येक प्रकार और संरचना के लिए, डेमो कार्यक्रमों की एक श्रृंखला लिखें, जो प्रकार या डेटा संरचना के हर पहलू का उपयोग करते हैं। यदि आप ऐसा करते हैं, तो यह प्रत्येक पर ब्लॉग नोट्स के लिए सार्थक हो सकता है ... यह बहुत से लोगों के लिए उपयोगी हो सकता है!


यह न केवल पायथन में उपयोगी होगा, बल्कि एक सार अर्थ में भी होगा।
हम्फ्री बोगार्ट 23

1
यह कुछ ऐसा है जो मैं भी करता हूं, जब भी मुझे कोई नया निर्माण मिलता है तो मैं एक खिलौना कार्यक्रम लिखता हूं जिसमें दिखाया गया है कि इसका उपयोग कैसे किया जाए। और इसे जीथुब रेपो में ऑनलाइन डालें: github.com/pzelnip/MiscPython
एडम पार्किं

10

मैंने अजगर के बारे में अजगर की साइट पर ट्यूटोरियल करके सिर्फ एक गर्मी के दौरान सबसे पहले खुद को सीखा (दुख की बात है, मुझे लगता है कि अब और नहीं मिल सकता है, इसलिए मैं एक लिंक पोस्ट नहीं कर सकता)।

बाद में, विश्वविद्यालय में मेरे पहले वर्ष के पाठ्यक्रमों में से अजगर को मुझे पढ़ाया गया। इसके बाद की गर्मियों में, मैंने पायथनकॉलजेन के साथ और Google कोड जाम की समस्याओं के साथ अभ्यास किया । इन समस्याओं को हल करने से एक एल्गोरिथम के परिप्रेक्ष्य के साथ-साथ सीखने के दृष्टिकोण से मदद मिलती है कि अजगर अजगर के साथ पूरी तरह से बाहर निकलने के लिए इसे कैसे हेरफेर कर सकता है।

इसी तरह के कारणों के लिए, मैंने सुना है कि कोड गोल्फ के रूप में अच्छी तरह से काम करता है, लेकिन मैंने इसे अपने लिए कभी नहीं आजमाया है।


3
आप इस ट्यूटोरियल का मतलब है? पायथन 2: docs.python.org/tutorial/index.html ; पायथन 3: docs.python.org/py3k/tutorial/index.html
हम्फ्री बोगार्ट 23

10

लर्निंग एल्गोरिदम / गणित / फ़ाइल IO / पायथनिक अनुकूलन

यह आपको गुरु-हूड नहीं मिलेगा, लेकिन शुरू करने के लिए, प्रोजेक्ट यूलर समस्याओं के माध्यम से काम करने की कोशिश करें । पहले 50 या तो आपको कर नहीं देना चाहिए यदि आपके पास उच्च विद्यालय का गणित है और Google को पता है कि कैसे। जब आप एक को हल करते हैं तो आप उस फोरम में पहुंच जाते हैं जहां आप अन्य लोगों के समाधानों को देख सकते हैं जो आपको और भी अधिक सिखाएंगे। हालांकि सभ्य रहें और अपने समाधानों को पोस्ट न करें क्योंकि यह विचार लोगों को अपने लिए काम करने के लिए प्रोत्साहित करने के लिए है।

यदि आप जानवर-बल के एल्गोरिदम का उपयोग करते हैं तो अपने आप को पायथन में काम करने के लिए मजबूर करना गलत होगा। यह आपको सिखाएगा कि कैसे बड़े डेटासेट को मेमोरी में रखा जाए और शब्दकोश जैसी तेज़ भाषा सुविधाओं के साथ कुशलता से उन्हें एक्सेस किया जाए।

ऐसा करने से मैंने खुद सीखा:

  • फाइल आई.ओ.
  • एल्गोरिदम और तकनीक जैसे डायनामिक प्रोग्रामिंग
  • अजगर डेटा लेआउट
    • शब्दकोश / HashMaps
    • सूचियाँ
    • tuples
    • इसके अलावा विभिन्न संयोजन, जैसे कि टुपल्स की सूची
  • जेनरेटर
  • पुनरावर्ती कार्य
  • पायथन पुस्तकालयों का विकास करना
    • फाइलसिस्टम लेआउट
    • दुभाषिया सत्र के दौरान उन्हें पुनः लोड करना

और यह भी बहुत महत्वपूर्ण है

  • कब देना है और C या C ++ का उपयोग करना है!

यह सब जैव सूचना विज्ञान के लिए प्रासंगिक होना चाहिए

निश्चित रूप से मैंने उस अनुभव से अजगर की OOP विशेषताओं के बारे में नहीं सीखा।


3
मुझे पीई साइट पसंद है, लेकिन चलो ईमानदार रहें: यह एक गणित साइट है, न कि प्रोग्रामिंग साइट। अधिकांश समस्याएँ (या कम से कम जो मैंने की हैं, उनमें से अधिकांश) वास्तव में कुछ भी प्रोग्रामिंग भाषा से संबंधित कुछ गणित के गुर जानने के लिए उबालती हैं। अक्सर मंचों में अच्छे समाधान भोले समाधानों की लहरों से डूब जाते हैं, आदि
एडम पार्किन

इसके विपरीत मैंने पाया कि इसमें प्रोग्रामिंग और मैथ्स कौशल दोनों के अनुप्रयोग शामिल थे और सबसे महत्वपूर्ण बात यह है कि वास्तविक समस्याओं को हल करने के लिए दोनों का संयोजन । यदि आपके पास मैथ्स का कौशल खराब है, तो आप पायथन प्रोग्रामिंग सीखने के लिए PE का उपयोग नहीं कर सकते हैं, लेकिन आप केवल यह सीख सकते हैं कि किसी भाषा का उपयोग कैसे किया जाए, इसलिए यदि आपका मैथ्स काफी अच्छा है तो यह आदर्श है।
कप्तान लिप्टन

7

क्या आपने " पायथन का उपयोग करके जैव सूचना विज्ञान प्रोग्रामिंग " पुस्तक देखी है ? ऐसा लगता है कि आप इसके फ़ोकस समूह के सटीक सदस्य हैं।


2
कुछ समय पहले पुस्तक के माध्यम से तेजी से जाने के बाद, मैंने पाया कि यह पुस्तक बहुत दिलचस्प नहीं है। यह बहुत ही नौसिखिए पायथन उपयोगकर्ताओं के लिए तैयार है और समस्याएं खुद बहुत दिलचस्प नहीं हैं। बहुत बुरा, यह स्पष्ट रूप से एक ऐसा क्षेत्र है जहां पायथन का उपयोग बढ़ रहा है। एक अधिक उत्तेजक पुस्तक महान रही होगी।
मॉरलॉक

6

आपके पास पहले से ही बहुत सारी पठन सामग्री है, लेकिन यदि आप अधिक संभाल सकते हैं, तो मैं आपको पायथन एन्हांसमेंट प्रस्तावों, विशेष रूप से "समाप्त" पीईपी और "डिफर्ड, एबर्डेड, विथड्रन और रिजेक्टेड" पढ़कर अजगर के विकास के बारे में जानने की सलाह देता हूं। Peps।

यह देखकर कि भाषा कैसे बदल गई है, जो निर्णय किए गए थे और उनके तर्कसंगत थे, आप पायथन के दर्शन को अवशोषित करेंगे और समझेंगे कि "मुहावरेदार पायथन" कैसे आता है।

http://www.python.org/dev/peps/



3

किसी और को सिखाना जो पायथन सीखना शुरू कर रहा है, हमेशा आपके विचारों को स्पष्ट करने का एक शानदार तरीका है और कभी-कभी, मुझे आमतौर पर छात्रों से बहुत सारे नीच प्रश्न मिलते हैं जो मुझे पायथन के बारे में वैचारिक चीजों को फिर से सोचने के लिए हैं।


2

ठीक नहीं है कि आप क्या पूछ रहे हैं, लेकिन मुझे लगता है कि यह अच्छी सलाह है।

दूसरी भाषा सीखें, जो बहुत ज्यादा मायने नहीं रखती है। प्रत्येक भाषा के अपने विचार और रूढ़ियां होती हैं जिनसे आप सीख सकते हैं। भाषाओं के अंतर के बारे में जानें और इससे भी महत्वपूर्ण बात यह है whyकि वे भिन्न हैं। हास्केल जैसी विशुद्ध रूप से कार्यात्मक भाषा की कोशिश करें और कार्यों के कुछ लाभों (और चुनौतियों) को दुष्प्रभावों से मुक्त देखें। देखें कि आप अन्य भाषाओं से सीखी गई कुछ चीजों को पायथन में कैसे लागू कर सकते हैं।


1
हास्केल पेचीदा है, और मुझे लिस्प के लिए तैयार किया गया है, लेकिन मुझे लगता है कि मेरे लिए अभी भी पायथन दुनिया के भीतर खोजने के लिए बहुत कुछ है।
मोरलोक

2
landoflisp (.com) ने हाल ही में मेरा ध्यान आकर्षित किया है।
जियारो

यदि किसी की सोच लिस्प के बारे में है, तो मैं स्कीम की सिफारिश करता हूं
थारिंडु रुसिरा

2

मैं आपको ऐसी किसी चीज़ से शुरू करने की सलाह देता हूं जो आपको वाक्य रचना की अभिव्यंजक शक्ति का पता लगाने के लिए मजबूर करती है। पायथन एक ही कार्यक्षमता लिखने के कई अलग-अलग तरीकों की अनुमति देता है, लेकिन अक्सर एक ही सबसे सुरुचिपूर्ण और सबसे तेज़ दृष्टिकोण होता है। यदि आप अन्य भाषाओं के मुहावरों के लिए उपयोग किए जाते हैं, तो आप इन बेहतर तरीकों को अन्यथा कभी नहीं पा सकते हैं या स्वीकार नहीं कर सकते हैं। मैंने पहले 20 या तो प्रोजेक्ट यूलर समस्याओं के माध्यम से एक सप्ताह के अंत में ट्रूडिंग का समय बिताया और Google ऐप इंजन पर Django के साथ एक सरल वेबप बनाया। यह आपको केवल अपरेंटिस से नौसिखिया तक ले जाएगा, हो सकता है, लेकिन फिर आप कुछ और उन्नत वेबपैक बनाने और अधिक उन्नत प्रोजेक्ट यूलर समस्याओं को हल करने के लिए जारी रख सकते हैं। कुछ महीनों के बाद मैं वापस गया और सप्ताहांत के बजाय एक घंटे में खरोंच से पहली 20 पीई समस्याओं को हल किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.