क्या C # अनुभव C ++ का अच्छा अनुवाद करता है? [बन्द है]


13

स्कूल में मेरी प्रोग्रामिंग कक्षाएं C ++ थीं, लेकिन मैंने पिछले कुछ वर्षों से C # करने वाली नौकरी समाप्त कर दी। यदि C ++ में 1 या 2 साल के अनुभव की आवश्यकता होती है, तो क्या सी # में मेरा अनुभव विचार के योग्य होगा? मैं इस तरह की स्थिति में कितना प्रभावी हो सकता था? तो क्या मुझे आवश्यक अनुभव प्राप्त करने के लिए प्रवेश-स्तर C ++ प्रोग्रामर के रूप में शुरू करना होगा?


4
सबसे कठिन हिस्सा सी ++ के मुहावरों और चीजों को करने का "सही" तरीका सीखना होगा। C # में, स्मृति प्रबंधन और सीमा जाँच जैसी चीज़ों को भाषा और रूपरेखा में बेक किया जाता है। C ++ में खुद को पैर में गोली मारने के कई और तरीके हैं।
रॉबर्ट हार्वे

1
@RobertHarvey: केवल अगर आपने कभी स्मार्ट पॉइंटर्स के बारे में नहीं सुना है। या कंटेनर।
23-21 बजे डेडएमजी ऑक्ट

11
@ डीडीएमजी: मुझे नहीं पता कि आपका क्या मतलब है। यदि आपने उनके बारे में सुना है, तब भी आपको उन्हें सीखना होगा।
रॉबर्ट हार्वे

2
प्रभावी C ++ श्रृंखला प्रभावी C # श्रृंखला की तुलना में बहुत अधिक झुकने वाली है।
जॉब

@ रॉबर्ट: ठीक है, अगर आप कंटेनर और स्मार्ट पॉइंटर्स करते हैं, तो आपको स्मृति की चाट का प्रबंधन करने की आवश्यकता नहीं है। और उन्हें सीखना C ++ 101 है।
16MG पर DeadMG

जवाबों:


13

यहाँ समस्या यह है कि C ++ और C #, मौलिक रूप से, कई समस्याओं के लिए अलग-अलग दृष्टिकोण वाली अत्यधिक भिन्न भाषाएं हैं। उन्हें "एक ओओ भाषा" के रूप में गांठ करना आसान है, लेकिन सरल तथ्य यह है कि कई सी # मुहावरों को सी ++ (और इसके विपरीत) में बहुत बुरा कोड माना जाता है।

यदि आप वास्तव में मतभेद जानते हैं और सी ++ मुहावरे क्या दिखते हैं, तो मुझे कोई कारण नहीं दिखता है कि यह ठीक नहीं होना चाहिए।


5

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

उदाहरण के लिए, mysql एक्सेस के लिए cppcon का उपयोग करने के लिए अच्छा ADO.NET डेटा एक्सेस मॉडल से जा रहा है। System.Collections.Generic का उपयोग करके stl, कई-विरासत, कचरा संग्रह को नष्ट करने के लिए अपनी मेमोरी को नष्ट करना और इतने पर ... सभी कठिन बदलाव होना। C ++ समस्या नहीं है, यह सीखने की लिबास, डिज़ाइन पैटर्न और उनका उपयोग कैसे करें यह चुनौती है। अधिकांश भर्तीकर्ताओं को इसका एहसास नहीं है। यदि आप मूल डिज़ाइन कर सकते हैं और सी ++ की वास्तविक आमतौर पर उपयोग की जाने वाली सुविधाओं का उपयोग कर सकते हैं तो आपको साक्षात्कार में ठीक होना चाहिए।

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


सभी C ++ जॉब्स मैं देख रहे हैं कि C ++ में 2-3 साल का अनुभव चाहते हैं लेकिन मेरा C # में है। यह वास्तव में मेरे लिए निराशाजनक है, मैं सी ++ करना चाहता हूं! आप भर्ती के बारे में सही हैं, उन्होंने मुझे गोली मार दी। मुझे यह अनुभव कभी कैसे मिल सकता है अगर कोई मुझे कोशिश नहीं करने देगा। मुझे विश्वास है कि अगर कोई मुझे दरवाजे से जाने देता है तो मैं जल्दी से सीख सकता हूं मुझे नहीं पता कि मैं उन पर कैसे पहुंच सकता हूं।
मेटागुरु

मैं अपनी वर्तमान नौकरी में c ++ प्रोजेक्ट पर कूद गया। वह शायद आपका सबसे अच्छा दांव है। या, आप हमेशा एक ओपन सोर्स प्रोजेक्ट पर प्राप्त कर सकते हैं जो कि c ++ में है।
जोनाथन हेंसन

@ रेयान जोनाथन ने कहा, सी ++ में अनुभव प्राप्त करने के लिए बहुत सारे तरीके हैं। कम से कम मैं कहाँ से हूँ, आपको यह साबित करना होगा कि आपके पास अनुभव है (लोकप्रिय कथन के बजाय, 1 साल का अनुभव पाँच बार खत्म होने के बाद)। यह दोनों तरह से काम करता है - बिना "कागज़" के अनुभव के किसी को भी उसे खुद को साबित करने का मौका मिल सकता है। बस सुनिश्चित करें कि आप वास्तव में C ++ जानने से पहले कोशिश करते हैं!
मैक्स

