เมื่อปี พ.ศ. 2540 ผมเคยมีโอกาสไปสอบสัมภาษณ์ตำแหน่งโปรแกรมเมอร์ที่บริษัทแห่งหนึ่งครับ ปัจจุบันบริษัทดังกล่าวก็ยังตั้งอยู่ที่เดิม คือเป็นตึกที่อยู่ตรงข้ามกับกองบัญชาการตำรวจตระเวนชายแดน ถนนพหลโยธิน ตึกดังกล่าวมีหมายเลขเรียกซะด้วย คือเป็นหมายเลขหนึ่ง (แบบนี้แสดงว่ามีตึกแบบนี้อีก เป็นหมายเลขสองและสามตามลำดับ)
มันเป็นการสอบสัมภาษณ์ที่แย่หน่อย เพราะผมไม่เคยรู้เลยว่าวันนั้นผมต้องสอบปฏิบัติด้วย คือผู้จัดการแผนกเขาให้ผมเขียนภาษาซีเพื่อเลียนแบบคำสั่ง printf ครับ
สำหรับคนที่ไม่รู้คอมพิวเตอร์ printf คือคำสั่งเพื่อสั่งให้คอมพิวเตอร์พิมพ์ข้อความออกมาที่จอภาพ โดยสามารถกำหนดรูปแบบของข้อความที่จะแสดงผลได้ ว่าจะให้ข้อความเยื้องแค่ไหน, จะให้ตัวเลขแสดงผลเป็นทศนิยมกี่ตำแหน่ง เป็นต้น
แถมให้เขียนบน Unix อีกต่างหาก โอ้ แม่เจ้า ผมเอกมาทาง Win32 อ่ะครับ บรรลุมาทาง OOP เลยอ่ะจ้า ไอ้เจ้า Unix นี่ก็จับมาแค่นิดหน่อย ที่สำคัญเคยใช้แต่ pico ด้วย ไม่เคยใช้ vi เลย T-T
pico = Text Editor ที่ใช้บนระบบปฏิบัติการ Unix ซึ่งใช้ง่ายแสนง่าย และ
vi = Text Editor ที่ใช้บนระบบปฏิบัติการ Unix ซึ่งใช้ยากตะบักตะบวยอะไรเช่นนี้ (ความคิดผม)
เขาให้เวลาผมเพียงแค่ 15 นาทีเพื่อเขียนโปรแกรมดังกล่าว ผมแจ้งว่าผมไม่ถนัดภาษาซีบน Unix เขาบอกผมว่าเขาอนุญาติให้ผมใช้คำสั่ง man เพื่อเปิดดูคำสั่งได้ (อ้อ สอบแบบเปิดหนังสือ แล้วถ้าไม่ถนัดมันจะได้มั้ยล่ะพี่เอ๊ย)
ในช่วงที่ผมทำข้อสอบอยู่นั้น มีพนักงานแต่งกายดูดีสองท่าน ดูท่าอายุอานามจะโตกว่าผมหลายปีทีเดียว กำลังยืนโม้ใส่กันอยู่ มีคนนึงเป็นฝ่ายโม้นำ อีกคนเป็นฝ่ายเออออแล้วโม้สนับสนุน
สาเหตุที่เขามาโม้ใกล้ ๆ ผมก็เพราะว่า เขาเห็นว่าผมต้องสอบปฏิบัติการเขียนโปรแกรมบน Unix เลยคิดจะโชว์พาวซะหน่อย ว่าตัวเองก็มีประสบการณ์มาเหมือนกัน (แต่ผมไม่มี T-T) ประมาณว่าโจทย์ที่ผมได้น่ะมันหมูซะเหลือเกิน เมื่อเทียบกับสิ่งที่เขารู้ แต่ทีนี้ผมตั้งใจฟังเค้าไม่ได้อ่ะ เพราะกำลังทำข้อสอบอยู่ เค้าก็เลยต้องโม้ให้ฟังกันเอง
ซึ่งถึงผมจะกำลังตั้งใจสอบปฏิบัติ แต่ก็ไม่วายเงี่ยหูฟังว่าพวกเขาคุยอะไรกัน (นิสัยแบบนี้ไม่ดีนะ อย่าเลียนแบบ)
ขออนุญาติแทนตัวละครหน่อยนะครับ เพื่อไม่ให้เกิดความสับสน
- โม้ #1 คือคนที่โม้นำ
- โม้ #2 คือคนที่เออออแล้วโม้สนับสนุน
โม้ #1 เล่าว่าตนนั้นเคยเขียนโปรแกรมแข่งกับเพื่อนฝรั่ง โดยให้เพื่อนฝรั่งเขียนโปรแกรมขึ้นมาตัวหนึ่ง โดยโปรแกรมตัวดังกล่าวจะมีคุณสมบัติพิเศษ กล่าวคือ
- มันจะสแกนฮาร์ดดิสก์เพื่อค้นหาไฟล์
- เมื่อพบไฟล์ซักไฟล์นึง ก็จะเขียนข้อความพิเศษซึ่งเข้ารหัสเอาไว้แล้ว
- แล้วโปรแกรมก็จะรอ พอผ่านไปซักไม่ถึงนาที โปรแกรมตัวดังกล่าวก็จะลบข้อความพิเศษออกจากไฟล์นั้น ๆ แล้วก็เริ่มสแกนฮาร์ดดิสก์เพื่อค้นหาไฟล์ใหม่
- วนกลับไปทำข้อ 2 ทำไปแบบนี้เรื่อย ๆ
แล้วโม้ #1 จะต้องทำยังไงถึงจะชนะการแข่งขันนี้? ครับโม้ #1 เล่าว่าตนเองต้องเขียนโปรแกรมขึ้นมาตัวหนึ่งเช่นกัน โดยโปรแกรมตัวดังกล่าวก็จะมีคุณสมบัติพิเศษเหมือนกัน กล่าวคือ
- มันจะสแกนฮาร์ดดิสก์เพื่อค้นหาไฟล์ (เหมือนของเพื่อนฝรั่ง)
- มันจะสแกนไฟล์ทุกไฟล์เพื่อหาข้อความพิเศษ (ของเพื่อนฝรั่ง) ซึ่งเป็นอักขระที่ไม่น่าจะเป็นเนื้อไฟล์ (โอ้มันเก่งมาก)
- จากนั้นเมื่อมันพบไฟล์ดังกล่าว มันจะสำเนาข้อความพิเศษออกมา
- แล้วจึงถอดรหัสข้อความพิเศษดังกล่าวออกมาแสดงผลที่หน้าจอ ว่าจริง ๆ แล้วนั้น ข้อความดังกล่าวมีเนื้อความว่ายังไง
ในใจตอนนนั้นนะ ผมคิดแค่เนี้ย “โหย แม่งเก่งว่ะ มีซอฟต์แวร์ไล่ล่ากันได้แบบนี้ในโลกด้วยเหรอวะเนี่ย?”
ตอนนั้นผมไม่รู้หรอกนะว่าที่โม้ #1 เล่าน่ะ มันเรียกเป็นศัพท์ทางเทคนิคว่าอะไร และจนถึงตอนนี้ผมก็ยังไม่รู้ว่าควรเรียกมันว่าอะไรดี จะเรียกมันว่า Worm ก็ไม่น่าใช่ เพราะ Worm มันเป็นหนอนที่ใชยิก ๆ อยู่ในเครือข่ายนี่นา แต่นี่เล่นไปโดดไปโดดมาในไฟล์แบบนี้ แถมมีการไล่ล่ากันอีก จะเรียกอะไรดีอ่ะเนี่ย
แต่โดยสรุปแล้ววันนั้นผมก็ทำข้อสอบสำเร็จ ด้วยระยะเวลาเพียงแค่ 15 นาทีอ่ะ ถึงจะทุลักทุเลก็เถอะ เพราะผมสร้างโปรแกรมเลียนแบบคำสั่ง printf โดยให้โปรแกรมอนุญาติให้ผ่านพารามิเตอร์ได้แค่ตัวเดียวเอง ซึ่งมันไม่ถูกอ่ะ แต่ก็ทำได้แค่เนี้ย
คำสั่ง printf ของจริงอนุญาติให้ผ่านพารามิเตอร์ได้ไม่จำกัด
หลังจากสอบปฏิบัติครั้งนั้น กว่าบริษัทดังกล่าวจะเรียกผมไปเซ็นสัญญา ก็ผ่านไปอีกเกือบ 6 เดือน ซึ่งตอนนั้นผมได้งานไปแล้ว ผมจึงปฏิเสธไปไม่เซ็นสัญญาดังกล่าว
ป.ล. บริษัทที่เรียกผมไปเซ็นสัญญาดันไม่ใช่บริษัทที่ผมไปสอบปฏิบัติอ่ะดิ แต่เป็นบริษัทลูกอีกทีนึง ซึ่งเป็นบริษัทที่ปัจจุบันนี้คุณ aoyoyo กำลังทำงานงก ๆ ๆ รับเงินเดือนอยู่นั่นแหล่ะ แหะ ๆ
[tags]ไล่ล่า,คอมพิวเตอร์,ซอฟต์แวร์,unix,vi,pico,printf,word[/tags]
ตั้งแต่ย่อหน้าแรกก็กะจะมาเม้นท์แย้ว …
แหม่ … ใครน้อ ที่เป็นแมงโม้#1 และ แมงโม้#2 ป่านนี้ถ้ายังอยู่คงจะโม้ได้เมามันกว่าเดิมเยอะ เพราะนี่ก็ผ่านมาตั้งสิบปีแล้ว คงไม่ได้มาโม้ให้เด็กสัมภาษณ์งานฟังแน่ๆ เลย
บริษัทลูกที่พี่ไท้ว่า นั้นไม่ใช่ลูกธรรมดานะคะ …
แต่เป็น … บริษัทลูกเมียน้อย (ฮ่า) เพราะแม่ไม่ค่อยจะรักเล้ย
ผมว่ามันเป็นอะไรที่ไม่ได้มีประโยชน์มากมายเท่าไหร่ ยกเว้นว่าเค้าจะจ้างคุณ peetai ไปเขียนภาษาใหม่อะไรแบบนั้นอ่ะครับ หรือจะจ้างคุณ peetai ไปเขียน web server ที่ต้องใช้ความรู้เรื่อง io เยอะหน่อย(ซึ่งถ้าผมจะทำก็เปิดหนังสืออยู่ดี man page คงไม่ช่วยเท่าไหร่)
ถ้าคนสงสัยว่าเขียนยังไง ถ้าจำไม่ผิดนะครับ
มันมี file description ที่ point ไปที่ stdout ตลดอเวลา จำได้ว่าเบอร์ หนึ่ง หรือ สอง หรือ สามเนี่ยแหละ
เรียกมันมาแล้วก็เขียน file ธรรมดา
ถ้าจะเอาได้ infinite argument มันมี pointer ชื่ออะไรก็จำไม่ได้ ที่จะ point ไปที่หัวของ argument ทั้งหมดแล้วก็ read มาทีละ byte ได้
ว่าแต่….เขียน function ให้มันเรียก printf ไม่ได้หรอครับ 😛
ว่าแต่…..มันได้ทดสอบอะไรหรอครับ ให้คนเขียน printf เนี่ย -_-” สอบสัมภาษณ์แบบนี้อ่ะครับ
จริงๆ ก็ทดสอบนะคะ คุณ Tee
เวลาสัมภาษณ์รับพนักงานใหม่ โดยเฉพาะเด็กจบใหม่ ประสบการณ์น้อยๆ นี่ บางทีเราก็ไม่ได้วัดกันที่ความสามารถอย่างเดียวค่ะ วัดกันที่การแก้ไขสถานการณ์เฉพาะหน้าบ้าง วัดกันที่ความอึิดความถึกของ พนง. บ้าง (คืองานบางอย่างก็อยากได้พวกที่สามารถฝนทั่งให้เป็นเข็ม ไม่เคยทำก็ไปหัดเอาดิ ประมาณนี้)
อย่างตอนนั้นถ้าพี่ไท้ ถอดใจไม่ยอมทำข้อสอบ ก็ตกแน่ๆ โทษฐานที่ไม่พยายามอะไรเลย สิ่งที่วัดได้ก็คือ ถ้ารับเป็นพนักงาน แล้ว assign งานให้ทำ แต่เป็นงานใหม่ที่ไม่เคยทำมาก่อน คุณพี่ไท้คนที่ไม่ยอมลองทำข้อสอบ มีแนวโน้มว่าจะปฏิเสธไม่ยอมรับงานแน่ๆ เลย อาจจะเรียกร้องต้องขอไปอบรมก่อนซักสามเดือน ค่อยยอมทำงาน ซึ่งสถานะการณ์จริงๆ บริษัทอาจจะไม่สามารถส่งไปอบรมได้ แต่ต้องให้ศึกษาเอาเองและลองผิดลองถูกลงมือทำไป
บริษัทที่พี่ไท้เล่า ก็มีนิสัยชอบจ้างคนประเภทกล้าๆ แบบนี้ซะด้วยค่ะ
ตามที่คุณ aoyoyo บอกความคิดใช้ได้เลยครับ เดี๋ยวจะเอามุขแบบนี้ไว้สัมภาษณ์คนมาสมัครงานที่บ้าน 😛
นึกถึงตังเองอ่ะพี่ไท้ เมื่อประมาณเดือนกว่าๆผมมีประสบการณ์สัมภาษณ์งานเหมือนพี่เลย
โดนข้อสอบเีขียนโปรแกรม(แล็บแห้ง) อุส่าแอบรู้ข่าววงในมาข้อนึงนึกว่าจะถามเราข้อเดียว สรุปแล้วข้อสอบมี 3 ข้อ
อีกสองข้อต้องให้พลังมั่วเอา้ล้่วนๆ จำได้ว่าข้อสุดท้ายให้สร้างคลาสที่มีการทำงานเหมือนกันsort list ตื่นเต้นก็ตื่นเต้นเด็กจบมาไหม่ๆ ตอนไปสัมภาษณ์ยังไส่ชุดนักศึกษาอยู่เลย
สุดท้ายก็ผ่านพ้นมันมาได้ ในที่สุดก็ได้ใช้ชีวิตเขียนโปรแกรมแลกเงินสมใจ
และได้เขียนโปรแกรมที่ตั้งแต่เกิดมาไม่เคยจับมาก่อน ไม่รู้ด้วยซ้ำว่าโลกนี้มีcomponantแบบนี้
ยินดีกับพี่ไท้ด้วยครับที่ผ่านพ้นเวลาช่วงเริ่มต้น ชีวิตโปรแกรมเมอร์ผ่านมาด้วยดี
ผมจะพยายามดำเนินรอยตามพี่น่ะครับ ยังไงก็จะต้องสู้ให้ถึงที่สุดครับ
ปล.บอกปีพศ.แบบนี้ผมดำอายุได้น่ะเนี่ยๆ อิอิอิ 30 ยังแจ๋วแล้วใช่ไหมครับ
คุณ memtest สู้ ๆ ครับ งานมันหายาก อย่าเปลี่ยนงานบ่อยล่ะ ^o^ อ้อ อีกอย่าง ผมเพิ่งจะอายุ 18 ปีครับ อิ อิ (กล้าพูดดดดด)
อ่า … เป็นบริษัทลูกเมียน้อยเลยเหรอคุณ aoyoyo อือม มิน่า เห็นตะบี้ตะบันออกวอแรนท์เป็นกิจวัตรเลย เพราะแม่ไม่รักเลยไม่ให้ตังค์นี่เอง อืม อืม
โห คุณ Tee จบฟิสิกส์แต่รู้คอมพิวเตอร์ทัดเทียมกับคนคอมพิวเตอร์เลยแฮะ เหมือนพี่คนนึงที่ผมรู้จักเลย นั่นก็จบฟิสิกส์เหมือนกัน แต่เก่งคอมพิวเตอร์มากกกกกก
คือ ผมเกือบได้ minor computer science อ่ะครับ เรียนเกิน แต่ไม่ครบ requirement เพราะเรียน ๆ ไปนึกถามตัวเองว่า กูเรียนเอาปริญญาหรือความรู้วะ ก็เลยตัดสินใจเรียนอะไรที่อยากรู้มากกว่าเรียนอะไรที่เค้าบังคับให้ผมเรียน เพื่อเอา minor
แต่ผมว่า ความรู้แบบที่ผมบอกข้างบน มันเป็น fact อ่ะครับ เหมือนพวกคำถามในรายการ ที่ตอบถูกหมดได้ล้านนึง ไม่ได้โชว์ความสามารถทางความคิดแต่อย่างไร แต่ตามที่คุณ aoyoyo บอกมันโชว์ ความลุย ความไม่กลัวปัญหาใหม่ (สมมติว่าไม่รู้มาก่อน)
สมัครงานที่บ้าน นี่ไว้เลี้ยงน้องรึเปล่าคะคุณ Tee 😉
เปล่าครับ กำลังหาคนเขียนโปรแกรมที่ไว้ใจได้อยู่ครับ ให้มาเขียนโปรแกรมแทนผม ผมจะตรวจโค้ดอย่างเดียวละครับ เรียนหนักไม่มีเวลาปรับปรุงอ่ะครับ