การสัมภาษณ์ทางเทคนิค 10 นาที [ปิด]


37

ฉันต้องประเมินนักเรียนใหม่หลายสิบคนอย่างรวดเร็วอย่างรวดเร็ว ฉันมีเวลา 30 นาทีในการพบปะกับแต่ละคน (ในสองหรือสามวัน) ฉันต้องการใช้เวลาส่วนใหญ่เพื่อหารือเกี่ยวกับด้านที่ไม่ใช่ด้านเทคนิค ดังนั้นฉันวางแผนที่จะใช้เวลา 10 นาทีสำหรับคำถามทางเทคนิค คำถามเดียวกันสำหรับพวกเขาทั้งหมด

พวกเขาทั้งหมดได้รับการว่าจ้างแล้ว (เป็นนักเรียน) สิ่งที่ฉันต้องรู้คือระดับเฉลี่ยเพื่อเตรียมการฝึกอบรม

เป็นการยากที่must be progressiveจะกำหนดระดับสำหรับแต่ละระดับ ระดับที่ฉันจะเฉลี่ยและฉันจะทำค่าเฉลี่ยในแต่ละคำถามด้วย

หากคุณมีเพียง 10 นาทีและ 10 คำถามในการถามผู้สมัคร 10 อันดับแรกของคุณคืออะไร


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

4
การฝึกอบรมประเภทใด การเขียนโปรแกรม? ไอทีทั่วไป
Adam Lear

3
ฉันจะย้อนกลับไปและใช้เวลา 10 นาทีกับของใช้ส่วนตัวและอีก 20 นาทีสำหรับของใช้ทางเทคนิค
Kyralessa

1
ฉันรู้ว่านั่นคือสิ่งที่คนส่วนใหญ่จะทำ แต่ฉันเชื่อในแนวทางที่แตกต่าง

3
10 นาทีสำหรับผู้สมัครน้อยเกินไป
Zzz

คำตอบ:


55

คำถามสามข้อให้รายละเอียดเกี่ยวกับคำตอบสุดท้ายของ Eric Lippert ที่นี่ :

คำถามที่ 1:

ในระดับ 1 - 10 คุณให้คะแนนตัวเองในระดับใด (ตั้งชื่อทักษะที่นี่) พวกเขาตอบ [n] ตัวเลขระหว่าง 1 ถึง 10

คำถามที่ 2:

คุณเรียนรู้อะไรจากคนที่อยู่ในระดับ [n + 1]

คำถามที่ 3:

บางคนในระดับ [n-1] สามารถเรียนรู้อะไรจากคุณบ้าง

ปัจจัยที่สำคัญที่สุดในการตัดสินใจของคุณคือการตรวจสอบที่เป็นนักเรียน (แนบเนียน) สถานที่ที่ตัวเองและผู้ที่สามคำถามจะช่วยให้คุณตรวจสอบได้อย่างรวดเร็ว นอกจากนี้ยังช่วยระบุผู้คนที่อาจได้รับผลกระทบจากDunning-Kruger (ทั้งสองด้าน) แต่นั่นเป็นหัวข้ออื่น

หากใครสามารถค้นหาการอ้างอิงถึงวิธีการนี้บน SO และแก้ไขโพสต์นี้เพื่อรวมลิงค์ฉันจะขอบคุณมันจริงๆ

อย่างไรก็ตามมันควรจะล้มลงภายในสิบนาที


5
ว้าว! ตัวชี้วัดที่ค่อนข้างผิดปกติ ฉันไม่เคยคิดถึงตัวเองในแบบนั้น ขอบคุณ!
Andrew АндрейЛисточкин

เห็นได้ชัดว่าผู้สมัครตอบ 10 เพื่อหลีกเลี่ยงคำถามที่สอง
rightfold

4
@WTP สิบเป็นเรื่องโกหก
Tim Post

1
นี่คือสุดยอด หากนายจ้างถามฉันฉันสามารถอธิบายเพิ่มเติมเกี่ยวกับตัวเองได้ในเวลาไม่กี่นาทีกว่าปกติฉันจะได้รับโอกาสในการสัมภาษณ์ 1 ชั่วโมง
fearofawhackplanet

28
  1. คลาสคืออะไร
  2. วิธีการคงที่คืออะไร?
  3. มรดกคืออะไร
  4. ความแตกต่างคืออะไร?
  5. คีย์หลักคืออะไร
  6. กุญแจต่างประเทศคืออะไร?
  7. HTTP GET และ HTTP POST ต่างกันอย่างไร
  8. บริการเว็บคืออะไร
  9. ตั้งชื่อโครงสร้างข้อมูลบางอย่าง
  10. วัตถุประสงค์ของการทำแผนที่วัตถุ / สัมพันธ์คืออะไร?

