एक भाषा और रूपरेखा चुनने में एक प्रोग्रामर को कितनी स्वतंत्रता होनी चाहिए?


67

मैंने एक ऐसी कंपनी में काम करना शुरू किया जो मुख्य रूप से C # उन्मुख है। हमारे पास कुछ लोग हैं जो जावा और जेरी को पसंद करते हैं, लेकिन अधिकांश प्रोग्रामर यहां C # पसंद करते हैं। मुझे काम पर रखा गया क्योंकि मेरे पास वेब एप्लिकेशन बनाने का बहुत अनुभव है और क्योंकि मैं रेल या नोड्ज जैसी नई तकनीकों की ओर झुकाव रखता हूं।

मैंने हाल ही में एक परियोजना शुरू की है जिसमें कम समय में बहुत सारा सामान प्राप्त करने पर ध्यान केंद्रित करने के साथ एक वेब अनुप्रयोग का निर्माण किया गया है। सॉफ़्टवेयर लीड ने तय किया है कि मैं रेल के बजाय mvc4 का उपयोग करता हूं। यह ठीक हो सकता है, सिवाय इसके कि मैं mvc4 को नहीं जानता, मुझे C # नहीं पता है और मैं वेब एप्लिकेशन सर्वर और फ्रंट-एंड UI बनाने के लिए केवल एक ही जिम्मेदार हूं।

क्या यह ऐसा ढांचा इस्तेमाल करने के लिए समझ में नहीं आएगा जिसे मैं पहले से ही mvc4 का उपयोग करने के बजाय बहुत अच्छी तरह से (रेल) जानता हूं? फैसले के पीछे तर्क यह था कि टेक लीड में जुबी / रेल्स का पता नहीं है और कोड का पुन: उपयोग करने का कोई तरीका नहीं होगा।

जवाबी तर्क:

  • वह कोड में योगदान नहीं कर रहा है और स्पष्ट रूप से,
    इस परियोजना पर जरूरत नहीं है । इसलिए, यह वास्तव में कोई फर्क नहीं पड़ता कि वह JRuby / रेल को जानता है या नहीं।

  • हम वास्तव में कोड का पुन: उपयोग कर सकते हैं क्योंकि हमारे पास बहुत सारे जावा ऐप हैं जो JRuby से कोड खींच सकते हैं और इसके विपरीत। वास्तव में, उन्होंने रेल एप्लिकेशन पर JRuby पर जावा लाइब्रेरी को चलाने के बजाय जावा लाइब्रेरी को C # में बदलने के लिए कुछ संसाधन समर्पित किए हैं। सभी क्योंकि वह जावा या रूबी को पसंद नहीं करता है

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

किस बिंदु पर एक डेवलपर को अपने उपकरण चुनने की अनुमति दी जानी चाहिए? क्या यह कंपनी पर निर्भर है? क्या मेरी कंपनी चूसती है या इसे सामान्य माना जाता है? क्या हरियाली चरागाह मौजूद है? क्या मैं इसे गलत तरीके से देख रहा हूं?


45
कुछ इस तरह से "आदेशों की अवहेलना" कदम को सीमित करने वाला करियर हो सकता है।
डैन पिचेलमैन


39
कंपनियां टूल पर मानकीकरण करना पसंद करती हैं क्योंकि यह ऐप खरीदने के दृष्टिकोण से लागत को कम करता है, लेकिन कंपनी के संसाधनों के प्रबंधन में भी। लाइसेंस प्रबंधन वास्तव में काफी समय लेने वाला है। इसके अतिरिक्त, यदि हर कोई अपनी भाषा / पसंद के उपकरण का उपयोग करता है तो लोगों के बीच नौकरियों में फेरबदल करना अधिक कठिन हो जाता है। अंत में, आपकी स्वाइप लीड के बारे में आपकी शिकायतें समान हैं कि आप अपनी पसंद के उपकरण का उपयोग क्यों करना चाहते हैं। आप mvc4 से परिचित नहीं हैं या इसे पसंद नहीं करते हैं। स्वे लीड लीड है, इसलिए यह उनकी कॉल है जब तक आप एक तर्क पेश नहीं कर सकते हैं जो उनके दिमाग को बदल सकते हैं।
डंक

22
यह सब आपके नौकरी के साक्षात्कार के दौरान संबोधित किया जाना चाहिए था।
user16764

