जब तक वह उस पर प्रवीण न हो जाए, तब तक एक नए प्रोग्रामर को एक ही तकनीक पर ध्यान केंद्रित करना चाहिए? [बन्द है]


10

ठीक है, मैं एक दोस्त को सिखा रहा हूं कि अब थोड़ी देर के लिए कैसे प्रोग्राम करना है। वह बहुत तेज़ सीखने वाला है, और वह अब तक की प्रोग्रामिंग में काफी अच्छा है। हालांकि, उसके पास एक "मुद्दा" है जिसे मैं सही करने की कोशिश कर रहा हूं।

वह कूदता है और कुछ मूल बातें सीखे बिना हाईलेवल प्रोग्रामिंग करना शुरू कर देता है (उसने एक पूर्ण विकसित वेब एप्लिकेशन बनाया है लेकिन फिर भी पेजिंग या सत्र प्रबंधन नहीं जानता है)।

हालांकि यह समस्या नहीं है। वह नई तकनीक (Node.js, MongoDB, EC2, इत्यादि) के आसपास कूदता रहता है। मैंने उसे यह बताने की कोशिश की कि उसे अपनी पसंद के RDMS (MySQL) के बारे में कुछ मूल बातें सीखनी चाहिए क्योंकि वह हर रोज़ इसका इस्तेमाल मोंगोडीबी की मूल बातें सीखने से पहले करता है (और शायद कुछ नया करने के लिए)।

क्या मैं यहां गलत हूं, या उसे एक समय में एक चीज पर ध्यान केंद्रित करने की कोशिश करनी चाहिए और वास्तव में अच्छा होना चाहिए?


6
मांग करने के लिए एक अच्छा अवसर लगता है कि उसका वेब एप्लिकेशन सत्र और पृष्ठांकन का समर्थन करता है। क्या उसे यह सीखने में परिणाम नहीं मिलेगा?

साथ ही कौन सी एकल तकनीक सीखनी चाहिए?

@ ThorbjørnRavnAndersen इतनी अधिक तकनीक नहीं है, लेकिन LAMP स्टैक वह है जो वह हर रोज काम करता है। मुझे लगता है कि उसे MySQL, Apache, PHP और JavaScript के बारे में अपनी नौकरी के विवरण के सभी मूल / प्रासंगिक को कम से कम सीखना चाहिए।
ब्रैंडन Wamboldt

1
फिर आपने अनिवार्य रूप से "नहीं" के साथ अपने स्वयं के प्रश्न का उत्तर दिया।

1
क्या वह पहले से ही एक साथ कई तकनीकों जैसे वेब, डेटाबेस आदि को नहीं सीख रहा है? यहाँ एक तकनीक का गठन करने की सीमा क्या है?
जेबी किंग

जवाबों:


18

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

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

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


2
दूसरे पैराग्राफ के लिए +1। मुझे लगता है कि विभिन्न भाषाओं, चौखटे और एपीआई को देखते हुए आप बहुत कुछ सिखा सकते हैं, क्यों डिजाइनरों ने किसी दिए गए भाषा / ढांचे / एपीआई को लागू करने के लिए चुना है जिस तरह से उन्होंने किया था। सीखने वाले को प्रोग्रामिंग और सॉफ्टवेयर की गहरी समझ देना। कम से कम, इम्हो
जेमी टेलर

+1 ऐसी परिस्थितियाँ हैं जहाँ आप ध्यान केंद्रित करना सीखेंगे, जैसे कि जब आप "वास्तविक" प्रोग्रामिंग कार्य करते हैं। लेकिन अगर आप केवल एक ढांचे के संपर्क में हैं तो आपको नौकरी कैसे मिलेगी? एक से अधिक फ्रेमवर्क / लाइब्रेरी में कुछ लिखना सीखें ताकि आप अपना सीवी पैड कर सकें और दिखा सकें कि आप एक विशेष तकनीक के पक्षपाती नहीं हैं। ;-) आप ऐसा करने के लिए वास्तविक संदर्भ प्राप्त करने के बाद पेजिंग और आरएमडीबी जैसी चीजों को सीख सकते हैं।
स्पोइक

@ सिकोइके के पास "वास्तविक" प्रोग्रामिंग नौकरी है, इसलिए इसका कारण मैं उसे उस नौकरी के लिए हर रोज इस्तेमाल की जाने वाली तकनीक पर ध्यान केंद्रित करने की कोशिश कर रहा हूं
ब्रैंडन वम्बोल्ड

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

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

5

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

