ผู้เขียน หัวข้อ: เทคนิคง่ายๆ ที่จะทำให้โปรแกรมเมอร์ได้งาน  (อ่าน 742 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ Master

  • [color=Turquoise][i]"อาจจะเหนื่อยล้าและมีผิดหวัง แต่ยังมีพรุ่งนี้ให้เราได้เริ่มกันใหม่ ทุกชีวิตที่อยู่ในเมืองนี้ สักวันก็คงได้สมดังใจ ... "[/i][/color]
  • Global Moderator
  • Sr. Member
  • *****
  • กระทู้: 487
  • พอยท์: 0
    • ดูรายละเอียด

การเป็นนักโปรแกรมเมอร์ที่มีฝีมือไม่ได้หมายความว่าคุณจะ สามารถผ่านสัมภาษณ์งานไปได้ง่ายๆ เพราะปกติคุณใช้เวลาเป็นอาทิตย์หรือเป็นเดือนในการแก้ปัญหาไอทีต่างๆ แต่การสัมภาษณ์นั้น คุณมีเวลาไม่ถึงชั่วโมง!! สิ่งที่ Jobnisit เอามาฝากคุณผู้อ่านวันนี้ ก็คือสกิลในการสัมภาษณ์ ซึ่ง Jobnisit เชื่อว่าสกิลเหล่านี้สามารถเรียนรู้และพัฒนาได้ เอาล่ะ อย่าช้าเลย มาดูกันดีกว่าค่ะ
 
1.กระตือรือร้นอยู่เสมอ
จำไว้เสมอว่า “ทุกบริษัทอยากได้พนักงานที่ทำให้องค์กรของเขาเติบโตขึ้น” และหนทางเดียวที่จะทำให้องค์กรเติบโตขึ้นคือ พนักงานต้องเก่งและขยัน!! จึงไม่แปลกใจนักที่พวก Hr มักกระหายคนที่มีความกระตือรือร้นสูงมาร่วมงาน
หากคุณดูเหมือนพวก slow life ไปวันๆ หรือพวกง่อยๆที่ชอบอู้งาน Jobnisit ว่าคุณควรรีบเปลี่ยนตัวเองสะ!!  เพราะความกระตือรือร้นและกระหายการทำงานมัน เป็นสิ่งที่สำคัญพอๆกับทักษะในการทำงานเลย
แต่ถ้าคุณส่องกระจกมองตัวเอง หันซ้าย หันขวา ก็ยังดูเป็นพวกขี้เกียจอยู่ล่ะก็ Jobnisit แอบกระซิบว่าเรื่องแบบนี้มันเนียนกันได้ สิ่งที่คุณควรจะทำก็คือการจดข้อมูลไว้ว่าอะไรที่น่าสนใจเกี่ยวกับบริษัทนี้ ซึ่งสามารถหาอ่านได้ตามบล็อคและpressของบริษัท จากนั้นคุณก็เอามันไปพูดกับผู้สัมภาษณ์ว่าคุณรักและรู้จักบริษัทเขาดีแค่ ไหน
 

 
2.ความรู้พื้นฐานต้องแน่น!
จริงๆแล้วคำถามที่จะใช้ในการสัมภาษณ์ส่วนใหญ่ก็เป็นแนวๆเดียว กันทั้งนั้น  คุณไม่จำเป็นจะต้องถึงขั้นเชี่ยวชาญในเรื่องนี้ก็ได้ แต่แค่ลองดูและทำความเข้าใจข้อมูลเหล่านี้ไว้ก็พอ…
Hash tables
Linked lists
Breadth-first search, depth-first search
Quicksort, merge sort
Binary search
2D arrays
Dynamic arrays
Binary search trees
Dynamic programming
Big-O analysis
 

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

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

 
4.ปรับใช้ให้เป็น
มันคงจะดีมากถ้าตัวคุณมีความรู้เรื่องการออกแบบระบบต่างๆ เพราะจะช่วยเพิ่มโอกาสในการต่อรองให้กับคุณ นั่นเอง คุณอาจจะโดนถามประมาณว่า คุณสามารถออกแบบ Google Maps,Social network,API สำหรับธนาคาร ได้หรือไม่ ซึ่งการออกแบบสิ่งเหล่านี้ล้วนแล้วแต่ต้องใช้ทักษะและความรู้เฉพาะด้าน ไม่มีใครหรอกที่คิดว่าอยู่ดีๆจะต้องมาทำ Google maps แต่ผู้สัมภาษณ์เขาแค่หวังว่าคุณพอจะรู้ถึงความรู้พื้นฐานในเรื่องนี้หรือ เปล่า และนี่คือโปรแกรมพื้นฐานที่คุณควรจะรู้ไว้…
HTTP (at the protocol level)
Databases (indexes, query planning)
CDNs
Caching (LRU cache, memcached, redis)
Load balancers
Distributed worker systems
คุณควรจะที่จะเข้าใจคอนเซ็ปเหล่านี้ และยิ่งไปกว่านั้น คุณควรจะรู้ถึงวิธีการปรับใช้โปรแกรมเหล่านี้ด้วยกัน เพื่อสร้างระบบขึ้นมา วิธีที่ดีที่สุดในการเรียนรู้เรื่องนี้ก็คือ การอ้างอิงถึงนักวิศวกรหรือนักเขียนโปรแกรมคนอื่น ว่าเขาทำได้อย่างไร บล็อค High Scalability เป็นแหล่งข้อมูลที่ดีสำหรับเรื่องนี้
 

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

 
6.ใช้ภาษาที่หลากหลาย แต่พูดถึงภาษา C
หลายๆคนอาจจะบอกว่าให้เน้นที่ภาษาที่ตัวเองมั่นใจ แต่ทางเรามองว่าพูดภาษาอื่น ด้วยก็ดี เพราะนี่จะโชว์ความสามารถที่หลากหลายของคุณ แต่อย่างไรก็ตามก็ควรโฟกัสไปที่ภาษาที่คุณถนัดที่สุด เรามองเห็นว่าคนใหญ่ใหญ่ชอบพูดถึงแค่ ภาษา C, C++ และ Java ด้วยเหตุผลที่ว่ามันเป็นภาษาที่ใช้กันทั่วไป ทั้งๆที่การพูดถึงภาษาอื่นที่นอกเหนือไปจากนั้น จะทำให้คุณดูมีความรู้และทำได้หลายอย่าง โดยเฉพาะอย่างยิ่งถ้าการทำงานสตาร์ทอัพคือเป้าหมายของคุณ เราแนะนำให้คุณหลีกเลี่ยงการใช้ภาษา Java, C#, PHP
ถ้าหากคุณรู้จักแค่ภาษาเดียวแล้วล่ะก็ คุณจะต้องพยายามมากเป็นสองเท่า เพื่อที่จะโชว์ศักยภาพของคุณอย่างเต็มที่ การยกตัวอย่างโปรเจคเกี่ยวกับภาษานั้นที่คุณเคยทำได้ก็ยิ่งดีขึ้นไปอีก
 

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

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


ที่มา: https://www.workventure.com/%E0%B8%9A%E0%B8%A5%E0%B9%87%E0%B8%AD%E0%B8%81/%E0%B9%80%E0%B8%97%E0%B8%84%E0%B8%99%E0%B8%B4%E0%B8%84%E0%B8%87%E0%B9%88%E0%B8%B2%E0%B8%A2%E0%B9%86-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%88%E0%B8%B0%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%AB%E0%B9%89%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B9%80%E0%B8%A1%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B9%84%E0%B8%94%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99