क्या वास्तविक प्रोग्रामर होने के लिए एल्गोरिदम सीखना आवश्यक है? [बन्द है]


21

मैं एक PHP प्रोग्रामर हूँ, और अब तक मुझे एल्गोरिदम सीखने की आवश्यकता नहीं है ...

अब मैं अजगर (एक वास्तविक प्रोग्रामिंग भाषा) सीखना शुरू कर रहा हूं, क्योंकि मुझे matplotlib का उपयोग करने की आवश्यकता है। क्या यह पायथन एल्गोरिथ्म पुस्तक को पढ़कर शुरू करने के लिए समझ में आता है और फिर matplotlib और numpy सीखता है या मुझे matplotlib और numpy पर कूदना चाहिए?

सादर,


2
यदि आप एल्गोरिदम नहीं सीखते हैं, और समझते हैं कि किसी दिए गए कार्य के लिए सबसे उपयुक्त क्या है, तो आप इस प्रश्न के उत्तर के साथ समाप्त होते हैं: stackoverflow.com/questions/5498865
kdgregory

1
आपने शायद पहले से ही कुछ एल्गोरिदम लागू किए हैं, वास्तव में उनके नाम या उनके पीछे के सिद्धांत को जानने के बिना। यह विश्वास करना मुश्किल है कि किसी को भी कुछ एल्गोरिदम को लागू किए बिना कोई भी उपयोगी प्रोग्रामिंग कर सकता है ।
tdammers

2
एल्गोरिथ्म सिर्फ एक सामान्य ज्ञान है कि चीजों को इष्टतम तरीके से कैसे किया जाए । प्रोग्रामिंग में आपको न्यूनतम संसाधनों का उपयोग करने और प्रदर्शन सुनिश्चित करने की आवश्यकता होती है, इसलिए आप हर समय इसका उपयोग कर रहे हैं। BTW, इसका क्या मतलब है पायथन (एक वास्तविक प्रोग्रामिंग भाषा) ??? PHP कुछ और के रूप में अच्छा है। यह सिर्फ इतना है कि यह एक वेब स्क्रिप्टिंग भाषा का अधिक हिस्सा है और आपके दिमाग में है, यह लंबे समय तक व्यापार में सबसे अच्छा है।
पंकज उपाध्याय

जवाबों:


35

पूर्ण रूप से। एल्गोरिदम को जानने के बिना, आप यह कैसे समझने जा रहे हैं कि एक कार्यक्रम क्या करता है?

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


जबकि मैं सहमत हूं, बस एक स्थानीय समुदाय कॉलेज में एल्गोरिदम को इंट्रो पास करने के पैमाने पर कितना पता होना चाहिए कि दूसरी बार डोनाल्ड नथ हो रहा है?
जॉब

अच्छा पुराना बिग ओहो संकेतन ...

1
मैं एल्गोरिथ्म जटिलता ("बड़े हे अंकन") के बारे में जानने के महत्व से सहमत हूं। हालाँकि, मैं दृढ़ता से "बिल्कुल" उत्तर देने से असहमत हूं कि "एल्गोरिदम को वास्तविक प्रोग्रामर बनने के लिए सीखना आवश्यक है"; वास्तव में, पायथन कुएं को सीखना एक सूची को क्रमबद्ध करने के तरीके को जानने से बहुत अधिक उपयोगी है (क्योंकि पायथन प्रकार आपके लिए सूचियों को हल करता है) या कैसे पायथन शब्दकोश को संभालता है (जो कि हैशिंग तंत्र को लागू करने के लिए कभी पायथन प्रोग्रामर की आवश्यकता होती है?), आदि ऐतिहासिक रूप से, लोगों के पास है? एल्गोरिथ्म सीखा क्योंकि वे भाषा उन्हें बॉक्स से बाहर प्रदान नहीं किया है; आधुनिक युग अलग है।
एरिक ओ लेबिगॉट

17

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

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


2
ऐसी "आधुनिक" टिप्पणी के लिए +1। एल्गोरिदम सीखना और सिखाना उन लोगों के लिए आरक्षित होना चाहिए जिन्हें वास्तव में उन्हें लागू करने की आवश्यकता है।
एरिक ओ लेबिगॉट

6

हां, ताकि आप समझ सकें कि एक दृष्टिकोण को दूसरे पर कैसे लागू किया जाए। आप "पहिए को फिर से मजबूत करना" भी नहीं चाहते हैं क्योंकि कई मौजूदा एल्गोरिदम हैं जो पहले से ही काम कर रहे हैं। यदि आप नहीं जानते कि वे वहाँ हैं तो आप एक संभावित कमजोर समाधान का आविष्कार करने में समय बर्बाद करेंगे और यह भी नहीं समझ पाएंगे कि यह कमजोर क्यों है।


3

एक प्रोग्रामर के लिए एल्गोरिदम एक लोहार के लिए एक हथौड़ा है। सुनिश्चित करें कि आप बिना प्राप्त कर सकते हैं और काम पूरा करने के लिए विकल्पों का उपयोग कर सकते हैं, लेकिन यदि आप इसे सही करना चाहते हैं और इसे अच्छी तरह से करना चाहते हैं तो यह आवश्यक है।

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


1

अपने PHP अनुभव के आधार पर, यदि आप उस स्तर पर हैं जहाँ आप मूल प्रोग्रामिंग अवधारणाओं को एक भाषा से दूसरी भाषा में अनुकूलित कर सकते हैं, तो ऐसा करें । यह अपना समय बिताने का सबसे कारगर तरीका होगा।

पढ़ें कि आपको Matplotlib , numpy और Python को एकीकृत करने के लिए क्या करना है । और फिर अगर तुम अटक जाते हो, तो गहरा गोता लगाते रहो। मैं इस आदेश की सिफारिश करता हूं क्योंकि

  • यह कम समय लेने वाली है
  • आप शायद आपके द्वारा पढ़े जाने वाले प्रत्येक एल्गोरिदम को लागू नहीं करेंगे

1

यदि आप व्यावसायिक एप्लिकेशन (केवल) विकसित कर रहे हैं, तो केवल मूल बातें सीखने के लिए प्राप्त करें, जैसे कि सूची, कतार, छंटाई, स्ट्रिंग खोज आदि, ताकि आप शब्दावली सीखें, कि प्रदर्शन कैसे प्रभावित और मापा जाता है और इसी तरह। अपने समय का बेहतर उपयोग नई तकनीक, ओओ पैटर्न, प्रभावी डेटाबेस डिजाइन, ऐप पर ध्यान केंद्रित करना होगा। विकास के तरीके, और ऐसे!


1

ठीक है - मुझे पता है कि यह वास्तव में तुम्हारा मतलब नहीं है, लेकिन आप पहले से ही जानते हैं (कैसे करें) एल्गोरिदम। अपनी परिभाषा के आधार पर आप प्रत्येक प्रोगैम को एक एल्गोरिथ्म के लिए एक उदाहरण के रूप में ले सकते हैं।

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


0

अजगर को पहले जानें, अगर आपको ऐसा लगता है कि आप एल्गोरिदम का अध्ययन कर सकते हैं; क्योंकि एल्गोरिदम अजगर विशिष्ट नहीं हैं - वे सभी भाषाएं सामान्य हैं।


0

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

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

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