यह हमेशा "मुझे किस भाषा को सीखना चाहिए" के बजाय "मुझे किस परियोजना से आगे बढ़ना चाहिए"? [बन्द है]


14

शुरुआत करने वाले प्रोग्रामर (मेरे जैसे) हमेशा अगली भाषा के बारे में पूछते हैं कि उन्हें अगली परियोजना के बारे में पूछने के बजाय सीखना चाहिए?

एरिक रेमंड ने अपने " हाउ टू बी ए हैकर " निबंध के " लर्न हाउ टू प्रोग्राम " खंड में , उस क्रम के बारे में बात की जिसमें आपको भाषाएँ सीखना चाहिए (बनाम वह क्रम जिसमें आपको परियोजनाओं से निपटना चाहिए)।

क्या बढ़ई शुरू से पूछते हैं कि "मुझे पता है कि हथौड़े का उपयोग कैसे किया जाता है ... क्या मुझे सीखना चाहिए कि आरा या अगले स्तर का उपयोग कैसे किया जाए?"

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

धन्यवाद,

माइक


5
यह थोड़ा सा लगता है ... कठोर, ईमानदार होना। शायद आप इंसुलेशन हटा सकते थे और सिर्फ अपना सवाल छोड़ सकते थे?
आनन।

4
मुझे लगता है कि आप कालानुक्रमिक तरीके से बेमेल हो रहे हैं। ऑड्स कारपेंटर हैं वे पहले से ही जानते हैं कि उन उपकरणों का उपयोग कैसे करें, अगर वह जानता है कि कैसे एक दरवाजा फ्रेम करना है। लेकिन पहले अपने जीवन में, उन्होंने भी इस बात का अनुसरण किया कि मुझे किस उपकरण की जांच करनी चाहिए।
21

निष्पक्ष टिप्पणी पुनः: रैंटी ... मनोरंजन के लिए जा रही थी। माफी अगर यह रैंटी के रूप में सामने आई।
माइक रैंड

4
उपकरण की तुलना करने के लिए प्रोग्रामिंग भाषा बहुत अच्छी तुलना नहीं है। यह सतही रूप से समझ में आता है, लेकिन जल्दी से गिर जाता है और मददगार की तुलना में अधिक हानिकारक होता है। इसके अलावा, बहुत से लोग इसे ऐसे मानते हैं जैसे यह एक निर्विवाद सत्य है। यह आदमी कुछ कारणों की वजह से एक सभ्य काम करता है कि यह काम क्यों नहीं करता है। journal.dedasys.com/2007/12/12/...
निक नोल्सन

मुझे यह सवाल पसंद है ...!
माइकल के

जवाबों:


6

मुझे लगता है कि जब ज्यादातर लोग किसी भाषा को सीखने के लिए तैयार होते हैं, तो वे ऐसा इसलिए करते हैं क्योंकि वे उस भाषा में लिखे गए प्रोजेक्ट से निपटना चाहते हैं, या तो अभी या भविष्य में। ऐसा करने के लिए, उन्हें उस भाषा को सीखना चाहिए, जिसमें समय लगता है। प्रोग्रामिंग भाषाएं उपकरण की तरह हैं, लेकिन जब आप लगभग साठ सेकंड में एक हथौड़ा का उपयोग करना सीख सकते हैं, तो भाषाएं सीखने में थोड़ा समय लेती हैं; इस प्रकार बहुत से लोग उस भाषा में लिखे गए प्रोजेक्ट पर काम करने से पहले एक भाषा सीखने पर ध्यान केंद्रित करते हैं।

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

अंत में, सीखने की भाषा मज़ेदार हो सकती है , भले ही आपके पास कोई विशिष्ट परियोजना या लक्ष्य न हो।


6
  • कई पूर्णकालिक डेवलपर्स का मकसद अधिक रोजगारपरक होना है।

  • अधिक रोजगार योग्य होने का मतलब आमतौर पर एचआर स्क्रिनर की बाधा को पार करना है (और बाद में वास्तविक साक्षात्कार की बाधा को पार करना)।

  • आम तौर पर एचआर स्क्रिनर के पास आमतौर पर ऐसी भाषाओं की एक चेकलिस्ट होती है, जो इसे फिर से शुरू करने के खिलाफ मैच कर सकती है, लेकिन कौशल या परियोजनाओं के मूल्यांकन का कोई तरीका नहीं है।

  • एक वास्तविक साक्षात्कार में सफलता आम तौर पर अनुभव पर और भाषा की गहरी समझ की तुलना में एक भाषा में भाग्य और न्यूनतम कौशल पर अधिक निर्भर करती है।