อย่าลังเลที่จะแนะนำการเปลี่ยนรายการนี้มีพื้นที่มากสำหรับการปรับปรุง


1
วิธีการคงอยู่ในหลายภาษานอกเหนือจาก C ++ ไม่ใช่ว่ามันเกี่ยวข้องที่นี่ จริง ๆ แล้วฉันพบว่ามันเป็นแนวคิดที่ยากสำหรับนักเรียนหลายคนที่จะเข้าใจ - และถามพวกเขาว่าพวกเขาเข้าใจหรือขอคำจำกัดความเป็นวิธีที่ดีที่จะหาว่าพวกเขาทำหรือไม่
Kate Gregory

3
โปรดจำไว้ว่าคำถามที่ระบุสิบคำถามในสิบนาที หากเป็นคำถามสิบข้อในสามสิบนาทีฉันต้องการยกระดับความยากลำบากและถามคำถามปลายเปิดที่มีความหมายมากขึ้น
Eric Wilson

3
ฉันชอบคำถามที่ 1-8 ในรายการของคุณถึงแม้ว่าฉันอาจแทนที่คำถามที่ 9 หรือ 10 ด้วย "ทำไมอินเทอร์เฟซสำคัญ" และ / หรือ "ทำไมคลาสนามธรรมจึงมีความสำคัญ" (ตามลำดับนั้น)
นิโคล

7
คำถาม OO ทั้งหมดคืออะไร
สอบถามซ้ำ

3
เอ๊ะคำถามเหล่านี้เป็นคำถามเกี่ยวกับภาษาทั้งหมด ฉันไม่มั่นใจว่าพวกเขาสำคัญกับสิ่งที่ถูกยึดทฤษฎีมากกว่า
Andres Jaan Tack

20
  1. อธิบายพอยน์เตอร์!
  2. การปิดคืออะไร
  3. คุณใช้ภาษาอะไรในเวลาว่างและเพราะอะไร
  4. พูดคุยเกี่ยวกับการทำธุรกรรมเล็กน้อย!
  5. ความแตกต่างระหว่างล่ามและ JIT คืออะไร?
  6. อธิบายพื้นฐานของคอมไพเลอร์
  7. เกิดอะไรขึ้นกับระดับหน่วยความจำเมื่อคุณทำการสอบถามซ้ำ (และสิ่งที่แตกต่างเมื่อคุณมี TCO)
  8. แนวคิดที่สำคัญของ OO Programming คืออะไรและทำไมจึงมีความสำคัญ
  9. คุณกำลังมองหาอะไรใหม่ ๆ อยู่ที่บ้านและทำไมมันถึงน่าสนใจ?
  10. อธิบายความแตกต่างระหว่างกระบวนการและเธรด

20
ฉันไม่คิดว่าสิ่งเหล่านี้ส่วนใหญ่เป็นคำถามที่ดีสำหรับผู้ที่ยังใหม่กับ. net (หรือการเขียนโปรแกรม) - และแม้ว่าพวกเขารู้คำตอบที่ 1 นาทีต่อคำถาม ...
FinnNk

9
ฉันเห็นด้วยกับคำถามเหล่านี้ดูเหมือนจะเป็นคำถามที่ว่า "คุณมีความดุดันมากแค่ไหน" แทนที่จะเป็นคำถาม "คุณรู้ / ได้เรียนรู้อะไร" สำหรับนักเรียน
hyprsleepy

5
ฉันจะล้มเหลวอย่างมากในการทดสอบนี้ส่วนใหญ่เป็นเพราะฉันไม่เคยเรียน CS หรือใช้ C. ดังนั้นนี่อาจช่วยตัดสินว่าใครสนใจในชั้นเรียนและใครเป็นคนทำโปรแกรมเพื่อความสนุก แต่ฉันไม่รู้ว่ามันจะมีประโยชน์หรือไม่ บริบทของ OP
Eric Wilson

3
คนส่วนใหญ่จะได้รับส่วนใหญ่ผิดเหล่านี้
สอบถามซ้ำ

4
เป็นคำถามที่ดี แต่บางคนตอบไม่ได้ในหนึ่งนาที
zvrba

16

ประสบการณ์ของฉันเกี่ยวกับนักเรียนฉันเริ่มจากศูนย์ - ฉันได้พบสิ่งที่ผู้คนเรียนรู้จากมหาวิทยาลัยและสิ่งที่มีประโยชน์คือสองชุดที่แยกจากกัน

แต่เมื่อคุณมีโอกาสพูดกับพวกเขามันจะไม่ฉลาดที่จะพูด

