สวัสดีครับน้องๆ ทุกคน พี่เข้าใจว่าการที่น้อง ๆ ได้อ่านบทความนี้แสดงว่าเราใกล้ที่จะเรียนจบ ป.ตรี และพร้อมที่จะก้าวเข้าสู่ตลาดงานของสายอาชีพคอมพิวเตอร์แล้วสินะครับ อย่างที่พวกเราทราบกันมาว่า ปัจจุบันพวกเราอยู่ในโลกที่เรียกได้ว่าเทคโนโลยีนั้นแทบจะเป็นส่วนหนึ่งของชีวิต ตั้งแต่ตื่นนอน กินข้าว เรียน ทำงาน หรือแม้กระทั่งตอนนอนก็ตามที และที่สำคัญเทคโนโลยีมันไม่เคยอยู่นิ่ง ๆ ซะด้วยสิ มันเปลี่ยนแปลงตลอดเวลา
โดย คุณอนุชาติ อัศววิวัฒน์พงศ์
Business Unit Manager, MFEC
(Backend Developer) สายงานหลังบ้าน คืออะไร ?
images from dribbble by Yasin Ghorust
มันคือการเขียนโค้ดที่อิงตามสายงานธุรกิจ (Business) ไม่ว่าจะเป็น ระบบธนาคาร, ระบบสต็อกสินค้า, ระบบจ่ายเงิน ให้สามารถทำงานได้ตรงตามความต้องการของลูกค้า สายงานหลังบ้านต้องทำทุกอย่าง ทั้งเขียน logic ทางธุรกิจ เขียนโค้ดติดต่อฐานข้อมูล เขียนโค้ดส่วนต่อประสานเรียกใช้งานระบบอื่น ๆ เขียนทุกอย่างยกเว้นการเขียนหน้าจอส่วนต่อประสานกับผู้ใช้งาน (UX-UI Interface) อันนั้นจะเป็นหน้าที่ของสายงานหน้าบ้าน (Frontend Developer)
images from dribbble by Yasin Ghorust
มาถึงตรงจุดนี้น้องๆ คงอยากจะบอกว่า อห (ย่อมาจาก โอ้โห้) ทำไมส่วนที่ต้องรับผิดชอบมันเยอะขนาดนี้ แล้วผม/หนูที่เป็นนิสิต/นักศึกษาจบใหม่ จะต้องมีความรู้ถึงไหนระดับถึงจะเพียงพอต่อการสมัครงานเป็นนักพัฒนาระบบสายงานหลังบ้านได้ ไม่ต้องกังวลไปนะครับสิ่งที่พี่จะแนะนำในการเตรียมความพร้อมและทักษะที่จำเป็นสำหรับนักพัฒนาระบบสายงานหลังบ้าน มีดังนี้
-
เข้าใจในกระบวนการทางความคิดแบบตรรกะศาสตร์
ความเป็นเหตุเป็นผล เป็นขั้นเป็นตอน ( Logic – Reason – Process )
สาขาคอมพิวเตอร์ที่เราเรียนอยู่ ส่วนใหญ่ก็จะอยู่ภายใต้พื้นฐานความรู้ของวิทยาศาสตร์ วิศวกรรมศาสตร์ ตรงจุดนี้เป็นจุดเด่นของพวกเราอยู่แล้วที่สามารถจะมองออกการทำงานของสิ่งต่าง ๆ ออกเป็นขั้นตอน เข้าใจที่มาเหตุผลของสิ่งที่กำลังสนใจ พร้อมที่จะค้นคว้าข้อมูลเพิ่มเติมก่อนจะเชื่อสิ่งใดสิ่งหนึ่ง และกล้าตั้งคำถามเมื่อเห็นสิ่งที่เกิดขึ้นไม่เป็นไปตามสิ่งที่เข้าใจ พี่หวังว่าจะเป็นไปตามที่พี่เข้าใจนะ ^^\
-
ทักษะพื้นฐานในการเขียนโปรแกรม
ทักษะอันนี้เรียกได้ว่า เป็นเครื่องมือทำมาหากินเลยก็ว่าได้ ปัจจุบันมีภาษาทางคอมพิวเตอร์ต่างๆ มากมายให้เลือก ตามวิวัฒนาการของภาษา ซึ่งไม่ว่าจะมีภาษาใหม่ๆ เกิดขึ้นกี่ภาษาก็ตาม สิ่งที่ไม่เคยเปลี่ยนแปลงไปเลย คือ ชุดคำสั่งพื้นฐานของการเขียนโค้ด ไม่ว่าจะเป็น การประกาศตัวแปร คำสั่งเงื่อนไข คำสั่งวนรอบ ฟังก์ชัน คลาส try-catch หรือแม้กระทั่งหลักการเขียนโค้ดแบบเชิงวัตถุ (OOP) ก็ตามที หัวใจของภาษาต่าง ๆ มันก็คือสิ่งเหล่านี้เนี่ยละ แค่เปลี่ยนการเรียกใช้งานให้สะดวกและง่ายขึ้นเท่านั้นเอง คติที่พี่จะชอบบอกน้อง ๆ ในทีมอยู่เสมอนั้นก็คือ “กระบวนท่าสำคัญกว่าอาวุธ ถือกิ่งไม้ก็สามารถร่ายรำออกมาเป็นท่วงท่าที่สวยงามได้เฉกเช่นกระบี่” ฉะนั้นปูพื้นฐานส่วนนี้ให้แน่น ๆ ไว้นะ
-
มีไหวพริบในการแก้ไขปัญหา
ในการทำงานไม่มีใครที่สามารถคอยให้คำแนะนำช่วยเหลือเราได้ตลอดเวลา ฉะนั้น “ตนแลเป็นที่พึ่งแห่งตน” ฝึกการค้นหาข้อมูลเมื่อเกิดปัญหาระหว่างเขียนโปรแกรม หรือทำวิจัย (Prove of Concept) ในการนำความรู้ใหม่ ๆ มาใช้งานภายในโปรเจคอยู่เรื่อยๆ ให้เป็นนิสัย
-
การสื่อสารกับคนอื่น
เรื่องนี้เป็นเรื่องสำคัญไม่แพ้การเขียนโปรแกรมเลย และเป็นเรื่องที่ถือได้ว่าเป็นจุดอ่อนที่สุดของนักพัฒนาระบบเลย คือ “คุยกับคนอื่นไม่รู้เรื่อง” “รู้นะว่าทำงานยังไง แต่อธิบายออกเป็นภาษาให้คนเข้าใจไม่ได้” ฉะนั้นพยายามฝึกนำเสนองาน ความรู้ หรือความเก่งของตัวให้มาก ๆ ถ้าเป็นคนที่พูดไม่เก่ง พี่แนะนำให้วาดออกมาเป็นแผนภาพ Diagram ช่วยนำเสนอความคิดของตัวเองออกมาครับ … “ความเก่ง” กับ “โม้” เป็นเส้นกั้นบาง ๆ ฉะนั้นควรที่จะเลือกพูดความจริงตามที่เราเข้าใจในขณะที่สัมภาษณ์งานจะดีกว่า เพราะคนสัมภาษณ์เขามองออกแต่แค่ไม่พูดออกมาเท่านั้นเอง ^^
-
Technology / Framework / Tools ใหม่ๆ รู้บ้างก็ดี แต่ไม่ต้องซีเรียสมาก
Technology / Framework / Tools มีมากมาย แต่ละองค์กรก็ใช้ไม่เหมือนกัน พี่แนะนำว่าให้ดูว่า บริษัทที่เขารับสมัครเขาต้องการหรือใช้งานตัวไหนอยู่ ก็ลองไปศึกษาโดยตรงให้รู้ว่า ไว้ใช้ทำอะไร ทำงานยังไง ช่วยทุ่นแรงเรายังไง ไม่ต้องถึงขนาดไปเรียนเสริมจนกระทั้งเชี่ยวชาญแล้วค่อยสมัครงานก็ได้นะ เพราะสุดท้ายเราก็ต้องมาเรียนรู้ใหม่อยู่ดีตอนเข้าทำงานในองค์กร สิ่งที่พี่อยากจะแนะนำ คือ เลือกเรียนในรายวิชาที่เราชอบ เรียนให้มีความสุขในรั้วมหาวิทยาลัยที่เหลือ แล้วมานำเสนอความรู้ที่ได้ โปรเจคจบที่ทำมา ให้ทางบริษัทฟัง เขาจะเลือกเราหรือไม่ก็ดูจากสิ่งที่เรารู้และความตั้งใจของเรา ถ้าโชคดีตรงกับเรื่องที่รู้อยู่แล้ว ก็ใช้เวลาเรียนรู้เร็วหน่อย ถ้าโชคไม่ดีก็ใช้เวลานานหน่อย แต่ก็ไม่น่าจะยากเกินความตั้งใจของเราอยู่แล้วล่ะ