คำถามสัมภาษณ์งูหลาม [ปิด]


25

ฉันจะสัมภาษณ์ภายในสองสัปดาห์สำหรับการฝึกงานที่เกี่ยวข้องกับการเขียนโปรแกรม Python

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

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

ยินดีต้อนรับประสบการณ์ส่วนตัวและ / หรือข้อเสนอแนะ


หากเป็นการฝึกงานและคุณเคยเขียนโปรแกรมใน Python มาแล้วหนึ่งปีแล้วฉันคิดว่าคุณคงไม่เป็นไร ท่าพูดว่าฉันคิดว่าลักษณะทั่วไปของคำถามสำหรับงูใหญ่จะเหมือนกับที่คุณพูดถึงสำหรับ c ++
Robert Harvey

โรเบิร์ตการเขียนโปรแกรมโดยไม่มีการควบคุมและคำแนะนำเป็นสิ่งที่รบกวนจิตใจฉัน บางทีฉันอาจขาดในบางพื้นที่

1
ถ้าเป็นการฝึกงานทำไมคุณไม่มีคำแนะนำ? นั่นคือคำจำกัดความของการฝึกงาน ที่กล่าวว่าฝึกงานที่ฉันทำงานไม่ได้รับชั้นเรียนการเขียนโปรแกรม แต่พวกเขาจะได้รับคำแนะนำและความคาดหวังในการทำงานที่ชัดเจน ในฐานะที่เป็นผู้ฝึกงานพวกเขาควรคาดหวังว่าคุณจะได้เรียนรู้เกี่ยวกับงานและงานนั้นจะใช้เวลานานกว่านั้นเล็กน้อยหากผู้ที่มีประสบการณ์ทำ
Robert Harvey

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

คำตอบ:


8

นี่คือบางส่วนที่ง่าย:

  1. ตัวตกแต่งของ Python คืออะไรและคุณจะใช้มันอย่างไร
  2. คุณจะดีบักโค้ด Python อย่างไร
  3. คุณจะตั้งค่าหลายโครงการที่แต่ละอันใช้ Python และไลบรารี่ของบุคคลที่สามต่างกันอย่างไร
  4. คุณติดตาม PEP8 ในขณะที่เขียนรหัสหรือไม่?

7

สิ่งที่เกี่ยวกับรายการความเข้าใจ Python ? ให้ฉันเหล่านั้นเป็นหนึ่งในจุดขายใหญ่กว่า c ++ หลังจากที่ผมอ่านเกี่ยวกับพวกเขาในการดำน้ำในหลาม

"เขียนความเข้าใจของรายการที่สร้างรายการหมายเลขคู่จาก 1 ถึง 10 (รวม)"
โดยที่คำตอบคืออะไรเช่นนี้ (โปรดสังเกตว่าช่วงค่าหลีกเลี่ยงข้อผิดพลาด fencepost):

foo = [x for x in range(1, 11) if (x % 2) == 0]
print foo
[2, 4, 6, 8, 10]

สำหรับเรื่องนั้นถ้าคุณเข้าใจแนวคิดทั้งหมดที่ระบุไว้ใน Dive เป็น Python นั้นจะครอบคลุมคุณสมบัติที่สำคัญส่วนใหญ่


13
นี่คือเสียงไพเราะ ในหลาม 2.x คุณเพียงแค่ทำrange(2,11,2)และในหลาม list(range(2,11,2))3.x,
Chinmay Kanchi

@ ไซคลอปดูเหมือนว่าคุณจะต้องสัมภาษณ์งานของคุณเองที่ INNOTECH
งาน

5
@Chinmay Kanchi ในขณะที่ฉันไม่คิดว่ามันจะเป็นคำถามสัมภาษณ์ที่ดีการแนะนำเกี่ยวกับคุณสมบัติขั้นสูงส่วนใหญ่ทำสิ่งที่ง่ายที่สุดที่พวกเขาสามารถทำได้ (เพื่อไม่ให้ผู้อ่านสับสน) ในขณะที่มีวิธีแก้ปัญหาที่ง่ายกว่าสำหรับปัญหาเฉพาะนี้ประเด็นก็คือไม่ต้องตอบปัญหาเฉพาะนี้ ประเด็นก็คือการใช้ list comprehension (ซึ่งมีประสิทธิภาพมากและเป็นวิธีที่น่าทึ่งในการเพิ่มประสิทธิภาพของ Python)
jsternberg

6

Python pass โดยการอ้างอิงหรือ pass by value เป็นคำถามที่ดีมาก


1
คำถามติดตามที่ดีคือการถามว่าพวกเขาสามารถแสดงมันได้อย่างไรและทำไมมันถึงสำคัญ
mcotton

@Ismail - ขออภัย แต่ทำไมเป็นคำถามที่ดี
Theodor

