2009-05-18 19 views
5

प्रश्नघोषणात्मक प्रोग्रामिंग भाषाओं grokking के लिए युक्तियाँ?

के रूप में कहा गया है, आप कोई सुझाव grok/समझते हैं/मिलता-अपने सिर के आसपास कथात्मक प्रोग्रामिंग भाषाओं में मदद करने?

या यह केवल एक मामला है कि आपको भाषा में और अपने वाक्यविन्यास को विसर्जित करना है, जब तक कि वह उस सुनहरे पल को न ले जाए, जब तक कि आप इसे प्राप्त करें। यह वास्तव में एक विकल्प नहीं है क्योंकि मैं अपने आप को दिन के अंत में कमरे में बंद नहीं कर सकता, विषय वस्तु पर आधे दर्जन से अधिक विभिन्न पुस्तकों (जिम्मेदारियां जो वे हैं और सभी)

तो, कोई सुझाव या चालें जिन्होंने आपको घोषणात्मक भाषाओं का सामना करने में मदद की, किसी भी अंतर्दृष्टि को पारित करने के लिए?

पीएस मैं व्यक्तिगत रूप से पहले जवाब यह है कि कहते हैं, "Shutup और काम में डाल" वोट दें देंगे।

पृष्ठभूमि

मुझे लगता है मैं 13 साल की थी जब मैं पहली बार (, बुनियादी अपनी बहनों Oric-1 पर) मरोड़ कोड शुरू कर दिया था।

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

उल्लू, MFC ActiveX, VB3, 4, 5 & 6, VB.Net, पास्कल, डेल्फी, सी, सी ++ & सी #। कोई भी मेरे रास्ते में खड़ा नहीं है, कम से कम बहुत लंबे समय तक नहीं।

हालांकि हाल ही में मेरी पूर्ण स्कोर एक battering का एक सा ले लिया है।

कुछ सप्ताह पहले मैं अपने आप को Xaml में डाल दिया और लोगों, मैं तैराकी की तुलना में अधिक डूब रहा हूँ।

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

Xaml पर वापस, वर्तमान में मैं गुणों के लिए ट्रिगर्स तार करने की कोशिश कर पागल हो रहा हूं और मुझे प्रभाव की आवश्यकता है।

मैं जल्द ही अपने विशिष्ट Xaml प्रश्न पोस्ट कर सकता हूं। अभी के लिए मैं इस सामान्य "घोषणात्मक प्रोग्रामिंग" प्रश्न पूछ रहा हूं।

पीएस नहीं, मैं वास्तव में यह मुर्गा नहीं हूँ। हां, मैंने पहली बार ओओ को मारने पर नरक की तरह ठोकर खाई और पहली बार मैं एक ईवेंट संचालित यूआई (विंडोज 3.11 पर वीबी 3) लिखना चाहता था।

संपादित

यह सिंक करने के लिए शुरू कर रहा है, तप है कि मुझे यह मिल गया अब तक इस क्षेत्र में बंद दे रही है, यह सिर्फ इतना fracking समय ले जाता है!

। । । मुझे लगता है कि मैं इस सामान के लिए बहुत पुराना हो रहा हूं। । ।:)

+1

आपकी बहन के पास ओरिक था? वह एक बहुत ही असामान्य महिला होनी चाहिए! –

+0

ग्रोकिंग, 2 के साथ;) – Carra

+0

बेसिक? क्षमा करें - आप FUBAR हैं ... :) – xtofl

उत्तर

3

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

ओएस सीखने के विपरीत, एक्सएसएल (या कोई घोषणात्मक भाषा, मुझे लगता है) में आप जो भी करने की कोशिश कर रहे हैं वह करने के लिए आप प्रबंधित नहीं करेंगे जब तक आप इसे घोषणा नहीं करते।

तो जवाब आपके भाग के अनुसार "चुप रहो और काम करें" भाग में है, लेकिन अधिक महत्वपूर्ण बात यह जानना है कि बहुत सारे काम प्रतिमान शिफ्ट के आसपास अपना सिर प्राप्त कर रहे हैं। तो असली जवाब है, "अपनी आंखों को प्रतिमान शिफ्ट के लिए छीलते रहें।" आपको प्रवाह में सोचना बंद करना होगा और किसी भी क्रम में आग लगने वाले नियमों के संदर्भ में सोचना शुरू करना होगा ... यदि वे सही तरीके से किए जाते हैं, तो इससे कोई फर्क नहीं पड़ता कि वे आग लगते हैं। जब आप अंततः सामानों के बजाए नियमों में सोच रहे हैं, तो आप शिफ्ट को ग्रोक करना शुरू कर रहे हैं।

+0

+1। । । लेकिन "चुप रहो और काम करो" के लिए भी। धन्यवाद दोस्त :) –

+0

शो 'चीज, इस के साथ शुभकामनाएं ... –

+0

उपयोगी सलाह के लिए सही उत्तर के रूप में चयन करना। धन्यवाद दोस्त। –

0

मैं सबसे आसान तरीका है "grok" करने के लिए एक भाषा अपने सभी कोडिंग के लिए विशेष रूप इसे का उपयोग शुरू करने के लिए है लगता है। पूरी तरह से नई भाषा के साथ मैं कहूंगा कि सीखने की अवस्था दिन में 4-5 घंटे कोडिंग के लगभग 2 सप्ताह है। उस बिंदु के बाद यह अचानक "क्लिक" करता है और आप मैनुअल और दस्तावेज़ों पर कम निर्भर करना शुरू कर सकते हैं।

+0

मैं सहमत हूं, लेकिन अन्यत्र ए.के.ए. "शॉर्ट कट्स" सीखा सबक ढूंढ रहा हूं, कि सभी ईमानदारी में मौजूद नहीं है। फिर भी, यह पूछने में कोई दिक्कत नहीं होती है :) –