ข้อสันนิษฐานของฉันคือมีพื้นฐานเล็กน้อยในพื้นหลังของพวกเขาดังนั้นฉันจึงหลีกเลี่ยงคำถามเฉพาะทางภาษา ข้อยกเว้นเดียวที่ฉันทำกับสิ่งนี้คือข้อสันนิษฐานที่ว่าพวกเขาทำอะไรบางอย่างบนเว็บ แต่คำถามนี้อาจซับสำหรับสิ่งที่เทียบเท่าหากพวกเขาฝังตัวผู้เชี่ยวชาญหรืออะไรก็ตาม

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

อย่างไรก็ตาม...

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

2) อธิบายโปรแกรมที่ซับซ้อนที่สุดที่คุณเคยเขียน อะไรทำให้ซับซ้อน?

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

4) อะไรคือหลักการพื้นฐานของการเขียนโปรแกรมเชิงวัตถุ?

5) บอกฉันเกี่ยวกับฐานข้อมูลเชิงสัมพันธ์ให้มากที่สุดใน 1 นาที

6) สำหรับเว็บแอปพลิเคชันอธิบายวิธีการในการรักษาข้อมูลเกี่ยวกับผู้ใช้ระหว่างหน้า มีข้อดีและข้อเสียอะไรบ้างสำหรับกลไกที่คุณอธิบาย

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

แก้ไข: ปรับโครงสร้างและเพิ่มคำถามพิเศษสองสามข้อเพื่อให้มีความก้าวหน้ายิ่งขึ้นตามที่เคยถาม


6
ฉันชอบรายการนี้ฉันจะเพิ่มคำถามอีกข้อ: คุณสอนอะไรในมหาวิทยาลัยที่คุณไม่เห็นว่าใช้งานได้จริง นั่นอาจเป็นตัวชี้วัดที่มีประโยชน์เกี่ยวกับวิธีคิดของพวกเขา
glenatron

2
หากพวกเขาทำได้ดีแล้ว 10 นาทีก็เกิดขึ้นหลังจากคำถามที่ 2 :-)
Sean Patrick Floyd

เมื่อคุณถามเกี่ยวกับ "หลักการ" ของ OOP คุณหมายถึงการแนะนำว่า OOP นั้นเป็นศาสนาหรือไม่?
compman

@compman - ไม่ชัดเจน ทฤษฎีสามารถนำไปใช้กับศาสนา แต่ไม่ จำกัด เฉพาะบริบทนั้นและยังสามารถนำไปใช้กับองค์กรการเคลื่อนไหวหรืออาชีพใด ๆ
Jon Hopkins

8

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

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

ความรู้พื้นฐาน

  1. คำสั่งพื้นฐานของโปรแกรมโฟลว์คอนโทรลคืออะไร?
  2. การดำเนินการทางตรรกะขั้นพื้นฐานคืออะไร?
  3. ความแตกต่างระหว่างในขณะที่และสำหรับลูปคืออะไร?

แกน

  1. อธิบายการเขียนโปรแกรมเชิงวัตถุอย่างคร่าว ๆ
  2. อธิบายแนวคิดเกี่ยวกับการสืบทอดโดยย่อ
  3. อธิบายสั้น ๆ ว่าฐานข้อมูลทำงานอย่างไร
  4. enumคำหลักที่ใช้คืออะไรและเมื่อใดที่คุณจะใช้

สูง

  1. คุณสามารถบอกอะไรฉันได้บ้างเกี่ยวกับ C # generics หรือเทมเพลต C ++
  2. คุณสามารถบอกฉันเกี่ยวกับการบรรทุกเกินพิกัดได้อย่างไร
  3. อะไรคือความแตกต่างระหว่างคลาสและ struct
  4. คุณสามารถบอกอะไรฉันได้บ้างเกี่ยวกับการสะท้อนใน. NET

6

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

  • คุณใช้การควบคุมเวอร์ชันประเภทใด
  • คุณคุ้นเคยกับวิธีการพัฒนาซอฟต์แวร์เช่น agile, waterfall, tdd หรือไม่?
  • วัตถุประสงค์ของเอกสารในซอฟต์แวร์คืออะไร?
  • ความแตกต่างระหว่างภาษาที่พิมพ์แบบคงที่และแบบไดนามิกหรือไม่

5
"ทำไมสไตล์การเขียนสปาเก็ตตี้จึงมีประโยชน์" - สิ่งที่ดีที่สุด
mlvljr

ฮ่า ๆ นี่มันเพื่อที่จะลองและหลอกพวกเขาเหรอ?
billy.bob

@ m.edmondson ตอนนี้โปรดให้ตัวอย่างของกรณีเมื่อมันหลีกเลี่ยงไม่ได้ที่จะแบ่งเป็นนามธรรม;)
mlvljr

