อยากเป็น Developer ต้องรู้อะไรบ้างคะ

กระทู้ของ JobThai Tips ได้พาทุกคนไปรู้จักการทำงานของอาชีพต่าง ๆ มาแล้ว 3 อาชีพทั้ง Creative, E-Commerce Marketing, Data Science กระทู้นี้เราจะพามารู้จักอาชีพ Developer กับคุณแก้ว มัทนพล คงอุทัยกุล Technical Lead จาก NocNoc แพลตฟอร์มออนไลน์ที่ครบเครื่องเรื่องวัสดุและอุปกรณ์ตกแต่งบ้านกัน

ดูสัมภาษณ์คุณแก้วแบบเต็ม ๆ  ได้ที่นี่ > คลิก <

อาชีพ Developer แบ่งเป็นสายอะไรบ้าง แต่ละตำแหน่งทำหน้าที่อะไร  
แบ่งเป็น Front-End กับ Back-End ถ้า Back-End สิ่งที่เขาต้องทำก็คือเข้าไปอยู่กับ Data จำนวนมากบางทีต้องอยู่กับตรรกะและการคิดคำนวณต่าง ๆ บางทีต้องเข้าไปติดต่อสื่อสารระหว่างระบบต่าง ๆ ทั้งภายในและภายนอก อย่าง NocNoc ต้องมีการสื่อสารกับขนส่งต่างๆ หรือว่าการทำพวก Online Payment ที่เป็นพาร์ทเนอร์ของเรา เพราะงั้นส่วนนี้เขาก็จะมีความยากในแบบของเขา 
  
ส่วน Front-End เขาก็จะมีความละเอียดอ่อนในแบบของเขา เพราะเขาต้องทำหน้า UI ให้มันเหมือนกับสิ่งที่ทีมได้ดีไซน์เอาไว้ บางทีก็ต้องทำปุ่มให้มันตรงกับดีไซน์แบบเป๊ะ ๆ ตรงตามพิกเซล แต่ว่าถ้าเกิดเราชอบอะไรสวย ๆ งาม ๆ อยู่แล้วเนี่ย เวลาเราทำตรงนี้ มันก็จะทำให้บางคนรู้สึกมีความฟินกับผลงานตัวเอง 
  
Developer มีขั้นตอนการทำงานยังไงบ้าง  
ผมขอสโคปมาในทีม Product นะครับ เพราะว่า NocNoc ของเรา Developer จะอยู่ในทีม Product เราก็จะมี Product Manager ที่เขาจะเป็นคนคิด Product ของเขาขึ้นมา จะทำเป็นตัว Business Requirement มันก็จะเป็นตัวที่บอกว่า Product ของเขาเนี่ย ในแง่ธุรกิจมันต้องทำอะไรได้บ้าง ก็ลิสต์เป็นข้อ ๆ ออกมา แล้ว Product Manager เขาจะไปคุยกับ Designer เพื่อที่จะสร้าง Product Design ทำให้สิ่งที่อยู่ในหัวที่เป็นข้อ ๆ เขียนมาออกมาเป็นหน้าตา หลังจากนั้นเขาก็จะเอาสิ่งนี้ไปคุยกับ Developer เพื่อให้ Developer วิเคราะห์ บอกมาว่ามันเป็นไปได้ไหม ยากไปรึเปล่า ต้องใช้เวลานานแค่ไหน หรือต้องใช้เทคโนโลยีอะไร จะเอาเข้ามาเชื่อมต่อกับระบบเก่าของเราได้ยังไง 
  
Developer ของ NocNoc นอกจากจะต้อง Coding แล้วก็ต้องวิเคราะห์ในส่วนนี้ด้วย หลังจากที่เราวิเคราะห์เสร็จแล้ว ก็จะได้เป็น Technical Requirement เขาจะบอกว่าเราต้องทำ Database ไหม ต้องมีระบบอะไร ติดต่อกับอะไรบ้าง หลังจากนั้น Developer ถึงจะเริ่ม Coding ครับ เขาก็จะ Code แล้วก็ทดสอบ Code เหมือนกับว่าเขาต้องเอางานของเขาขึ้นไปอยู่บน Server จริงที่ให้ทุกคนสามารถเข้ามาใช้งานได้ 
  
