ฉันเข้าร่วม ThoughtWorks หรือสัมภาษณ์ตัวอย่างได้อย่างไร

ฉันเข้าร่วม ThoughtWorks หรือสัมภาษณ์ตัวอย่างได้อย่างไร

ดูเหมือนไม่แปลกสำหรับคุณที่เมื่อคุณกำลังจะเปลี่ยนงานและจำเป็นต้องผ่านการสัมภาษณ์ สิ่งแรกที่คุณคิดคือ “คุณต้องเตรียมตัวสำหรับการสัมภาษณ์” แก้ไขปัญหาเกี่ยวกับ HackerRank อ่านบทสัมภาษณ์ Crack the coding จดจำวิธีการทำงานของ ArrayList และแตกต่างจาก LinkedList อย่างไร ใช่แล้ว พวกเขาอาจถามเกี่ยวกับการเรียงลำดับด้วย และเห็นได้ชัดว่าไม่เป็นมืออาชีพที่จะบอกว่าการเรียงลำดับอย่างรวดเร็วน่าจะเป็นตัวเลือกที่ดีที่สุด
แต่เดี๋ยวก่อน คุณตั้งโปรแกรม 8 ชั่วโมงต่อวัน แก้ปัญหาที่น่าสนใจและไม่สำคัญ และในงานใหม่ของคุณ คุณจะทำสิ่งเดียวกัน บวกหรือลบ แต่อย่างไรก็ตาม เพื่อที่จะผ่านการสัมภาษณ์ คุณต้องเตรียมตัวเพิ่มเติม ไม่แม้แต่จะฝึกฝนทักษะประจำวันของคุณ แต่เรียนรู้สิ่งที่คุณไม่ต้องการในงานปัจจุบันและไม่น่าจะจำเป็นในงานต่อไป สำหรับการคัดค้านของคุณที่ว่าวิทยาการคอมพิวเตอร์อยู่ในสายเลือดของเรา และหากคุณปลุกเรากลางดึก เราจำเป็นต้องเขียนโดยหลับตาบนปลอกหมอน เพื่อเดินไปรอบๆ ความกว้างของต้นไม้โดยไม่รู้ตัวด้วยซ้ำ ฉัน จะตอบว่าถ้าฉันได้งานในละครสัตว์ และสิ่งสำคัญของฉันคือเคล็ดลับก็คือ - บางทีก็ใช่ ฉันก็เห็นด้วย ทักษะนี้จะต้องมีการทดสอบ

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

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

แล้วถ้าคราวนี้ Google ล้มเหลวแล้วไม่ได้ให้คำตอบล่ะ จะทำอย่างไร? ตรวจสอบว่านักพัฒนาซอฟต์แวร์จะทำอะไรในที่ทำงาน คุณให้ความสำคัญกับนักพัฒนาอย่างไร?
กำหนดเกณฑ์สำหรับผู้ที่คุณต้องการจ้างและพัฒนาแบบทดสอบที่ทดสอบทักษะเหล่านี้

คิดเวิร์คส์

