निम्नलिखित लेख को http://get-that-job-at-google.blogspot.in/ से उधार लें
Google साक्षात्कारकर्ताओं के लिए कोडिंग नॉलेज C / C ++ और Java पसंदीदा प्रोग्रामिंग लैंग्वेज हैं। आप उनमें से कम से कम एक को अच्छी तरह से जानते होंगे। आपसे फ़ोन स्क्रीन साक्षात्कार में और ऑनसाइट साक्षात्कार में भी कोड लिखने की उम्मीद की जाएगी।
सीएस साक्षात्कार के लिए अनुशंसित पुस्तकें : एल्गोरिथम का परिचय - कॉर्मेन द्वारा
प्रोग्रामिंग साक्षात्कार उजागर
कोडिंग साक्षात्कार क्रैकिंग
साक्षात्कार के लिए एल्गोरिदम
कोडिंग प्रैक्टिस के लिए अनुशंसित वेबसाइटें : इंटरव्यूसर्किट, टॉपकोडर
बिग-ओ यह एक एल्गोरिथम साक्षात्कार की तैयारी में प्रारंभिक बिंदु होना चाहिए। आपको बुनियादी जटिलता विश्लेषण के साथ संघर्ष नहीं करना चाहिए, क्योंकि यह काम पर रखने की गारंटी नहीं देगा। आपको परिचित होना चाहिए और ओ,। और। नोटेशन को समझना चाहिए। मैं डेटा स्ट्रक्चर्स और अल्गोरिथम बुक से जटिलता विश्लेषण पर सेक्शन पढ़ने की सलाह देता हूं।
छँटाई आप आसानी से QuickSort और MergeSort की तरह एल्गोरिदम ओ (n * lgn) लिखने में सक्षम होना चाहिए। तुलना करें और सबसे अच्छे, सबसे खराब और औसत मामले की जटिलताओं को समझें। मुझे विकी पर यह तालिका बहुत उपयोगी लगी; यह सभी छंटाई एल्गोरिदम के महत्वपूर्ण गुणों को सूचीबद्ध करता है। बबल ओ (एन ^ 2) एल्गोरिदम जैसे बबल सॉर्ट या इंसर्शन सॉर्ट की उपेक्षा न करें, क्योंकि अन्य एल्गोरिदम इन पर सुधार करते हैं। साक्षात्कार एक मूल विचार में सुधार करने के बारे में अधिक हैं, एल्गोरिदम को छाँटने से इस प्रक्रिया में मदद मिलेगी।
हैश टेबल्स जब संदेह में हों, तो हैश टेबल के बारे में सोचें। वे अधिकांश समस्याओं में उपयोगी होते हैं और अक्सर हमें कैशिंग परिणाम द्वारा कुछ समस्याओं की समय जटिलता में सुधार करने में मदद मिलती है।
पेड़ मूल वृक्ष निर्माण, ट्रैवर्सल और हेरफेर एल्गोरिदम के माध्यम से जाते हैं। आपको द्विआधारी खोज पेड़ों के आधार पर एल्गोरिदम को लागू करने में सक्षम होना चाहिए। आपको संतुलित पेड़ों से परिचित होना चाहिए, हालांकि आपको साक्षात्कार में उनके लिए कोड लिखने की उम्मीद नहीं है: एवीएल पेड़, लाल-काले पेड़, ट्राई, एन-एरी ट्री आदि। इनवर्टर, पोस्टऑर्डर और प्रीऑर्डर ट्रैवर्सल्स के बारे में पूरी जानकारी आवश्यक है, क्योंकि हम इन ट्रैवर्सल्स में से एक के लिए सरल संशोधन करके कई पेड़ों की समस्याओं को हल कर सकते हैं।
कंप्यूटर विज्ञान में रेखांकन रेखांकन एक बहुत ही महत्वपूर्ण अवधारणा है। ग्राफ़ (ऑब्जेक्ट्स और पॉइंटर्स, मैट्रिक्स, और आसन्न सूची) के तीन मूल प्रतिनिधित्व का अभ्यास करें और अपने पेशेवरों और विपक्षों के साथ खुद को परिचित करें। साक्षात्कार के दौरान ज्यादा समय नहीं है इसलिए आपको कुछ बहुत जटिल की उम्मीद नहीं करनी चाहिए। हालाँकि, मूल ग्राफ ट्रैवर्सल एल्गोरिदम (DFS और BFS) एक आवश्यक हैं, आपको उन्हें सभी मूल अभ्यावेदन में लागू करना चाहिए। आपको दिज्क्स्ट्रा या फ्लोयड-वारशॉल एल्गोरिदम को लागू करने में सक्षम होना चाहिए और साथ ही न्यूनतम फैले पेड़ एल्गोरिदम (क्रुस्कल और प्राइम)। टोपोलॉजिकल सॉर्टिंग के बारे में जानें, क्योंकि यह कई आदेश देने वाली समस्याओं में आश्चर्यजनक रूप से बहुत उपयोगी है।
डायनेमिक प्रोग्रामिंग यह संभवतः सबसे महत्वपूर्ण विषय है क्योंकि कार्यान्वयन छोटे हैं। आपको 35-40 मिनट के समय के दौरान 2-3 गतिशील एल्गोरिदम को लागू करने में सक्षम होना चाहिए। जैसा कि आप इस ब्लॉग या वेब पर संसाधनों की जांच करेंगे, आप पाएंगे कि आपको प्रति साक्षात्कार कम से कम एक गतिशील प्रोग्रामिंग प्रश्न की उम्मीद करनी चाहिए।
ऑपरेटिंग सिस्टम प्रक्रियाओं, थ्रेड्स और कॉन्सिक्वेंसी समस्याओं के बारे में जानें। म्यूटेक्स, सेमाफोरस, मॉनिटर और वे कैसे काम करते हैं, इसके बारे में जानें। समझें कि गतिरोध और लाइवलॉक क्या हैं और उनसे कैसे बचा जाए। संदर्भ स्विचिंग, शेड्यूलिंग आदि के बारे में जानें।
गणित आपको अपने आप को गिनती, संयोजन और संभावना के साथ परिचित करना चाहिए।
यदि आपके पास समय है तो Google के प्रकाशन नीचे सूचीबद्ध Google के पथ- प्रकाशन पढ़ें। Google फ़ाइल सिस्टम
Google बिगटेबल
Google MapReduce