เส้นทางอาชีพการเป็น Software Developer กับ ChatGPT #4
Published: 2023-04-29 15:22:55

**หากอยากเริ่มต้นเป็น Backend Developer จะต้องศึกษาอะไรบ้าง**

- ศึกษาพื้นฐาน Internet
- ศึกษาพื้นฐานการทำงานของ Computer
- ศึกษา Programming Language
- ศึกษา Version Control System
- ศึกษา คำสั่ง Command line OS เบื้องต้น
- ศึกษา ฐานข้อมูล
- ศึกษา Design Pattern
- ศึกษาการเขียน Test
- ศึกษาการ Deployment CI/CD
- ศึกษาการ Monitoring
- ศึกษาการออกแบบ API Management และ Protocol ต่างๅ
- ศึกษา Security OWASP Top 10
- ศึกษา Virtual Machine หรือ Container
- ศึกษาการออกแบบ  System Architecture 

การจะเป็น Backend Developer ที่เก่งกาจ มีเรื่องให้ศึกษามากมาย ซึ่งลำดับการเรียนรู้ การทำความเข้าใจในแต่ละคนจะไม่เท่ากัน บางคนอาจจะเข้าใจและเชี่ยวชาญบางเรื่องได้ก่อน ขึ้นอยู่กับความรู้ การฝึกฝน ประสบการณ์การเรียนรู้และลงมือทำแตกต่างกันไป ในบทความข้อเริ่มแชร์จาก Internet

**Internet คืออะไร?**
Internet หมายถึงเครือข่ายคอมพิวเตอร์ที่เชื่อมต่อกันทั่วโลกเป็นระบบโครงสร้างหนึ่งที่ใช้ในการสื่อสารแลกเปลี่ยนข้อมูลต่าง ๆ ระหว่างเครื่องคอมพิวเตอร์ ที่สามารถเชื่อมต่อกันได้ผ่านเครือข่ายอินเตอร์เน็ต (Internet Network) ที่เชื่อมต่อระหว่างเครื่องคอมพิวเตอร์จากทั่วโลกด้วยกัน ด้วยเทคโนโลยีการส่งข้อมูลแบบไอพี (IP) ซึ่งใช้โพรโตคอล TCP/IP ในการสื่อสารแลกเปลี่ยนข้อมูล ทำให้เป็นที่รู้จักกันว่าเป็นโลกออนไลน์ (Online world) ซึ่งเราสามารถเข้าถึงข้อมูลและทำรายการต่าง ๆ ผ่านอินเตอร์เน็ตได้ทุกที่ทุกเวลา ไม่ว่าจะเป็นการเข้าเว็บไซต์ สื่อสารผ่านอีเมล หรือใช้งานแอพพลิเคชันออนไลน์ต่าง ๆ อีกมากมาย

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tw43pazcv0z9dkvgo27m.png)

**Internet ทำงานอย่างไร**

Internet ทำงานโดยใช้โปรโตคอล TCP/IP (Transmission Control Protocol/Internet Protocol) ซึ่งเป็นชุดของกฎระเบียบในการสื่อสารระหว่างเครือข่ายคอมพิวเตอร์ โดย Internet เป็นเครือข่ายคอมพิวเตอร์ที่มีขนาดใหญ่และเชื่อมต่อกันได้หลายเครือข่ายคอมพิวเตอร์ทั่วโลกผ่านเทคโนโลยีเครือข่ายไร้สาย สามารถสื่อสารได้ผ่านระบบอินเทอร์เน็ต ที่เป็นพื้นที่สาธารณะที่ให้บริการเชื่อมต่อระหว่างเครือข่ายคอมพิวเตอร์ทั่วโลก โดยใช้โปรโตคอล TCP/IP เป็นเทคโนโลยีหลักในการสื่อสารข้อมูล ซึ่งส่งผ่านสื่อสารระหว่างเครือข่ายคอมพิวเตอร์ต่าง ๆ ในรูปแบบของแพคเกจข้อมูล (Data packet) โดยใช้ทางอากาศ (Wireless) หรือใช้สายเคเบิล (Wired) ในการส่งข้อมูล และมีหลายโปรแกรมและบริการที่ใช้งานบน Internet เช่น เว็บเบราว์เซอร์, อีเมล, แชท, การสื่อสารเสียงและวิดีโอ, การส่งข้อมูลไฟล์ และอื่น ๆ อีกมากมาย

**ประวัติความเป็นมาเบื้องต้นของ Internet**

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

