स्काला सीखना, हतोत्साहित महसूस करना [बंद]


9

मैं एक जावा बैकग्राउंड से आ रहा हूं और स्काला सीखने की कोशिश कर रहा हूं। फिलहाल मैं काफी अभिभूत महसूस कर रहा हूं, ऐसा लगता है कि स्काला के साथ सीखने के लिए बहुत कुछ है, एक ही काम करने के कई अलग-अलग तरीके।

मैं सोच रहा था कि किसी को कोई सलाह नहीं है कि कहां से शुरू करें, और भाषा में यथोचित रूप से सक्षम महसूस करने में उन्हें कितना समय लगा?

यहां तक ​​कि लूप कॉम्प्रिहेंशन के लिए बहुत कम चीजें वास्तव में शक्तिशाली लगती हैं, लेकिन यह सिंटैक्स का एक और टुकड़ा है जिसे आपको याद रखने की आवश्यकता है!


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

प्रोत्साहित करने के लिए धन्यवाद! सीढ़ी की किताब क्या है?
jcm

अनुशंसित पढ़ने: कहां से शुरू करें?
gnat

मैंने कुछ साल पहले एक जावा परिप्रेक्ष्य से स्काला की कोशिश की और वास्तव में यह नहीं मिला। हाल ही में, मैंने स्काला में कार्यात्मक प्रोग्रामिंग पर coursera.org पर एक पाठ्यक्रम शुरू किया। यह एक बहुत अलग दृष्टिकोण है कि मेरा जावा बैकग्राउंड रास्ते में नहीं मिला। इसके बजाय मैं अपरिवर्तनीय डेटा संरचनाओं में सोचने के लिए सीख रहा हूं, एल्गोरिदम, सेट सिद्धांत, प्रकार सिद्धांत और अन्य सभी मज़ेदार सामानों के बारे में तर्क देता हूं जो मुझे वास्तविक नौकरी में अभ्यास करने के लिए नहीं मिलते हैं। चिंता मत करो; वास्तविक दुनिया में स्काला की वास्तविक उपयोगिता अभी भी है।
BobDalgleish

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

जवाबों:


11

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

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

दूसरी बात यह थी कि कुछ समय वर्क आउट की समस्या को सुलझाने में था जो तकनीकी रूप से सरल थी, लेकिन मुझे अपने स्वयं के स्कैला सिंटैक्स के विशिष्ट पहलुओं का पता लगाने के लिए मजबूर किया गया:

हालांकि इसने मुझे रातों-रात एक विशेषज्ञ के रूप में नहीं बदल दिया, इसने मुझे इस भाषा से काफी परिचित कराया कि यह अब बिल्कुल असंभव नहीं लगता।

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

पुस्तक पढ़ने का एक विकल्प कौरसेरा वर्ग में भाग ले रहा है - यह बहुत कम व्यापक है, लेकिन अधिकांश महत्वपूर्ण बिंदुओं को शामिल करता है और प्रबंधनीय, तार्किक इकाइयों में टूट जाता है। दूसरी ओर, मुझे नहीं पता कि कक्षा पूरा होने के बाद पाठों को एक्सेस करना संभव है या नहीं, और मैंने यह भी पाया कि मैं किसी की बात सुनते हुए बहुत कम व्यस्त था (यहां तक ​​कि किसी व्यक्ति के रूप में स्पष्ट रूप से स्मार्ट और मार्टिन ऑरडेस्की के रूप में जानकार)। जब कोई किताब पढ़ रहा हो।

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

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

यदि आपको ऐसा लगता है, तो आपको शायद आगे कोई मदद की जरूरत नहीं है, लेकिन एक अच्छा सुझाव, एक बार जब आप भाषा के साथ समझ में आ जाते हैं, तो अंतर्निहित अवधारणाओं में गहराई से उतरना है। आप ओओपी से परिचित हैं, कार्यात्मक प्रोग्रामिंग पर पढ़ने की कोशिश करते हैं - मैं पूर्ण निश्चितता के साथ कह सकता हूं कि यह आपके दिमाग को उड़ा देगा। स्काला में कार्यात्मक प्रोग्रामिंग जल्द (इश) जारी किया जाना चाहिए, लेकिन शुरुआती पहुंच संस्करण पहले से ही उत्कृष्ट है। एक और जवाब जावा डेवलपर्स के लिए कार्यात्मक प्रोग्रामिंग का सुझाव देता है , जिससे मैं परिचित नहीं हूं लेकिन विश्वास करने में असमर्थ हूं अच्छा है (जब ओ'रिली किताब कम से कम स्किमिंग के लायक नहीं है?)।

मुझे आशा है कि यह बहुत लंबा घुमावदार और स्पष्ट नहीं था, और ईमानदारी से आपको शुभकामनाएं। स्काला के अपने दोष हैं, लेकिन यह एक अद्भुत भाषा है और आपके मस्तिष्क को उन दिशाओं में ले जाएगा जिन्हें आप कभी नहीं जानते थे। और मैं आपके "लर्निंग हास्केल, एक साल में हतोत्साहित" महसूस कर रहा हूँ :)


3

Scala जावा के लिए सोचने का एक बहुत अलग तरीका है, इसलिए निराश मत हो! मैं संभवतः जावा डेवलपर्स के लिए कार्यात्मक प्रोग्रामिंग के साथ शुरू करूंगा ताकि आप सोच के कार्यात्मक तरीके से मिल सकें।

क्या कोई जावा और / या स्काला उपयोगकर्ता समूह पास है? सहकर्मी के साथ नई भाषा सीखना हमेशा आसान होता है।

शुभकामनाएँ और उस पर कायम रहें!


इसके अलावा मैं आपकी रुचि के क्षेत्रों के बारे में स्काला फ्रेमवर्क या टूलकिट पर एक नज़र डालने की सलाह दूंगा। मेरे अनुभव में एक प्रोजेक्ट होने पर आप काम करना पसंद करते हैं जिससे चीजें आसान हो जाती हैं। उदाहरण के लिए लिफ्ट या प्ले फ्रेमवर्क देखें जब आप वेब-डेवलपमेंट या अक्का में हों तो समवर्ती या वितरित एप्लिकेशन आपकी चीज हैं।
जूही
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.