ThoughtWorks เกี่ยวข้องอะไรกับเรื่องนี้? นี่คือที่ที่ฉันพบตัวอย่างการสัมภาษณ์ตัวแบบสำหรับตัวเอง ThinkWorks คือใคร กล่าวโดยสรุป นี่คือบริษัทที่ปรึกษาระดับไฮเอนด์ที่มีสำนักงานอยู่ทั่วโลก ตั้งแต่จีน สิงคโปร์ ไปจนถึงทวีปอเมริกา ซึ่งให้คำปรึกษาด้านการพัฒนามาประมาณ 25 ปี มีแผนกวิทยาศาสตร์เป็นของตัวเอง นำโดย Martin ฟาวเลอร์. หากคุณกำลังมองหาหนังสือ 10 เล่มที่ต้องอ่านสำหรับวิศวกรซอฟต์แวร์ บางที 2-3 เล่มในนั้นอาจจะเขียนโดยคนจาก ThoughtWorks เช่น Refactoring โดย Martin Fowler และ Building Microservices: Designing Fine-Grained Systems โดย Sam นิวแมนหรือการสร้างสถาปัตยกรรมเชิงวิวัฒนาการ
โดย แพทริค คัว, รีเบคก้า พาร์สันส์, นีล ฟอร์ด

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

  • ความสามารถในการพัฒนาเป็นคู่ มันคือความสามารถ ไม่ใช่ประสบการณ์หรือทักษะ ไม่มีใครคาดหวังว่าคนที่ฝึกเขียนโปรแกรมคู่มาเป็นเวลา 5 ปีจะมา แต่การเปิดกว้างต่อความคิดเห็นของผู้อื่นและสามารถรับฟังได้นั้นเป็นทักษะที่จำเป็น
  • ความสามารถในการเขียนการทดสอบ และฝึกฝน TDD ได้เป็นอย่างดี
  • เข้าใจ SOLID และ OOP และสามารถนำไปใช้ได้
  • นำเสนอความคิดเห็นของคุณ ในฐานะที่ปรึกษา คุณต้องทำงานร่วมกับนักพัฒนาของลูกค้าร่วมกับที่ปรึกษาคนอื่นๆ และไม่มีประโยชน์อะไรมากนักหากบุคคลรู้วิธีทำบางสิ่งได้ดี แต่ไม่สามารถถ่ายทอดสิ่งนั้นให้กับทีมที่เหลือได้อย่างสมบูรณ์

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

ด่าน 0 ทรัพยากรบุคคล

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

ขั้นที่ 1 คุณเก่ง OOP, TDD แค่ไหน?

1.5 ชั่วโมงก่อนเริ่มการสัมภาษณ์ ฉันได้รับมอบหมายงานให้สร้างเครื่องจำลอง Mars Rover

ภารกิจสำรวจดาวอังคารNASA จะนำทีมหุ่นยนต์โรเวอร์ลงจอดบนที่ราบสูงบนดาวอังคาร ที่ราบสูงแห่งนี้ซึ่งมีลักษณะเป็นรูปสี่เหลี่ยมผืนผ้าแปลกตา ต้องถูกสำรวจโดยรถแลนด์โรเวอร์ เพื่อให้กล้องบนรถสามารถมองเห็นภูมิประเทศโดยรอบได้ครบถ้วนเพื่อส่งกลับมายังโลก ตำแหน่งและตำแหน่งของรถแลนด์โรเวอร์จะแสดงด้วยพิกัด x และ y รวมกัน และตัวอักษรที่แสดงถึงจุดหนึ่งในสี่จุดของเข็มทิศ ที่ราบสูงถูกแบ่งออกเป็นตารางเพื่อทำให้การนำทางง่ายขึ้น ตำแหน่งตัวอย่างอาจเป็น 0, 0, N ซึ่งหมายความว่ารถแลนด์โรเวอร์อยู่ที่มุมซ้ายล่างและหันหน้าไปทางทิศเหนือ เพื่อควบคุมรถแลนด์โรเวอร์ NASA จะส่งชุดตัวอักษรง่ายๆ ตัวอักษรที่เป็นไปได้คือ 'L', 'R' และ 'M' 'L' และ 'R' ทำให้รถแลนด์โรเวอร์หมุนไปทางซ้ายหรือขวา 90 องศาตามลำดับ โดยไม่เคลื่อนที่จากจุดปัจจุบัน 'M' หมายถึงเลื่อนไปข้างหน้าหนึ่งจุดตาราง และคงส่วนหัวเดิมไว้
สมมติว่ากำลังสองตรงทิศเหนือจาก (x, y) คือ (x, y+1)
อินพุต:
บรรทัดแรกของอินพุตคือพิกัดมุมขวาบนของที่ราบสูง พิกัดด้านซ้ายล่างจะถือว่าเป็น 0,0
ข้อมูลที่เหลือคือข้อมูลเกี่ยวกับรถแลนด์โรเวอร์ที่ถูกใช้งาน รถแลนด์โรเวอร์แต่ละคันมีอินพุตสองบรรทัด บรรทัดแรกจะบอกตำแหน่งของรถแลนด์โรเวอร์ และบรรทัดที่สองคือชุดคำสั่งที่บอกวิธีสำรวจที่ราบสูงให้กับรถแลนด์โรเวอร์ ตำแหน่งประกอบด้วยจำนวนเต็มสองตัวและตัวอักษรคั่นด้วยช่องว่าง ซึ่งสอดคล้องกับพิกัด x และ y และการวางแนวของรถแลนด์โรเวอร์
รถแลนด์โรเวอร์แต่ละคันจะเสร็จสิ้นตามลำดับ ซึ่งหมายความว่ารถแลนด์โรเวอร์คันที่สองจะไม่เริ่มเคลื่อนที่จนกว่าคันแรกจะเคลื่อนที่เสร็จแล้ว
เอาท์พุท:
เอาท์พุตสำหรับรถแลนด์โรเวอร์แต่ละตัวควรเป็นพิกัดสุดท้ายและส่วนหัว
หมายเหตุ:
เพียงปฏิบัติตามข้อกำหนดข้างต้นแล้วพิสูจน์ว่าเครื่องดูดฝุ่นทำงานได้โดยการเขียนการทดสอบหน่วยลงไป
การสร้างอินเทอร์เฟซผู้ใช้ทุกรูปแบบอยู่นอกขอบเขต
การแก้ปัญหาโดยปฏิบัติตามแนวทาง TDD (Test Driven Development) จะได้รับการพิจารณาเป็นพิเศษ
ในระยะเวลาอันสั้น เราให้ความสำคัญกับคุณภาพมากกว่าความครบถ้วนสมบูรณ์
*ฉันไม่สามารถโพสต์งานที่ส่งให้ฉันได้ นี่เป็นงานเก่าที่ได้รับเมื่อหลายปีก่อน แต่เชื่อฉันเถอะ โดยพื้นฐานแล้วทุกอย่างยังคงเหมือนเดิม

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

  • ทีดีดี;
  • ความสามารถในการใช้ OOP และเขียนโค้ดที่บำรุงรักษาได้
  • ความสามารถในการเขียนโปรแกรมคู่