อืมฉันไม่เชื่อว่าจะมีกรณีใดที่หลีกเลี่ยงไม่ได้ ;-)
billy.bob

4

ฉันรู้ว่าคุณกำลังพยายามสร้างการฝึกอบรมตามสิ่งที่พวกเขาไม่รู้และคุณวางแผนที่จะมี "ถัง" การฝึกอบรมสำหรับนักเรียนกลุ่มต่าง ๆ เนื่องจากคุณได้รับการจัดสรรเพียงสิบนาทีทำไมไม่ทำรายการสิ่งที่คุณคิดรวมถึงในการฝึกอบรมและถามคำถามเฉพาะเหล่านั้น ดังนั้นคุณวางแผนที่จะสอนพวกเขา C # ถามว่าพวกเขารู้ดีหรือไม่ ถามว่าพวกเขาเคยใช้ฟีเจอร์ใหม่ ๆ (LINQ, ประเภท nullable, generics, ... ) หรือไม่ หากมีเนื้อหาฐานข้อมูลในการฝึกอบรมของคุณให้ถามคำถามเกี่ยวกับเรื่องนั้น ในท้ายที่สุดคุณอาจเห็นว่าหนึ่งในหัวข้อที่คุณวางแผนไม่จำเป็นเพราะทุกคนรู้และทุกคนต้องการหัวข้ออื่น ๆ มันมีประโยชน์มากกว่าการพยายามคิดคำถามที่ไม่เกี่ยวข้องกับสิ่งที่คุณต้องการ '


+1 - นี่คือสิ่งที่ฉันอยากจะพูด เพียงแค่ถามพวกเขาถึงสิ่งที่พวกเขาจำเป็นต้องรวมไว้ในการฝึกอบรมที่ทำเพื่อพวกเขา
mouviciel

4

ถามคำถามFizzBuzz

พวกเขารู้วิธีเขียนโค้ดหรือไม่ พวกเขาใช้ภาษาอะไร ทำไมพวกเขาถึงเขียนโค้ดตามที่พวกเขาทำ พวกเขาใช้การเรียกซ้ำหรือไม่ ลูป? วิธีการ / ฟังก์ชั่นอื่น ๆ ? ตัวชี้?

คุณสามารถใช้คำถามเป็นฐานสำหรับคำถามอื่น ๆ (เช่นทำไม / คุณไม่ใช้การเรียกซ้ำ? คุณจะเขียนสิ่งนี้อย่างไรโดยใช้ตัวชี้?)

มันไม่ได้รวมทุกอย่าง แต่อาจทำให้คุณมีความคิดเกี่ยวกับทักษะการเขียนโค้ด


1
โอ้ใช่ฉันสัญญากับใครบางคนในชุมชนว่าฉันจะถามคำถามนั้น จะเป็นคำถามสุดท้ายและฉันจะแบ่งปันผลลัพธ์กับทุกคน

1
@ เปียโน 303: ฉันเคยขอให้ผู้คนเขียนฟังก์ชั่นที่จะตรวจสอบรหัสไปรษณีย์ ฉันรับรองกับคุณว่ามันเป็นความรู้แจ้งเหมือน FizzBuzz
Scott Whitlock

1
คุณให้โอกาสฉันในการให้ผลลัพธ์ที่ฉันได้จากการถามคำถามนั้น ในการสัมภาษณ์ 6 หรือ 7 ไม่มีใครสามารถตอบได้ ส่วนใหญ่เป็นนักเรียนใหม่ แต่มีประสบการณ์ 8 ปี! ดังนั้นฉันสับสนเล็กน้อย ...

4