ประวัติ Internet เริ่มต้นจากโครงข่าย ARPANET ที่ถูกสร้างขึ้นโดยองค์กร ARPA (Advanced Research Projects Agency) ของกองทัพสหรัฐฯในปี 1969 เพื่อใช้สื่อสารระหว่างฐานะวิทยาศาสตร์และศึกษาซอฟต์แวร์ โครงข่ายนี้เป็นต้นแบบในการสร้างระบบเครือข่ายคอมพิวเตอร์แบบแยกชั้น (Layered Network Architecture) ซึ่งใช้โปรโตคอล TCP/IP ที่ใช้สำหรับการส่งข้อมูลในระบบเครือข่ายคอมพิวเตอร์ และประสบความสำเร็จในการใช้งานกันมากขึ้นเรื่อย ๆ

ในช่วงปี 1980 ผู้ใช้งานเริ่มมีส่วนร่วมในการพัฒนาระบบ Internet โดยเฉพาะองค์กรวิชาการและหน่วยงานของภาครัฐที่มีการพัฒนาโครงสร้างการสื่อสารระหว่างเครือข่าย จนกระทั่งในปี 1990 ผู้ใช้งานสามารถเชื่อมต่อเข้าสู่ Internet ได้ด้วยเส้นสายโทรศัพท์แบบโมเด็ม (Modem) ทำให้ Internet กลายเป็นเครื่องมือสื่อสารที่สำคัญในการเชื่อมต่อกันทั้งในและต่างประเทศ

**Http คืออะไร**

HTTP ย่อมาจาก Hypertext Transfer Protocol คือโปรโตคอลที่ใช้ในการสื่อสารระหว่างเว็บไซต์ (Web) และเบราว์เซอร์ (Browser) หรือแอพพลิเคชันอื่น ๆ ที่สามารถเข้าถึงเว็บไซต์ได้ เป็นโปรโตคอลที่ถูกใช้งานมากที่สุดในการสื่อสารข้อมูลบนเว็บไซต์ในปัจจุบัน

HTTP ใช้วิธีการส่งข้อมูลแบบ Request-Response โดย Request จะถูกส่งจากเบราว์เซอร์ไปยังเว็บไซต์ เพื่อขอข้อมูลหรือทำการทำงานต่าง ๆ เช่น การแสดงผลเว็บไซต์ และ Response จะถูกส่งกลับมาจากเว็บไซต์ไปยังเบราว์เซอร์ เพื่อแสดงผลหรือทำงานตามที่ได้ร้องขอไว้ใน Request

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1tpnna56umohzrb0hasz.jpg)

ref: https://www.httpdebugger.com/images/article/http_protocol/http-session.jpg

**Browser คืออะไร**
Browser หรือ Web Browser เป็นโปรแกรมที่ใช้ในการแสดงผลเว็บเพจหรือเว็บไซต์บนอินเทอร์เน็ต โดยมีหน้าที่ดึงข้อมูลหน้าเว็บจากเว็บเซิร์ฟเวอร์แล้วแสดงผลให้เห็นกับผู้ใช้งานผ่านหน้าจอคอมพิวเตอร์หรืออุปกรณ์อื่นๆ เช่น โทรศัพท์มือถือ แท็บเล็ต และอื่นๆ

Browser สามารถใช้งานได้ง่ายและมีหลายเวอร์ชั่น ตัวอย่างเช่น Google Chrome, Mozilla Firefox, Safari, Microsoft Edge, และ Opera เป็นต้น โดยแต่ละเวอร์ชั่นอาจมีความสามารถและการใช้งานที่แตกต่างกันไปตามผู้พัฒนาและผู้ใช้งานที่ต้องการใช้งานในแบบต่างๆ

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fuk3enxluy6b3kjujjr1.jpeg)

ref: https://media.coschedule.com/uploads/2022/07/ivrpowers-web-browser.007.jpeg

**Http ทำงานอย่างไร**
HTTP (Hypertext Transfer Protocol) เป็นโปรโตคอลที่ใช้ในการสื่อสารระหว่างเว็บเบราว์เซอร์และเว็บเซิร์ฟเวอร์ โดยมีหน้าที่ส่งข้อมูลระหว่างคอมพิวเตอร์กันแบบ stateless (ไม่มีสถานะการติดต่อกัน) ด้วยข้อมูลแบบข้อความ (text) รวมถึงไฟล์เพื่อแสดงผลหน้าเว็บไซต์ต่าง ๆ ซึ่งสามารถรองรับการติดต่อสื่อสารระหว่างเว็บเบราว์เซอร์และเว็บเซิร์ฟเวอร์ได้โดยมีการทำงานดังนี้

ผู้ใช้งานเปิดเว็บเบราว์เซอร์และพิมพ์ URL (Uniform Resource Locator) เพื่อเข้าถึงเว็บไซต์ที่ต้องการเข้าชม