+1

वास्तव में कोई शॉर्टकट नहीं हैं ("चीटशीट्स" के अलावा और यहां तक ​​कि यदि आप भाषा की बारीकियों को वास्तव में समझ नहीं पाते हैं तो भी आप धोखा दे रहे हैं। – ennuikiller

2

कुछ उदाहरण खोजें, "क्यों" के स्पष्टीकरण के साथ, जो वास्तव में भाषा को जानता है। यह पैटर्न और मुहावरे सीख रहा है जो एक फर्क पड़ता है।

मुझे संदेह है कि आप घोषणात्मक भूमि में अनिवार्य चीजें करने की कोशिश कर रहे हैं, जिसका अर्थ है कि आप चरणों के संदर्भ में सोचते हैं। आवश्यक इनपुट के मामले में डेटाफ्लो लिखें + उन इनपुट के स्टेटलेस फ़ंक्शन और देखें कि क्या इससे मदद मिलती है।

एमएल या योजना जैसे कार्यात्मक या functionalesqe भाषा आज़माएं।

1

मुझे नहीं पता कि एक्समल के साथ आपकी विशिष्ट समस्याएं क्या हैं (और मैंने इसे स्वयं नहीं उपयोग किया है), लेकिन मुझे पता चला है कि एक्सएसएलटी जैसे एक्सएमएल आधारित तकनीकों का उपयोग करते समय, थोड़ा एलआईएसपी या स्कीम अनुभव एक जा सकता है लंबा रास्ता। आप http://www.plt-scheme.org से उपलब्ध उत्कृष्ट योजना प्रणाली के साथ खेलना चाहेंगे।

0

मैंने कॉलेज (प्रोग्रामिंग भाषाएं) में एक कक्षा ली। यह काफी महसूस हुआ जैसे मैं बार-बार ईंट की दीवार के खिलाफ अपने सिर को झुका रहा था, लेकिन वर्ग के माध्यम से रास्ते के बारे में 3/4, मुझे एहसास हुआ कि दीवार अब और नहीं थी; मैं कुछ हफ्तों के लिए कुछ भी नहीं के खिलाफ अपना सिर मार रहा था। यह एक बहुत ही असली भावना थी।

मुझे लगता है कि किसी अन्य तरीके से एक ही आकर्षण नहीं होगा। गोडेल, एस्चर, बाख पढ़ें; बहुत सारे एमर्सन, झील, और पामर और कैखोसु सोरबजी को सुनो; कुछ गंज धूम्रपान करें, और उस समय रखो।

+0

कक्षा क्या थी? –

1

अपने पसंदीदा “programmer ignorance” pet peeve पर विचार करें। पहला कोड स्निपेट स्पष्ट रूप से प्रक्रियात्मक है। दूसरा टुकड़ा में आप एक कथात्मक बयान बनाने कि प्रतिशत मान्य यह आप के रूप में लंबे समय के रूप होने के लिए 0 और 100 के

तो बीच मैं लगता था आप कोई परेशानी नहीं कथात्मक प्रोग्रामिंग भाषाओं grokking होगा है होने के लिए इस पर बहुत मेहनत करें ... there is no royal road to geometry

+1

+1 मेरे खिलाफ मेरी सबसे सफल पोस्ट को बदलने के लिए। अच्छी सलाह के लिए अच्छा :) :) –

1

मैं देख सकता हूं कि यह आपके दिमाग को कहाँ उड़ सकता है। आपके द्वारा सूचीबद्ध सभी भाषाएं वास्तव में काफी समान हैं (प्रक्रियात्मक)।

एक बार जब आप इसे प्राप्त कर लेंगे, तो मैं अत्यधिक आपको functional language सीखने के लिए प्रोत्साहित करता हूं। आपको यह भी मुश्किल हो सकता है, लेकिन इसे सीखने से आपके सामान्य कोडिंग कौशल में काफी मदद मिलेगी। आपके पास चाल का एक नया बैग होगा (यहां तक ​​कि प्रक्रियात्मक भाषाओं में भी), और आप फिर से रिकर्सन से डरेंगे नहीं।

1

तरह बाइनरी worrier, मैं सी, सी ++, MFC, आदि जैसी चीजों के साथ एक लंबा इतिहास रहा था और पर XAML, WPF, और सी # लाने के लिए आ रहा है की है। मेरे पास एचटीएमएल, जावास्क्रिप्ट और एक्सएसएलटी के माध्यम से एक साइड ट्रिप था, जो मुझे लगता है कि एक्सएएमएल के लिए मुझे तैयार करने में काफी मदद मिली है।

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

यदि प्रश्न अधिक विशिष्ट था तो शायद मैं अधिक सहायक हो सकता था।

1

"प्रोग्रामिंग कंप्यूटर को निर्देशों का एक अनुक्रम देने के बारे में है।"

अधिकांश प्रोग्रामर इस कथन के बराबर प्रतिक्रिया के साथ प्रतिक्रिया करते हैं। यह लगभग पसंद है ... "दुह?"

लेकिन इस कथन में विश्वास लोगों को अन्य प्रोग्रामिंग प्रतिमानों को समझने में परेशानी का कारण बनता है। यह सत्य है, और यह बहुत लंबे समय तक नहीं रहा है। प्रोग्रामिंग की बेहतर समझ पर पहुंचने के लिए, कई लोगों को यह बताने से फायदा हो सकता है कि यह कथन गलत क्यों है।

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

यह केवल घोषणात्मक प्रोग्रामिंग नहीं है जो इस रूपक के साथ फिट नहीं है, बल्कि समांतर और असीमित प्रोग्रामिंग भी है।

संबंधित मुद्दे