c++ - tutorial - सी++ फोन स्क्रीन के लिए साक्षात्कार के किस प्रकार के प्रश्न उपयुक्त हैं?




the c++ programming language (3)

मुझे पता लगाना है कि अगर लोग वास्तव में उन उपकरणों के बारे में कुछ जानते हैं जो वे उपयोग कर रहे हैं और मुझे यह भी पता चलता है कि "वरिष्ठ" डेवलपर्स के पास उनके ज्ञान में गंभीर खामियां हो सकती हैं

आप पूछने पर विचार कर सकते हैं

  • क्या एक vtable है
  • टेम्पलेट कैसे काम करते हैं
  • ढेर और स्टैक के बीच अंतर क्या है इस एक को जवाब की गहराई काफी रोशनी हो सकता है!

आखिरी प्रश्न का जवाब "कवर करने के लिए आपको वास्तव में साक्षात्कार की आवश्यकता है"

  • आवंटन - सीमाएं, उपयोग-मामले, असफलता मोड, दक्षता, संसाधन सफाई, नाशक
  • स्टैक कॉल फ़्रेम - क्या होता है जब एक फ़ंक्शन कॉल किया जाता है, मापदंडों, बैक्रेसेस

https://code.i-harness.com

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

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

मुझे पता है कि इसके जैसा एक और धागा है, लेकिन स्पष्ट रूप से यह बात पूरी तरह से चूक गई है कि यह फोन स्क्रीन के बारे में है, साक्षात्कार नहीं है, जो आमने-सामने हैं। प्लस यह अधिक सी ++ विशिष्ट है


मैं संसाधन / स्मृति प्रबंधन के बारे में पूछता हूं, क्योंकि यह सी ++ में एक महत्वपूर्ण विषय है, और इसमें ठोस कोड की आवश्यकता नहीं है बस एक सरल काल्पनिक परिदृश्य स्केच करें, और पूछें कि वे त्रुटियों / अपवादों के मुकाबले भी कुछ महत्वपूर्ण संसाधन कैसे मुक्त हो जाएंगे? कहते हैं कि वे एक नेटवर्क एप विकसित कर रहे हैं, वे यह कैसे सुनिश्चित करते हैं कि हम अपनी सॉकेट्स ठीक से बंद करें? बेशक, उचित जवाब यह एक आरएएआई ऑब्जेक्ट में लपेट करना होगा, लेकिन उनसे सीधे नहीं पूछें (यह "गूगल आरएआई" के लिए आसान है, जबकि उपरोक्त प्रश्न "आप कैसे संसाधनों को उचित तरीके से रिलीज करने को सुनिश्चित करेंगे" वास्तव में आपको दिखाता है कि क्या या वे उपयुक्त तकनीकों को नहीं जानते हैं। यदि वे "कोशिश / पकड़ने में सबकुछ लपेटते हैं", तो उन्हें एक समस्या हो सकती है। और यह संबंध ढेर और ढेर के बीच के अंतर के बारे में प्रश्नों के साथ अच्छी तरह से करते हैं।

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

देखें कि क्या वे स्मार्ट पॉइंटर्स के बारे में जानते हैं (फिर से उन्हें एक ऐसी स्थिति देकर जहां स्मार्ट पॉइंटर्स को बुलाया जाता है, और देखें कि वे समस्या कैसे हल करेंगे), और शायद टेम्प्लेट / मेटाप्रोग्राममैन (बाद के मामले में, शायद सिर्फ पता करें कि क्या वे ' फिर से पता है कि यह संभव है, फोन पर वास्तविक metaprograms कोड करने की आवश्यकता के बजाय)

आप अपरिभाषित व्यवहार के कुछ सामान्य क्षेत्रों (एक और बी के मूल्य क्या हैं, a = b++ + b++? ??) निष्पादित करने के बाद, या 10 तत्वों की एक सरणी आवंटित कर सकते हैं, और 10 या 11 को सरणी पॉइंटर , और पूछें कि प्रत्येक मामले में परिणाम क्या है (+ = 10 कानूनी है, आपको एक अतीत-अंत-सूचक देता है, + = 11 अपरिभाषित है)। या उन्हें एक परिदृश्य दें जहां उन्हें बहुत सी वस्तुओं की प्रतिलिपि बनाने की आवश्यकता है, और पूछें कि वे किस तरह से करते हैं (एक समय में प्रत्येक तत्व की प्रतिलिपि बनाने वाली मेकअप, मेम्पीपी या स्टडी :: कॉपी स्पष्ट उत्तर हैं। , यह गैर-पीओडी वस्तुओं के लिए सुरक्षित नहीं है)

या सामान्य में उनकी कोडिंग शैली के बारे में पूछें। वे तेरेटर के बारे में कैसा महसूस करते हैं? क्या वे सादे पुराने-छोरों को पसंद करते हैं? क्या वे जानते हैं कि std :: for_each या std :: transform का उपयोग कैसे करें?

संपादित करें: a = b++ + b++ (उत्तर को अपरिभाषित व्यवहार, बीटीडब्ल्यू) लगता है विशेष रूप से सुझावों से बहुत सी टिप्पणियां उत्पन्न हुईं। शायद लोग इसमें बहुत अधिक पढ़ते हैं जैसा कि ओपी ने कहा कि उन्होंने कंक्रीट (फोन के बारे में स्पष्ट / उत्तर देने / चर्चा करने के लिए आसान नहीं) सवाल पूछना पसंद किया, जो साक्षात्कारकर्ता के सी ++ कौशल के बारे में कुछ पता चलता है, और यह एक सरल (और हाँ, शायद निप्पक्सी है ) उस का उदाहरण इसके पीछे तर्क यह है कि 1) इसका एक सहज ज्ञान युक्त अर्थ है, जो गलत है, और 2) आपको इस बात का एहसास करने से पहले सी ++ के साथ एक निश्चित स्तर का अनुभव होना चाहिए। और निश्चित रूप से 3), यह फोन पर पूछने में कम और आसान है यह किसी को भी कोड लिखने की आवश्यकता नहीं है। नहीं, यह नहीं बताएगा कि क्या उम्मीदवार एक "महान प्रोग्रामर" है, लेकिन जैसा कि मैंने सवाल समझा, यह लक्ष्य भी नहीं था अगर किसी को यह गलत हो जाता है, इसका मतलब बिल्कुल ज्यादा नहीं है, लेकिन यदि वे इसे ठीक से प्राप्त करते हैं, तो आप निश्चित रूप से यह सुनिश्चित कर सकते हैं कि उन्हें सी ++ का थोड़ा पता है लेकिन अगर आप मेरा जवाब फिर से पढ़ते हैं, तो आप देखेंगे कि यह उन प्रश्नों की एक त्वरित उदाहरण है जो मैंने सोचा था कि उनका प्रतिनिधित्व होना चाहिए। सी ++ अपरिभाषित व्यवहार से भरा हुआ है, यहां तक ​​कि कोड में जो पूरी तरह से हानिरहित और सहज दिखाई देता है। उम्मीदवार को इसके कुछ उदाहरण को पहचानने के लिए उपयोगी हो सकता है, चाहे वह "एक ही अभिव्यक्ति में दो बार एक ही चर संशोधित करें" उदाहरण के ऊपर, या कुछ अलग है।


सी ++ पदों के लिए एक फोन स्क्रीन के हिस्से के रूप में मैंने 'हू बर्जने स्ट्रास्ट्रस्ट' कहने के लिए लिया है

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





c++