สิบคำถาม:

  1. แสดงการวนรอบที่รวมค่าของอาร์เรย์ ถามว่าชิ้นส่วนของรหัสทำอะไร [พวกเขาสามารถอ่านลูปพื้นฐานได้หรือไม่]

  2. ขอให้พวกเขาเขียนลูป for ที่พิมพ์ตัวเลข 1 ถึง 10 โดยคั่นด้วยเครื่องหมายจุลภาค [นอกจาก "พวกเขาทำได้หรือไม่" คุณสามารถตัดสินได้ว่ารหัสซ้ำกันอย่างไร]

  3. แสดงชิ้นส่วนของรหัสที่มีสองอ้างอิงaและbชี้ไปที่วัตถุสองแตกต่างกันกับสนามจำนวนเต็มxชุดเพื่อพูด, และ7 5แล้วมอบหมาย: a = b;, และแล้วขอค่าของb.z = 9; a.z[พวกเขาเข้าใจการอ้างอิงหรือไม่]

  4. แสดงสองซ้อนกันสำหรับลูป (ใช้ดัชนีiและj), การสะสมค่าจากการแสดงออกบางอย่าง ในวงในสุดมีสองคำนวณ: และdouble x = Math.pow(2.0, i) double y = x * jขอให้พวกเขาทำให้โค้ดมีประสิทธิภาพมากขึ้น [พวกเขารู้เกี่ยวกับการพึ่งพาวงแบบง่ายหรือไม่]

  5. ถามพวกเขาว่ามีอะไรผิดปกติในตัวอย่างรหัส A (ดูด้านล่าง) [พวกเขาคิดอย่างมีเหตุผลหรือไม่]

  6. ถามพวกเขาว่ามีอะไรผิดปกติในตัวอย่างโค้ด B (ดูด้านล่าง) [นอกจากนี้ในการคิดเชิงตรรกะ]

  7. ขอให้พวกเขากลับสภาพนี้: โดยไม่ต้องใช้(s != null && s.Length != 0) ![พวกเขารู้กฎของ DeMorgan หรือไม่]

  8. แสดงรหัสชิ้นหนึ่งที่คล้ายกับโฆษณาผ้าสำลีเก่าในนิตยสาร: ขอให้พวกเขาค้นหาข้อผิดพลาด ยกตัวอย่างเช่นการบรรทุกเกินพิกัดequalsแทนการเอาชนะมัน [พวกเขาเป็นนักกฎหมายด้านภาษาที่ดีหรือไม่? คำถามประเภทนี้ส่วนใหญ่ทดสอบประสบการณ์: คุณเคยเห็นแบบนี้มาก่อนหรือไม่]

  9. พวกเขาสามารถอธิบายวิธีทำการค้นหาแบบไบนารีผ่านอาร์เรย์ที่เรียงลำดับได้หรือไม่?

  10. พวกเขาสามารถอธิบายวิธีการเรียงลำดับที่อาจนำไปใช้อย่างไร

สิ่งเหล่านี้อาจดูเหมือน "สั้นเกินไป" แต่ฉันเชื่อว่าการประเมินนักเรียนคุณอาจพบว่าสิบนาทีนั้นค่อนข้างแน่น คุณต้องการเห็นพวกเขาทำการเข้ารหัส (ดูเหมือนว่าคุณจะทำ FizzBuzz ตามความคิดเห็นเดียว)

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

โค้ดตัวอย่าง A:

if (m != null)
    a = m;
else
    a = null;

โค้ดตัวอย่าง B:

if (x != 0 || x != 1) {
    ...
}

3

แน่นอนคุณกำลังจะไปในทางที่ผิด ระบุการจัดกลุ่มที่คุณต้องการให้นักเรียนแต่ละคนเข้าร่วม

เช่น

No previous programming experience
Familiar with procedural constructs like variables, loops, branching
familiar with basic object orientated constructs like classes, interfaces, events, inheritance
familiar with using Generics/Templates
familiar with creating Generics/Templates

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


3

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

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


2

สร้างแผนผังลำดับงานง่าย 5 รายการและรายการคำตอบแยกต่างหาก ขอให้พวกเขาจับคู่รูปภาพกับวลี

วาดสิ่งต่อไปนี้:

  1. ถ้าสร้าง
  2. ถ้าอื่นสร้าง
  3. ทำในขณะที่วง
  4. ทำจนกระทั่งวนซ้ำ
  5. สร้างคำชี้แจงกรณี

ขอให้พวกเขาอธิบายความแตกต่างระหว่าง 1 และ 2
ขอให้พวกเขาอธิบายความแตกต่างระหว่าง 3 และ 4
ขอให้พวกเขาเป็นตัวอย่างว่าเมื่อใดจะมีการสร้างคำแถลงการณ์คดี


1

ฉันไม่แน่ใจว่าจะสามารถทำได้ใน 10 คำถามใน 10 นาที อาจให้เวลาพวกเขา 5 นาทีเพื่อบอกคุณว่าพวกเขารู้อะไรเกี่ยวกับ. net จากนั้นเตรียมรายการหัวข้อที่อาจเตรียมไว้ 20 หัวข้อและเลือก 2 หรือ 3 จากสิ่งที่พวกเขาพูดถึงและ 2 หรือ 3 จากสิ่งที่พวกเขาไม่ได้พูดถึง

ตัวอย่างเช่นคุณสามารถเริ่มต้น:

บอกฉันสั้น ๆ (คุณมี 5 นาที) วิธีสร้างโปรเจ็กต์ C # อย่างง่ายใน Visual Studio จากการสร้างไปยังการใช้งาน

จากนั้นหลังจากนั้น:

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

