เล่าประสบการณ์ทดลองงานที่ CNXDevSoft

Siradanai Namtep
CnxDevSoft
Published in
2 min readFeb 11, 2024

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

ผมไทเกอร์ จบปริญญาตรีจากคณะเทคนิคการแพทย์ สาขา รังสีเทคนิค มหาวิทยาลัยเชียงใหม่….ใช่ครับผมเป็นคนนึงที่จบไม่ตรงสายแต่ดันมีความอยากที่จะเบนสายมาทำงานเป็น Developer เลยตัดสินใจสมัคร Bootcamp และฝึกทักษะด้วยตัวเอง เน้นด้าน Frontend รวมระยะเวลาประมาณ 1 ปี จนได้มาลงเอยมาทำงานตำแหน่ง Software Engineer ที่บริษัทนี้ซึ่งจะดูแลเรื่อง Frontend เป็นหลัก จนตอนนี้ก็ถึงช่วงสุดท้ายของการทดลองงานแล้วครับ

ช่วงแรกของการทดลองงาน

ผมยอมรับตามตรงเลยว่าตั้งแต่ได้รับ Offer ที่บริษัทนี้ ใจนึงผมก็ดีใจมากเพราะในที่สุดก็สามารถย้ายสายงานได้สำเร็จแถมลักษณะการทำงานของที่นี่หลักๆ จะเป็น Remote Working แบบที่ผมสนใจ ส่วนอีกใจนึงกังวลมากๆ ว่าตัวเองจะรับผิดชอบภาระงานได้ไหม เพราะทักษะที่ฝึกฝนมานั้นไม่ได้เอามาใช้ในงานทั้งหมด หนึ่งในนั้นคือ IDE จากเดิมผมใช้ Visual Studio Code ต้องเปลี่ยนมาเป็น Visual Studio ซึ่งตัว VS นั้นมีเครื่องมือมากมายให้เลือกใช้จนตาลายเลยครับ ต้องใช้เวลาพอสมควรในการปรับตัวใช้ให้คล่อง แต่ก็มีข้อดีอย่างนึงคือใน VS Code การใช้คำสั่ง Git ต่างๆ นั้นต้องพิมพ์ผ่าน Command Line พอมี GUI ใน VS เข้ามาช่วยก็ทำให้ผมเข้าใจขั้นตอนการใช้คำสั่ง Git และช่วยให้การทำงานง่ายขึ้นเยอะเลยครับ

IDE หรือ Integrated Development Environments เป็นแอปพลิเคชันซอฟต์แวร์ที่มีชุดเครื่องมือและคุณสมบัติที่ครอบคลุมในการพัฒนาโปรแกรมตลอดการทำงานทั้งหมด โดยจะนำส่วนประกอบของเครื่องมือต่างๆมารวมกันเช่น Code Editor, การ Compiler หรือ Interpreter, Debugger และการสร้าง Automation tools เป็นต้น

เรื่องกังวลอีกข้อคือโปรเจคส่วนใหญ่ภายในบริษัทจะใช้ภาษา C# ในส่วน Backend ซึ่งตัวผมเองไม่เคยใช้ C# มาก่อนเลย ถึงแม้ผมจะดูแล Frontend เป็นหลักแต่ก็ปฏิเสธไม่ได้ว่าบ้างครั้งจะต้องมีการเขียน C# เพื่อดึงข้อมูลและจัดการข้อมูลจากหลังบ้าน ช่วงแรกๆแอบท้อหนักมากแต่ก็ได้เพื่อนๆ ในทีมเป็นที่ปรึกษาและค่อยให้ความช่วยเหลือมาตลอด

โปรเจคที่ได้รับมอบหมาย

โปรเจคแรก — Web Application

โปรเจคแรกที่ได้รับมอบหมายคือโปรเจค Demo ซึ่งเป็นโปรเจคการสร้างเว็บไซต์ที่ใช้ระแบบหลังบ้านเป็น Orchard Core และตามความเข้าใจของผมโปรเจคนี้ถูกพัฒนาขึ้นมาเพื่อฝึกฝนทักษะของคนในทีมซึ่งเป็นโปรเจคที่ถูกพัฒนาโดย Developer ภายในทีมมาก่อนแล้ว หน้าที่ของผมคือการนำโปรเจคนี้มาพัฒนาต่อในส่วนของ Frontend ตั้งแต่การออกแบบ User Experience (UX), User Interface (UI) และการ Coding ซึ่งความท้าทายคือการออกแบบ UX/UI ตัวผมเองไม่ค่อยถนัดด้านนี้สักเท่าไหร่และไม่ทราบว่า UX ที่ดีกับ UI ที่สวยงามควรจะต้องเป็นยังไง เลยต้องไปหาความรู้ในส่วนนี้เพิ่ม และไปดูเว็บตัวอย่างที่เกี่ยวข้องกับโปรเจคว่ามีการจัด Layout หน้าเว็บอย่างไร, มีขั้นตอนการทำงานอย่างไรให้สะดวกต่อผู้ใช้งาน หลังจากหาข้อมูลก็จัดทำเป็นเอกสารนำไปเสนอกับพี่ๆ และขอคำแนะนำจนลงตัวถัดมาคือการเขียนโค้ดเพื่อสร้างหน้าเว็บให้เหมือนกับที่ตนเองออกเเบบไว้