30
क्या आप एक प्रोग्रामर या रूबी प्रोग्रामर हैं ? भाषाएं उपकरण की तरह होनी चाहिए। कुछ के पास ताकत या कमजोरियां हैं, लेकिन इसका सबसे अच्छा उपयोग करने के लिए शिल्पकार तक। कंपनी ने स्पष्ट कारणों के लिए एक मानक टूलसेट तय किया है।

जवाबों:


98

मैं कहूंगा कि आपको टीम लीड से बात करनी होगी और कुछ कहना होगा:

मुझे पता है कि आप लोग एक .NET शॉप हैं, लेकिन मुझे वास्तव में मेरे Java / JRubyRails कौशल के लिए काम पर रखा गया था । मैं इस नए एप्लिकेशन को उन उपकरणों का उपयोग करके समय की एक्स राशि में बना सकता हूं जिन्हें मैं पहले से जानता हूं। आप जैसा चाहें, मैं C # / mvc4 सीख सकता था, लेकिन इसमें समय की X मात्रा होगी । तुम क्या चाहते हो?

यह "में आप थे- कौशल (assumedly) -hired-के लिए" बनाम के मुद्दे उठाती है "कौशल में आप की जरूरत है-अब" है और यह भी पता चलता है कि आप नए कौशल सीखने के लिए तैयार हैं, लेकिन वह यह होगा ले जब आप इस उपकरण-सेट पर नए होते हैं तो नए एप्लिकेशन को विकसित करना। और आप यह दिखाना चाहते हैं कि आप नए कौशल सीखने के लिए तैयार हैं। नए कौशल सीखने के लिए खुला नहीं होना आपके रोजगार को सुनिश्चित करने का एक अच्छा तरीका है जब आपके कौशल की अब आवश्यकता नहीं है।

अंत में अपने प्रश्न के रूप में:

किस बिंदु पर एक डेवलपर को अपने उपकरण चुनने की अनुमति दी जानी चाहिए? क्या यह कंपनी पर निर्भर है? क्या मेरी कंपनी चूसती है या इसे सामान्य माना जाता है? क्या हरियाली चरागाह मौजूद है? क्या मैं इसे गलत तरीके से देख रहा हूं?

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

कंपनियां ऐसा क्यों करती हैं? संगति एक कारण है। चीजों को डिबग करना बहुत मुश्किल हो सकता है जब एप्लिकेशन पसंदीदा भाषाओं / विभिन्न डेवलपर्स के फ्रेमवर्क में निर्मित बायनेरिज़ का एक पैचवर्क होता है, जो विभिन्न उपकरणों में निर्मित होता है, और बहुत अलग प्रणालियों पर परीक्षण किया जाता है। यदि सभी डेवलपर ज्यादातर समान सेट अप पर काम करते हैं , तो उन समस्याओं का समाधान हो जाता है।

आपके मामले में, ऐसा लगता है कि आपको इस कंपनी में गैर-मानक तकनीक में काम करने के लिए काम पर रखा गया था। यह मुझे अजीब लगता है, और आप उस व्यक्ति से बात करना चाह सकते हैं जिसने आपको इस बारे में काम पर रखा था कि वे ऐसा क्यों चाहते हैं।


31
"मैं उन उपकरणों का उपयोग करके एक्स राशि में इस नए एप्लिकेशन का निर्माण कर सकता हूं जो मुझे पहले से ही पता है। मैं सी # / mvc4 सीख सकता हूं जैसे आप चाहते हैं, लेकिन यह समय की एक्स राशि ले जाएगा। आप क्या चाहते हैं?" - बहुत बढ़िया जवाब। इसे लागत व्यापार के रूप में फ्रेम करें।
क्रिश्चियन टेरनस

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

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

7
+1 मैं इस (निहित) बिंदु पर भी जोर दूंगा कि यदि सीसा एमवीसी के साथ जाने के लिए चुनता है, तो ओपी को बक-बक करने और एमवीसी में परियोजना करने के लिए बाध्य किया जाता है।
दान ल्यों

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

140

किस बिंदु पर एक डेवलपर को अपने उपकरण चुनने की अनुमति दी जानी चाहिए?

जब वे आपकी टीम को प्रभावित नहीं करते हैं।

क्या मैं इसे गलत तरीके से देख रहा हूं?

पूर्ण रूप से।

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

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

याद रखें, आप अपना एप्लिकेशन लिखने से अधिक समय अपने तरीके से बनाए रखने में बिताएंगे। उस लागत का अनुकूलन करें।


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

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