จากนั้นให้ถามคำถาม 5 ข้อจากผู้ติดตามดังนี้:

  • อธิบายว่าคลาสคืออะไร
  • คลาสนามธรรมและอินเทอร์เฟซต่างกันอย่างไร
  • อธิบายสั้น ๆ ว่าการรวบรวมขยะทำงานอย่างไรใน. Net

    ....

  • คุณจะแก้ไขข้อบกพร่องบางอย่างได้อย่างไรหากคุณมีปัญหา

  • Yadda-yadda - ฉันแน่ใจว่าคุณจะสามารถเลือกรายการยาวเพื่อเลือกจากคำตอบอื่น ๆ

1

ฉันเชื่อใน "การประเมินตนเอง"! หากคุณอธิบายให้บุคคลนั้นทราบถึงสถานการณ์ที่แน่นอนเขาจะพบตัวเองตัวอย่างเช่น: "คุณจะต้องเขียนโค้ด SQL ... ด้วยฐานข้อมูล 100+ ตารางและบันทึก 500K + ซึ่งต้องทำงานภายใน 4 วินาที ... " และถ้าคุณถามเขาว่า: "คุณคิดว่าคุณทำได้ไหม" - คุณจะได้รับคำตอบที่ถูกต้อง

ฉันจะใช้คำถาม 5 ข้อเกี่ยวกับความคาดหวังของนักเรียนและอีก 5 เทคนิค:

  1. คุณคาดหวังอะไรจากการฝึกอบรมนี้?
  2. ระดับของคุณคืออะไร (ควรเป็นโดเมนเฉพาะ)
  3. คุณต้องการเห็น / เรียนรู้อะไรในระหว่างการฝึกอบรมนี้ (ชี้ให้เห็น 3 จุดที่สำคัญที่สุด)
  4. ถ้าเราทำแบบฝึกหัดคุณจะเห็นว่าอะไรมีประโยชน์สำหรับคุณมากกว่านี้? (การประชุมเชิงปฏิบัติการแบบปรนัย)?
  5. คุณคาดหวังอะไรจากครู

กว่าที่คุณจะสามารถไปกับคำถามทางเทคนิคเช่น (ควรเป็นไปตามหัวข้อ) สำหรับ OOP เช่น:

  1. การห่อหุ้มคืออะไร?
  2. อินเตอร์เฟสคืออะไร
  3. ความแตกต่าง?
  4. Sub-พิมพ์?
  5. ผูกพันแบบไดนามิก?

1

ฉันกำลังมองหาการแก้ปัญหานิสัยการเรียนรู้ที่แข็งแกร่งการพัฒนาอาชีพและความรู้ที่กว้างขวางเกี่ยวกับวิธีการ

  1. ฉันเห็นผลงานของคุณได้ไหม
  2. หนังสือทางเทคนิค 3 เล่มสุดท้ายที่คุณอ่านมีอะไรบ้าง ทำไม?
  3. ข้อความการเขียนโปรแกรมใดเปลี่ยนแปลงวิธีที่คุณคิดว่ามากที่สุด ทำไม?
  4. คุณจะนิยาม a chickenเป็นวัตถุอย่างไร? มันเกี่ยวข้องกับเรื่องอื่นbirdsอย่างไร วิธีการเกี่ยวกับmammalsและanimals?
  5. คุณสามารถอธิบายหนึ่งใน (REST, Polymorphism, พีชคณิตเชิงสัมพันธ์, parser design, MVC) ใด ๆ ในแง่ของคนธรรมดาหรือไม่?
  6. ซอฟต์แวร์ใดที่น่าสนใจที่สุด (หรือดีที่สุด) ที่คุณสร้างขึ้นเอง?
  7. คุณสามารถอธิบายภาษาที่คุณชำนาญจากสิ่งที่ชอบหรือเป็นที่ชื่นชอบน้อยที่สุดได้หรือไม่? อะไรทำให้คุณผิดหวังเกี่ยวกับภาษาที่คุณชอบน้อยที่สุด?

ฉันคาดหวังว่านักพัฒนาจะ:

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

1
ฉันไม่ค่อยอ่านหนังสือเขียนโปรแกรมปกหน้าปก พวกเขาทำให้การอ้างอิงที่ดีขึ้นและวัสดุชี้แจง
Andres Jaan Tack

คุณพูดถูก: มีข้อความบางส่วนที่คุณไม่สามารถอ่านหน้าปกเพื่อปกปิด (เนื้อหาอ้างอิง) แต่มีหนังสือจำนวนมากที่จะเปลี่ยนวิธีคิดของคุณ ตัวอย่างเช่น: คำอธิบายด้วยภาพของ Tufte หรือ The Paradox of Choice หรือ Pragmatics ภาษาโปรแกรม (หรืออะไรก็ตามโดย Hofstadter)
Bruce Alderson