โดยวิธีการนำขึ้น Server ก็คือ เราเขียนโปรแกรมของเราขึ้นมาเป็น Code เราก็ต้องทำการ Build  ซึ่งก็คือการแปลง Code ตัวหนังสือให้ออกมาเป็นโปรแกรม ถ้าเกิดเป็นโปรแกรมที่เราใช้ ก็เป็นเหมือนตัวที่เราสามารถ Double Click เปิดขึ้นมาได้ ส่วนนี้เรียกว่าการ Build พอมันเป็นโปรแกรมที่อยู่บน Cloud บน Server เราต้องมีกระบวนการอีกกระบวนการนึงก็คือการ Deploy ซึ่งก็คือการเอาสิ่งนั้นขึ้นไปวางไว้อยู่บน Server แล้วก็สามารถเปิด Public ให้คนเข้ามาใช้งานได้ หลังจากได้ตัวนี้ขึ้นมา ทุกคนโอเคกับคุณภาพของงานแล้ว มันก็จะมีการ Deploy ขึ้นไปในขั้นถัดไป จะเป็น UAT ให้ผู้ใช้งานเข้ามาลองใช้ หรือว่า Deploy ขึ้นไปที่ Production เลยก็มี 
  
Developer ต้องมี Hard Skills และ Soft Skills อะไรบ้าง 
ขอแบ่งออกเป็นหลาย ๆ ส่วนแล้วกันครับ ส่วนแรกจะเป็นส่วนของการใช้ Tools ที่ Developer ทุกคนต้องใช้ก็จะเป็น IDE หรือที่เราเรียกว่า Integrated Development Environment ตัวนี้ก็จะเป็น Tools ที่ช่วยให้เราเขียนโปรแกรมอีกทีนึง Tools ตัวนี้ในแต่ละภาษา ในแต่ละ Tech Stack มันก็จะมีความนิยม มี Tools ที่ต่างกันออกไป อย่างพวก Java ก็จะมี IntelliJIDEA หรือ Eclipse หรือบางคนก็จะใช้ VS Code ตรงนี้ก็จะอยู่ที่ความชื่นชอบของแต่ละคน 
  
ต่อมาก็จะเป็น Logical Skill ครับ การคิดคำนวณ พวก Logic วิธีการคิดที่มีตรรกะ มีเหตุผลครับ แล้วก็จะเป็นเรื่องของหลักในการ Coding และโครงสร้างในการ Coding ครับ Programmer ที่ดีเขาจะมีแพทเทิร์นในการเขียนโปรแกรมแตกต่างกันออกไป โปรแกรม 1 โปรแกรม Programmer 2 คนอาจจะเขียนออกมาได้ไม่เหมือนกัน ซึ่งเขาก็จะมีหลักการ เช่น ต้องเขียนให้อ่านง่าย เข้าใจง่าย สามารถเอา Code มาใช้ซ้ำได้ และเปิดให้ Code ของเราสามารถ Extend เพื่อที่จะเพิ่มความสามารถของมันได้ในอนาคต ส่วนสุดท้ายของ Skills ที่ผมคิดว่าต้องมีก็จะเป็นความรู้พื้นฐานเกี่ยวกับเทคโนโลยี เช่น พวก Network Standards ที่ใช้ในการติดต่อกันของโปรแกรมต่าง ๆ แล้วก็จะเป็นส่วนของ Security ตรงนี้ก็เป็นเรื่องสำคัญที่ควรจะต้องรู้ครับ 
  