2
संभावना यह है कि आप वास्तव में अपने JRuby / रेल कौशल के लिए काम पर नहीं रखे गए थे, लेकिन आप वेब ऐप्स के निर्माण में अपने अनुभव के लिए काम पर रखे गए थे और जो वे वास्तव में देख रहे हैं वह MVC4 और C # के संदर्भ में उपयोग करना है।
जे स्टीवंस

जब आप अच्छे अंक बनाते हैं, तो यह अभी भी उस आदमी के पास होने का कोई मतलब नहीं है जिसके पास उस स्टैक में अनुभव नहीं है, और संभवतः ऐसा करने में कोई दिलचस्पी नहीं है। इसे करने के लिए C # लोगों में से एक क्यों नहीं मिला? वे सब करने जा रहे हैं इस आदमी को ऐसा महसूस कराएं कि उसके पास अपनी परियोजनाओं का कोई स्वामित्व नहीं है, और उसे जलने का एहसास कराएं, और उसे कंपनी छोड़ने के लिए नेतृत्व करें।
s73v3r

@ s73v3r - मुझे उम्मीद है कि ओपी जानता था कि वह क्या कर रहा है। ईमानदारी से, यदि आपके पास C # devs (और कोडबेस) का बोट लोड है, तो साक्षात्कार के दौरान रेल के आदमी को स्पष्ट होना चाहिए। अगर उसने काम लिया और फिर वास्तव में वह कर रहा है जो उसके लिए किराए पर लिया गया था, तो ...
टेलस्टीन

41
  1. आपको स्पष्ट रूप से "नई" प्रौद्योगिकियों के अनुकूल होने की आपकी क्षमता के कारण काम पर रखा गया था। C # अलग नहीं है, इस संबंध में। क्या आप वाकई कुछ नया सीखने का अवसर नहीं लेना चाहते हैं?

  2. ASP.NET MVC कई तरह से रूबी ऑन रेल्स के समान है।

  3. आप एक घोंघा की गति पर हमेशा के लिए नहीं रहेंगे। यदि आप पहले से ही ROR जानते हैं, ASP.NET MVC आपके लिए एक चिंच होगा। ट्रिक सीख रहा है C #।


18
+1, अपने आप को किसी एक भाषा / ढांचे से बांधना मूर्खतापूर्ण है। नई चीजें सीखने के लिए भुगतान करने का मौका लें। और .NET का बहुत सक्रिय और दिलचस्प विकास हो रहा है।
जोजफग

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

आइटम # 1 स्पष्ट नहीं है - ओपी का कहना है कि उन्हें अपने जावा / JRuyb / रेल / नोडज अनुभव के कारण काम पर रखा गया था : मुझे काम पर रखा गया था क्योंकि मेरे पास वेब अनुप्रयोगों के निर्माण का बहुत अनुभव है और क्योंकि मैं रेल्स जैसे JRuby जैसी नई तकनीकों के प्रति झुकाव रखता हूं। या नोडज। ओपी उनकी अनुकूलन क्षमता के बारे में बात नहीं करता है या यह कि उनकी अनुकूलनशीलता वह कारण है जो उन्हें काम पर रखा गया था।
FrustratedWithFormsDesigner

2
+1, सहमत, मैंने शैली के तर्कों को कभी नहीं समझा है "मैं पूरी तरह से अच्छी तरह से जानता हूं कि भाषा एल 1 में कैसे करें लेकिन मैं इसे पूरी तरह से भाषा एल 2 में करने में असमर्थ हूं"।
शिवन ड्रैगन

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

21

जावा / JRuby के साथ रहने के लिए तर्क

संभावना है, आपका बॉस चाहता है कि आप उत्पादन करें। उन्होंने आपको काम पर रखा ताकि आप कंपनी में मूल्य जोड़ सकें। सुनिश्चित करें कि वे समझते हैं कि आपको एक ऐसे ढांचे का उपयोग करने के लिए मजबूर करना है जिससे आप परिचित नहीं हैं कि वे आपके लिए क्या करेंगे :

  1. धीमी दर पर परिणाम उत्पन्न करें
  2. निम्न गुणवत्ता कोड बनाएँ

यहां तक ​​कि सर्वश्रेष्ठ प्रोग्रामर्स को नई भाषाओं / रूपरेखाओं के साथ वार्म अप समय की आवश्यकता होती है।

MVC4 और C # सीखने के लिए तर्क

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

