เรื่องพื้นฐานที่ต้องรู้สำหรับ Back End Developer
สำหรับคนที่อยากเริ่มต้นศึกษาและอยากเดินสายเป็น Programmer ซึ่งต้องบอกก่อนเลยว่า Programmer แบ่งออกมาได้หลายสาย ทั้งคนที่ทำ Mobile App, Web, Network, Admin, Dev Ops และหนึ่งในนั้นก็คือ Back-end ซึ่งทำหน้าที่ออกแบบระบบหลังบ้านของ Program
1. เรียนรู้เรื่องของ Internet ว่าทำงานยังไง
อินเทอร์เน็ต คือ ระบบเครือข่ายคอมพิวเตอร์ขนาดใหญ่ที่สุดของโลก โดยจะเป็นการเชื่อมต่อเครื่องคอมพิวเตอร์หลายๆ เครื่องจากทั่วโลกมาเชื่อมต่อเข้าด้วยกัน ซึ่งช่วยให้สามารถติดต่อสื่อสารและแลกเปลี่ยนข้อมูลระหว่างกันได้ทั่วโลก
2. เรียนรู้เรื่องของ HTTP/HTTPS
HTTP (Hypertext Transport Protocol) เป็นโปรโตคอลสำหรับสื่อสารจะใช้เมื่อเรียกโปรแกรมบนเบราว์เซอร์อย่าง Chrome, Firefox, Internet Explorer เพื่อเรียกดูข้อมูลหรือเว็บนั้นๆ
HTTPS (Hypertext Transfer Protocol over Secure Socket Layer หรือ Http over SSL) คือการเพิ่ม S หรือ Secure เข้ามาเพิ่มความปลอดภัยให้มากขึ้น
3. การทำงานร่วมกับ Working on browsers
4. การทำงานกับ DNS
DNS (Domain Name System) ระบบการตั้งชื่อโดเมน หรือ ดีเอ็นเอส เป็นระบบที่ใช้เก็บข้อมูลของชื่อ ซึ่งใช้ในเครือข่ายขนาดใหญ่อย่างอินเทอร์เน็ต โดยข้อมูลที่เก็บมีหลายอย่าง
5. Domain & Hosting
โดเมน(Domain Name) คือ ชื่อเว็บไซต์
โฮสติ้ง(Hosting) คือ พื้นที่เก็บข้อมูลของเว็บไซต์
6. Operating Systems
ระบบปฏิบัติการ หรือ โอเอส เป็นระบบซอฟต์แวร์ที่ทำหน้าที่จัดการอุปกรณ์คอมพิวเตอร์และแหล่งซอฟต์แวร์และบริการโปรแกรมคอมพิวเตอร์
7. Memory management คืออะไร
การจัดการหน่วยความจำ เป็นกระบวนการในการจัดการหน่วยความจำคอมพิวเตอร์ นั่นคือการที่สามารถจองหน่วยความจำ เมื่อมีการร้องขอ และคืนหน่วยความจำไปเมื่อไม่มีการใช้งาน
8. Terminal usage
Terminal (เทอร์มินัล) เป็นอุปกรณ์ในระบบคอมพิวเตอร์ที่มีหน้าที่ในการรับและส่งข้อมูลเข้าระบบโดยคอมพิวเตอร์จะรับจาก Terminal (เทอร์มินัล) แล้วจะเอาไปประมวลผลอีกทีนึงหรือไม่ก็แล้วแต่ที่จะนำไปใช้ในระบบต่อไป
9. Process management
ต้องรู้กระบวนการบริหารจัดการ เป็นกลไกและตัวประสานที่สำคัญที่สุดในการประมวล ผลักดัน และกำกับให้ปัจจัยต่างๆที่เป็นทรัพยากรการจัดการประเภทต่างๆ สามารถดำเนินไปได้โดยมีประสิทธิภาพ จนบรรลุเป้าหมายตามที่ต้องการ
10. Threads & Concurrency
ตัวที่จะช่วยลดงานช่วยให้เราสามารถทำงานได้ไวขึ้นก็ต้องไปศึกษาการทำงานให้ดี
11. พื้นฐานการจัดการ I/O management
ทั้ง Input / Output
12. Basic concepts of networking
สามารถจำแนกได้หลายวิธี ขึ้นอยู่กับเกณฑ์ที่ใช้ เช่น ขนาด ลักษณะการแลกเปลี่ยนข้อมูลของคอมพิวเตอร์ เป็นต้น โดยทั่วไปการจำแนกประเภทของเครือข่าย
ที่สำคัญต้องรู้ส่วนงานในฝั่ง Front End ด้วยมีดังนี้
1. ภาษา Programing
(เลือกภาษาที่เราถนัด)
- Javascript
- Java
- Python
- Go
- Rust
- C#
- Ruby
- PHP
- อื่นๆ
2. Version Control System
เป็นเครื่องมือที่ช่วยเหลือ Back end และ Front end และสามาถจัดการการเปลี่ยนแปลงต่าง ๆ ที่เกิดขึ้นได้ และสามารถระบุตัวตนได้ว่า Code นี้ใครเป็นคนแก้ไข และมีการแก้ไขเมื่อไหร่ตอนไหน ช่วยให้เราสามารถทำงานร่วมกันภายในทีมได้เป็นอย่างดี มีหลายตัวเราสามารถเลือกใช้ได้ทั้ง Git, Github, GitLab, Bitbucket
3. Database
เปรียบเสมือนสมอง เป็นส่วนที่ช่วยให้ Web หรือ App เป็น Dynamic ไว้เพื่อเก็บข้อมูลต่าง ๆ การดึงข้อมูล การคืนข้อมูล ฐานข้อมูลมี 2 แบบคือ Relational Databases และ NoSQL Databases
4. APIs (Application Programming Interfaces)
เปรียบเสมือย Service หรือคนกลาง สร้าง APIs ในการเชื่อมต่อให้กับ Application ต่าง ๆ หรือ Provide Service ต่าง ๆ เพื่อที่จะให้ Front End นำ APIs ตัวนี้ไปใช้งานได้
ส่วนที่ต้องรู้ของ APIs คือ REST, JSON, SOAP, GSON, XML-RPC และ AES
5. Caching หรือการเก็บแคช
จัดเก็บสำเนาหรือ Copy ทรัพยากรณืที่กำหนดในแคชได้หรือเรียกอีกอย่างว่าตำแหน่งที่เก็บข้อมูลชั่วคราว เป้าหมายในหารแคชคือการดึงข้อมูล การแคชก็มี 5 ตัว CDN, Server Side, Client Side, Redis
6. Testing หรือการ Test
การบวนการตรวจสอบฐานข้อมูลหรือ Server side ของ Web App ของเรา Yest เพื่อกำหนดประสิทธิภาของชั้นข้อมูลและทำให้แน่ใจเราไม่มีความเสียหายของชั้นข้อมูล และตัวที่ใช้ตรวจสอบส่วนมากจะเป็น Integration Testing, Unit Testing, Functional Testing
7. Authentication Method
หรือวิธีการรับรองความถูกต้องใช้งานการตรวจสอบ Verify ในส่วนของ User หรืออุปกรณืต่าง ๆ เพื่อให้เข้าถึง Resouce, Reda หรือ Application
Method ที่นักพัฒนาส่วนใหญ่ใช้คือ MD5, SHA, Scrypt, Bcrypt, RSA
เนื้อหาเหล่านี้เป็นเพียงคำแนะนำว่าเพื่อน ๆ จะต้องไปศึกษาเรื่องอะไรบ้าง ซึ่งก้อาจจะทำให้เพื่อนเห็นภาพเส้นทางการเป็น Dev ได้มากขึ้น เพื่อน ๆ ก็ลองลิสต์และค่อยนำไปศึกษาหาความรู้ต่อว่าแต่ละตัวเป็นยังไง คืออะไร หรือทำงานยังไง