हमारे पहले समीक्षा पदों में से एक के लिए, हमने एक अद्भुत पुस्तक को चुना जिसे हम हर प्रोग्रामर को सुझाते हैं जो एक पेशेवर के रूप में सुधार और विकास करना चाहता है। यह प्रोग्रामिंग पुस्तकों में से एक पश्चिमी सबसे अधिक बिकने वाली पुस्तकों में से पाँचवाँ संस्करण है -
क्रैकिंग द कोडिंग इंटरव्यू: 150 प्रोग्रामिंग इंटरव्यू प्रश्न और उत्तर , जिन्हें
"प्रोग्रामर करियर" कहा जाता है
। Google, Microsoft या किसी अन्य प्रमुख IT कंपनी में नौकरी कैसे प्राप्त करें ।
"
एक आईटी से संबंधित पुस्तक के लिए, इस पुस्तक की अमेज़ॅन की वेबसाइट पर बिल्कुल अविश्वसनीय रेटिंग है (6 सितंबर तक यह सामान्य रेटिंग में पुस्तकों की संख्या और कंप्यूटर और प्रौद्योगिकी अनुभाग के लिए नंबर 1 है), इसलिए, इस परियोजना के क्यूरेटर के रूप में, मैं बस खुश था, जब रूस में इस सबसे अधिक बिकने वाली पुस्तक को प्रकाशित करने के लिए पीटर को विशेष अधिकार प्राप्त हुए।
पुस्तक के लेखक के बारे में थोड़ा सा।
गेल लकमैन एक
सुंदर अमेरिकी आईटी-लड़की है, जो हालांकि, रूसी संस्करण की तैयारी के दौरान शादी करने और मैकडॉवेल का दूसरा नाम हासिल करने में कामयाब रही। गेल ने कई वर्षों तक Google, Microsoft और Apple में नौकरी चाहने वालों का साक्षात्कार लिया और फिर अपनी खुद की कंपनी CareerCup की स्थापना की, जो प्रोग्रामर को प्रमुख आईटी कंपनियों में साक्षात्कार लेने के लिए तैयार करने में मदद करती है। और, ज़ाहिर है, गेल पुस्तक क्रैकिंग कोडिंग इंटरव्यू के लेखक के रूप में भी प्रसिद्ध हैं, जिसे कई वर्षों से पश्चिम में पुनर्मुद्रित किया गया है और यह सबसे ज्यादा बिकने वाले बुक चार्ट की शीर्ष रेखाओं से नीचे नहीं उतरता है। गेल लकमैन उद्यम के बारे में इस तथ्य से भी बात करते हैं कि वह व्यक्तिगत रूप से अपनी पुस्तकों के प्रकाशक के रूप में कार्य करते हैं और हमने रूस में पुस्तक को लाइसेंस देने के बारे में उनसे सीधे बातचीत की (सामान्य तौर पर, यह आधुनिक प्रकाशन व्यवसाय के लिए बकवास है)।
यह किताब किस बारे में है?
नाम यह धारणा दे सकता है कि यह बड़े निगमों में साक्षात्कार और काम पर रखने की प्रक्रिया का वर्णन करने के लिए समर्पित है: कैसे कपड़े पहनें, कैसे व्यवहार करें, Google या Microsoft पर साक्षात्कार आयोजित करने की प्रथा क्या है, और प्रत्येक कंपनी में आपत्तिजनक नौकरी चाहने वालों को कैसे मना किया जाता है। वास्तव में, नहीं।
वैसे, एक दिलचस्प कहानी: ओजोन ऑनलाइन स्टोर से हमारे सहकर्मी भी पुस्तक के शीर्षक से भ्रमित थे, और उन्होंने इसे "कार्मिक लेखा और रिकॉर्ड कीपिंग" अनुभाग में रखा, और हमें प्रकाशन को सही वर्ग शाखा में वापस लाने के लिए कुछ प्रयास करना पड़ा ।इसलिए, क्रैकिंग कोडिंग साक्षात्कार को एल्गोरिदम पर क्लासिक पुस्तकों के साथ सममूल्य पर रखा जाना चाहिए जो प्रोग्रामर को सोचते हैं और सुधार करते हैं। उपरोक्त विषयों में वास्तव में थोड़ी जगह है (अर्थात्, 50 पृष्ठ), लेकिन पुस्तक का मुख्य और सबसे मूल्यवान हिस्सा लगभग 400 पृष्ठ वास्तविक प्रश्न और परीक्षण आइटम हैं जो आवेदक दुनिया की सबसे प्रसिद्ध आईटी कंपनियों में साक्षात्कार के दौरान प्राप्त करते हैं। बेशक, यह पुस्तक आपकी मदद करेगी यदि आप वास्तव में Google पर एक साक्षात्कार के लिए जा रहे हैं, लेकिन अपने आप से यह किसी भी प्रोग्रामर को एक पेशेवर के रूप में अपने कौशल और उसके विकास पर एक नया रूप लेने का अवसर देगा, न केवल अमूर्त, बल्कि बहुत ही वास्तविक कार्यों की पेशकश करेगा। समाधान जो व्यवहार में उपयोग किए जा सकते हैं।
कुल मिलाकर, पुस्तक में 150 कार्य शामिल हैं (और उनके सही उत्तर!) ओओपी, परीक्षण, पुनरावृत्ति, पेड़ और रेखांकन, डेटाबेस, प्रवाह और संभाव्यता सिद्धांत आदि जैसे विषयों पर। आप
इस लिंक पर पुस्तक की समान सामग्री (प्रकाशक की वेबसाइट पर पीडीएफ-फाइल) देख सकते हैं।
और एक बीज के रूप में, हम सुझाव देते हैं कि आप "टास्क ऑफ इंक्वायरी कांप्लेक्स" खंड से पुस्तक में से एक परीक्षण कार्य को पूरा करने का प्रयास करें।
कार्य
एक विधि लिखें जो आकार एन के एक सरणी से मीटर पूर्णांक का एक यादृच्छिक अनुक्रम उत्पन्न करता है। सभी तत्वों को एक ही संभावना के साथ चुना जाता है।
पुस्तक का उत्तर कल, 7 सितंबर को 18:00 बजे टिप्पणियों में प्रकाशित किया जाएगा। पुस्तक के मालिकों को सुराग न देने का अनुरोध।
और नीचे, एक उदाहरण के रूप में, हम सही उत्तर के साथ "पुनरावृत्ति और गतिशील प्रोग्रामिंग" अनुभाग से एक और कार्य देते हैं।
कार्य।
पेंट फिल फ़ंक्शन को लागू करें, जिसका उपयोग कई छवि संपादकों में किया जाता है। एक विमान (रंगों का दो-आयामी सरणी), एक बिंदु और एक रंग जिसे आपको पूरे आसपास के स्थान को भरने की जरूरत है, एक अलग रंग में चित्रित किया गया है।
निर्णय
सबसे पहले, आइए विधि की कल्पना करें। जब हम पेंटफिल कहते हैं (ग्राफिक्स एडिटर में "भरने के लिए बटन दबाएं"), उदाहरण के लिए, हरे रंग के पिक्सेल पर, हम सीमाओं का विस्तार करना चाहते हैं। हम आसपास के पिक्सेल के लिए पेंटफिल को कॉल करके आगे और आगे बढ़ते हैं। यदि पिक्सेल का रंग हरे रंग से अलग है, तो हम रोकते हैं।
आप इस एल्गोरिदम को पुनरावर्ती रूप से कार्यान्वित कर सकते हैं:
1 एनम रंग {
2 काले, सफेद, लाल, पीले, हरे
3}
4
5 बूलियन पेंटफिल (रंग [] [] स्क्रीन, इंट एक्स, इंट वाई, कलर चॉकलेट,
6 रंग रंग)
7 अगर (x <0 || x> = स्क्रीन [0] .length ||
य <० || y> = screen.length) {
9 झूठे लौटे;
10}
11 अगर (स्क्रीन [y] [x] == ocolor) {
12 स्क्रीन [y] [x] = ncolor;
13 पेंटफिल (स्क्रीन, एक्स - 1, वाई, चॉकलेट, नेलकोर); // छोड़ दिया
14 पेंटफिल (स्क्रीन, एक्स + 1, वाई, चॉकलेट, नेलकोर); // सही है
15 पेंटफिल (स्क्रीन, एक्स, वाई - 1, चॉकलेट, नेलकोर); // शीर्ष
16 पेंटफिल (स्क्रीन, x, y + 1, ocolor, ncolor); // नीचे
17}
18 वापसी सच;
19}
20
21 बूलियन पेंटफिल (रंग [] [] स्क्रीन, इंट एक्स, इंट वाई, कलर नेलोर) {
22 वापसी पेंटफिल (स्क्रीन, एक्स, वाई, स्क्रीन [y] [x], रंग);
23}
स्क्रीन में x और y के क्रम पर ध्यान दें [y] [x] सरणी और याद रखें कि जब आप कंप्यूटर ग्राफिक्स से जुड़ी समस्या को हल करते हैं, तो आपको इस आदेश का उपयोग करने की आवश्यकता होती है। चूंकि x क्षैतिज दिशा से मेल खाता है, इसलिए यह चर स्तंभ संख्या का वर्णन करता है, न कि पंक्ति संख्या का। मान y पंक्ति संख्या के अनुरूप है। साक्षात्कार के दौरान और दैनिक प्रोग्रामिंग के दौरान, इस जगह पर गलती करना बहुत आसान है।