5 พื้นฐานสำหรับคนที่อยากทำงานเป็น Software Developer

Naruepat Payachai
I GEAR GEEK
Published in
2 min readMay 20, 2019

น้อง ๆ หลายคนเคยสงสัยกันไหมว่า..ถ้าอยากเลือกเดินทางเป็น Software Developer แล้ว ต้องเตรียมตัวยังไงดี จะเริ่มศึกษาอะไรก่อนบ้าง จากคำถามที่น้อง ๆ หลายคนมักจะถามพี่ ๆ วันนี้จะขอรวบรวมคำถามยอดฮิต พร้อมตอบคำถามกัน

1. Architecture

Architecture หรือ สถาปัตยกรรม เป็นสิ่งแรกที่ Software Developer ทุกคนควรจะรู้ว่าส่วนไหนทำงานยังไง ใช้อะไร อยู่ตรงไหน เพื่อที่เวลาเราเจอปัญหาหรือแก้ไขมัน จะได้แก้ไขปัญหาได้รวดเร็วและถูกจุด และช่วยให้การออกแบบการทำงานรัดกุม ลดปัญหาลงอีกด้วย

System Design and Flows — photo credit for visusllc.com

นอกจากนั้นความเข้าใจใน Architecture นั้นก็จะช่วยให้งานต่อ ๆ ไป ที่มีฟีเจอร์ใกล้เคียงกัน จะช่วยให้เราวางแผนได้ง่ายขึ้น และอธิบายให้คนในทีมได้ดียิ่งขึ้นอีกด้วย

2. Component-Based Architecture

Credit hackernoon

ส่วนประกอบหลัก (Component-Based) ที่สำคัญของการทำ Website Frontend ก็คือการวางโครงสร้าง และเข้าใจโครงสร้างหลัก ว่าส่วนคืออะไร ต้องแยกเป็นส่วนประกอบ (Component) ไว้แบบไหน เช่น Layout, Navbar, Menu, Header ฯลฯ เพื่อที่จะช่วยให้การทำงานและโค้ดเป็นสัดส่วน ง่ายต่อการ Maintenance ในอนาคตอีกด้วย

3. React, Vue.js, AngularJS

ในยุคนี้ (2017–2019) คงหนีไม่พ้นกับ SPA (Single Page Application) หลายคนคงคุ้นเคยกันมา ควรที่จะต้องรู้จักบ้าง ลองใช้บ้าง เพราะหลายบริษัท รวมถึง Developer หลายคนเริ่มหันมาสนใจ Tech Stack นี้กันมากขึ้นเรื่อย ๆ หากใครที่มีความเข้าใจในภาพรวมได้ รู้จักประยุกต์นำมาลองใช้ได้ ถือว่าเป็นการเริ่มต้นเพื่อเก็บประสบการณ์ที่ดีได้

4. Design Patterns

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

Design Pattern ถือว่าเป็นอีกพื้นฐานที่ Web Developer ควรจะต้องรู้จักหรือควรตะหนักถึงกันด้วย เพราะจะช่วยให้งานของท่าน ออกมาได้มีคุณภาพ และไม่ก่อให้เกิดปัญหามากมายในอนาคตได้

5. Algorithms, Data-Structures

หากใครที่อยากเป็น Web Developer ที่ยังไม่มีประสบการณ์ การเริ่มต้นทำ Website ควรเริ่มจาก Algorithm (ขั้นตอนวิธี) และ Data-Structure (โครงสร้างข้อมูล) ว่าอะไรควรจะทำยังไง และวางโครงสร้างแบบไหนดี ที่จะทำให้สิ่งเหล่านี้ง่ายต่อการพัฒนาได้ยิ่งขึ้น

--

--

Naruepat Payachai
I GEAR GEEK

I’m a programmer and I like Online Marketing (SEO, Social Media, eCommerce)