OrchardCore
Orchard Core — GitHub

ในส่วนของการเขียนโค้ดความยากคือการพัฒนาโปรเจคต่อจาก Developer คนก่อนซึ่งจะต้องไปไล่ดูว่าภายในโปรเจคนั้นมีขึ้นตอนการทำงานยังไง โค้ดส่วนไหนที่มีอยู่แล้วสามารถนำไปใช้ต่อได้ หรือส่วนไหนที่ไม่สามารถแก้ไขได้ การพัฒนาโปรเจคภายใต้ข้อจำกัดนี้ก็ดูเหมือนจะมีง่ายตรงที่เราไม่ได้ต้องเริ่มโปรเจคมาตั้งแต่ 0 แต่ก็ยากตอนทำความเข้าใจรายละเอียดทั้งหมด อย่างเช่น ตอนเจอบัคกว่าจะไล่ไปจนเจอต้นเหตุของปัญหาก็ยากพอสมควรเลยครับ อีกหนึ่งความยากคือการศึกษาเพื่อใช้งาน Orchard Core ซึ่งเป็น CMS Framework ที่ใช้ C# ในการจัดการข้อมูลเพื่อนำมาแสดงบนหน้าเว็บ กว่าจะเข้าใจหลักการทำงานและใช้งานคำสั่งต่างๆ เป็นก็ใช้เวลาพอสมควรเลยครับ

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

CMS ย่อมาจาก Content Management System เป็นระบบที่นำมาช่วยในการสร้างและบริหารเว็บไซต์แบบสำเร็จรูปมีโปรแกรมประยุกต์แบบพร้อมใช้งานอาทิเช่น ระบบจัดการบทความและข่าวสาร (News and Story), ระบบจัดการบทวิจารณ์ (Review), ระบบจัดการสมาชิก (Mamber) และระบบการวิเคราะห์และตรวจสอบสถิติความนิยมในเว็บไซต์ (Analysis, Tracking and Statistics) เป็นต้น

โปรเจคที่สอง —Mobile Application

หลังจากพัฒนาโปรเจคแรกเสร็จก็กินเวลาไปเกือบ 2 เดือนกว่าๆ หรือเกือบจะเป็นเวลาทั้งหมดของช่วงทดลองงานเแล้ว โปรเจคที่สองที่ได้รับมอบหมายคือการพัฒนาแอปพลิเคชันด้วย .NET MAUI พึ่งจะยกภูเขาออกจากอก (โปรเจคแรก)ได้ไม่นานก็มีเรื่องท้าทายเข้ามาอีกแล้วครับ

Microsoft — Using .NET MAUI to Build a Mobile App

.NET MAUI (ย่อมาจาก Multi-platform App UI อ่านว่า “เมาอิ” ให้ดูเป็นภาษาฮาวายเท่ๆ) เป็นชุดเครื่องมือเขียน UI ของแอปพลิเคชัน .NET ข้ามแพลตฟอร์ม สามารถทำงานได้ทั้งบนวินโดวส์ แมค Android iOS

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

XAML, Extensible Application Markup Language, ไฟล์นามสกุลอธิบายองค์ประกอบอินเทอร์เฟซผู้ใช้สำหรับแอปพลิเคชันซอฟต์แวร์ซึ่งใช้งานและเข้าใจง่าย XAML (ออกเสียงว่า “zammel”) ได้รับการพัฒนาโดย Microsoft โดยมีจุดประสงค์เฉพาะสำหรับการสร้างส่วนต่อประสานกับผู้ใช้

ความรู้สึกและสิ่งที่ได้จากการทดลองงาน

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

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

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

สำหรับเป้าหมายในอนาคตที่หวังไว้กับตัวเองในระยะสั้นนี้คือการพัฒนาตัวเองต่อไปเรื่อยๆ สามารถเขียน Logic อย่างรัดกุมให้เกิด Error และ Bug น้อยที่สุด หรือไม่ให้เกิดขึ้นเลยยิ่งดี ส่วนในระยะยาวคือการสะสมประการณ์ ฝึกทักษะจนเป็น Full-stack Developer สามารถจบโปรเจคคนเดียวได้ครับ

สุดท้ายนี้ขอขอบคุณบริษัท CNXDevSoft ที่ให้โอกาสผมได้เข้ามาเป็นสวนหนึ่งของทีมและให้พื้นที่ผมได้เติบโตในฐานะ Developer ครับ

Happy coding:)

อ้างอิงจาก:

  1. IDE คืออะไร?, จาก: https://www.ert.co.th/ide/
  2. มาทำความรู้จักกับ CMS กันก่อน, จาก: https://www.gotoknow.org/posts/73029
  3. .NET MAUI ชุดสร้าง UI ข้ามแพลตฟอร์มออกตัวจริง เขียน C# ลง Windows, Mac, iOS, Android, จาก: https://www.blognone.com/node/128635#:~:text=.NET%20MAUI%20(ย่อมาจาก,เครื่องมือเขียน%20UI%20ของแอพพลิเคชัน%20.
  4. ไฟล์ XAML คืออะไร?, จาก: https://docs.fileformat.com/th/web/xaml/

--

--