विशेष प्रौद्योगिकियों का गहन ज्ञान निश्चित रूप से मूल्यवान हो सकता है - यदि उनके लिए चल रही मांग है। एक विशेष तकनीक के बारे में " सब कुछ जानने के लिए" जानना है? ... सबसे शायद ओवरकिल।

तो, यह सब संतुलन में है। अगर वह नोसक्कल के साथ अद्भुत ऐप्स का निर्माण करता है, तो उसे InnoDB इंजन और म्यांमार इंजन के बीच अंतर क्यों जानना होगा?


खैर, InnoDB और MyISAM के बीच अंतर मूल रूप से लेनदेन है। यदि वह लेन-देन को नहीं समझता है, तो उसके पास "आखिरकार स्थिरता" जैसी अवधारणाओं के साथ सही ढंग से काम करने का क्या मौका है?
माइकल बोर्गवर्ड

क्षमा करें? नो-वन ने कहा कि उसे लेन-देन की समझ नहीं है, और जो मैंने लिखा था, वह बिल्कुल नहीं था।
pbr

3

मैं भाग में सहमत हूँ। उसे अंतर्निहित सिद्धांतों को जानने की जरूरत है - लेकिन उसे केवल एक चीज पर बैठने और उस पर वास्तव में अच्छा करने की आवश्यकता नहीं है। कोई नहीं करता।

एक चीज़ के साथ बैठने पर और वास्तव में अच्छा होने पर

मैं वर्तमान में गेम बनाने के लिए C # और Microsoft XNA के साथ काम कर रहा हूं। मैं XNA के बारे में बहुत कुछ सीख रहा हूं क्योंकि मैं जा रहा हूं, और जब तक मैं पहले से ही C # के साथ बहुत सक्षम हूं, तब तक मेरा ज्ञान थोड़ा विस्तार कर रहा है (आज मैंने टाइप मापदंडों पर बाधाओं के बारे में सीखा )।

हालाँकि, मुझे XNA या C # में 'वास्तव में अच्छा' बनने की कोई आवश्यकता नहीं है। अगर मैं अपनी परियोजना को अब समाप्त कर रहा था और आगे बढ़ रहा था और कभी भी उन दोनों में से किसी का भी उपयोग नहीं किया, तो मैं पूरी तरह से संतुष्ट हो जाऊंगा और मेरी सीख कहीं और जारी रहेगी।

सिद्धांत हालांकि महत्वपूर्ण हैं

कम से कम मैं अंतर्निहित सिद्धांतों को समझता हूं। जब मैं C # और XNA में चीजें बनाता हूं, तो मुझे समझ में आता है कि मैं क्या कर रहा हूं - और अगर मैं नहीं करता हूं, तो मैं इसके बारे में सीखता हूं।

यदि मैंने पृष्ठांकन लिखा है, तो मैं समझ सकता हूं कि पृष्ठांकन कैसे काम करता है। अगर आपके दोस्त ने कुछ पेजिनेशन बनाया है और पता नहीं है कि यह कैसे काम करता है, तो यह एक समस्या है। यदि उसने पृष्ठांकन नहीं बनाया है, तो कोई कारण नहीं है कि उसे यद्यपि जानना होगा।

यहाँ मुद्दा यह है: क्या वह जानता है कि @ $ # क्या है! वह कर रहा है, या वह एक प्रोग्रामर है जिसे पता नहीं है कि कैसे प्रोग्राम करना है?


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

हाँ, और यह एक समस्या है। यदि वह कोड लिख रहा है तो वह नहीं समझता कि वह कॉपी-पेस्ट प्रोग्रामर होने के आधे रास्ते पर है, और एक प्रोग्रामर होने के नाते जिसे पता नहीं है कि वह क्या कर रहा है।
डोपेलग्रेनर

3

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

सिद्धांत सीखने / एक नींव बनाने और प्रेरित रहने की कोशिश करने के बीच एक अच्छी रेखा है।

कम से कम वह एक ही भाषा में नहीं अटके हैं। कभी-कभी आप अच्छे को बुरे के साथ लेते हैं।


3

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

उसका जिज्ञासु मन हमेशा चलते रहता है, उसे दिशा क्यों नहीं प्रदान करते। उसे बताना शुरू करें कि पेजिनेशन एक महत्वपूर्ण और आवश्यक क्यों है। उसे उन लोगों के साथ पृष्ठ पर अंक लगाने वाली वेबसाइटों और वेबसाइटों पर एक नज़र डालते हैं।

