C ++ के लिए तकनीकी मूल्यांकन से मुझे क्या उम्मीद करनी चाहिए? [बन्द है]


10

मुझे एक जूनियर डेवलपर के रूप में नौकरी के लिए तकनीकी परीक्षण / मूल्यांकन के लिए जाने के लिए कहा गया है, मुख्य रूप से C ++ का उपयोग करते हुए। यह मेरा पहला परीक्षण / मूल्यांकन है, और यह 2 घंटे लंबा है।

मेरा C ++ थोड़ा कठोर है क्योंकि मैं हाल ही में PHP पर प्रोजेक्ट कर रहा हूं।

यह एक यूके की कंपनी है, हालांकि उम्मीदवारों के तकनीकी परीक्षण का अंदाजा हर जगह एक समान होगा।

मुझे इन परीक्षणों में से एक में क्या उम्मीद करनी चाहिए?


1
यह सवाल PHP के लिए है, लेकिन उत्तर लागू होते हैं: programmers.stackexchange.com/questions/73654/…
एरिक विल्सन

जवाबों:


5

यह C ++ है, इसलिए आप कुछ भी उम्मीद कर सकते हैं, मेरा मतलब है कुछ भी।

आमतौर पर इसमें ट्रिक प्रश्न और कुछ प्रकार के बहुरूपता प्रश्न शामिल होते हैं।

लेकिन साथ ही कुछ सरल हो सकता है।

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


मैं जोड़ना चाहता हूं कि "किस mutableकीवर्ड का उपयोग किया जाता है?" किसी भी श्रेणी के लिए।
टॉम

5

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


1
पुस्तक अनुशंसा के लिए +1 - और स्कॉट मेयर की अधिक प्रभावी C ++ पुस्तक को छोड़ दें। जब मैं प्रोग्रामरों का साक्षात्कार करता था, तो मैं बौद्धिक ईमानदारी की ओर देख रहा था (क्या आप कोशिश करते हैं और झांसा देते हैं या क्या आप जानते हैं कि आप नहीं जानते) एक जवाब। (यदि C ++ में काम करने का दावा करने वाले किसी व्यक्ति का साक्षात्कार लिया जाए, तो प्रश्न अधिक कठिन होंगे)। यदि आपके CV में अन्य भाषाओं में प्रोग्रामिंग कौशल का सुझाव देने के लिए कुछ भी नहीं था, तो मैं आपसे एक सरल प्रोग्राम लिखने के लिए भी कहूंगा, और यह देखिए कि क्या आपने कोने के मामलों को सही तरीके से कवर किया है।
MZB

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

4

खैर यह निर्भर करता है कि वे आपको Google का उपयोग करने देंगे या नहीं। : पी

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

इसके अलावा, आम तौर पर उनके लिए आवश्यक निपुण कौशल की जांच होती है, इसलिए यदि आप जानते हैं कि आप क्या काम कर रहे हैं, तो उस पर ध्यान केंद्रित करें।

(यह मेरे सामान्य अनुभव में है, मैं यूके से नहीं हूं)


सिद्धांत, बहुरूपता, विरासत के बारे में क्या। मैं केवल अभी स्नातक होने से उस के लिए सिद्धांत पता है, लेकिन मैं कैसे C ++ में इसे लागू करने के पता नहीं है
bearbread

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

@bearbread: सिद्धांत ही अधिक मूल्य के नहीं है। डिज़ाइन पैटर्न के बारे में पढ़ें और उन्हें लागू करने का प्रयास करें।
करौली होरवथ

मुझे पता है कि PHP के लिए MVC जैसे डिज़ाइन पैटर्न हैं, इसका मतलब है कि आप क्या कहते हैं?
दाढ़ी

1

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


1
+1। यह भी एक दोस्त के साथ करो जो थोड़ा अधिक अनुभवी है। कार्यक्रम में बदलाव करें, आप दोनों कुछ नया सीखेंगे।
टॉम

0

यह सच है कि आप कुछ भी उम्मीद कर सकते हैं।

उन्होंने आपको बताया कि परीक्षण C ++ था, लेकिन शायद यह वास्तव में C ++ का C सबसेट है जो वे अपने परीक्षणों में उपयोग करते हैं (आप मानक लाइब्रेरी स्ट्रिंग्स के बजाय चार सरणियों का उपयोग करेंगे)। यह जानना कठिन होगा।

यदि यह वास्तव में C ++ है, तो मैं आपको मूल बातें देखने की सलाह दूंगा:

  • कक्षाएं, चर, सरणियाँ
  • संदर्भ, संकेत (और आपको डिफ़ॉल्ट रूप से उनका उपयोग क्यों नहीं करना चाहिए)
  • कॉन्स्टेबल कीवर्ड का उपयोग
  • ओरिएंटेड ऑब्जेक्ट कॉन्सेप्ट्स (विरासत, बहुरूपता ...)
  • टेम्पलेट्स

फिर:

  • मानक पुस्तकालय usages (std :: string, std :: वेक्टर, कंटेनर, ...)

0

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