इसलिए, कई भाषाओं में औसत दर्जे का होना कुछ में विशेषज्ञ होने से बेहतर है, जब तक कि कोई वरिष्ठ पदों के लिए आवेदन न करे।


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

1
@Jeff, मैंने एचआर स्क्रीनिंग के बारे में जो सुना है, वे सभी चाहते हैं कि रिज्यूमे की संख्या को एक प्रबंधनीय स्तर तक घटा दिया जाए और वे बहुत सारे मनमाने फिल्टर लगा दें, जैसे "बिन अगर 2 से अधिक पेज"।
डोमिनिक मैकडोनेल

2

वहाँ बढ़ई के लिए अनुरूप प्रोग्रामिंग विकल्प "क्या आवेदन मैं अगले निर्माण करना चाहिए?" या "मुझे आगे क्या सिस्टम बनाना चाहिए?" जो बल्कि वैध हैं और एक परियोजना से अलग हैं जो वास्तव में लगभग सार्वभौमिक रूप से लागू किया जा सकता है। मेरे पास अपना आहार बदलने या 20 एलबीएस खोने के लिए एक परियोजना हो सकती है जितनी आसानी से मुझे कुछ हो सकता है जिसमें चीजों को एक साथ बाँधने के लिए कुछ नए सॉफ़्टवेयर की आवश्यकता होती है।

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


1

शायद यह आंशिक रूप से हैकर मानसिकता के बारे में है, कम से कम कुछ प्रोग्रामर के लिए। हैकर में परिभाषित किया गया है शब्दजाल फ़ाइल के रूप में

"एक व्यक्ति जो प्रोग्राम करने योग्य प्रणालियों के विवरण की खोज का आनंद लेता है और अपनी क्षमताओं को कैसे बढ़ाता है, अधिकांश उपयोगकर्ताओं के विपरीत, जो केवल न्यूनतम आवश्यक सीखना पसंद करते हैं।"

इसलिए, एक हैकर आत्मा के लिए, यह सीखने और प्रक्रिया के साथ "छेड़छाड़" करने के बारे में अधिक है, अवधारणाओं, उपकरण और हाँ, कुछ बनाने की भाषाएं, अंत उत्पाद से ही। प्रक्रिया के बारे में और अधिक।

यह अगली नई चीज़ और / या चुनौती के लिए एक निरंतर प्रयास है। समाप्त परियोजना तेजी से अपील करती है। कभी-कभी (अधिकांश समय?) परियोजना के पूरा होने से पहले सबसे बड़ी रचनात्मक या तकनीकी चुनौतियों पर विजय प्राप्त की जाती है। कई परियोजनाएं तब छोड़ दी जाती हैं, जब नई मानसिक चुनौतियों के लिए भूखा दिमाग आगे बढ़ता है।

विशेष रूप से हैकर नए विचारों, अवधारणाओं, अमूर्तताओं और सोचने के तरीकों में रुचि रखते हैं, मानसिक हैकिंग के प्रकार:

"एक भाषा जो आपके प्रोग्रामिंग के बारे में सोचने के तरीके को प्रभावित नहीं करती है, वह जानने लायक नहीं है।" - एलन पर्लिस


0

आजकल आम उपयोग में विभिन्न प्रकार की भद्दी भाषाएं हैं: C, C ++, C #, Java, JavaScript, Python, Perl, Ruby, Visual Basic, आदि। प्रोग्रामर इनमें से कई सीखते और मिलाते हुए इन भाषाओं की अंतर्निहित गतिशीलता के लिए बनाते हैं। साथ में।

लिस्प समुदाय के रूप में एक छोटा सा समुदाय है जो आधुनिक कंप्यूटिंग को विकृत करने वाले पागलपन से मुक्त है।

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


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

लिस्प की शक्ति के बारे में अपनी भावना से सहमत हैं, लेकिन इससे सहमत नहीं है कि यह अन्य भाषाओं को जानने के लिए बेकार है: चाल मैं लिस्प में उपयोग के सबसे सक्रिय रूप से क्या मैं अन्य भाषाओं से (चाहे पैटर्न या विरोधी पैटर्न ... के रूप में) सीखा शोषण
mikera

0

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

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