บทสัมภาษณ์ Google ที่กำลังจะมาถึงกำลังมองหาคำแนะนำการเตรียมการบางอย่าง [ปิด]


29

ฉันได้อ่านหนังสือทุกที่ที่ทำได้ ฉันมีการสัมภาษณ์ขึ้นมาครั้งแรกทางโทรศัพท์สำหรับตำแหน่งวิศวกรซอฟต์แวร์ ฉันได้อ่านโพสต์บล็อกทั้งหมดฉันได้อ่านเรื่องราวทั้งหมดของบทสัมภาษณ์ (บางอันค่อนข้างเก่า) และ Google เองก็แนะนำรายการอ่านหนังสือให้ด้วย ถึงกระนั้นหลังจากการเตรียมตัวสักพักฉันก็ไม่สามารถสั่นคลอนความรู้สึกนั้นได้ว่ามีพื้นที่ขนาดใหญ่ปกคลุมอยู่และฉันก็ไม่แน่ใจว่าจะลงลึกหรือกว้าง ฉันพบว่าตัวเองกำลังเรียนรู้พื้นที่ทั้งหมดของ compsci ใหม่เพียงเพื่อลืมรายละเอียดส่วนใหญ่เมื่อฉันไปยังที่อื่น

ดังนั้นฉันไม่รู้ว่ามีคำตอบที่ดีสำหรับคำถามนี้ แต่ฉันกำลังมองหาคำแนะนำที่เป็นประโยชน์เกี่ยวกับวิธีจัดการกับสัปดาห์ที่เหลือล่วงหน้าก่อนการสัมภาษณ์ สมองส่วนหนึ่งของฉันเหนื่อยจากการยัดเยียดและแน่นอนว่าส่วนที่เหลือจะต้องใช้สำหรับปัญหาที่ยากลำบากบางอย่างในที่ทำงานปัจจุบันของฉัน


3
ซึ่งอาจเหมาะสมกว่าที่ careeroverflow.com IMHO นอกจากนี้คุณไม่ได้พูดถึงระดับของตำแหน่งเช่นผู้เริ่มต้นอาวุโสและอื่น ๆ และภูมิหลังของคุณโดยทิ้งให้มากสำหรับการคาดเดา
vpit3833

3
@ Fast Fish: บอกสิ่งที่คุณเพียงแค่ทำใจให้สบาย ทำแบบทดสอบ IQ และถ้าคุณให้คะแนน Google มากกว่า 135+ หรือไม่มี Google คุณก็รู้ว่าคุณมี
Fanatic23

9
มันยอดเยี่ยมมากที่นี่เพราะเกี่ยวกับโปรแกรมเมอร์ ทำไมคนที่มีตัวแทนระดับสูงจึงชอบที่จะจำแนกและจัดระเบียบสิ่งต่าง ๆ ลงไปในควาร์ก?
โจนาธาน

3
มีคำถามสัมภาษณ์งานจำนวนมากอยู่แล้ว คำถามของคุณแตกต่างกันอย่างไร? หากคำตอบของคุณคือ "Google" นั่นคือเหตุผลว่าทำไมมันไม่อยู่ที่นี่ มีเว็บไซต์จำนวนนับไม่ถ้วนที่เกี่ยวข้องกับการสัมภาษณ์ของ Google ส่วนใหญ่จะได้รับข้อมูลที่ดีกว่าเว็บไซต์นี้
นิโคล

2
และคุณคิดว่าผู้สัมภาษณ์ที่กำลังจะมาถึงจะไม่แฝงตัวอยู่ใน P.SE เหรอ? :)
haylem

คำตอบ:


30

สิ่งที่คุณควรรู้

  • Google ต้องการจ้างคุณ!

    เลือดชีวิตของ บริษัท ซอฟต์แวร์ใด ๆ คือพนักงานและ Google ไม่แตกต่างกัน มันกำลังมองหาการจ้างงานที่ดีที่สุดและฉลาดที่สุดและผู้คนที่ทำการสัมภาษณ์ต้องการให้คุณยอมตามที่คุณทำ

  • Google จะทำดีที่สุดในการประเมินคุณอย่างถูกต้องที่สุด มันเป็นงานของพวกเขา

    Google เป็น บริษัท ที่ขับเคลื่อนด้วยข้อมูล การตัดสินใจจ้างงานจะไม่ตัดสินโดยผู้จัดการ แต่ผู้สัมภาษณ์แต่ละคนจะจดบันทึกอย่างกว้างขวางในระหว่างการสัมภาษณ์ซึ่งจะรวมกันเป็นแพ็กเก็ต แพ็กเก็ตนั้นจะได้รับการตรวจสอบโดยคณะกรรมการแยกต่างหากซึ่งท้ายที่สุดจะทำการตัดสินใจ ดังนั้นหากคุณไม่ 'ตะลึง' กับผู้สัมภาษณ์คนใดคนหนึ่งของคุณไม่ต้องกังวล! สิ่งสำคัญคือคุณทำงานได้ดีแค่ไหนในการสัมภาษณ์