3

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

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


3

आप ठीक उसी स्थिति में हैं जैसा मैं 4 साल पहले था।

मैंने अपनी पढ़ाई के दौरान कुछ सी ++ किया, लेकिन मुझे इससे नफरत थी। मैंने अपने खाली समय पर बहुत सारे वेब देवता किए और उस क्षेत्र में नौकरी पाई।

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

लेकिन अधिकांश साक्षात्कार समस्या समाधान और रचनात्मक समाधान के बारे में थे और C ++ केवल एक मामूली कारक के रूप में समाप्त हो गया।

तो संभावना वास्तव में नियोक्ता और उनके पास मौजूद पदों पर निर्भर करती है।

यदि आप एक भर्ती एजेंसी के माध्यम से जा रहे हैं तो आपको "संभवतः" बताया जाएगा कि आपका प्रोफ़ाइल मेल नहीं खाता है। लेकिन एक वास्तविक नियोक्ता के साथ आपके मौके बेहतर होते हैं क्योंकि वे वास्तव में जानते हैं कि उन्हें क्या चाहिए।


1
बस सुनिश्चित करें कि आप जानते हैं कि एक आभासी विध्वंसक क्या है ताकि आप इसे फोन स्क्रीन से अतीत बना सकें।
केविन

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

तो क्या आपको काम मिल गया? मैं वास्तव में C ++ करने में आगे बढ़ना चाहता हूं, लेकिन मेरे अनुभव की कमी के कारण दरवाजे बंद हो रहे हैं, यकीन नहीं कि इसे कैसे बनाया जाए।
मेटागुरु

हां ... 3 साल तक वहां काम किया। यह एक शानदार अनुभव था ... लेकिन मुझे पहले कुछ महीनों में C ++ की विशिष्टताओं के साथ कुछ कैचअप करना था।
कोयोट

1

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

यदि आप C ++ टेम्प्लेट और .NET जेनरिक के बीच के अंतरों को सूचीबद्ध कर सकते हैं तो यह भी फायदेमंद है।

इसके अलावा, आप के साथ जाना बाकी के साथ पकड़ने के लिए बहुत आसान है।


1

हाँ। यह C ++ अनुभव जितना प्रासंगिक नहीं हो सकता है, लेकिन यह अच्छा है।

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

एक प्रवेश-स्तर C ++ स्थिति ठीक है: आप जल्दी से सीख सकते हैं, और एक महान काम कर सकते हैं। एक अच्छी कंपनी आपको बढ़ने का भरपूर मौका देगी। यदि नहीं तो आप कहीं और जा सकते हैं, और C # और C ++ दोनों का अनुभव कर सकते हैं।


0

यह वास्तव में आपके द्वारा लागू किए जाने वाले व्यवसाय की प्रकृति पर निर्भर करता है। यदि वे किसी ऐसे व्यक्ति की तलाश कर रहे हैं जिसके पास OO- आधारित प्रोग्रामिंग और वास्तुकला कौशल है, तो C # अगली चीज़ के रूप में अच्छा है।

यदि वे अपने सॉफ़्टवेयर की गति / जवाबदेही पर गर्व करते हैं, तो आपको अपने एल्गोरिदम को जानना होगा, क्योंकि यह माइक्रो-ऑप्टिमाइज़ेशन से अधिक मायने रखता है - हैश टेबल्स बनाम रैखिक लुकअप, आदि। C # अभी भी यहां प्रासंगिक है, लेकिन आपको इसकी आवश्यकता होगी प्रदर्शन विशेषताओं की समझ प्रदर्शित करने के लिए - उदाहरण के लिए, हर कोई ngen.exe के बारे में नहीं जानता है।

यदि वे एम्बेडेड / मोबाइल और / या गैर-कचरा एकत्र किए गए वातावरण में हैं, तो आपको वास्तव में स्मृति को प्रभावी ढंग से प्रबंधित करने के बारे में जानने की आवश्यकता है। @DeadMG के रूप में स्मार्ट पॉइंटर्स, यहाँ महत्वपूर्ण हैं, लेकिन इसलिए मेमोरी आवंटन प्रोफ़ाइल को समझ रहे हैं। गेम्स प्रोग्रामर अक्सर ऑब्जेक्ट की बड़ी सरणियों को पूर्व-आबंटित करते हैं और स्मृति आवश्यकताओं को जानने के लिए उन्हें रीसायकल करते हैं और प्रति-फ्रेम के आधार पर अज्ञात को कम करते हैं। यह iOS में स्क्रॉलिंग टेबल व्यू में इस्तेमाल की जाने वाली तकनीक भी है।

यदि कोई एकीकरण कार्य है, तो आपको भाषाओं के बीच डेटा (जैसे पी / इनवोक) के मार्शालिंग डेटा के संदर्भ में सी-स्तरीय विशेषज्ञता की आवश्यकता है, लेकिन यह भी बाइट-स्तरीय समझ है कि इन डेटा संरचनाओं का उपयोग कैसे किया जा सकता है, जो सामान्य व्यवहार में नहीं है मेरे अनुभव में सी #।

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