ดังนั้นฉันจึงถูกเตือนให้ใช้เวลา 1.5 ชั่วโมงเหล่านั้นในการคิดว่าฉันจะทำงานนี้อย่างไร แทนที่จะเขียนโค้ด เราจะเขียนโค้ดด้วยกัน

เมื่อเราได้รับโทรศัพท์ พวกเขาก็บอกเราสั้นๆ ว่าพวกเขาเป็นใครและทำอะไร และเสนอให้เริ่มการพัฒนา

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

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

ขั้นตอนที่ 2: บอกเรา

หนึ่งสัปดาห์ก่อนการสัมภาษณ์ ฉันถูกขอให้เตรียมการนำเสนอในหัวข้อที่ฉันสนใจ รูปแบบเรียบง่ายและคุ้นเคย: นำเสนอ 15 นาที, ตอบคำถาม 15 นาที
ฉันเลือก Clean Architecture โดยลุงบ๊อบ และอีกครั้งที่ฉันถูกสัมภาษณ์โดยคนสองคน นี่เป็นประสบการณ์ครั้งแรกของฉันในการนำเสนอเป็นภาษาอังกฤษ และบางที ถ้าฉันตกอยู่ในสถานการณ์ตึงเครียด ฉันก็คงไม่สามารถรับมือได้ แต่ขอย้ำอีกครั้งว่าฉันไม่เคยรู้สึกว่าตัวเองกำลังสัมภาษณ์อยู่เลย ทุกอย่างเป็นไปตามปกติ - ฉันบอกพวกเขาว่าพวกเขาตั้งใจฟัง แม้แต่เซสชันถามตอบแบบเดิมๆ ก็ไม่เหมือนกับการสัมภาษณ์ เห็นได้ชัดว่าคำถามไม่ได้ถูกขอให้ "จม" แต่เป็นคำถามที่สนใจในการนำเสนอของฉันจริงๆ

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

ขั้นตอนที่ 3 รหัสคุณภาพการผลิต

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