ทักษะที่คุณควรมี

อย่าลืมทำตามทักษะ / เทคนิคต่อไปนี้ก่อนการสัมภาษณ์ แม้ว่าคุณจะไม่ได้ถูกถามคำถามเกี่ยวกับสิ่งเหล่านี้โดยตรงการตรวจสอบพวกเขาสามารถทำให้คุณนึกถึงความคิดที่ถูกต้อง

  • โครงสร้างข้อมูล

    ความแตกต่างระหว่าง Array กับรายการที่เชื่อมโยงคืออะไร? ต้นไม้และกราฟ? เมื่อไหร่ที่คุณจะใช้อันอื่น สิ่งนั้นจะส่งผลกระทบต่อการแลกเปลี่ยนความเร็ว / หน่วยความจำอย่างไร

    คำถามสัมภาษณ์ไม่ได้จบที่วิธีแก้ปัญหาการทำงาน สามารถอธิบายรันไทม์ของวิธีการของคุณและสิ่งที่ประเภทของการค้าไม่ชอบคุณสามารถทำ ตัวอย่างเช่น "ถ้าฉันแคชทุกอย่างจะต้องใช้ X กิ๊กส์ RAM แต่จะทำงานได้เร็วขึ้นเพราะ ... " หรือ "ถ้าฉันเก็บต้นไม้ไบนารีเรียงไว้ในขณะที่ฉันทำการดำเนินการ X จะช้าลง Y จะเร็วขึ้น ฯลฯ "

  • อัลกอริทึม

    อัลกอริธึมการสำรวจกราฟพื้นฐานอัลกอริธึมการแวะผ่านต้นไม้และวิธีการที่ดีสองประการสำหรับการเรียงลำดับหมายเลข

    ตรวจสอบให้แน่ใจว่าได้ฝึกฝนการแก้ปัญหาที่ไม่น่ารำคาญโดยใช้ Dynamic Programming นั่นคือเอซของคุณในหลุมเมื่อพูดถึงคำถามสัมภาษณ์ที่ยากลำบาก!

  • ตารางแฮช

    นี่มันใหญ่มาก รู้ทุกสิ่งที่ควรรู้เกี่ยวกับตารางแฮชตั้งแต่ความสามารถในการใช้งานตัวคุณเองจนถึงการรู้ถึงฟังก์ชั่นการแฮชถึงสาเหตุที่จำนวนถังควรเป็นจำนวนเฉพาะ แนวคิดที่เกี่ยวข้องกับตารางแฮชเกี่ยวข้องกับวิทยาศาสตร์คอมพิวเตอร์เกือบทุกด้าน

  • พูดคุยเกี่ยวกับจุดของคุณ

    สองสามนาทีแรกของการพูดคุยกับผู้สัมภาษณ์เป็นช่วงเวลาสำคัญที่จะอธิบายประสบการณ์ที่ทำให้คุณแตกต่าง โครงการที่เกี่ยวข้องความสำเร็จทางเทคนิคที่สำคัญและอื่น ๆ จำไว้ว่าคนที่ทำการสัมภาษณ์นั้นสัมภาษณ์หลายสิบคนหากไม่ใช่คนฉลาดหลายร้อยคนเหมือนคุณ ดังนั้นสิ่งที่คุณสามารถพูดได้ว่าจะทำให้พวกเขาประหลาดใจ?

    ตัวอย่างเช่นในการสัมภาษณ์ฉันได้พูดคุยกับผู้สัมภาษณ์เกี่ยวกับโปรแกรมที่ฉันเขียนเพื่อเล่นเกม Go ในวิทยาลัย มันยากมากที่จะเขียน AI สำหรับเกม Go และฉันมี Go-bot ที่น่ากลัวเพื่อพิสูจน์มัน! บรรทัดล่างคือตัวคุณเองและไม่ใช่แค่คนฉลาดที่รู้วิธีการเขียนโปรแกรม

