भाषा-अज्ञेय होने के लिए मुझे क्या करना चाहिए?


52

अब तक मैं asp.net और C # के साथ काम करता हूं। मैंने जावा में भी एक अच्छा काम किया है। मैं अपने करियर की योजना इस तरह से बना रहा हूं कि मुझे किसी दिन भाषा-अज्ञेय होना चाहिए। ऐसी कौन सी चीजें हैं जो मुझे सीखने की जरूरत है?

पहले OOP प्रतिमानों के रूप में अपनी कक्षा डिजाइन के बारे में बोलता है। क्या कोई और हैं?


2
क्या आप कोशिश कर रहे हैं: लेबल लगाने से बचें, नौकरी में लचीलापन है, या कुछ दृष्टि खोज पर है?
जेएफओ 15

2
@ जेफ़ हाँ! लेबल किए जाने से बचने के लिए और यह न लड़ने के लिए कि मेरी भाषा द बेस्ट है;)
गोपी

मैं एक मजबूत राय के साथ एक आदमी को काम पर रखने की संभावना रखता हूं जो मेरे साथ सहमत नहीं था। क्योंकि तब वह जावा लिख ​​सकता था।
एरिक रिपेन

यदि आपने ऐसा किया है तो भर्तीकर्ता आपके फिर से शुरू होने पर छोड़ देंगे।
गोंजोब्राईंस

जवाबों:


67

भाषा अज्ञेय होने के लिए आपको सभी सामान्य शैलियों और भाषाओं के प्रकार में अनुभव होना चाहिए।

  • एक अनिवार्य भाषा (आप इसे बताएं कि क्या करना है, कदम दर कदम। जैसे - C)
  • एक घोषणात्मक भाषा (आप इसे अपना लक्ष्य बताते हैं, यह पता लगाता है कि क्या करना है। जैसे - SQL / HTML / Prolog)