เสียงโทรศัพท์ดังขึ้น และอีกครั้งที่มีผู้ชายสองคนอยู่อีกด้านหนึ่งของจอภาพ ทุกอย่างเหมือนกับในการสัมภาษณ์ครั้งแรก สิ่งสำคัญคืออย่าลืมเกี่ยวกับ TDD บอกว่าคุณทำอะไรและทำไม หากคุณไม่เคยฝึก TDD มาก่อน ฉันแนะนำให้เริ่มทำทันที ไม่ใช่เพราะจำเป็นในบริษัท แต่เพราะมันทำให้ชีวิตของคุณง่ายขึ้นอย่างมาก จึงช่วยลดระดับความเครียดได้หากต้องการ จำได้ไหมว่าคุณต้องค้นหาข้อผิดพลาดที่สามารถทำซ้ำได้ผ่านเบราว์เซอร์ด้วยโปรแกรมดีบักเกอร์อย่างเมามัน แต่คุณไม่สามารถทำซ้ำด้วยการทดสอบได้ ทีนี้ลองนึกภาพว่าคุณจะต้องจับความผิดพลาดดังกล่าวในระหว่างการสัมภาษณ์ - รับประกันว่ามีผมหงอกสักสองสามเส้น เราจะได้อะไรจาก TDD? เราเปลี่ยนรหัสและรู้โดยไม่คาดคิดว่าตอนนี้การทดสอบเป็นสีแดง แต่อะไรคือข้อผิดพลาดที่เราไม่สามารถระบุได้ในครั้งแรก โอเค เราพูดว่า "อ๊ะ" กับผู้สัมภาษณ์ กด Ctrl-Z และเริ่มก้าวไปข้างหน้า ใช่ คุณต้องพัฒนาความสามารถในการพัฒนาโดยใช้ TDD ในตัวคุณ ความสามารถในการบรรลุเป้าหมายเพื่อให้การทดสอบของคุณเป็นสีเขียวถาวร และไม่แดงเป็นเวลาครึ่งวัน เพราะ “คุณมีการปรับโครงสร้างใหม่มากมาย” นี่เป็นทักษะเดียวกับการเขียนโค้ดที่บำรุงรักษาได้หรือการเขียนโค้ดที่มีประสิทธิผล

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

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

ด่าน 4 รอบชิงชนะเลิศ คำถามทางเทคนิคเพียงพอ เราอยากรู้ว่าคุณเป็นใคร!

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