อย่าเครียดมากเกินไปมันเป็นแค่การสัมภาษณ์เหมือนคนอื่น มั่นใจได้ว่าจะไม่มีใครถามคำถามโง่ ๆ เกี่ยวกับฝาปิดท่อระบายหรือภูเขา ฟูจิ


7

ผ่อนคลาย

หากการสัมภาษณ์ของคุณเป็นเหมือนของฉันผู้สัมภาษณ์ไม่ได้อยู่ที่นั่นเพื่อให้คุณยอมแพ้เขาก็อยู่ที่นั่นเพื่อดูว่าคุณคิดอย่างไร

แก้ไข: นี่เป็นเพียงการสัมภาษณ์ทางโทรศัพท์ครั้งแรกฉันไม่รู้อะไรเลยนอกจากนั้น ... และถ้าฉันทำฉันคงไม่สามารถบอกคุณได้!


2
คุณได้งานหรือไม่
Manoj R

1
@Manoj: lol - ไม่ แต่นั่นไม่ใช่ประเด็น ฉันไม่ต้องการงานที่พวกเขาสัมภาษณ์ แต่อยากรู้เกี่ยวกับกระบวนการและโอกาสที่จะได้รับ ฉันมี / ไม่มีความตั้งใจที่จะย้ายไปแคลิฟอร์เนีย!
Steven A. Lowe

2

ยืมบทความต่อไปนี้จากhttp://get-that-job-at-google.blogspot.in/

การเข้ารหัสความรู้ C / C ++ และ Java เป็นภาษาการเขียนโปรแกรมที่ต้องการสำหรับ Google Interviewers คุณต้องรู้จักพวกเขาอย่างน้อยหนึ่งคน คุณจะต้องเขียนโค้ดในการสัมภาษณ์ทางโทรศัพท์และในการสัมภาษณ์นอกสถานที่เช่นกัน

หนังสือแนะนำสำหรับการสัมภาษณ์ CS : ความรู้เบื้องต้นเกี่ยวกับอัลกอริทึม - โดย Cormen

สัมภาษณ์การเขียนโปรแกรมสัมผัส

แคร็กสัมภาษณ์การเข้ารหัส

อัลกอริทึมสำหรับการสัมภาษณ์

เว็บไซต์ที่แนะนำสำหรับการฝึกการเข้ารหัส : InterviewStreet, Topcoder

Big-Oนี่คือจุดเริ่มต้นในการเตรียมตัวสำหรับการสัมภาษณ์อัลกอริทึม คุณต้องไม่ต่อสู้กับการวิเคราะห์ความซับซ้อนขั้นพื้นฐานเพราะจะเป็นการรับประกันว่าจะไม่ได้รับการว่าจ้าง คุณควรคุ้นเคยและเข้าใจสัญลักษณ์ O, Θและ. ฉันขอแนะนำส่วนการอ่านเกี่ยวกับการวิเคราะห์ความซับซ้อนจากโครงสร้างข้อมูลและอัลกอริทึมหนังสือ

การเรียงลำดับคุณควรจะสามารถเขียนอัลกอริทึม O (n * lgn) เช่น QuickSort และ MergeSort ได้อย่างง่ายดาย เปรียบเทียบและทำความเข้าใจกับความซับซ้อนของกรณีที่ดีที่สุดเลวร้ายที่สุดและโดยเฉลี่ย ฉันพบว่าตารางนี้บนวิกินั้นมีประโยชน์มาก มันแสดงคุณสมบัติที่สำคัญของอัลกอริทึมการเรียงลำดับทั้งหมด อย่าเพิกเฉยต่ออัลกอริทึม O (n ^ 2) เช่นการเรียงลำดับของบับเบิ้ลหรือการจัดเรียงการแทรกเนื่องจากอัลกอริทึมอื่น ๆ จะปรับปรุงสิ่งเหล่านี้ การสัมภาษณ์มีความรู้เพิ่มเติมเกี่ยวกับการปรับปรุงแนวคิดพื้นฐานการเรียงลำดับอัลกอริทึมจะช่วยในกระบวนการนี้

ตารางแฮชเมื่อสงสัยให้นึกถึงตารางแฮช พวกเขามีประโยชน์ในปัญหาส่วนใหญ่และบ่อยครั้งที่เราช่วยปรับปรุงความซับซ้อนของเวลาปัญหาโดยการแคชผลลัพธ์

