जैसा कि शीर्षक कहता है, आपकी पसंदीदा व्हाइटबोर्ड साक्षात्कार समस्या क्या है, और यह आपके लिए प्रभावी क्यों साबित हुई है?
जूनियर, सीनियर, जावा, सी, जावास्क्रिप्ट, पीएचपी, एसक्यूएल, छद्म कोड, आदि।
जैसा कि शीर्षक कहता है, आपकी पसंदीदा व्हाइटबोर्ड साक्षात्कार समस्या क्या है, और यह आपके लिए प्रभावी क्यों साबित हुई है?
जूनियर, सीनियर, जावा, सी, जावास्क्रिप्ट, पीएचपी, एसक्यूएल, छद्म कोड, आदि।
जवाबों:
मैं उम्मीदवार से उस समस्या के समाधान को तैयार करने के लिए कहता हूं जो मैं वास्तव में अपने दिन के काम में आया था। ऐसा करते हुए, मैं अपने और उम्मीदवार के बीच एक संवाद बनाने की कोशिश करता हूं। मैं उस डिजाइन के बारे में चर्चा करने की कोशिश करता हूं जो वह बना रहा है जैसे कि मैंने पहले कभी इस समस्या के बारे में नहीं सोचा था।
मैं मूल्यांकन करने की कोशिश करता हूं कि क्या हम एक दूसरे को समझने में सक्षम हैं, और क्या हम भ्रम के बिना एक तकनीकी समस्या के बारे में बात कर सकते हैं।
(जावा डेस्कटॉप डेवलपर के लिए)
वेब ब्राउज़र के नेविगेशन इतिहास (पिछले पृष्ठ, अगले पृष्ठ, 10 पिछले पृष्ठों को सूचीबद्ध करें) को संभालने के लिए एक एपीआई डिज़ाइन करें , और यह अनुप्रयोग के कई हिस्सों में पुन: प्रयोज्य हो सकता है (यहां मैं हमारे ऐप में ठोस उदाहरण देता हूं)। फिर, एक कार्यान्वयन स्केच करें।
मुझे यह पसंद है, क्योंकि यह काफी सरल है, यह वर्णन करना आसान है, इसे चरण दर चरण हल किया जा सकता है (अतिरिक्त व्यवहार को जोड़कर सब कुछ तोड़ने के बिना), यह किनारे के मामलों और त्रुटि से निपटने के बारे में बात करने की अनुमति देता है, और यह डेटा के बारे में बात करने की भी अनुमति देता है संरचनाओं।
मैंने यह पाया है कि उम्मीदवारों का साक्षात्कार करते समय और बिना किसी व्यवसाय वाले लोगों को फ़िल्टर करने के दौरान यह बहुत ही रोशन होता है। यह Fizz Buzz की जटिलता के समान है, लेकिन डेटाबेस कौशल पर केंद्रित है।
Assuming the following basic table structure
Documents (DocID, DocDate)
Keywords (KeyWordID, KeyWord)
DocumentKeywords (DocID,KeywordID)
Write a query to return the following:
Part 1: Documents with a DocDate after 4/1/1995
Part 2: Documents that contain the keyword "Blue"
Part 3: Documents that contain the either the keyword "Blue" or "Yellow"
Part 4: Documents that contain the both the keywords "Blue" and "Yellow"
मैं उन्हें इसे किसी भी एसक्यूएल संस्करण में लिखना चाहता हूं जो वे चाहते हैं, और मामूली वाक्यविन्यास समस्याओं पर बहुत अचंभित नहीं हूं। मैं मुख्य रूप से जानना चाहता हूं कि वे बुनियादी संबंधपरक डीबी अवधारणाओं को समझते हैं।
अधिकांश उम्मीदवार भाग 3 के माध्यम से बिना किसी समस्या के प्राप्त कर सकते हैं। आप आश्चर्यचकित होंगे कि कितने लोग सोचते हैं कि भाग 4 का उत्तर ऑपरेटर को OR से AND में बदलने के लिए है, जहां खंड में है।
"मेरे द्वारा काम किए गए अंतिम प्रोजेक्ट के डिज़ाइन को बिना किसी संवेदनशील विवरण के प्रकट किए बिना व्हाइटबोर्ड पर मेरे लिए ड्रा करें।"
लागू करें strcpy
, strcmp
और दोस्तों।
atoi()
।
strdup()
।
strrev()
फ़ंक्शन को लागू करने या स्ट्रिंग को उलटने के लिए कहा । मेरे व्हाइट-बोर्ड समाधान ने उन्हें प्रभावित किया और मैं अब नौकरी कर रहा हूं।
मेरा पसंदीदा जो कुछ विषयों को समाहित करता है, एक बाइनरी ट्री में दिए गए नोड की संख्या को इंटरफ़ेस में गिनना है (C # में):
public interface IBinaryTree<T>
{
IBinaryTree<T> Left
{
get;
}
IBinaryTree<T> Right
{
get;
}
T Data
{
get;
}
// Other properties and methods not germane to this problem.
}
और सिर्फ मनोरंजन के लिए, यहाँ कार्यान्वयन है, हालांकि साक्षात्कारकर्ता को यह देखने की आवश्यकता नहीं है।
public sealed class BinaryTree<T> : IBinaryTree<T>
{
private readonly IBinaryTree<T> left;
private readonly IBinaryTree<T> right;
private readonly T data;
public BinaryTree(
IBinaryTree<T> left,
IBinaryTree<T> right,
T data)
{
this.left = left;
this.right = right;
this.data = data;
}
public IBinaryTree<T> Left
{
get
{
return this.left;
}
}
public IBinaryTree<T> Right
{
get
{
return this.right;
}
}
public T Data
{
get
{
return this.data;
}
}
// Other properties and methods not germane to this problem.
}
और सहायक वर्ग:
public static class BinaryTreeNodeCounter
{
public static int CountNodes<T>(this IBinaryTree<T> tree)
{
// TODO: What goes here?
}
}
इसका समाधान मुझे देखना है:
public static class BinaryTreeNodeCounter
{
public static int CountNodes<T>(this IBinaryTree<T> tree)
{
return tree == null
? 0
: 1 + tree.Left.CountNodes() + tree.Right.CountNodes();
}
}
के रूप में यह का ज्ञान प्रदर्शित करता है:
मेरे लिए दिलचस्प व्हाइटबोर्ड चर्चाओं से जुड़े दो प्रश्न हैं
वे सरल शुरू करते हैं और फिर उत्तरोत्तर अधिक जटिल हो जाते हैं।
मुझे व्हाइटबोर्ड प्रश्न के रूप में एक पहेली या डिज़ाइन प्रश्न का उपयोग करना पसंद नहीं है। मैं सीधा, सरल, प्रश्न पसंद करता हूं, जो कुछ कोड लिखने के लिए उम्मीदवार की क्षमता का परीक्षण करता है। मेरा पसंदीदा हैं:
1) एक एकल लिंक की गई सूची को उलटने के लिए एक फ़ंक्शन लिखें। (इससे पहले कि वे महसूस करते हैं कि उन्हें 3 पॉइंटर्स की आवश्यकता है, कुछ समय लगता है।)
2) एक बाइनरी ट्री को देखते हुए, बाइनरी ट्री की गहराई का पता लगाएं। (यह प्रश्न पुनरावर्ती कोड लिखने की उनकी क्षमता का परीक्षण करता है। मुझे जांचने देता है कि क्या उनका आधार मामला बरकरार है।)
3) बाइनरी के लिए एक प्रक्रिया लिखें पूर्णांक की एक सरणी की खोज। (जैसे कि जॉन बेंटले कहते हैं (प्रोग्रामिंग पर्ल में), बहुत से लोग द्विआधारी खोज लिखने में गलती करते हैं। एक तो बग ढूंढने, परीक्षण मामलों को लिखने, कोड के माध्यम से चलाने, आदि के साथ पालन किया जा सकता है।)
हमने इसका इस्तेमाल एक कंपनी में किया जिसके लिए मैंने काम किया था।
हमने उम्मीदवार को ट्रैकिंग समय के लिए उपयोग किए जाने वाले कागज का एक टुकड़ा सौंप दिया। यह एक या हमारे डिवीजनों द्वारा उपयोग की जाने वाली एक वास्तविक टाइमशीट थी। हमने एक बेहतर समय ट्रैकिंग टूल बनाने के लिए उम्मीदवार को डिज़ाइन प्रक्रिया के माध्यम से चलने के लिए कहा। कोई सीमा नहीं, किस भाषा आदि को नहीं कहा, बस यह देखना चाहते हैं कि उम्मीदवार "पूर्ण जीवनचक्र" में कितना अच्छा था। इसने हमें इस बात की वास्तविक जानकारी दी कि किस तरह उन्होंने आवश्यकताओं को एकत्रित किया। वे डेटाबेस तालिकाओं की संरचना कैसे करते हैं, वे किस तरह के यूआई कर सकते हैं। इस कार्य के लिए स्पष्ट रूप से संचार कौशल की आवश्यकता थी। यह आमतौर पर कई बड़े सफेद बोर्डों वाले कमरे में किया जाता था और 2 घंटे तक चलता था।
हमने इस प्रक्रिया का उपयोग करते हुए कई लोगों को काम पर रखा है और अगर उन्होंने वास्तव में हमारे लिए जो काम किया है, उस पर उन्होंने वास्तव में अच्छा काम किया है। यदि वे सीमांत थे और हमने उन्हें (अलग विषय) वैसे भी किराए पर देने का फैसला किया, तो वे सीमांत प्रोग्रामर थे।
मैं एक समस्या का उपयोग करता हूं जो मेरे प्रोग्रामिंग डोमेन के लिए प्रासंगिक है।
यदि मैं वेब एप्लिकेशन विकसित करता हूं, तो मैं यह देखना चाहता हूं कि वे रिकॉर्ड्स को हटाने वाले वेब फॉर्म को कैसे तैयार कर सकते हैं, और उदाहरण के लिए वे डेटाबेस से रिकॉर्ड को हटाने के लिए क्या दृष्टिकोण अपना सकते हैं। यह मुझे बताता है कि अगर वे बुनियादी डेटाबेस सिद्धांतों को जानते हैं, तो वे उपयोगकर्ता के साथ बातचीत को कैसे हटाते हैं, और यदि उन्हें पता है कि नरम हटाना क्या है।
मेरा कोई पसंदीदा नहीं है। मेरे द्वारा चुनी गई समस्या नौकरी के आधार पर बहुत भिन्न होगी।
मुझे परवाह नहीं है कि वे पूरी तरह से समस्या का समाधान कर सकते हैं या नहीं एक साक्षात्कार में, वे किन तकनीकों और भाषाओं का उपयोग करते हैं, या उनके कोड को व्हाइटबोर्ड पर कितना भद्दा लगता है। मैं एक विचार पैटर्न की तलाश कर रहा हूं; मैं यह देखना चाहता हूं कि क्या वे जानते हैं कि समस्याओं के माध्यम से कैसे सोचा जाए और हल किया जाए।
मेरा पसंदीदा मेरा एक दोस्त था जो मेरा इस्तेमाल करता था।
मुझे पहले "n" अभाज्य संख्याओं को जनरेट / प्रिंट / स्टोर करने के लिए एक फ़ंक्शन लिखें और फिर समझाएँ कि यह कैसे काम करता है और यह कितना कुशल है।
यह अच्छी तरह से काम करता है क्योंकि:
यह एक एल्गोरिदमिक प्रश्न है, इसलिए इसमें साक्षात्कारकर्ता को सोचने में सक्षम होने और फिर उनकी सोच को समझाने की आवश्यकता है - ताकि आप देख सकें कि उनका मस्तिष्क कैसे काम करता है।
यह भाषा स्वतंत्र है।
शायद ही किसी को यह पूरी तरह से सही लगता है (सामान्य रूप से एक किनारे का मामला वे याद करते हैं (1 या 2 सामान्य रूप से), या वे नकारात्मक संख्याओं को नहीं संभालते हैं, इसलिए आपको यह देखने को मिलता है कि वे बग को कैसे संभालते हैं और कहा जा रहा है कि वे गलत हैं।
अधिकांश इसे एक सरल लेकिन बहुत धीमी छलनी के रूप में करते हैं (उदाहरण के लिए 80% लोग n की जाँच करेंगे जो n को सभी पूर्णांकों को n से कम पर विभाजित करके एक प्रमुख है), जो आपको वार्तालाप के लिए बहुत गुंजाइश देता है कि वे एल्गोरिथ्म को कैसे बेहतर बना सकते हैं। पर अंतरिक्ष / समय व्यापार बंद उदाहरण के लिए "यदि आप पहले से ही 2 से विभाज्य नहीं है, तो आप 4 की संख्या को 4 से क्यों विभाजित कर रहे हैं?" या "आपने यह काम किया है कि आपको केवल sqrt (n) से कम सभी अभाज्य संख्याओं को विभाजित करने की आवश्यकता है, लेकिन इसके लिए आपको उन संख्याओं को कहीं स्टोर करना होगा, इसलिए इसके क्या निहितार्थ हैं?"
उत्तर सही पाने के लिए उनकी कोई आवश्यकता नहीं है। अगर कोई सोच सकता है और अपनी सोच को समझा सकता है तो वे एक अच्छे उम्मीदवार होने के लिए एक लंबा रास्ता तय करते हैं।
कुछ को aff_z कहा जाता है, जो मेरे इंजीनियरिंग स्कूल की सी परीक्षाओं का हिस्सा था और छुट्टियों से वापस आने पर छात्रों को फेल करने के लिए "डमी" परीक्षा के रूप में उपयोग किया जाता था (हमारा अंकन प्रणाली का अर्थ था कि एक परीक्षा में असफल होने से अंकन बंद हो जाता है, इसलिए "डमी टेस्ट" विफल हो जाएगा अपने पूरे परीक्षण को अमान्य करें। आपको नैतिक विवरणों पर ध्यान देने के लिए मजबूर करता है)। मैंने साक्षात्कार के दौरान एक या दो बार इसका पुन: उपयोग किया।
वैसे भी ... मैं सटीक सूत्रीकरण भूल गया, लेकिन यह कुछ इस तरह था ...
Write a function taking a single char parameter named c and returning nothing (void).
You function must satisfy the following requirements:
- if c is bigger or equal to 0, then print 'z' to standard output
- if c is stricly smaller than 0 , then print 'z' to standard output
- in any other case, print the letter 'z' to standard output
दुःख की बात यह है कि न केवल कुछ छात्र बेहद जटिल समाधानों के साथ आएंगे, जब उत्तर बिल्कुल स्पष्ट होगा, बल्कि यह कि कुछ असफल होने का प्रबंधन भी करेंगे।
और मानो या न मानो, यह साक्षात्कार के दौरान भी हुआ।
साक्षात्कार में इसे चलाना काफी मजेदार था, क्योंकि कुछ आवेदक संभावित शाखाओं को लिखना शुरू कर देंगे और फिर महसूस करेंगे कि क्या गलत है (जाहिर है, अगर आप केवल उनसे मौखिक रूप से पूछें, तो यह काफी समझ में आता है कि वे ऐसा करते हैं जैसे आप बोलते हैं ... लेकिन अगर आप इसे लिखित रूप में दें, मुझे यह अजीब लगता है ...)
यह गूंगा है, लेकिन मुझे लगता है कि यह एक न्यूनतर स्क्रीनिंग है (इसी तरह, जब जेएस प्रोग्रामर को काम पर रखते हैं, तो मैं हमेशा पूछता हूं कि कैसे एक चर घोषित किया जाए, और फिर उनके जवाब के आधार पर कि क्या कोई भी अंतर का उपयोग करता है या नहीं, यह बहुत दुखद क्षण है। ईमानदारी से।)
variablename = variablevalue;
जबकि अच्छे लोग सिर्फ फोन पर या व्यक्तिगत रूप से हंसते थे और सीधे मुझे बताते थे कि क्या अलग होगा या बुद्धि के साथ var
)।
यह वास्तव में निर्भर करता है कि आप क्या खोज रहे हैं, एक संगठन के रूप में जो छवियों को शामिल करने के लिए बहुत सारे गतिशील वेब काम करता है, मुझे नौकरी के लिए एक ज्यामिति प्रश्न पूछने के लिए पसंद है। किसी भी मामले में, मैं एक ज्यामिति प्रश्न पूछना चाहता हूं, क्योंकि मुझे लगता है कि यह एक अच्छा गणित परीक्षण है जो अच्छा और दृश्य है और एक समस्या के माध्यम से अपने काम करने और विधिपूर्वक काम करने के लिए उम्मीदवारों को दिखाने की क्षमता दिखा सकता है।
उन्नत उम्मीदवारों के लिए, मैं कभी-कभी निम्नलिखित प्रश्न देता हूं:
यह छवि एक अर्धचंद्राकार चाँद दिखाती है। बी से डी तक वर्धमान की चौड़ाई 9 सेमी और ई और एफ के बीच, 5 सेमी है। C बड़े वृत्त का केंद्र है।
क) कृपया अर्धचंद्र के क्षेत्र की गणना करें।
बी) किसी भी आकार से आंतरिक सर्कल में फिट होने के लिए एक छवि का आकार बदलने के लिए आवश्यक गणनाओं का वर्णन करें, और केंद्र बिंदु ज्ञात होने पर इसे सर्कल के भीतर स्थिति दें।
एक आसान सवाल के लिए, मैं आमतौर पर एक ही तरह का प्रश्न देता हूं, लेकिन "एक वर्ग के भीतर एक वर्ग में" उदाहरण का उपयोग करें। हालांकि यह बहुत आसान है, इसलिए मैं इस पर सही बीजगणित की उम्मीद करूंगा।
उस पर और ऊपर, मैं उन्हें चर लंबाई डेटा सेट के सभी संयोजनों को उत्पन्न करने के लिए एक एल्गोरिथ्म खंगालने के लिए कहता हूं।
मैंने देखा है सबसे अच्छा FizzBuzz उत्तर हैं:
SQL सर्वर 2008
;WITH mil AS (
SELECT TOP 100 ROW_NUMBER() OVER ( ORDER BY c.column_id ) [n]
FROM master.sys.all_columns as c
CROSS JOIN master.sys.all_columns as c2
)
SELECT CASE WHEN n % 3 = 0 THEN
CASE WHEN n % 5 = 0 THEN 'FizzBuzz' ELSE 'Fizz' END
WHEN n % 5 = 0 THEN 'Buzz'
ELSE CAST(n AS char(6))
END + CHAR(13)
FROM mil
सी # (सरल)
foreach (int number in Enumerable.Range(1, 100))
{
bool isDivisibleBy3 = (number % 3) == 0;
bool isDivisibleBy5 = (number % 5) == 0;
if (isDivisibleBy3)
Console.Write("Fizz");
if (isDivisibleBy5)
Console.Write("Buzz");
if (!isDivisibleBy3 && !isDivisibleBy5)
Console.Write(number);
Console.WriteLine();
}
सी # (चालाक)
Enumerable
.Range(1, 100)
.Select(i =>
i % 15 == 0 ? "FizzBuzz" :
i % 5 == 0 ? "Buzz" :
i % 3 == 0 ? "Fizz" :
i.ToString())
.ToList()
.ForEach(s => Console.WriteLine(s));
मैं उम्मीदवारों में कुछ चीजों की तलाश करता हूं जो मैंने साक्षात्कार दिया है। इस कारण से मैं ऑनलाइन वर्णन नहीं कर सकता, हमें बहुत गरीब उम्मीदवार मिलते हैं, और मैं यह उम्मीद करने आया हूं, इसलिए मैं उन पर बहुत आसान हूं। अब भी, मैं देख रहा हूँ:
डिजाइन के बारे में जागरूकता।
"मुझे पता पुस्तिका कार्यक्रम के लिए तालिका संरचना दिखाएं जिसमें पहले और अंतिम नामों के साथ संपर्क हैं जो संख्या (सेल / घर / काम / आदि) के विवरण के साथ कई फोन नंबर हो सकते हैं।"
मैं यहाँ UML 2.0 स्पेक आरेख की तलाश नहीं कर रहा हूँ, यहाँ एक साधारण बबल आरेख ठीक है। जब तक यह उचित है।
डेटाबेस (यानी SQL) के साथ काम करने का ज्ञान
परीक्षण का ज्ञान
मान लें public IEnumerable<PhoneNumber> GetPhoneNumbers(string lastName)
कि हस्ताक्षर के साथ एक विधि मौजूद है जो पहले से आपकी क्वेरी के परिणाम लौटाती है। मान लें कि यदि आप विधि में एक अशक्त पारित करते हैं, तो यह एक NullReferenceException फेंकता है। इस कार्यक्षमता को प्रदर्शित करने के लिए एक परीक्षण लिखें।
एक परीक्षण लिखें जो दर्शाता है कि GetPhoneNumbers अंतिम नाम "स्मिथ" वाले किसी व्यक्ति के लिए (a123)456-7890 का एक घर फोन नंबर लौटाएगा।
कुछ कोड लिखने का ज्ञान
एक विधि लागू करें जो आपके द्वारा लिखे गए परीक्षणों की आवश्यकताओं को पूरा करेगी।
हमारे द्वारा प्राप्त आवेदकों की संख्या और गुणवत्ता को ध्यान में रखते हुए, मैंने उन सभी का साक्षात्कार लिया है जिन्होंने कभी गंभीरता से आवेदन किया है। मैंने नो-हायर किया है।
मैं आमतौर पर उन्हें पिछले सिस्टम के ब्लॉक आरेख को स्केच करने देता हूं, जिस पर उन्होंने काम किया है, ब्लॉकों के बीच संबंधों के बारे में पूछते हैं और उन्हें उस ब्लॉक पर विस्तृत रूप से बताने के लिए जो वे काम कर रहे थे / प्रभारी थे। आप इस अभ्यास से कई सीख सकते हैं, जैसे कि कोई व्यक्ति अपने छोटे डोमेन से परे कैसा दिखता है, यह जानना उसके लिए कितना महत्वपूर्ण है कि 'वह' कहां अभिनय कर रहा है, आप यह भी सीख सकते हैं कि वह किस भूमिका में था, क्या यह एक महत्वपूर्ण या पक्ष था। भूमिका।
निम्नलिखित समस्या के लिए एक एल्गोरिथ्म लिखें: एक संख्या n को देखते हुए , कुल संख्या के (अद्वितीय) बाइनरी पेड़ों में n नोड होते हैं।
इस प्रकार, n = 0 और n = 1 के लिए, उत्तर है 1. n = 2 के लिए, आपके पास 2: रूट नोड है, और फिर दूसरा नोड या तो बाईं या दाईं ओर है।
आप डिज़ाइन तकनीकों में अंतर्दृष्टि प्राप्त कर सकते हैं और यह देखने के लिए कि क्या वे पुनरावृत्ति या संस्मरण या गतिशील प्रोग्रामिंग समाधान के बारे में सोचते हैं।
[ संबंधित, लेकिन अलग-अलग, बाइनरी-सर्च पेड़ों के मामले के लिए यह स्टैकऑवरफ्लो चर्चा भी देखें ।]
यदि मैं किसी सॉफ़्टवेयर डेवलपर का साक्षात्कार लेता, तो मैं उसे एक सॉफ्टवेयर डिज़ाइन करने के लिए कहता और प्रत्येक पंक्ति में एक पूर्ण नाम वाला एक बड़ी फ़ाइल से डुप्लिकेट प्रविष्टियों को हटाने के लिए हार्डवेयर आवश्यकताओं का वर्णन करता। मैं समस्या वर्णन के कुछ हिस्सों को अस्पष्ट उद्देश्यपूर्वक छोड़ देता हूं। फिर मैं उसे यह देखने के लिए चुनौती देता हूं कि क्या वह आवश्यकताओं, विभिन्न ट्रेड-ऑफ, डेटा संरचनाओं और एल्गोरिदम, आई / ओ (सेकेंडरी स्टोरेज), सॉफ्टवेयर और हार्डवेयर टेक्नोलॉजी, स्केलेबिलिटी, आदि का विश्लेषण और स्पष्टीकरण करने के लिए समझता है।
मुझे लगता है कि यह एक छोटी सी चुनौतीपूर्ण समस्या है, कई कंप्यूटिंग क्षेत्रों में आवेदक के ज्ञान और क्षमताओं को प्रकट करता है।
Implement function/method(on c/c++/c# whatever), which calculates n-th item of Fibonacci sequence
कई लोग इस पर अटक सकते थे। यदि कुछ समाधान दिया जाता है - आमतौर पर यह पुनरावृत्ति का उपयोग करता है। उसके बाद:
Implement the same via 'for'-loop
आपको यह नहीं बता सकता है कि दोनों कार्यों को पूरा करने में कितने फेलो हैं - 50% उम्मीदवार।
इसलिए मुझे यह पसंद है :)
fib(n)=round(power(PHI,n)/SQRT5)
:। PHI और SQRT5 क्रमशः सुनहरे अनुपात (1.618 ...) और 5 के वर्गमूल का प्रतिनिधित्व करते हैं।
उन डेटाबेस के लिए जिनके साथ मैं जाता हूं:
टेबल: चीजें आईडी का नाम 1 बोडकिन वान हॉर्न 2 होस-फूंस 3 होस-फूंस 4 हॉट-शॉट 5 मारविन ओ'ग्रेवल बैलून फेस 6 सूंघना 7 मारविन ओ'ग्रेवल बैलून फेस 8 मारविन ओ'ग्रेवल बैलून फेस ९ दवे
मुझे कुछ एसक्यूएल लिखें जो नाम के आधार पर इस तरह की तालिका को डी-डुप्लिकेट करेगा (और मुझे परवाह नहीं है कि मुझे कौन सी आईडी मिलती है लेकिन जो भी लौटा है उसे उस नाम के लिए मान्य होना चाहिए)। इसलिए सही एसक्यूएल को लागू करने के बाद तालिका कुछ इस तरह पेश करेगी:
टेबल: चीजें आईडी का नाम 1 बोडकिन वान हॉर्न 2 होस-फूंस 4 हॉट-शॉट 5 मारविन ओ'ग्रेवल बैलून फेस 6 सूंघना ९ दवे
क्योंकि मुझे यह पसंद है:
(यह वह जगह है जहां मुझे लगता है कि ऐसा करने का कुछ पूरी तरह से तुच्छ तरीका है और मैं इन सभी वर्षों में इसे जटिल कर रहा हूं)।
SELECT min(ID), Name FROM Things GROUP BY Name
ऐसा काम करेगा, है ना?
HAVING count(Name) > 1
, लेकिन फिर मुझे लगता है कि आपके नमूना उत्तर में बोडकिन वान हॉर्न, हॉट शॉट, स्निम और डेव को छोड़ देना चाहिए।
DELETE FROM Things WHERE ID NOT IN (SELECT MIN(ID) FROM Things GROUP BY Name)
:। क्या आपके पास एक पसंदीदा समाधान है?
मेरी पसंदीदा C ++ व्हाइटबोर्ड समस्या उम्मीदवार को लागू करने की है
Vector3 a(1, 0, 0), b(0, 1, 0); // Mathematical 3D vectors
double c = 7.0;
double d = a * c;
Vector3 e = a * b;
इससे मैं सीख सकता हूं
आप मानक 52 कार्ड डेक का प्रतिनिधित्व कैसे करेंगे? कोई भी प्रोग्रामिंग भाषा ठीक है। आप कार्डों में फेरबदल कैसे करेंगे?
मेरा पसंदीदा प्रिंटफ के प्रोटोटाइप से पूछना शुरू करना है। फिर एक निम्न स्तर का एपीआई प्रिंटक (चार सी) दिया गया, जो एक चरित्र को प्रिंट करेगा, प्रिंटफ को लागू करेगा। स्टैक सीपीयू का हिस्सा है जैसे हर तरह की दिलचस्प प्रतिक्रिया देता है। जैसा कि आपने अनुमान लगाया होगा कि मैं सी और एम्बेडेड पृष्ठभूमि से हूं।
varargs()
या कुछ फंक्शन करना होगा। क्या मैं सही हूँ? मैंने केवल यह कहने के लिए एक बार किया है कि मैंने इसे थोड़ी देर पहले किया था।
आपके पास इसमें 200 मछली के साथ एक कटोरा है। इन मछलियों में से 99% अपराधी नहीं हैं। आपको कितनी मछलियाँ निकालनी चाहिए ताकि जो बचता है उसका 2% गप्पे हों। अपना काम दिखाओ।
यह भ्रामक आवश्यकताओं के बारे में है। यह एक ही सवाल के दौरान कई बार दृष्टिकोण बदलने के लिए इस तरह से कहा जाता है। यह देखने के लिए है कि क्या वे यह पता लगा सकते हैं कि वास्तव में क्या चल रहा है।
आपको आश्चर्य होगा कि कितने लोगों को यह गलत लगता है।
answer = 100
। [मान लें कि आप चुनिंदा अन्य मछलियों को चुन सकते हैं। यदि अपराधियों को हटा दिया जाता है, तो अन्य उत्तर हैं।] अच्छा सवाल, आपको आश्चर्य होगा कि कुछ लोग उस कुएं को कैसे संभालते हैं, हालांकि यह एक प्रोग्रामर के लिए बच्चे का खेल होना चाहिए।
मेरे पास कुछ पसंदीदा हैं, लेकिन यहां एक युगल है जो लगभग हमेशा आता है। अधिकांश समय मैं फाइनल राउंड टेक्निकल (C ++) इंटरव्यू कर रहा हूं, ताकि लंबे समय तक और अधिक खुले प्रश्न बन सकें, जिससे रुचि के नए क्षेत्र पैदा होते हैं। कोई 'सही' जवाब नहीं है, बस अन्य बातचीत के लिए एक उद्घाटन।
1) एक बुनियादी साझा सूचक को लागू करना, जहां उनके कार्यान्वयन में tr1 या बढ़ावा के साझा बिंदुओं की तुलना में कमियां हैं, इसका स्पष्टीकरण, इसका उपयोग कैसे किया जाना चाहिए आदि।
2) एक कोड की समीक्षा। अनुभवी किराए के लिए हम उम्मीद करते हैं कि वे डिज़ाइन समस्याओं, त्रुटियों, कोडिंग भयावहता और संभावित रखरखाव समस्याओं के लिए कुछ प्रदान किए गए कोड की आत्मविश्वास से समीक्षा करने में सक्षम होंगे। इसके अलावा, निश्चित रूप से, वे इसे कैसे ठीक करेंगे; और कभी-कभी वे उस संदेश को कनिष्ठ डेवलपर को कैसे देते हैं जिसकी वे नीचे शूटिंग कर रहे हैं।
एक प्रश्न जो मैं तब से इस्तेमाल कर रहा हूं जब वह मुझ पर इस्तेमाल किया गया था वह निम्नलिखित है:
1 और 100 के बीच सभी संख्याओं को मुद्रित करने के लिए एक फ़ंक्शन लिखें।
मेरे द्वारा उपयोग किए जा रहे कारण का एक बड़ा हिस्सा इस तथ्य के कारण है कि आप तब समाधान ले सकते हैं और विभिन्न दिशाओं में आगे बढ़ सकते हैं:
आप 1 और 1000, 10000, या n के बीच सभी संख्याओं को प्रिंट करने के लिए फ़ंक्शन को कैसे संशोधित करेंगे ?
इन सवालों के उनके जवाब आपको अंतर्दृष्टि दे सकते हैं कि वे बदलती आवश्यकताओं के साथ-साथ प्रदर्शन के विचारों को कैसे पहचान सकते हैं। एक मजबूत उम्मीदवार एक सवाल के साथ जवाब दे सकता है कि फ़ंक्शन को कितनी बार कहा जाता है के लिए आवश्यक है।
एक अलग दिशा में आगे बढ़ना:
यदि आप जानते हैं कि यह फ़ंक्शन मिनट में कई बार कहा जा रहा है और प्रदर्शन एक चिंता का विषय है तो आप चीजों को कैसे बदलेंगे?
मैं इसका उपयोग उनकी पार्श्व सोच की जाँच करने के तरीके के रूप में करता हूँ। चूंकि प्रधान संख्याओं की गणना धीमी हो सकती है क्योंकि अधिकतम मूल्य बड़ा हो जाता है यह कभी-कभी अधिक समझ में आता है कि किसी प्रकार की गणना की गई या पूर्व-गणना की गई लुक-अप तालिका का उपयोग करें जिसे उस समस्या के आधार पर समायोजित किया जाता है जिसे आप हल करने की कोशिश कर रहे हैं।
यहाँ कुछ विचार को भड़काने वाला है - यह सीधा है, इसमें थोड़ा सा गणित शामिल है, और उम्मीदवार के बुनियादी कंप्यूटर डिज़ाइन (अतिप्रवाह, संख्यात्मक प्रतिनिधित्व, आदि) के ज्ञान की जाँच करता है:
एक प्रोग्राम (या प्रक्रिया) लिखें जो पूर्णांक X, Y की एक जोड़ी को इनपुट के रूप में लेता है और निर्धारित करता है कि क्या X * Y समान रूप से विभाज्य है 10. महत्वपूर्ण नोट: X और Y काफी बड़े हो सकते हैं कि X * Y सबसे बड़ा पूर्णांक उपलब्ध कराता है। आपकी मशीन पर।
T_BOOL MultipleOfTen(int x, int y)
{
return((x%2==0 || y%2==0) && (x%5==0 || y%5==0));
}
निम्नलिखित विधि भरें: पीएस संख्या का एक मोड संख्या (सूची में) है जिसमें सबसे अधिक घटनाएं होती हैं।
public int getMode(List<Integer> numberList) {
}
यह देखने के लिए है effecient आपका कोड है।
आप एक अतिरिक्त मैट्रिक्स का प्रतिनिधित्व कैसे करेंगे जो अपेक्षाकृत बड़ा है ... 1000x1000 का कहना है लेकिन इसमें अधिकतम 100 गैर-शून्य प्रविष्टियाँ हैं?