Frontend and Backend Developer เป็นการแยกส่วนงานความรับผิดชอบบน client-side และ server-side ซึ่งซอฟต์แวร์จะทำงานสำเร็จต้องอาศัยการทำงานทั้งสองส่วน เปรียบได้กับรถยนต์ เราจะมอง Frontend เป็นรูปลักษณ์ที่สามารถสัมผัสได้เช่น สี ล้อแมก ไฟต่างๆของรถ ประตู พวงมาลัย คอนโซลรถ เป็นซึ่งเราจะสามารถมองเห็นหรือสัมผัสได้ ซึ่งตรงข้ามกับ Backend ที่เรามองไม่เห็นแต่รู้ว่ามันสามารถทำงานได้เช่น ระบบเครื่องยนต์ ระบบเกียร์ ระบบน้ำมันเชื้อเพลิง ระบบขับเคลื่อนอัตโนมัติ เป็นต้น
Frontend คืออะไร
Frontend Developer จะรับผิดชอบงานในส่วนของ client-side เป็นส่วนที่มีปฏิสัมพันธ์กับผู้ใช้งาน ที่อยู่บนเว็บไซต์หรือ Application ต่างๆ เพื่อช่วยให้ผู้ใช้งานมีปฏิสัมพันธ์กับระบบอย่างสะดวกสบายเช่น สีบนหน้าเว็บ ปุ่มแสดงผล ข้อความ รูปภาพ Link การแสดงผลต่างๆ ภาษาที่ใช้พัฒนาได้แก่ HTML,CSS, React, Node.js, Bootstrap และ JavaScript งานในส่วนของ Frontend จะเป็นงาน Design การออกแบบเพื่อให้ผู้ใช้งานสามารถใช้งานระบบได้ดี คุณสมบัติของ Frontend Developer ควรมีดังนี้
- ออกแบบและพัฒนาหน้าเว็บให้ผู้ใช้งานเกิดประสบการณ์ที่ดีระหว่างใช้งาน(user experience)
- พัฒนา Application ให้รองรับการทำงานต่าง Browser ต่างขนาด และพัฒนาได้ทั้ง Web และ Mobile
- สามารถออกแบบหน้าเว็บได้ตาม Requirement ที่ได้มา
- มีความรู้เรื่อง Responsive และ Grid Layout
- สามารถวิเคราะห์และเพิ่มประสิทธิภาพ Performance ของเว็บไซต์ได้
- สามารถทำงานร่วมกับ Backend ได้ในการ Integration ข้อมูลต่างๆที่จะแสดงบนหน้าเว็บ
- มีความรู้ด้าน UX/UI Design
- มีความรู้ด้าน SEO
Backend คืออะไร
Backend Developer จะรับผิดชอบงานในส่วนของ server-side ส่วนที่เป็น Logic ของโปรแกรม การออกแบบข้อมูลและการจัดการข้อมูลของระบบ การออกแบบสถาปัตยกรรมของระบบ ภาษาที่ใช้พัฒนาเช่น Python, Java, C#, PHP, Ruby เป็นต้น งานในส่วนของ Backend ต้องมีการเข้าใจและเรียนรู้เทคโนโลยีใหม่ๆตลอดเวลา เพราะมักมีเทคโนโลยีใหม่ๆหรือมีการ update ซอฟต์แวร์ต่างๆอยู่ประจำ มี logic การคิดที่ดีเพื่อให้ในการออกแบบและแก้ปัญหาในวิธีการทำงานได้ คุณสมบัติของ Backend Developer ควรมีดังนี้
- สามารถออกแบบและพัฒนา API ได้
- สามารถออกแบบและสร้าง Database ได้ เช่น MySQL, Oracle DB, Kafka, MongoDB, Redis และ ElasticSearch
- มีความรู้เกี่ยวกับ Git และ Source Code Management Tools
- มีความรู้เกี่ยวกับ Object-Oriented Programming
- มีความรู้เกี่ยวกับ Microservice architecture
- ดูแลและพัฒนา Source Code ให้มีคุณภาพอยู่เสมอ
- เข้าใจและสามารถใช้งาน cloud services อย่าง Microsoft Azure หรือ AWS ได้
- สามารถเข้าใจและวิเคราะห์ปัญหาได้เมื่อซอฟต์แวร์มี Defects
- มีทักษะในการแก้ปัญหา
- ควรมีทักษะภาษาอังกฤษในระดับดีโดยเฉพาะการอ่านและเขียน
เทคโนโลยีที่ Frontend ใช้พัฒนาซอฟต์แวร์
- HTML เป็นภาษาพื้นฐานใช้ในการสร้างเว็บไซต์ให้แสดงผลบน Browser
- CSS ใช้งานร่วมกับ HTML ใช้ในการกำหนด สี Layouts ต่างๆบนเว็บ
- JavaScript เป็นภาษาที่ใช้รองรับการโต้ตอบระหว่างเว็บไซต์กับผู้ใช้งาน
เทคโนโลยีที่ Backend ใช้พัฒนาซอฟต์แวร์
- Server เป็นคอมพิวเตอร์หลักทำหน้าที่จัดการคอมพิวเตอร์อื่นๆที่เป็นลูกข่าย ควรมีความรู้ด้าน Linux ในการจัดการ Server โดย Server นั้นสามารถมีบริการหลายรูปแบบเช่น Web server, Mail server, DNS server, Database server และ Cloud Server เป็นต้น โดยเฉพาะ Cloud Server ได้รับความนิยมอย่างโดยเพราะมีความปลอดภัยและง่ายต่อการบริหารจัดการทั้ง Microsoft Azure, Google Cloud, หรือ AWS
- Database คือฐานข้อมูลหรือข้อมูลจากแหล่งต่างๆที่เก็บรวบรวมไว้แบบมีความสัมพันธ์กัน โดย Backend ควรมีความรู้ด้านการออกแบบฐานข้อมูลและการจัดการฐานข้อมูล DBMS (Database Management System) นอกจากนั้นควรมีความรู้ใน Database ที่ใช้กันอย่างแพร่หลายอย่าง MySQL, MongoDB, Oracle, SQLServer และ Radis เป็นต้น
- Programming Language เป็นภาษาหรือชุดคำสั่งที่สั่งให้คอมพิวเตอร์ทำงาน ปัจจุบันภาษาที่ใช้กันอย่างแพร่หลายเช่น
- PHP
- C++
- Java
- Python
- Node.js
- SASS
- API(Application Programming Interface) คือการทำให้ระบบสามารถเชื่อมต่อกันได้โดยผ่านตัวกลางจาก API ที่กำหนด ซึ่ง Backend เองควรมีความรู้เกี่ยวกับ REST และ SOAP API
Frontend VS Backend | งาน VS เงินเดือน
ภาษาที่ Frontend และ Backend ที่ใช้นั้นก็จะแตกต่างกันเพราะแต่ละภาษาถูกออกแบบมาอยู่แล้วว่าจะทำงานที่ฝั่ง Frontend หรือ Backend แต่สำหรับ Backend นั้นนอกจากการเขียนโปรแกรมแล้วต้องมีความรู้เรื่อง Database, Server หรือ API ด้วย งาน Frontend ส่วนใหญ่จะสนใจการใช้งานในมุมมองลูกค้าเป็นหลักแต่งานส่วนของ Backend นั้นจะสนใจส่วนของ Logic และ Algorithms ต่างๆของโปรแกรม โดยทั่วไปแล้วเงินเดือนของ Backend นั้นจะมากกว่าฝั่ง Frontend อยู่ประมาณ 20% เนื่องจากงาน Backend ใช้ความสามารถที่หลากหลายกว่าของ Frontend