ต้นไม้ผ่านการสร้างต้นไม้ขั้นตอนวิธีการสำรวจเส้นทางและการจัดการ คุณควรจะสามารถใช้อัลกอริทึมโดยยึดตามแผนผังการค้นหาแบบไบนารี คุณควรคุ้นเคยกับต้นไม้ที่สมดุลแม้ว่าคุณจะไม่ได้คาดหวังว่าจะเขียนโค้ดสำหรับพวกเขาในการสัมภาษณ์: ต้นไม้ AVL, ต้นไม้สีแดง - ดำ, Trie, ต้นไม้ n-ary เป็นต้นจำเป็นต้องมีความรู้เกี่ยวกับ inorder, postorder และ preorder traversals เราสามารถแก้ปัญหาต้นไม้จำนวนมากได้โดยทำการปรับเปลี่ยนง่ายๆให้กับหนึ่งในเส้นทางลัดเหล่านี้

กราฟ กราฟเป็นแนวคิดที่สำคัญมากในสาขาวิทยาศาสตร์คอมพิวเตอร์ ฝึกการแสดงกราฟขั้นพื้นฐานทั้งสาม (วัตถุและพอยน์เตอร์เมทริกซ์และรายการคำคุณศัพท์) และทำความคุ้นเคยกับข้อดีข้อเสีย ไม่มีเวลามากในการสัมภาษณ์ดังนั้นคุณไม่ควรคาดหวังบางสิ่งที่ซับซ้อนมาก อย่างไรก็ตามขั้นตอนวิธีกราฟ traversal ขั้นพื้นฐาน (DFS และ BFS) เป็นสิ่งจำเป็นคุณควรนำไปใช้ในการเป็นตัวแทนพื้นฐานทั้งหมด คุณควรจะสามารถใช้อัลกอริทึม Dijkstra หรือ Floyd-Warshall รวมทั้งอัลกอริธึมการขยายต้นไม้ขั้นต่ำ (Kruskal และ Prim) เรียนรู้เกี่ยวกับการเรียงลำดับทอพอโลยีเนื่องจากมีประโยชน์อย่างมากในปัญหาการสั่งซื้อหลายอย่าง

การเขียนโปรแกรมแบบไดนามิกนี่อาจเป็นเรื่องที่สำคัญที่สุดเนื่องจากการใช้งานมีขนาดเล็ก คุณควรใช้อัลกอริธึมแบบไดนามิก 2-3 แบบในช่วงเวลา 35-40 นาที เมื่อคุณตรวจสอบแหล่งข้อมูลในบล็อกนี้หรือบนเว็บคุณจะพบว่าคุณควรคาดหวังคำถามการเขียนโปรแกรมแบบไดนามิกอย่างน้อยหนึ่งคำถามต่อการสัมภาษณ์

ระบบปฏิบัติการเรียนรู้เกี่ยวกับกระบวนการเธรดและปัญหาการทำงานพร้อมกัน รู้เกี่ยวกับ mutexes, semaphores, monitor และวิธีการทำงานของมัน ทำความเข้าใจกับสิ่งที่ deadlock และ livelock คืออะไรและจะหลีกเลี่ยงได้อย่างไร เรียนรู้เกี่ยวกับการสลับบริบทการกำหนดเวลา ฯลฯ

คณิตศาสตร์คุณควรทำความคุ้นเคยกับการนับ combinatorics และความน่าจะเป็น

สิ่งตีพิมพ์ของ Googleอ่านสิ่งพิมพ์ที่มีการแบ่งเส้นทางของ Google ตามรายการด้านล่างหากคุณมีเวลา ระบบไฟล์ของ Google

Google Bigtable

Google MapReduce


คุณควรโพสต์ข้อความที่เกี่ยวข้องที่นี่และหลีกเลี่ยง link-rot
มฤตยู

ขออภัยฉันยังใหม่กับฟอรั่มนี้ ฉันได้ปรับปรุงคำตอบของฉัน
chinmay

1
"... Java ... ภาษาโปรแกรมที่ต้องการสำหรับ Google" ฉันไม่รู้ อธิบายว่าทำไม Chrome จึงใช้ทรัพยากรถึง 3x เป็นเบราว์เซอร์อื่น (เคาะน็อคมีใครอยู่ ... หยุดชั่วคราวนาน ... ชวา!)
Josh Campbell

1

หากคุณใช้เวลาสองสามเดือนสุดท้ายในการดูแลคุณสามารถพักผ่อนได้ จะเกิดอะไรขึ้นในขณะนั้นในการสัมภาษณ์ไม่สามารถวางแผนได้ แต่ควรจะผ่อนคลายและมีพลังมากขึ้นในรอบสุดท้าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.