7
@Cervo: ถ้าผมเข้าใจอย่างถูกต้องเป็นงูหลามผ่านโดยค่าเช่นเดียวกับวิธี C #, Java, โครงการ ฯลฯ ผ่านโดยมีมูลค่าที่ ... เพียงผ่านโดยการอ้างอิงภาษาที่ผมเคยเห็นเป็น VB6, โดยที่ทุกอย่างผ่านการอ้างอิงเว้นแต่จะระบุไว้เป็นอย่างอื่น ความจริงที่ว่าคุณสามารถกลายพันธุ์วัตถุที่ไม่ได้ทำให้มันผ่านโดยการอ้างอิงในทางใด ๆ และความจริงที่ว่าคุณสามารถมีวัตถุที่ไม่เปลี่ยนรูปไม่ได้หมายความว่าพวกเขากำลังถูกส่งผ่านโดยค่าอย่างใดอย่างหนึ่ง ... เพื่อบอกว่า" คำตอบคือไม่ใช่"คือถูกต้องสมบูรณ์ ฉันรู้สึกเสียใจเป็นอย่างมากสำหรับผู้สมัครที่ผู้สัมภาษณ์เชื่อว่าคำตอบจะเป็น "ไม่" ...
Mehrdad

1
@Cervo: FYI แม้แต่คำตอบที่ลงคะแนน 100+ ในลิงก์ของคุณจะเป็นการโต้แย้งอาร์กิวเมนต์ของคุณ: มันบอกอย่างชัดเจนว่า"พารามิเตอร์ถูกส่งผ่านตามค่า"
Mehrdad

11
ฉันเชื่อว่าคำตอบที่ถูกต้องคือ: "พารามิเตอร์คือการอ้างอิงที่ส่งผ่านค่า"
user16764

6

คำถามที่ฉันถูกถาม:

  • อธิบายวิธีการเขียนโปรแกรมเมตาสองวิธีใน Python
  • GIL คืออะไร
  • ทำไม GIL ถึงมีความสำคัญ
  • เหตุใดจึงมีการดำเนินการทางเลือกของงูใหญ่ที่เรียกว่าเพียบ Swallow ?
  • Django, Pylons หรือ Zope ปกป้องตำแหน่งของคุณ

5

ฉันไม่มีประสบการณ์เช่นนี้ แต่นี่เป็นเพียงการเดา

  1. (IM) ความไม่แน่นอน
  2. ฟังก์ชัน / คลาสชั้นหนึ่ง
  3. ปิด

นั่นคือสิ่งที่โปรแกรมเมอร์งูใหญ่ควรรู้มิฉะนั้นคุณอาจจ้างโปรแกรมเมอร์ C เพื่อตำแหน่ง


3

ฉันจะไปตามรายการในคำตอบนี้ พยายามรีเฟรชสิ่งที่คุณรู้ว่ากำลังติดตามรายการเท่าที่จะทำได้ ไม่ต้องกังวลหากคุณไม่สามารถทำได้จนกว่าจะถึงจุดจบ


2

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


2

คุณมีความรู้สึกเช่นไรพวกเขาจะพยายามทดสอบว่าคุณรู้จัก Python หรือไม่ดูว่าคุณสามารถทำสิ่งต่างๆใน Python ได้หรือไม่หรือทดสอบว่าคุณสามารถโปรแกรม (ใน Python) ได้หรือไม่

สิ่งเหล่านี้แตกต่างกันมาก

yieldหากพวกเขาต้องการให้คุณแสดงให้เห็นว่าคุณรู้ว่างูหลามพวกเขาอาจบังคับให้คุณทำในสิ่งที่ชอบสร้างเครื่องกำเนิดไฟฟ้าแล้วทำมันได้โดยไม่ต้องใช้ อธิบายวิธีการทำงานของชั้นเรียน อธิบายลำดับการแก้ไขเมธอด C3 และอื่น ๆ

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

หากพวกเขาต้องการให้คุณแสดงว่าคุณสามารถโปรแกรม (ใน Python) คุณจะต้องรู้โครงสร้างข้อมูลพื้นฐานและรู้อัลกอริทึมของคุณ นี่ใกล้กับคำถาม C / C ++ ที่คุณจะถามมากยกเว้นว่าคุณจะถูกคาดหวังให้ใช้โครงสร้างข้อมูลดั้งเดิมที่ทำให้ชีวิตของคุณง่ายขึ้น

เพื่อความปลอดภัยคุณควรเตรียมความพร้อมสำหรับทั้งสามคน เช่นอ่านผ่านhttp://docs.python.org/tutorial/และจดบันทึกตัวเอง หวังว่าคุณจะรู้วิธีการเขียนโปรแกรมอยู่แล้ว จากนั้นลองใช้งานสุ่มและบังคับให้คุณใช้ห้องสมุดที่คุณอาจพลาด ตัวอย่างเช่นอ่าน CSV บางส่วนดึงข้อมูลออกจากหน้าเว็บโดยทางโปรแกรมสร้างเว็บไซต์ขนาดเล็กที่มีกรอบงานเป็นต้น

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