เว็บเบราว์เซอร์จะส่ง HTTP Request ขอข้อมูลจากเว็บเซิร์ฟเวอร์โดยใช้โปรโตคอล HTTP โดยข้อมูล Request จะประกอบด้วย Method (GET, POST, PUT, DELETE เป็นต้น) และ Header ซึ่งจะมีข้อมูลเกี่ยวกับ Request เช่น Host, User-Agent, Accept เป็นต้น

เว็บเซิร์ฟเวอร์จะรับ HTTP Request และตรวจสอบการขอข้อมูล ถ้าขอข้อมูลถูกต้องและถูกอนุญาตให้เข้าถึง จะทำการส่ง HTTP Response กลับไปยังเว็บเบราว์เซอร์ โดยข้อมูล Response จะประกอบด้วย Status Code (200, 404, 500 เป็นต้น) และ Header ซึ่งจะมีข้อมูลเกี่ยวกับ Response เช่น Content-Type, Content-Length เป็นต้น รวมถึง Body ซึ่งจะประกอบด้วยข้อมูลหรือไฟล์ต่าง ๆ

**TCP/IP คืออะไร ทำงานอย่างไร ต่างจาก Http อย่างไร**
TCP/IP (Transmission Control Protocol/Internet Protocol) คือชุดของโปรโตคอลสำหรับการสื่อสารข้อมูลในระบบเครือข่ายอินเทอร์เน็ต ซึ่งมีหน้าที่ควบคุมการส่งข้อมูลระหว่างอุปกรณ์เครือข่ายต่างๆ โดยทำหน้าที่แบ่งแยกข้อมูลออกเป็นหลายช่วง แล้วส่งผ่านเครือข่ายอินเทอร์เน็ตไปยังอุปกรณ์ปลายทาง

โปรโตคอล TCP/IP ประกอบด้วยหลายชั้น โดยแต่ละชั้นมีหน้าที่แตกต่างกันไป ดังนั้นการสื่อสารข้อมูลจะต้องผ่านหลายชั้นเพื่อให้ถึงปลายทาง
แต่ HTTP (Hypertext Transfer Protocol) เป็นโปรโตคอลสำหรับการสื่อสารข้อมูลในรูปแบบของเว็บเพจ (web page) โดย HTTP เป็นส่วนหนึ่งของโปรโตคอลระดับแอปพลิเคชันของ TCP/IP และใช้ในการร้องขอ (request) และส่งคำตอบ (response) เมื่อมีการติดต่อกันระหว่างเว็บเบราว์เซอร์กับเว็บเซิร์ฟเวอร์ (web server) ที่เชื่อมต่อกันผ่านโปรโตคอล TCP/IP ดังนั้น HTTP เป็นส่วนย่อยของ TCP/IP ที่ใช้งานบนเว็บเบราว์เซอร์ ส่วน TCP/IP ใช้งานได้ทั่วไปในการสื่อสารข้อมูลในรูปแบบต่างๆ ไม่จำกัดเพียงการใช้งานบนเว็บเบราว์เซอร์เท่านั้น

**TCP/IP มีส่วนประกอบอะไรบ้าง**

TCP/IP (Transmission Control Protocol/Internet Protocol) เป็นโปรโตคอลในการสื่อสารข้อมูลระหว่างเครือข่ายคอมพิวเตอร์ โดยประกอบด้วยสองโปรโตคอลหลัก ได้แก่

Transmission Control Protocol (TCP) คือโปรโตคอลระดับสัญญาณที่จัดการการส่งข้อมูลที่มีขนาดใหญ่เป็นสิ่งที่เรียกว่า segments โดยใช้เทคนิคการตรวจสอบและจัดการข้อผิดพลาดในการส่งข้อมูล เช่น การยืนยันการรับส่งข้อมูลและการแก้ไขข้อผิดพลาดในการส่ง

Internet Protocol (IP) คือโปรโตคอลระดับเครือข่ายที่จัดการเกี่ยวกับการส่งแพคเก็ตของข้อมูลทางอินเทอร์เน็ตจากแหล่งต้นทางไปยังปลายทาง โดย IP จะรับแพคเก็ตข้อมูลและทำการส่งต่อไปยังอุปกรณ์ต่อไปจนกว่าจะเป็นเครื่องปลายทาง โดยใช้ที่อยู่ IP ที่กำหนดตามเครือข่าย

TCP/IP และ HTTP นั้นเป็นโปรโตคอลที่มีความสัมพันธ์กัน โดย HTTP จะใช้ TCP/IP เพื่อการส่งข้อมูลด้วยการส่งแพคเก็ตข้อมูลผ่านเครือข่ายอินเทอร์เน็ต และใช้ IP เพื่อที่จะส่งข้อมูลไปยังเครื่องปลายทาง