आपको, व्यक्तिगत रूप से, एक अधिक अच्छी तरह से गोल डेवलपर आपको इस स्थिति में फिर से रखने से बचाएगा। सबसे अच्छी बात? आपका बॉस आपको इन चीजों को सीखने के लिए भुगतान कर रहा है, जिसका अर्थ है कि आप अपने आप को और अधिक पैसा बनाने के लिए भुगतान करते हैं।

तल - रेखा

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


11
+1, "इसका अर्थ है कि आप अपने आप को और अधिक पैसा कमाने के लिए भुगतान करते हैं" बिंगो!
ग्रैंडमास्टरबी

जैसा कि यह (और कई उत्तर) इंगित करते हैं, आपके समय पर प्रारंभिक निर्माण और बाकी सभी द्वारा तैनाती / रखरखाव के बीच एक व्यापार है। यह देखने के लिए एक उचित (किंतु सम्मानजनक) प्रयास करें कि क्या पोइंटी-हेयर उस व्यापार को करने के लिए तैयार हैं, लेकिन यदि उनके निर्णय का सम्मान नहीं करते हैं और कंपनी के समय पर कुछ नया सीखने के लिए भुगतान करने का आनंद ले रहे हैं।
ब्रिचिंस

@brichins: मुझे लगता है कि इस जवाब के साथ एक बड़ी समस्या यह है कि यह वास्तव में इंगित नहीं करता है कि आप क्या कहते हैं!
रुख

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

18

किस बिंदु पर एक डेवलपर को अपने उपकरण चुनने की अनुमति दी जानी चाहिए?

जब कहा जाता है कि डेवलपर सॉफ्टवेयर लीड है।

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

बीटीडब्ल्यू, वाक्यांश

कम समय में बहुत सारा सामान प्राप्त करने पर ध्यान केंद्रित करने के साथ

सॉफ़्टवेयर उद्योग में अधिक नाराज़गी और हाथापाई के लिए ज़िम्मेदार है बस कुछ और के बारे में।


2
+1 "जब कहा गया कि डेवलपर सॉफ्टवेयर लीड है।" ठीक ठीक। कभी-कभी, जब आप अपनी बात पर बहस करते हैं और आपका लीड आपसे असहमत होता है, तो इसका कारण यह है कि आपके लीड में बड़ी तस्वीर के बारे में बेहतर नज़रिया है। यह उन स्थितियों में से एक है।
एंड्रयू कॉन्स

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

मैं गंभीरता से आपकी प्रतिक्रिया पर हँसा "सॉफ़्टवेयर उद्योग में अधिक नाराज़गी और तबाही के लिए ज़िम्मेदार है बस कुछ और के बारे में" ... धन्यवाद! यह बेहतर नहीं किया जा सकता है!
एलेक्सस

11

मैं ध्यान देता हूं कि आप यह नहीं कहते हैं कि आप JRuby या Java प्रोग्रामर के रूप में काम पर रखे गए थे।

इसीलिए आपने कहा था कि आपको काम पर रखा गया था: "[B] परवाणू में मुझे वेब अनुप्रयोगों के निर्माण का बहुत अनुभव है और क्योंकि मैं रेल या नोड्ज जैसी JRuby जैसी नई तकनीकों के प्रति झुकाव रखता हूं।"

दूसरे शब्दों में, वे आपके वेब अनुभव और नई तकनीकों को सीखने की आपकी इच्छा को पसंद करते हैं

अब वे आपसे अपने वेब अनुभव का उपयोग करने और एक नई तकनीक सीखने के लिए कह रहे हैं

तो सवाल यह है कि क्या आप ऐसा करने जा रहे हैं या नहीं?


9

सॉफ्टवेयर में सबसे बड़ा व्यय इसके रखरखाव में है

मैंने पढ़ा कि सबसे बड़ा खर्च (80%) सॉफ्टवेयर के रखरखाव में है। प्रारंभिक विकास विकास की कुल लागत का केवल 20% है।

मैंने एक डेवलपर के बारे में एक मामला पढ़ा, जिसने अपनी मूल भाषा (अंग्रेजी नहीं) में कोड और टिप्पणियां विकसित कीं और जब टीम के अन्य सदस्य कोड को बढ़ाने और बनाए रखने के लिए गए, तो यह असंभव के बगल में था क्योंकि भाषा (कोई प्रोग्रामिंग भाषा नहीं) विदेशी थी उनको।

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