इसके अलावा:

  • एक कार्यात्मक भाषा (कार्य महत्वपूर्ण हैं, राज्य और दुष्प्रभाव से बचने के लक्ष्य हैं। जैसे - हास्केल / ओकेमेल / लिस्प / एफ #)
  • एक वस्तु उन्मुख भाषा (वास्तुकला जहां वस्तुओं से संबंधित डेटा और तरीकों कि उन पर कार्य संपुटित)। जैसे - जावा / सी #)

कुछ टाइपिंग स्टाइल:

कुछ अलग क्रम शैली:

निचले स्तर का सामान:

  • कुछ काफी निम्न स्तर (जैसे - C)
  • विधानसभा की कुछ बोली (उदाहरण - NASM)

उसके ऊपर मैं कहूंगा कि आपको कुछ समवर्ती प्रोग्रामिंग और संचालित कुछ घटना के अनुभव की आवश्यकता है । आपको संभवतः यह भी सुनिश्चित करना चाहिए कि आप विभिन्न डोमेन जैसे कि वेब प्रोग्रामिंग (क्लाइंट और सर्वर), समृद्ध ग्राहक विकास / डेस्कटॉप, गेम्स के बारे में कुछ जानते हैं। आप एम्बेडेड प्रोग्रामिंग, या समर्पित हार्डवेयर (जैसे गेम कंसोल) के बारे में भी सीखना चाह सकते हैं, और मोबाइल विकास एक तेजी से प्रासंगिक डोमेन बन रहा है।

दूसरों ने यह भी उल्लेख किया है कि यह जेनेरिक प्रोग्रामिंग और मेटा प्रोग्रामिंग दृष्टिकोण के कुछ अनुभव प्राप्त करने के लायक है ।

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

यदि आप यह सब कर चुके हैं, तो भाषाओं के बीच का अंतर काफी हद तक वाक्यविन्यास हो जाएगा, इसलिए स्विचिंग कुछ नए वाक्यविन्यास सीखने का काफी सरल अभ्यास बन जाएगा।

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


9
एचटीएमएल घोषित अर्थों में कैसा है? "लक्ष्य -> ​​लड़ाई"? यह नहीं है ऐसा वास्तव में कुछ।
फेलिक्स डॉमबेक

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

3
@ फेलिक्स: एचटीएमएल, लक्ष्य = "मुझे एक लेबल और एक पाठ बॉक्स चाहिए"। क्रिया = लेआउट और ग्राफिक्स इंजन यह पता लगाते हैं कि उन्हें कैसे आकर्षित किया जाए। विवरण व्यक्तिगत ब्राउज़रों के लिए नीचे हैं। आप केवल यह परिभाषित करते हैं कि आप क्या करना चाहते हैं। यहाँ देखें । हालांकि मैं सहमत हूं, यह वास्तव में "भाषा" नहीं है। प्रोलॉग एक बेहतर उदाहरण है, मैं अपडेट करूंगा।
साइमन पी स्टीवंस

1
+1 प्रकारों की एक अच्छी सूची के लिए, भाषा विकल्प स्थानों में प्रतिमान से थोड़ा दूर हैं, लेकिन समग्र उत्कृष्ट हैं।
परिक्रमा

2
वैसे, आपको "विभिन्न डोमेन / अमूर्त के स्तर" को जोड़ना चाहिए: वेब, इंटरेक्टिव वेब, डेस्कटॉप टूल, डेस्कटॉप गेम, लगातार गेम उसी तरह नहीं बनाए जाते हैं जैसे कि बाधाएं और हार्डवेयर की दूरी अलग होती है, जिससे भाषाओं का चुनाव होता है ( या यहां तक ​​कि अस्तित्व) जो अज्ञेयवादी होना चाहता है उसे समझने के लिए अधिक स्पष्ट है।
Kलेम

4

मुझे नहीं लगता कि आप वास्तव में भाषा अज्ञेय बन सकते हैं। मुझे लगता है कि मैं अपनी वर्तमान भाषा में "सोचता हूं" (फिलहाल C #)।

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


+1 के लिए "आप वास्तव में भाषा अज्ञेय नहीं हो सकते हैं"। लेकिन मैं आपके दूसरे पैराग्राफ से बिलकुल सहमत नहीं हूँ। मुझे लगता है कि यह उस भाषा और रूपरेखा के लिए डिज़ाइन करना महत्वपूर्ण है जिसका आप उपयोग करने जा रहे हैं।
साइमन पी स्टीवंस

@ साइमन - आपको फ्रेमवर्क के लिए डिजाइनिंग के बारे में एक अच्छी बात मिल गई है। मैं जवाब अपडेट कर दूंगा।
ChrisF

3

आपके प्रश्न और कुछ उत्तरों को पढ़ने से यह आभास हो सकता है कि आप "पृथ्वी पर हर प्रतिमान को जानने" के साथ "भाषा अज्ञेयवाद" के बराबर हैं।

मुझे यकीन नहीं है कि हर प्रतिमान जो मौजूद है या भाषाओं की एक विस्तृत श्रृंखला को जानना, कई प्रतिमानों और प्रकार की भाषाओं को जानना आपको "भाषा अज्ञेय" बनाता है।

यह कहने जैसा है कि सभी धर्मों का पालन करना खुद को धार्मिक रूप से अज्ञेय बनाता है।

मुझे लगता है कि प्रोग्रामिंग भाषाओं के संबंध में एक भाषा अज्ञेय व्यक्ति ऐसा होना चाहिए जो किसी भी भाषा में प्रोग्राम करना बिल्कुल नहीं जानता हो या उसे इस बात की परवाह न हो कि उसे किस भाषा में प्रोग्राम करने के लिए कहा गया है।

उस ने कहा, कुछ लोग कहते हैं कि एक सच्चा प्रोग्रामर किसी भी भाषा में उस भाषा के प्रलेखन तक पहुँच को प्रोग्राम कर सकता है।

अगर आपको "भाषा अज्ञेय" से मतलब है, तो लगभग कोई भी अनुभवी प्रोग्रामर किसी भी भाषा में प्रोग्राम कर सकता है, जिसे वह काम करने के लिए मजबूर करता है, जिसे भाषा के दस्तावेज तक पहुँच दी जाती है।

हो सकता है कि आप "भाषा बहुदेववादी" बनना चाहते हों।

मैं खुद कई भाषा प्रतिमानों में सक्षम हूं, लेकिन जब यह लागू होता है तो मैं OOP को प्राथमिकता देता हूं। इसलिए मुझे लगता है कि मैं अज्ञेय नहीं हूं।

आपको शायद ही कोई मिलेगा जो किसी निश्चित प्रतिमान या भाषा को चुनना पसंद नहीं करता है जिसे चुनने की स्वतंत्रता दी गई हो।


0

यह सिर्फ भाषाएं नहीं हैं, जावा में ही इतने सारे अलग-अलग तरीके हैं कि आप उन सभी को सीखने में सालों बिता सकते हैं। आप सीख सकते हैं:

  • J2EE मेसेजिंग और पर्सिस्टेंस और विभिन्न सर्वरों की तरह है
  • जेएसपी और अपाचे-उन्मुख टूलकिट
  • चींटी, मावेन और अन्य बिल्ड सिस्टम (स्वयं भाषाएं)।
  • संपूर्ण ग्रूवी / ग्रिल्स दुनिया
  • सभी अपाचे एपीआई एपीआई
  • परीक्षण प्रणाली (Mocking, JUnit)
  • GUI बिल्डरों जैसे स्विंग, GWT ...

और एक सौ बातें मुझे याद आ रही हैं - सिर्फ जावा के भीतर।

यदि आप चौड़ाई (हर भाषा सीखते हुए) को कवर करते हैं, तो आपको उनमें से किसी एक में प्रभावी ढंग से काम करने के लिए गहराई हासिल करने में परेशानी होगी।

मैं यह नहीं कह रहा हूं कि एक नई भाषा सीखना कभी भी समस्या नहीं है, आप सक्रिय रूप से ऐसा कर रहे हैं! मैं जो सीख सकता हूं (जो मैंने अभी तक नहीं किया है) के आधार पर अपना अगला काम लेने की कोशिश करता हूं, लेकिन मैं अक्सर एक यादृच्छिक भाषा नहीं चुनता हूं और इसे किसी भी तरह से सीखता हूं - पिछली बार मैंने कोशिश की थी कि मैं स्काला और मैं के साथ था कुछ हद तक विनम्र ...


करने के लिए "पूरे ग्रूवी / Grails दुनिया" आप जोड़ सकते ", पूरे स्काला / खेलें! 2 दुनिया, पूरे JRuby / रेल दुनिया, और पूरे Clojure / नोयर दुनिया"।
वोर्ग वान गीर

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