मैंने पिछले सप्ताह अपनी पहली डेवलपर नौकरी के लिए अपना पहला तकनीकी परीक्षण किया और मुझे जो मिला उससे मैं आश्चर्यचकित रह गया। मैं FizzBuzz की तरह कुछ या कुछ और अधिक किरकिरा (यह जावा, btw के लिए था) की उम्मीद कर रहा था, लेकिन मुझे जो मिला वह मुझे एक फ़ाइल दिया गया था और मुझे इसे एक नए प्रारूप में पार्स कर दिया था, जो कि नौकरी का हिस्सा था। उसके ऊपर, उन्होंने मुझे Google और अपने स्वयं के पुस्तकालयों का उपयोग करने दिया। नीचे पंक्ति, आपको C ++ जानने की आवश्यकता है लेकिन यदि आप जानना चाहते हैं कि परीक्षण क्या हो सकता है, तो उस स्थिति के डोमेन पर एक नज़र डालें जो आप के लिए आवेदन कर रहे हैं और उस डोमेन में किसी चीज़ के प्रति C ++ को लागू करने पर काम करें।


मुझे लगता है कि C ++ प्रोग्रामर का <1% भाषा का सब कुछ जानता है :) बस एक उदाहरण के रूप में अपरिभाषित / अनिर्दिष्ट / कार्यान्वयन-परिभाषित व्यवहार के सभी मामलों को लें।

0

क्या आप:

  1. लेखन कोड
  2. बहुविकल्पी लेना
  3. व्यक्ति साक्षात्कार में

जब कोड लिखते हैं

वे आपसे यह जानने (और उपयोग करने) की उम्मीद करेंगे:

  • आरए II
  • तीन का नियम
  • स्मार्ट पॉइंटर्स को समझें

वे शायद आप पर परीक्षण करेंगे:

  • विरासत
  • आभासी कार्य
  • एक धारा से / के लिए सीरियल
  • अंकगणित ऑपरेटरों को अधिभारित करें (अक्सर वास्तविक जीवन में उपयोग नहीं किया जाता है लेकिन चारों ओर एक परीक्षण लिखना आसान है)।

यदि आप अशुभ हैं तो वे सोच सकते हैं

  • मल्टीपल इनहेरिटेंस और वर्चुअल बेस क्लास एक ऐसी चीज है जिसे आपको जानना चाहिए।
    • इसके नहीं, लेकिन कुछ लोग पागल हो जाते हैं।

कई विकल्प लेने पर

  • सभी ओ ओ टर्मिनली को समझें
  • O ++ को लागू करने के C ++ तरीके जानें

व्यक्ति साक्षात्कार में

  • उपर्युक्त सभी।
  • पुनरावृत्ति का ज्ञान
  • रिकर्सन को लूप में कैसे बदलें
  • बिग ओ () जटिलता का अनुमान कैसे लगाया जाए
  • मानक छँटाई एल्गोरिदम (केवल बुलबुला नहीं)।

1
मैं C ++ की बजाय C प्रोग्रामर हूं, इसलिए मैं बात नहीं जानता ... लेकिन मैंने कभी RIAA और तीन के नियम के बारे में नहीं सुना। मैंने हालांकि RAII के बारे में सुना है (संसाधन का अधिग्रहण इनिशियलाइज़ेशन है, यानी आपके विध्वंसक को अपनी गंदगी साफ करनी चाहिए) और मुझे पता है कि यदि आपके कोड को कॉपी ctr, अधिभार असाइनमेंट ऑपरेटर या एक विध्वंसक की आवश्यकता है, तो उसे इन तीनों की आवश्यकता है। यह मुझे प्रतीत होगा कि एक साक्षात्कार जो आपके कौशल के परीक्षण के बजाय प्रोग्रामिंग स्लैंग में एक सामान्य ज्ञान सामान्य ज्ञान है, कंपनी के बारे में कुछ बुरा कहता है।

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

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

पुनरावृत्ति या एकाधिक अनुवर्तीता के साथ कुछ भी गलत नहीं है। समस्या डेवलपर्स के साथ है इसका उपयोग करने पर (और इसे गलत तरीके से करने पर)। कुछ समस्याओं को केवल पुनरावृत्ति का उपयोग करके (आसानी से) हल किया जा सकता है (पहले एक पेड़ की संरचना गहराई पार्स करना)।
मार्टिन यॉर्क


-1

मैं अपने अंतिम साक्षात्कार में मिला:

मान / संदर्भ / पॉइंटर द्वारा किसी फ़ंक्शन को ऑब्जेक्ट पास करने में अंतर और आप ऐसा कहां और क्यों करेंगे।

एक पूर्णांक के 2 अंतिम 8 बिट्स स्वैप करें जैसे RGBG को RGAB।

RIAA क्या है?

टेम्प्लेट मेटा प्रोग्रामिंग को परिभाषित करें: आपको "टीएमपी के साथ इस समस्या को हल करें" .. के संदर्भ में एक प्रश्न मिल सकता है।

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

एकाधिक विरासत .... बार-बार।

मल्टी थ्रेडिंग: निर्माता उपभोक्ता और साझा की गई मेमोरी ऑब्जेक्ट्स को बफ़र करता है।

कुछ और परिधि प्रश्न:

यूएमएल एकत्रीकरण और रचना

डिजाइन पैटर्न: एक सिंगलटन को लागू करें ... एमवीसी के सामान्य घटक क्या हैं?

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