Soft Skills ที่ต้องมีแน่ ๆ เลยก็คือการสื่อสาร เพราะว่าเราต้องทำงานเป็นทีมอยู่แล้ว การสื่อสารให้ทุกคนเข้าใจตรงกันก็เป็นส่วนที่มีความสำคัญมาก พอพูดถึงการสื่อสาร สิ่งที่ขาดไม่ได้เลยก็จะเป็นภาษาครับผม นอกจากจะทำให้เราสามารถพูดคุยสื่อสารกับคนทั้งในทีม นอกทีม อย่างลูกค้า ถ้าเขาเป็นคนต่างชาติ เราก็สามารถใช้ภาษาพูดคุยสื่อสารกับเขาได้ มีเรื่องของความสามารถในการเข้าถึงแหล่งความรู้ต่าง ๆ ด้วย เพราะว่าแหล่งความรู้ส่วนใหญ่ในคอร์สออนไลน์ หนังสือ ส่วนมากเป็นภาษาอังกฤษ ถ้าเรามีความรู้ที่เป็นภาษาอังกฤษ เราก็จะสามารถพัฒนาตัวเองได้รวดเร็วขึ้นด้วยครับ  
  
นอกจากนี้ก็ยังมีเรื่องของทักษะการนำเสนอ แล้วก็ทักษะการวาดภาพเพราะว่าบางครั้ง ส่วนใหญ่โพสต์ของเราบางทีมันมีความซับซ้อน เกี่ยวโยงกับระบบอื่น ๆ การที่เราสามารถวาดภาพ วาดแผนผัง แล้วก็สามารถอธิบายการทำงานของระบบของเราได้ก็จะทำให้เราสามารถพูดคุย สื่อสารกันได้อย่างเข้าใจตรงกัน ลดความผิดพลาดในอนาคตได้ด้วยครับ 

สำหรับคนที่อยากจะมาทำงานสาย Developer โดยเฉพาะน้อง ๆ ที่ยังเรียนอยู่ต้องเตรียมตัวยังไงบ้าง 
สำหรับผมคิดว่าดีที่สุดเลยก็เป็นการเรียนในคณะที่เกี่ยวกับซอฟต์แวร์หรือเทคโนโลยีสารสนเทศ พวก IT ก็จะมีวิศวกรรมคอมพิวเตอร์ วิทยาการคอมพิวเตอร์ หรือวิศวกรรมซอฟต์แวร์ Tech Stack หรือ เทคโนโลยีที่อยู่ในสายงาน Developer เปลี่ยนแปลงค่อนข้างเร็ว บางครั้งหลักสูตรที่มหาวิทยาลัยมีก็อาจจะอัปเดตตามไม่ทัน ถ้าจะให้ผมแนะนำก็คือถ้าเรารู้อยู่แล้วว่าเราชอบอะไร ธุรกิจจะมีพวก Tech Stack ที่ไม่เหมือนกัน จะมี Tech Stack ที่ได้รับความนิยมแตกต่างกันไป ถ้าเรารู้ตรงนี้อยู่แล้วเราก็เข้าไปจับ เข้าไปศึกษาใน GitHub Online Community ที่สามารถโหลด Code เข้ามาดูได้ แน่นอนว่าถ้าเรามีประสบการณ์ตรงจากการฝีกงานก็จะช่วยให้เราพัฒนาตัวเองหรือรู้ว่าเราชอบอะไรได้ง่ายขึ้นด้วยครับ 
  
คนที่อยากย้ายสายงาน เริ่มต้นจากศูนย์ เป็น Developer ได้ไหม  
คนที่อยาก Reskill เพื่อย้ายสายงาน ทำได้แน่นอนครับ แล้วยิ่งเป็นสายงาน Developer เรามี Material มีคอร์สออนไลน์ มีวิดีโอในยูทูปที่เราสามารถไปเรียนฟรี ๆ แล้วก็ยังมีคอร์สออนไลน์ที่เราเสียเงินจ่าย เราสามารถได้ใบรับรองมาใส่ในเรซูเม่เราได้ด้วย อย่างที่บอกไป Tech Stack ในสายงานของเรามีหลากหลายมากและพัฒนาค่อนข้างเร็วด้วย เพราะฉะนั้น ถ้าเราอยากทำงานที่ NocNoc เราก็ไปดูว่า NocNoc เปิดรับสมัครงานโดยใช้ Tech Stack ตัวไหน เราก็จะมี Java ที่ใช้ในตัว Back-End ทั่วไป แล้วก็จะมี Golang ที่เป็น New Generation Back-End Service ของเรา ถ้าเป็น Front-End เราก็จะมี React ครับ เป็น ReactJS ที่เอาไว้ใช้ทำตัว Front-End 
  