"มีหนังสือจำนวนมากที่จะเปลี่ยนวิธีคิดของคุณ" ซึ่งไม่ จำกัด เฉพาะหนังสือทางเทคนิค / การเขียนโปรแกรม นอกจากนี้ฉันไม่มีพอร์ตโฟลิโองานทั้งหมดของฉันได้รับระบบความปลอดภัยฉันจะเมา
NimChimpsky

บริจาคเวลาให้กับโครงการเปิดหรือไม่หวังผลกำไร เป็นสิ่งสำคัญที่จะเห็นงานจริงก่อนที่จะจ้างใครบางคน (คุณจะจบลงด้วยการแสดงงานจริงของคุณในที่สุด) พอร์ทโฟลิโอสำคัญพอ ๆ กับ CV ที่มีแนวโน้มดี
Bruce Alderson

1

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

เกี่ยวกับความคิดเห็น

  1. กองอันเดอร์อันเดอร์คืออะไร
  2. อะไรคือความแตกต่างระหว่างวัตถุกับคลาส?
  3. ความแตกต่างระหว่างฟังก์ชั่นและวิธีการคืออะไร?
  4. ระบุจุดแข็งและจุดอ่อนของ Quicksort และ Insertion Sort
  5. อธิบายถึงวิธีที่โปรแกรมที่คุณเขียนจะแสดงค่าทั้งหมดที่เก็บไว้ในแผนภูมิต้นไม้

ที่เกี่ยวข้องกับชีวิตจริงในทางปฏิบัตินำมาใช้ประโยชน์ได้

  1. คุณเคยใช้ระบบควบคุมเวอร์ชันหรือไม่? มันช่วยให้สมาชิกในทีมทำงานร่วมกันได้อย่างมีประสิทธิภาพมากขึ้นได้อย่างไร?
  2. คอมไพเลอร์ของคุณบอกว่า "สัญลักษณ์ไม่ปรากฏหลักฐาน" นั่นหมายความว่าอย่างไร?
  3. "การละเมิดการแบ่งกลุ่ม" คืออะไร?
  4. ตั้งชื่อโครงสร้างข้อมูลบางอย่างที่จัดทำโดยไวยากรณ์ (แทรกภาษาที่นี่) หรือไลบรารีมาตรฐาน
  5. คุณจะค้นหาและแสดงที่อยู่อีเมลทั้งหมดใน 10,000 ไฟล์ได้อย่างไร

1