समाधान: जोड़ी प्रोग्रामिंग

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

"पेयर प्रोग्रामिंग" पर विकिपीडिया लेख: http://en.wikipedia.org/wiki/Pair_programming


3
यदि आप कुछ ऐसा लिखते हैं जो केवल आप समझते हैं, तो आप इसे हमेशा के लिए बनाए रखेंगे।
जॉर्नर्नी

6

कई कंपनियां बस उसी चीज से चिपकना पसंद करती हैं जो उन्होंने हमेशा किया है या जो "सुरक्षित" है। वहाँ एक कारण है जावा और PHP अभी भी बहुत लोकप्रिय हैं। फिलहाल, वास्तव में.com पर "COBOL" की खोज करने पर 2144 लिस्टिंग मिलती है ... जो वास्तव में खुद के लिए बोलना चाहिए। उद्योग अच्छे कोड के बारे में परवाह नहीं करता है, यह कोड के बारे में परवाह करता है कि यह यथासंभव लंबे समय तक दूध कर सकता है (इसका मतलब यह नहीं है कि सी # खराब है, यह वास्तव में नहीं है)।

इसे इस बारे में सोचें: कोड आपको बाहर करने जा रहा है। एक अच्छा मौका है कि कोई और आपका कोड बनाए रखने वाला है और C # Node.js और Rails की तुलना में अधिक सुरक्षित है। अगर 5 या 6 साल में रूबी प्रोग्रामर्स की संख्या आधी हो जाए तो मुझे कोई आश्चर्य नहीं होगा, क्योंकि पर्ल और किसी भी अन्य भाषा के साथ भी ऐसा ही हुआ है, जिसे किसी समय "इट" वेब भाषा माना जाता है। जावास्क्रिप्ट के दूर जाने की संभावना नहीं है, लेकिन हम पहले से ही इसे वेब के ASM (या यहां तक ​​कि सी) के रूप में इस्तेमाल करते हुए देखना शुरू कर रहे हैं - एक मध्यवर्ती भाषा अन्य भाषाओं में सर्वर-साइड कोड लिखने के लिए संकलित कर सकती है। बहुत अच्छी तरह से अप्रचलित हो गया।


4
जब तक यह सच है, यह एक रूबी डेवलपर को नौकरी देने के लिए सी # दुकान के लिए बहुत खराब भर्ती अभ्यास है, जो सी # नहीं जानता है, यह पूरी तरह से स्पष्ट किए बिना कि उसे मुख्य रूप से सी # विकास के लिए काम पर रखा जा रहा है।
कार्सन 63000

5

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


3

कृपया इसे घुमाएं। कल्पना कीजिए कि आप रूबी डेवलपर को काम पर रखने वाले थे, और वे Asp.net/MVC में अपने काम को लागू करने पर जोर देते हैं।

आप उनसे क्या कहेंगे? यह हमारा ढेर है, यार। इसके साथ जीना सीखो।

सुनहरा नियम, यहाँ है, जिसके पास सोना है वह नियम बनाता है।


1
लेकिन आप किसी ऐसे व्यक्ति को क्यों नियुक्त करेंगे जो एक रूबी भूमिका के लिए .NET का उपयोग करने पर जोर देता है।
बोबसन

3
@ बोबसन क्योंकि वे एक उज्ज्वल युवा प्रोग्रामर हैं जो कई विभिन्न तकनीकों के साथ समस्याओं से निपटने में सक्षम प्रतीत होते हैं, सामान्य प्रोग्रामिंग समस्याओं को संतोषजनक ढंग से हल किया और उन्होंने नौकरी के लिए आवेदन किया।

2
@ बोबसन: तो अब आप तर्क दे रहे हैं कि कंपनियों को उन डेवलपर्स को नहीं रखना चाहिए जिनके पास कंपनी की पसंद की भाषा में अनुभव नहीं है। हर कोई दूसरी दिशा में बहस करने लगता है, जहां वे दावा करते हैं कि वे नई भाषा वास्तव में जल्दी से सीख सकते हैं इसलिए कंपनी को एक अच्छे डेवलपर पर पास नहीं करना चाहिए क्योंकि वे एक विशेष भाषा में विशेषज्ञ नहीं हैं .... फिर भी।
डंक

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

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

2

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

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

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

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


2

बाह। हर कोई गलत है।

उन वन-प्लेटफ़ॉर्म लोगों की तुलना में बेहतर देव बनें और आपके पास पहले से कहीं अधिक दिलचस्प विकल्प होंगे। तो, अब, MVC सीखें। और अपने समय पर, उन प्लेटफार्मों के बारे में अधिक जानें जो वास्तव में आपकी रुचि रखते हैं। अपने नोड कौशल का निर्माण करें। कुछ Django जानें। जावा या पूर्व एमवीसी .NET शेंनिगैंस जो भी आप के संपर्क में हैं उस पर ध्यान दें और फिर भाग जाएं लेकिन कम से कम इतना तो सीख ही लें कि आप उन प्लेटफार्मों के बमुश्किल छुपाए गए घृणा पूर्वग्रह में डाल दिए गए आलोचना करने और समझाने में सक्षम हों। (ठीक है, शायद मैं वहाँ प्रोजेक्ट कर रहा हूँ)

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

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

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

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


1

आपकी स्थिति के आधार पर, यह मानना ​​खतरनाक हो सकता है कि आप जानते हैं कि उन्होंने आपको क्यों काम पर रखा है, और इससे भी अधिक यह मानने के लिए कि आपका प्रबंधक जानता है और इससे सहमत है कि आपके कौशल के साथ लोगों को काम पर रखना एक अच्छा विचार है।

मैं ऊपर दी गई सलाह लेने के लिए कहूंगा और एक व्यावसायिक मामला बनाऊंगा कि आपको C # पर JRuby के साथ क्यों जाना चाहिए, हो सकता है कि आपके तर्क और समयसीमा का मतलब पुराने तरीकों से टूटना हो। मैं यह नहीं मानूंगा कि यह ठीक है या नहीं, प्रबंधक को बताएं या तथ्यों का नेतृत्व करें और उन्हें निर्णय लेने दें, यह वही है जिसके लिए उन्हें मोटी रकम का भुगतान किया जा रहा है, साथ ही साथ यह थोड़ा सा CYA भी है।


1

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

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

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

आप जो चुनेंगे, वह आपके ऊपर होगा, लेकिन मैं आपको नई तकनीक सीखने की कोशिश करने का सुझाव दूंगा। यह दुख नहीं होगा, मैं वादा करता हूँ।


1

मैं मान रहा हूँ कि आप C # ज्ञान की कमी के बारे में अपने साक्षात्कार के दौरान ईमानदार थे, क्योंकि यदि आप नहीं थे, तो आप कानूनी दृष्टिकोण से बहुत अनिश्चित स्थिति में हो सकते हैं।

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

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

अच्छे प्रोग्रामर को लचीला होने के अलावा, नई चीजों को सीखने के लिए उत्सुक होना चाहिए। सॉफ्टवेयर विकास में आप आमतौर पर या तो सीख रहे हैं या अप्रासंगिक हो रहे हैं।

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

आपको जल्दी या बाद में स्वीकार करने के लिए तैयार रहना होगा कि आप C # दुकान में काम कर रहे हैं और इसलिए आपको अपने बेल्ट के नीचे C # की आवश्यकता है।


0

हो सकता है कि वे .NET पर्यावरण में MVC का उपयोग करने के तरीके से संतुष्ट नहीं हों। वहाँ बहुत अधिक यह webforms की तरह व्यवहार किया जा सकता है। यह अलग नहीं है जब OOP में एक प्रक्रियात्मक पृष्ठभूमि वाला कोई व्यक्ति शुरू होता है, सब कुछ एक बड़े वर्ग में रखता है और हमेशा की तरह व्यवसाय के साथ आगे बढ़ता है।

यह पहली परियोजना आदर्श स्थिति नहीं है क्योंकि वे चाहते हैं कि यह इतनी जल्दी हो। .NET पर अधिक से अधिक गति प्राप्त करें और जितनी जल्दी हो सके सुविधाओं को क्रैंक करना शुरू करें। आप जिस तरह से चीजें कर रहे हैं उसे पसंद नहीं कर रहे हैं, बस यह ध्यान रखने की कोशिश करें कि आप इस सामान को फिर से बनाना शुरू कर देंगे और अपने कौशल को किसी अन्य भाषा में लागू करेंगे।

उम्मीद है, अधिक रूबी-शैली में एमवीसी 4 (हर किसी का मानना ​​है कि वहां पर यह सही नहीं है) का उपयोग करने का आपका तरीका सभी को पकड़ लेगा और सभी को वेबफॉर्म की मानसिकता से दूर कर देगा।

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