मैं निश्चित रूप से स्वीकार किए गए उत्तर के मुख्य जोर से सहमत हूं, और यह देखते हुए कि आप मूल रूप से एरलांग को दे कर चीजों को सुव्यवस्थित कर रहे हैं, यह कोशिश करता है कि आपको लगता है कि आप कैसे सीखते हैं और बस सही में थोड़ी सी नग्नता की आवश्यकता है दिशा, तो स्पष्ट रूप से यह आपके लिए एक अच्छा जवाब था ... लेकिन, मुझे लगता है कि मैं सवाल को थोड़ा अलग तरीके से लिखूंगा, क्योंकि मैं देख रहा हूं कि इस जवाब से मुझे बहुत मदद नहीं मिली होगी; मैं हमेशा सीखने के लिए कोड करता हूं! तो, यहाँ मेरे विचार हैं ...
(बीटीडब्लू, मैं एक पुस्तक में अध्याय के लिए और अधिक विस्तार से बताता हूं, और मुझे यकीन है कि मैं अपनी प्रवृत्ति को पूरी तरह से यहां नहीं रोक सकता , लेकिन मैं एक अलग तरह की कोशिश करने जा रहा हूं;) यहाँ पर अपने विचारों को संक्षेप में प्रस्तुत करने जा रहा हूँ, और यदि कोई व्यक्ति किसी भी चीज़ पर अधिक विस्तार चाहता है, या सोचता है कि मेरे द्वारा कहे जाने वाले किसी चीज़ को इस प्रारूप में गुमराह किया जा रहा है, तो मैं उत्तर देने के लिए याद करने की पूरी कोशिश करूँगा ...)
अपने आप को कार्य पर रखने की कोशिश करने के लिए ओपी में पूछे जाने वाले जोरदार सवालों की मेरी समझ; मैं एक न्यूनतम करने के लिए आवश्यक के रूप में समझाना होगा ....
पहले त्वरित उत्तर:
क्या मैं ऐसी ही स्थिति में था? यह कम से कम समान था; मैं कई अलग-अलग परियोजनाओं का नेतृत्व कर रहा था जो कि फिर भी संबंधित थीं ... (सीआरएम / वेब / डीबी / डेटा एकीकरण / आदि)।
मैंने कार्य को कैसे / क्यों बनाया है? " मैंने कुछ LINQ उदाहरण देखे और हालाँकि मैंने निश्चित रूप से कुछ प्रकार की एकीकृत, सांख्यिकीय रूप से टाइप की गई, क्वेरी भाषा का सपना देखा था [जैसा कि मैंने मुख्य रूप से वैधानिक रूप से टाइप की गई भाषाओं (मुख्य रूप से C ++ और बाद में #) का उपयोग किया था। )] अपने पूरे करियर के दौरान ... लेकिन, यह एक बहुत तेजी से आग का माहौल था जिसमें मैं था, और हालांकि मैं अक्सर यह देखने में कामयाब रहा था कि अतीत में क्या आ रहा था, मैंने कभी भी इसके बारे में नहीं सोचा था इसलिए मैंने कभी भी यह नहीं सोचा था कि यह प्लेन पुरानी वस्तुओं पर संचालन की अनुमति दे सकता है (lol!) बस के रूप में आसानी से; जब मैंने देखा कि मुझे पता था कि मेरे पास यह है ... तो, यही कारण है कि और कैसे की शुरुआत: मैंने LINQ को समझने के लिए सीखने पर ध्यान केंद्रित किया ।
चार विचार ... इर्र, नहीं यह सही नहीं है ... Forethoughts
जब मैंने मार्टिज्न वर्बर्ग के उत्तर को पढ़ा , तो व्यवसाय की कार्यक्षमता का उल्लेख तुरंत मेरे दिमाग को खींचता है कि मैं जो भी काम कर रहा हूं उसके लिए कोड लागू करना शुरू करूं ... इस बात पर निर्भर करता है कि प्रारंभिक प्रयोग मैं कितना अलग था, लेकिन इसका जवाब सिर्फ यह था अपने बड़े पैर की अंगुली को डुबाना, मुझे यकीन नहीं है कि मेरे पास काम के लिए सीधे (या जल्द ही काम करने के लिए) कुछ भी था जिसने मुझे उत्साह / जुनून प्रदान किया होगा मुझे लगता है कि आपको शायद पहले कुछ समस्याओं से निपटना चाहिए जो आप से निपटना शुरू करते हैं ...
मैं लगभग पूरी तरह से वैधानिक रूप से टाइप की जाने वाली भाषाओं + OOP के रूपकों और प्रतिमानों पर आधारित था + जो कुछ भी मैंने समाप्त कर दिया, वर्षों से अपनी वास्तविक समस्याओं को हल करते समय गलती से अपने मस्तिष्क को लपेट लिया ... इंगित किया जा रहा है, यदि आप सभी की तरह मैं थे, तो आपको संभावना है कि आपके पास बहुत से सामान समर्पित हैं जो कि LINQ / FP के साथ आपकी बहुत मदद नहीं करेंगे।
मुझे लगता है कि यह शुद्ध प्रक्रियात्मक बनाम OO प्रोग्रामिंग की तरह है: वहाँ बहुत प्रक्रियात्मक सामान है कि आप OOP में उपयोग करना समाप्त कर देंगे, लेकिन जो C से C ++ में आते हैं वे इसे grok / ken / " प्राथमिकता " OO के बिना बनाते हैं। अंत में C ++ पर बहुत खराब है। मैंने वास्तव में बहुत (15+) लंबे समय के फ़र्मवेयर और डिवाइस ड्राइवर डेवलपर्स के नरक का साक्षात्कार किया है, जिन्होंने वास्तव में सोचा था कि वे सी ++ जानते थे, लेकिन जो, ज्यादातर , सी + + की एक बहुत ही बुनियादी / पाठ्यपुस्तक समझ थी, जिसमें व्यावहारिक रूप से कोई समझ नहीं थी। ओओपी में अनुभव - क्योंकि उन्होंने वास्तव में ओओपी कभी नहीं किया था ... उन्होंने स्टैटिक सदस्यों के साथ सिंगलटन बहुउद्देश्यीय कक्षाएं लिखीं और कुछ स्थिर-गैर-स्टैटिक / गैर-सिंगलटन वर्गों की कुछ मात्राओं के साथ स्थिर कार्य किए गए जिनका उपयोग संरचना के रूप में किया गया था।
और एफपी में कुछ इसी तरह का दिमाग है (प्रतिमान पर नहीं उठाया गया है) अवधारणाओं और अन्य चीजें जो इसके साथ-साथ चलती हैं, और (हालांकि मैंने अपने लिए आदर्श होने के लिए बहुत सारी तकनीकों के संकरण को पाया है) मैं और अधिक समझता हूं और समय जितना आगे बढ़ता है, मेरी सोच अपने टूलसेट में वास्तविक कार्यात्मक क्षमताओं को प्राप्त करने से पहले सीमित थी; मैंने अतीत में कई चीजों को एक तरह से लागू करने में कामयाबी हासिल की थी, जो कि कुछ अधिक रचनात्मक थी, जो शायद सबसे ज्यादा ऊ प्रोग्रामर थे, लेकिन जैसा कि मैं उन अवधारणाओं का उपयोग करता हूं, जो मेरी सोच से पहले कास्टेड थे ... समस्याओं के पूरे वर्ग हैं जिन्हें हल किया जा सकता है कुछ पंक्तियों में जो C ++ / C # में करने के लिए बहुत सारे विरोधाभास का एक नरक ले जाता था।
अचानक तुम खुद को खोजते हो ...
ए "टू लॉन्ग" पोस्ट में
आप सब "एक जैसे नहीं पढ़े" के चक्रव्यूह में हैं।
आप निकट भविष्य में एक टेलीकांफ्रेंस देखते हैं, तेजी से निकट आ रहे हैं।
> संक्षिप्त
अहां। ज़रूर। ठीक है, हम कहेंगे "terse" मोड "on" है।
आप निकट भविष्य में एक टेलीकांफ्रेंस देखते हैं, तेजी से निकट आ रहे हैं।
> इसका क्या मतलब है?
मैं तो बस कह रहा हूं'। क्या आपको आज सुबह कुछ नहीं करना है?
आप निकट भविष्य में एक टेलीकांफ्रेंस देखते हैं, तेजी से निकट आ रहे हैं।
> अरे, यह तुम्हारे पीछे एक grue है?
क्या!? कहाँ पे?! [चिल्लाते हुए भागता है]
> क्षमा करें, मुझे समझ में नहीं आया कि कहां, रेफरेज?
[जारी रखा और चिल्ला रहा है, व्यंग्य
तो ... मुझे क्या सीखना चाहिए, प्रिय PSE, प्रिय PSE?
मैं व्यक्तिगत रूप से LINQ के साथ C # में शुरू हुआ। इसने मुझे एक समय में कुछ अवधारणाओं को पेश करने की अनुमति दी, और जब मैं लगातार एफपी और इसकी अवधारणाओं, और अधिक LINQ, और दोनों के बीच के संबंध के बारे में पढ़ रहा था, तो इसने मुझे उत्पादक काम करते हुए आगे बढ़ने का रास्ता दिया। मैंने एक समय में कुछ चीजों में जोड़ा, डेटा क्वेश्चन जल्दी ही मेरे लिए एक टन समझे बिना एक उपयोगी उपकरण बन गया।
अब, इसे वापस देखते हुए, मैं चाहता हूं कि मैं अपनी अगली परियोजना (लगभग एक साल बाद निबटा) पहले कर सकूं; मैं एफ # से मामूली परिचित हुआ (जो, संयोग से, मुझे एमएल (मेटलंगेज) सीखने पर एक शानदार शुरुआत दी और यह अन्य व्युत्पन्न है (उदाहरण के लिए, ओएमएक्सएल भी।)
मूल रूप से, मुझे लगता है कि 'क्या' का एक सभ्य उत्तर कुछ प्रोग्रामिंग समस्या की एक अच्छी जोड़ी को खोजने पर निर्भर करता है जो आपकी रुचि रखते हैं, लेकिन निश्चित रूप से इसे एफपी के एक बिट के साथ जोड़ा जाना चाहिए जिसे आप सीखना चाहते हैं ... (और आप कुल्ला कर सकते हैं / सूची से कुछ खटखटाने के बाद दोहराना / दोहराना ...) और, निश्चित रूप से, आप हमेशा मुख्य बात सीखने से थोड़ा अधिक सीखते हैं जो आप करने के लिए निर्धारित करते हैं; पहले तो मैंने कुछ बच्चे पैदा किए, लेकिन फिर मैंने बड़े काम करना शुरू कर दिया और उन चीजों को करते समय छोटे सामान को गिरने दिया।
सबसे पहले, आपकी नाव क्या है? विशेष रूप से सबसे पहले यह कुछ मजेदार और रोमांचक है (आपके लिए) और यह आपकी रुचि को आपके लिए सार्थक बनाने के लिए पर्याप्त होगा। इसलिए, IOW समस्याओं पर काम करने के लिए, और उन समस्याओं को संबोधित करने वाली तकनीकों ... LINQ और इनलाइन डेटा मेरे लिए पहली बार क्वेरी कर रहे हैं। मेरे लिए पुनरावृत्ति एक और थी, जिसमें पूंछ पुनरावृत्ति भी शामिल है, मैं इसे गोडेलएस्चेब-नेस की खुदाई करता हूं; और मैं पूंछ पुनरावृत्ति के बारे में पढ़ रहा था। इस समय के आसपास, मैं जिन चीजों पर काम कर रहा था, उन्हें रोक दिया गया था, और मेरे पास समय का एक बड़ा ब्लॉक था, इसलिए मैं इसे लंबे समय तक रखने में सक्षम था। यह कम रुकावट के साथ आसान था, लेकिन क्योंकि मैंने उन चीजों को चुना जो मुझे लगा कि मज़ेदार थे, यह सब काम के रुकावट के साथ भी कठिन नहीं था। :)
और यद्यपि मैं कुछ भी शांत नहीं था, मैं आपको स्वयं जागरूक केकड़े कार्यक्रम के बारे में बता सकता हूं, मैं इसमें बहुत अच्छा पाने में कामयाब रहा।
और ... मैं इसे किससे सीखूं, प्रिय PSE, प्रिय PSE, किसके साथ?
इसके लिए, मैंने विभिन्न एल्गोरिदम का उपयोग किया, जो मुझे वैसे भी दिलचस्पी लेने के लिए हुआ, साथ ही विभिन्न चीजें जो मैंने सोचा था कि अगर आप एफ # में कर सकते हैं, और जब मैं विचारों से बाहर निकलूंगा तो मैं 99 बोतल बीयर और प्रोजेक्ट यूलर जैसी चीजों से निपटूंगा। समस्याएं ...
मुझे यकीन है कि आप बहुत सी चीजें पा सकते हैं जो आपके लिए ब्याज है कि एफपी प्रासंगिक है; यह OOP को एन्हांसमेंट्स से सब कुछ प्रदान करता है जो आपको चीजों को थोड़ा और अधिक स्पष्ट रूप से बताने में मदद करता है, जिस तरह से आप इसके बारे में सोचते थे कि जिस आकार को आप पहचान नहीं पाते हैं और संभावना व्यक्त करने के लिए मानसिक मॉडल भी नहीं था। इससे पहले।
लेकिन ... मेरे मॉडल में एक छेद है, प्रिय पीएसई एक छेद ...
और यही कारण है कि यह महत्वपूर्ण है कि, विशेष रूप से शुरुआत में, लेकिन वास्तव में आपके सीखने के दौरान (और जब आप कुछ सीख रहे हैं तो क्या यह हमेशा सच नहीं है?) आप कम से कम समस्याओं के बीच असंबंधित चीजों को पढ़ने के लिए थोड़ा समय लेते हैं? अभी भी एफपी और विशेषज्ञों द्वारा लिखित स्रोत कोड को पढ़ने का समय, अधिमानतः समान या समान समस्याओं को हल करना; साथ ही उनकी बातों के स्पष्टीकरण ...
और सभी समय, आपको यह समझने के लिए अपने मस्तिष्क को तनावपूर्ण करना होगा, अपने पुराने दृष्टिकोण से नहीं बल्कि एफपी के भीतर से ही ... मेरे लिए कुछ बिंदु पर, यह क्लिक किया, और ... वह चीज जो मैं सबसे अच्छी तरह से संबंधित कर सकता हूं। डच में अधिक या कम धाराप्रवाह बनने के लिए; कुछ बिंदु पर मैं खुद को पर्याप्त मानसिकता में रखने में कामयाब रहा (मैंने इसे विसर्जन के माध्यम से किया, जो कि मूल रूप से मैंने यहां वर्णित किया है, "एफपी लर्निन" के माध्यम से इसे पूरी तरह से सीखने की बजाय खुद को एफपी में विसर्जित करना ...
और, आखिरकार मैंने किया; मैं सब कुछ आंतरिक रूप से करने और अपने मस्तिष्क को चारों ओर मोड़ने में कामयाब रहा, जब तक कि मेरे बिना एफपी / लिनक्यू को पॉप करना शुरू नहीं किया, यहां तक कि इसे ओओपी में वापस अनुवाद करने का प्रयास भी नहीं करना पड़ा। (हाँ, मैंने ऐसा किया; मुझे अपनी स्कर्ट लटकाने के लिए कुछ करना पड़ा। हाट। जो भी हो।)
अंतिम विचार...
मेरा, मेरा, ऐसा लगता है कि आप अपने हस्ताक्षर को चालाक समझने की क्षमता खो रहे हैं
अनुभाग शीर्षक। कितनी शर्म की बात है।
टेलीकांफ्रेंस अभी भी तेजी से आ रही है। यह अब बहुत बड़ा प्रतीत होता है।
> हाँ, हाँ, अच्छी तरह से। मुझे लगता है कि आप उस ग्रू को खोने में कामयाब रहे।
नज़दीकी कॉल, कि ... अच्छा, हाँ, मैं जा रहा हूँ ... ओह, नहीं!
AAAAAAAHHHHHH !! [एक बार फिर चिल्लाते हुए भागता है]
टेलीकांफ्रेंस अभी भी तेजी से आ रही है।
यह किसी भी तरह से सर लिन्सीजोन क्लीज़ेविज़ जैसा दिखता है।
यह लगभग आप पर है।
> अरे, जल्दी करो! मेरे पास आपके साथ प्रयास करने के लिए एक प्रयोग है! (और एक पो-टा-टू)
आप स्वाभाविक रूप से एफपी के बारे में ऑनलाइन जानकारी का खजाना पा सकते हैं। मुख्य बात बुनियादी अवधारणाओं को समझना है, और फिर उन्हें लागू करना सीखें। उदाहरण के लिए, अपरिवर्तनीयता के बारे में जानें, और यह एफपी के लिए महत्वपूर्ण / उपयोगी क्यों है। मैं सब कुछ के साथ जाने के लिए एक छोटे से सिद्धांत को सीखने की सलाह देता हूं, जैसे कि शुद्ध एफपी औपचारिक प्रमाण के लिए कितना अधिक उत्तरदायी हो सकता है। यह F # के पूर्वज, एमएल के पीछे एक प्रेरणा शक्ति थी। YMMV बेशक आप किसी को इस मामले में आँसू करने के लिए ऊब हो सकते हैं, बहुत सारे उदाहरण, बहुत सारे परीक्षण और त्रुटि यह देखने के लिए कि क्यों इस्तेमाल की जाने वाली तकनीकें हैं कि वे आपकी मदद करेंगे कि 'अहा!' लाइटबल्ब पल।
तो, मैं इसे अभी के लिए छोड़ दूँगा। आशा है कि यह किसी के लिए कुछ काम का हो। मैं सीखने के लिए विशिष्ट चीजों में थोड़ा अधिक प्राप्त करना चाहता था लेकिन मैं इस समय से बाहर हूं। मुझे उम्मीद है कि जल्द ही इसे वापस पाने के लिए कुछ समय मिल जाएगा, हालांकि यह मेरे लिए एक लंबा सप्ताह लग रहा है, इसलिए शायद कम से कम सप्ताहांत होगा।
<3 "GRUEBOL, एक स्टॉपगैप का परिचय; बस SnozzML समाप्त होने तक। यह जल्द ही होना चाहिए; मुझे इस बार मेरी मदद करने वाली एक बड़ी समिति मिली।" - ग्रेस हॉपरविट एगहेड, प्रसिद्ध अंतिम शब्द , XX97 GUE <3