เนื่องจากพวกเขาได้รับการว่าจ้างแล้วสำหรับการประเมินอย่างรวดเร็วฉันคิดว่าควร (พร้อมด้วยคำถามการเขียนโปรแกรม) เราควรถามพวกเขา

  1. การกำหนดค่าระบบที่คุณทำงานคืออะไร (การกำหนดค่าฮาร์ดแวร์ของพีซี)
  2. คุณลองทดสอบรหัสของคุณ (โครงการถ้าทำงานในระหว่างเรียน) บนระบบปฏิบัติการที่แตกต่างกัน
  3. คุณชอบการเข้ารหัสใน windows หรือ Linux หรือไม่ (ถ้าทำงานบนระบบปฏิบัติการอื่น ๆ แล้วเป็น windows)
  4. การเข้ารหัสเร็วขึ้น / ช้าลง / ดีขึ้นอยู่กับระบบ? (ระบบที่สูงขึ้น = รู้สึกถึงปัจจัยที่ดีสำหรับการเข้ารหัสเนื่องจากระบบช้าใช้เวลาในการรวบรวมและทั้งหมด)
  5. นอกจากนี้หากถามว่าพวกเขารู้อย่างน้อยในการฟอร์แมตไดรฟ์หรือติดตั้งระบบปฏิบัติการในกรณีที่เกิดข้อผิดพลาด / ไม่สามารถบูตได้โดยไม่ต้องพึ่งพา IT guy เพื่อขอความช่วยเหลือ (นี่คือการรู้ว่าพวกเขาสามารถจัดการกับสถานการณ์

คำถามเหล่านี้เป็นเพียงการค้นหาความตระหนักเกี่ยวกับระบบที่ใช้ในขณะที่เขียนโปรแกรม


0

เริ่มจากระดับต่ำสุดของซอฟต์แวร์สแต็กขึ้นไป

  1. BIOS คืออะไร
  2. บทบาทของระบบปฏิบัติการคืออะไร?
  3. มัลติทาสกิ้งคืออะไร? การเชื่อมโยงแบบไดนามิกคืออะไร?
  4. อธิบายว่าซอร์สโค้ดถูกแปลงเป็นโปรแกรมทำงานสำหรับภาษาที่นักเรียนเลือกได้อย่างไร (ตัวอย่างคำตอบสำหรับ C: preprocessor -> คอมไพเลอร์ -> กลุ่มไฟล์อ็อบเจ็กต์ -> linker -> executable)
  5. แคชคืออะไร ประเมินเวลาในการเข้าถึงแบบสัมพันธ์กับแคช L1, แคช L2, RAM, ดิสก์แบบหมุนได้ (เช่นไม่ใช่ SSD)
  6. ระบุโครงสร้างข้อมูลที่คุณสามารถนำไปใช้ได้โดยไม่ต้องค้นหารายละเอียดในเอกสาร
  7. โปรแกรมที่ซับซ้อนที่สุดที่คุณเขียนคืออะไร? อะไรทำให้ซับซ้อน?
  8. อธิบายการเรียกซ้ำโดยใช้ตัวอย่างที่คุณเลือกเอง
  9. เหตุใดโปรแกรมจึงขัดข้อง
  10. อธิบายสิ่งที่เป็นส่วนที่สำคัญและให้ตัวอย่างที่จะใช้

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

1
พูดเกินจริงไปเล็กน้อย แต่: หากคุณไม่รู้ว่าบทบาทของระบบปฏิบัติการคืออะไรมันไม่มีประโยชน์ที่จะพูดถึงสิทธิความปลอดภัยและการเข้าถึงไม่ว่าจะในระดับ OS หรือระดับฐานข้อมูล หากคุณไม่ทราบเกี่ยวกับกระบวนการรวบรวมคุณไม่สามารถดีบักกระบวนการสร้างของคุณจาก A ถึง Z หากคุณไม่ทราบเกี่ยวกับเวลาแฝงแคชคุณจะจบลงด้วยรหัสที่ผลักทุกอย่างใน DBMS ที่แบน ไฟล์จะพอเพียง ถ้าคุณไม่รู้เกี่ยวกับ mutexes คุณก็ไม่รู้อะไรเกี่ยวกับการเขียนโปรแกรมแบบขนาน ส่วนที่เหลือควรมีลิงค์ที่ชัดเจนในการเขียนโปรแกรม
zvrba

1
(และถ้าคุณไม่ได้รู้ว่าสิ่งที่ BIOS คือคุณส่วนใหญ่อาจไม่ทราบอะไรเกี่ยวกับฮาร์ดแวร์การเขียนโปรแกรม PC.)
zvrba

4
เริ่มต้นด้วยความเข้าใจพื้นฐานของไฟฟ้า เกาที่: เริ่มต้นด้วยฟิสิกส์อะตอม จากนั้นทำงานในแบบของคุณจนถึง BIOS
Dan Rosenstark

ขณะที่เหล่านี้เป็นคำถามที่สำคัญมากและพื้นฐานและโปรแกรมเมอร์ทุกคนควรจะรู้คำตอบที่ผมรู้สึกว่าในช่วงครึ่งแรกของรายการจะเสียเวลาของคุณเป็นมันของสิ่ง PC techsยังจำเป็นต้องรู้ พวกเขาจะไม่ให้ความคิดที่ดีแก่คุณว่าบุคคลที่คุณกำลังจ้างจะรู้อะไรเกี่ยวกับการเขียนโปรแกรมหรือไม่
Ken Bloom

0
  1. สตริงไม่แน่นอนหรือไม่เปลี่ยนรูป?
  2. อะไรคือความแตกต่างระหว่างคลาสและคลาสแบบสแตติก?
  3. ตัวชี้คืออะไร
  4. อธิบายความซับซ้อน
  5. ความแตกต่างระหว่าง Array กับรายการที่เชื่อมโยงคืออะไร
  6. Merge Sort and Quick Sort แตกต่างกันอย่างไร?
  7. ให้สเปรดชีตที่มีคอลัมน์ชื่อที่อยู่รหัสไปรษณีย์และหมายเลขโทรศัพท์อธิบายถึงวิธีที่คุณจะแปลงสเปรดชีตเป็นฐานข้อมูลปกติ
  8. อธิบายความแตกต่างระหว่างวิธีอะซิงโครนัสและซิงโครนัสกับวิธีที่จำเป็นต้องจัดการ
  9. คุณจะส่งข้อมูลจากแอปพลิเคชันฝั่งเซิร์ฟเวอร์ไปยังเว็บแอปพลิเคชันได้อย่างไร
  10. ภาษาที่คุณต้องการคืออะไร? มีเหตุผลอะไรบ้างที่คุณจะใช้ภาษานั้นกับ X (เช่น. ทำไมคุณต้องการใช้ Java ผ่าน C # และอะไรคือความแตกต่างพื้นฐาน?)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.