อันที่ผมใช้อยู่ทั่ว ๆ ไป ก็จะมี Google Feed ซึ่งค่อนข้าง Personalize ความสนใจของเราได้ค่อนข้างดี อีกส่วนหนึ่งก็จะเป็น Medium เป็นเว็บไซต์ที่รวบรวมบทความออนไลน์ที่ค่อนข้างมีคุณภาพ และเราก็สามารถที่จะไปติดตามผู้เขียนที่เราชื่นชอบ หรือว่าติดตามหัวข้อที่เราสนใจได้ครับ ถ้าเราสนใจพวก Open Source Community เขาจะมี Code ที่เปิดให้พวกเราสามารถเข้าไปอ่านเข้าไปศึกษา หรือว่าเข้าไปเขียน Code เพื่อพัฒนาตัวโปรแกรมที่พวกเขามีอยู่ได้ด้วยครับ 
  
สมัครงาน Developer ต้องเตรียมเรซูเม่ยังไง พอร์ตฟอลิโอจำเป็นขนาดไหน เตรียมตัวสัมภาษณ์ยังไงบ้าง 
เวลาดูเรซูเม่ อย่างแรกที่ผมดูเลยคือ ผู้สมัครเขาถนัดตรงไหน มี Tech Stack  ตัวไหน หรือ Tools อะไรที่ถนัด ถัดจากนั้นผมจะมาเริ่มดูส่วนที่เป็นประสบการณ์การทำงาน ดูว่าเขาเคยทำอะไรมาบ้าง แล้วมันสามารถมาปรับใช้กับตำแหน่งที่เราเปิดรับได้หรือเปล่า ถามว่าพอร์ตฯ จำเป็นไหม ก็ไม่ได้จำเป็นครับ เป็นคะแนนเสริม คือถ้ามีก็ดี เพราะว่าเราเข้าใจครับว่า Developer ส่วนใหญ่ เวลาเราทำงาน Code หรือว่า Product มันเป็นทรัพย์สินของบริษัท เราไม่สามารถที่จะเอามาเผยแพร่ได้ แต่ว่าถ้าเรามี GitHub Account ที่เรามีส่วนร่วมใน Open Source Community เช่น เราเข้าไปแก้บั๊กให้คนอื่น แล้วเราก็แนบมาในเรซูเม่ตรงนี้ก็จะทำให้ผู้สมัครมีความโดดเด่นขึ้นมาได้ 
  
ส่วนการสัมภาษณ์ เราจะมีการถามคำถามที่เป็นความรู้ทั่วไปหรือว่าเทคโนโลยี ผมคิดว่าค่อนข้างสำคัญเพราะว่าถ้าเรามีความรู้พื้นฐาน เราจะสามารถเอามาปรับใช้เอามาใช้งานกับงานที่เรายังคิดไม่ถึงได้ในอนาคต และมันก็จะช่วยลดความผิดพลาดและทำให้เราสร้างโปรแกรมที่มันมีมาตรฐานได้ครับ ส่วนใหญ่เราจะอยากรู้ว่าผู้สมัครมีความรู้จริง ๆ ในสิ่งที่เขาเขียนในเรซูเม่หรือเปล่า ถ้าเขาสามารถตอบได้ว่าสิ่งที่เขาเขียนมามันคืออะไร มันทำงานยังไง แล้วถ้าเขารู้ด้วยว่าทำไมมันถึงทำงานแบบนั้น แล้วก็สามารถเปรียบเทียบถึงข้อดีข้อเสียของ Tools หรือวิธีการทำงานต่าง ๆ ได้ ก็จะทำให้ผู้สมัครมีความโดดเด่นขึ้นมามากเลยครับ 
 
ใครอยากรู้จักงาน  Developer ให้มากขึ้นเข้าไปชมสัมภาษณ์แบบเต็ม ๆ ได้ที่ > คลิก <  
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่