कैसे वह एक रचनात्मक आलोचना दे रहा है कि वह क्या कर रहा है। "वाह आपने बहुत अच्छा किया है, लेकिन यह बेहतर नहीं होगा यदि आप इस तरह से अनुकूलन और सर्वोत्तम प्रथाओं पर जोर देते हैं।

मुझे लगता है कि एक अच्छे अभ्यास और एक बुरे अभ्यास के बीच तुलना करना वास्तव में उसके दिमाग को उत्तेजित कर सकता है।

उसे प्रतिबंधित न करें, वह अंततः कुछ ऐसा मिलेगा जिसे वह पसंद करेगा और कुछ समय के लिए उसके साथ बस जाएगा। यदि मैं आप थे, तो मैं उसे बहुत सारी सीखने की सामग्री प्रदान करता हूँ, जिसके बारे में वह बहुत भावुक है।

मुझे लगता है कि वह ऊपर से नीचे की ओर काम कर रहा है, जबकि दूसरी तरफ आप चाहते हैं कि वह नीचे की ओर दृष्टिकोण करे


1

यह बुरा क्यों है?

इसके विपरीत मुझे लगता है कि यह बहुत अच्छा है! यह सीखने की उत्सुकता और उत्सुकता को दर्शाता है। इसके अलावा, वह सही काम के लिए सही उपकरण ढूंढना चाहता है! एक अपर्याप्त पहली पसंद तकनीक के साथ रहने की तुलना में बेहतर है। ;)

वास्तव में, मैं इसे वैसे ही करता हूं, जैसे एक अनुभवी प्रोग्रामर। और मैं इसकी सलाह देता हूं। जब भी मेरे पास एक नई परियोजना होती है, मेरा व्यवहार इस प्रकार है:

  1. अन्वेषण (संभावित तकनीकें जो उपयोगी हो सकती हैं)
  2. प्रयोग (उन लोगों के साथ जो आशाजनक दिखते हैं)
  3. अपने टेक चुनें (या थोड़ा आगे प्रयोग करें जब तक आप जानते हैं)
  4. इससे चिपके रहें (अपने ऐप को विकसित करें और इसके माध्यम से खींचें)

मुझे लगता है कि यह सही समझ में आता है।


1

निजी तौर पर, अगर किसी को केवल एक तकनीक पर ध्यान केंद्रित करना था, तो मैं कहूंगा कि इसे C # / Java होना चाहिए, जिसका उपयोग SQL के साथ किया जाता है।

इस से, मुझे विश्वास है, आप किसी भी अन्य तकनीक को अपना सकते हैं।

लेकिन अगर एक आदमी कॉर्पोरेट माहौल में कदम रखना चाहता है तो एक तकनीक से चिपके रहना सीमित हो सकता है।

आदर्श रूप में, एक ऑब्जेक्ट-ओरिएंटेड प्लेटफ़ॉर्म, एक मोबाइल प्लेटफ़ॉर्म, एक वेब-प्लेटफ़ॉर्म और फिर SQL (या किसी भी अन्य पर्यावरण) का बहुत अच्छा ज्ञान।

और मूल बातें पहले, अन्यथा वह बाद में अटक जाएगा!


0

यह बुरा नहीं है अगर वह प्रोग्रामिंग में एक शुरुआत है।

वह देखेगा कि कुछ सामान कैसे काम करता है। लेकिन अगर वह समझ नहीं पा रहा है कि वह क्या कर रहा है तो बेहतर है कि वह ऐसा न करे।

मुझे खुद से यह समस्या थी कि मैं यह सब जावा, सी, सी ++, सी #, फाइटन, एएसपी.नेट ... आदि जानना चाहता हूं, लेकिन मुझे एहसास हुआ कि मैं यह सब नहीं जान सकता, इसलिए मैंने कुछ चीजों पर ध्यान केंद्रित किया और यह बहुत कुछ है बेहतर।

तो उसे क्या करना चाहिए (उसे सलाह दें):

  1. सोचें कि आप क्या करना चाहते हैं
  2. सभी विकल्पों का अन्वेषण करें
  3. आप क्या फिट पाते हैं
  4. यह जानें
  5. सीखना कभी भी बंद न करें

यदि आप हमेशा एक नया प्रोजेक्ट आपके सामने रखते हैं (अच्छी तरह से पूरी तरह से नहीं) तो मैं @arnaud से सहमत नहीं होता। नए सामान को बार-बार तलाशने और सीखने में बहुत समय लगता है और कुछ परियोजनाओं की समय सीमा होती है। लेकिन दूसरी ओर यदि आपको कुछ सरल नए सामान सीखने की आवश्यकता है तो यह ठीक है: डी।


0

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

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