หากคุณใช้ Google เพียงเล็กน้อยเกี่ยวกับวัฒนธรรม Thoughtworks คุณจะพบบทความโดย Martin Fowler [https://martinfowler.com/bliki/ThreePillars.html] ซึ่งอธิบายเสาหลัก 3 ประการ: ธุรกิจที่ยั่งยืน ความเป็นเลิศของซอฟต์แวร์ และความยุติธรรมทางสังคม

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

นอกจากนี้ ฉันตัดสินใจที่จะมุ่งเน้นไปที่สิ่งหลัง

ประการแรก ฉันบอกเขาว่าทำไมถึง ThoughtWorks - ฉันอ่านบล็อกของ Martin Fowler เมื่อสมัยเรียนมหาวิทยาลัย ดังนั้น ฉันจึงชอบ Clean Code

สามารถนำเสนอโครงการได้จากมุมต่างๆ นอกจากนี้เขายังพัฒนาซอฟต์แวร์สำหรับการแพทย์ที่ทำให้ชีวิตของผู้ป่วยง่ายขึ้น และแม้กระทั่งตามข่าวลือก็ช่วยชีวิตหนึ่งคนได้ ฉันยังได้พัฒนาซอฟต์แวร์สำหรับธนาคาร ซึ่งทำให้ชีวิตของประชาชนง่ายขึ้นด้วย โดยเฉพาะอย่างยิ่งหากธนาคารแห่งนี้ถูกใช้โดย 70% ของประชากรทั้งหมดของประเทศ นี่ไม่เกี่ยวกับ Sberbank และไม่เกี่ยวกับรัสเซียด้วยซ้ำ

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

ในท้ายที่สุด 80% ของการนำเสนอของฉันเต็มไปด้วยแมว

ทันทีหลังการนำเสนอ HR เขียนถึงผมว่าเขายังไม่รู้ผลการสัมภาษณ์ แต่ทั้งออฟฟิศก็ประทับใจกับแมวกันหมดแล้ว

ในที่สุดฉันก็รอคำติชม - ฉันพอใจทุกคนในฐานะบุคคล

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

ทั้งหมด

ด้วยเหตุนี้ ฉันจึงทำงานในสิงคโปร์ที่ Thoughtworks มาหลายเดือนแล้ว และฉันเห็นว่าที่นี่มีบริษัทจำนวนมากเกินไปที่นำ "แนวทางปฏิบัติในการสัมภาษณ์ที่ดีที่สุด" จาก Google มาใช้ โดยใช้ leaves และ Whiteboard ในการเขียนโค้ด แม้ว่าจะมีความรู้มากกว่า Spring ก็ตาม Symfony, RubyOnRails (ขีดเส้นใต้สิ่งที่จำเป็น) ไม่จำเป็นในการทำงาน วิศวกรใช้เวลาหนึ่งสัปดาห์ก่อนการสัมภาษณ์เพื่อ "เตรียมตัว"

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

ผู้สัมภาษณ์หลายคนเพื่อลดอคติ ที่ Thoughtworks การเขียนโปรแกรมคู่ถือเป็นมาตรฐานโดยพฤตินัย และหากแนวปฏิบัตินี้สามารถนำไปใช้กับด้านอื่นได้ TW จะพยายามทำเช่นนั้น ในแต่ละขั้นตอนจะมีการสัมภาษณ์ 2 คน ดังนั้น แต่ละคนจะได้รับการประเมินอย่างน้อย 8 คน และ TW พยายามเลือกผู้สัมภาษณ์ที่มีภูมิหลัง ทิศทางที่แตกต่างกัน (ไม่ใช่แค่ผู้มีความรู้ด้านเทคโนโลยี) และเพศ

ท้ายที่สุดแล้ว การตัดสินใจจ้างงานจะขึ้นอยู่กับความคิดเห็นของคนอย่างน้อย 8 คน และไม่มีผู้ลงคะแนนเสียงชี้ขาด

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

ไม่จำเป็นต้องมีใบรับรองการศึกษา TW ไม่ต้องการการรับรองหรือการศึกษาด้านวิทยาการคอมพิวเตอร์ ประเมินเฉพาะทักษะเท่านั้น

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

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

หากคุณสนใจที่จะร่วมงานกับ ThoughtWorks คุณสามารถดูตำแหน่งงานที่เปิดรับของเราได้ ที่นี่
ฉันขอแนะนำให้ใส่ใจกับตำแหน่งงานว่างที่น่าสนใจด้วย:
หัวหน้าวิศวกรซอฟต์แวร์: ประเทศเยอรมัน, กรุงลอนดอน, กรุงมาดริด, สิงคโปร์
วิศวกรซอฟต์แวร์อาวุโส: ซิดนีย์, ประเทศเยอรมัน, แมนเชสเตอร์, กรุงเทพมหานคร
วิศวกรรมซอฟต์แวร์: ซิดนีย์, บาร์เซโลนา, มิลาน
วิศวกรข้อมูลอาวุโส: มิลาน
นักวิเคราะห์คุณภาพ: ประเทศเยอรมัน ประเทศจีน
โครงสร้างพื้นฐาน: ประเทศเยอรมัน, กรุงลอนดอน, ชิลี
(ฉันขอเตือนคุณโดยสุจริตว่าลิงก์นั้นเป็นลิงก์อ้างอิงหากคุณไปที่ TW ฉันจะได้รับโบนัสที่ดี) เลือกสำนักงานที่คุณต้องการ คุณไม่จำเป็นต้องจำกัดตัวเองอยู่แค่ยุโรป เพราะทุกๆ 2 ปี TW ยินดีที่จะย้ายคุณไปยังประเทศอื่น เพราะ... นี่เป็นส่วนหนึ่งของนโยบาย ThoughtWorks ดังนั้นวัฒนธรรมจึงได้รับการเผยแพร่และทำให้เป็นเนื้อเดียวกัน

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

ที่มา: will.com

เพิ่มความคิดเห็น