Thường meme liên quan tới backend luôn là thứ gì đó ẩn mình phía sau đầy ghê rợn. Không được đẹp đẽ hào nhoáng như phía Frontend.
Sự thật thì Backend hay Backend developer không hề đáng sợ như vậy. Backend cũng bao gồm nhiều kiến thức. Những kiến trúc lộng lẫy tuyệt vời nằm ở phía dưới đó. Vậy để trở thành backend developer hoặc học để trở thành backend anh em cần gì?
Tất cả sẽ được trình bày qua bài viết dưới đây
1. Programming Languages
Đầu tiên không thể thiếu với anh em developer backend rõ ràng là ngôn ngữ lập trình backend. Không chỉ hiểu phần core, hiểu cách thức hoạt động của ngôn ngữ. Anh em còn cần có lộ trình cụ thể để trở thành master trong từng loại ngôn ngữ mà mình lựa chọn.
Dưới đây là 3 ngôn ngữ thường được sử dụng cho backend:
- Java: Đây là ngôn ngữ mà nhiều anh em thường nhầm với JavaScript. Tuy nhiên, Java và Javascript là khác nahu. Java thường sử dụng để tạo ra hệ thống mạnh mẽ. Mức độ phổ biến cao, chính vì vậy đây là ngôn ngữ cần thiết cho anh em developer.
- PHP: Về phía web, ngôn ngữ thường hay sử dụng là PHP. Một số trang web đang được phát triển bằng php, vừa là mã nguồn mở mà còn free. Vì vậy, kỹ năng PHP cũng là kỹ năng mà anh em backend cần có.
- Python: Với sự phát triển vượt bậc của AI, ML thì Python cũng trở thành ngôn ngữ backend cần phải biết. Đây là một trong những ngôn ngữ hàng đầu, muốn dùng cho cái đơn giản cũng ok mà dùng cho cái phức tạp cũng ok. Mấy ứng dụng phổ biến như Spotify và Dropbox cũng được viết bằng Python.
Chỉ cần chọn cho mình 1 ngôn ngữ, vẽ ra roadmap cụ thể là anh em có thể bắt đầu trên con đường trở thành master 1 ngôn ngữ phía Backend rồi.
2. Frameworks
Sau khi đã có kiến thức về ngôn ngữ lập trình, anh em sẽ hiểu khi cần xây dựng một cái gì đó to lớn, chỉ với ngôn ngữ sẽ khó khăn như thế nào. Ví như anh em xây cả lâu đài, mà từng cái bai, cục gạch anh em cũng phải tự làm, mày mò từng chút một. Vậy lúc nào mới xong?
Chính lúc này ta cần với frameworks.
Frameworks xây dựng trên 1 ngôn ngữ backend nào đó. Nó hỗ trợ đầy đủ những thứ từ cơ bản đến nâng cao giúp cho anh em xây dựng hệ thống dễ dàng hơn.
Một số framework phổ biến anh em có thể tham khảo bao gồm:
- Ruby on Rails: Một số thứ ở Ruby on Rails giúp nó nổi bật hơn mấy frameworks phái dưới. Ông này base trên nền Ruby, có automated testing, có libraries, nếu làm đa ngôn ngữ có localization. Nó cũng là open-source web app development framework. Tất. nhiên, luôn sử dụng ngôn ngữ Ruby.
- Django: Là open-source và một trong những web frameworks tốt nhất viết trên nền ngôn ngữ Python. Rất tốt cho việc mở rộng (scalability) và bảo mật (security). Ngoài ra Django cũng hỗ trợ lập trình bất đồng bộ.
- Flask: Cũng base trên nền Python và có thể sử dụng để xây dựng web app framework rất nhanh. Nhiều tính năng chính của Flask bao gồm hỗ trợ WSGI cho phép xây dựng rất nhanh web application.
- Express: Là framework nhẹ và nổi tiếng nhất sử dụng ngôn ngữ Node.js. Sử dụng để xây dựng web app framework. Express cho phép phát triển rất nhanh và development side-server cũng khá dễ dàng.
3. Database
Nếu không có hiểu biết về hệ cơ sở dữ liệu, anh em không thể tự nhận mình là backend developer được. Đơn giản là backend sẽ thường làm việc với hệ cơ sở dữ liệu.
Ở một số hệ thống, database được xem như trái tim, nơi chứa những dự liệu quý giá nhất cần thiết cho hệ thống. Chính vì vậy, để trở thành backend developer, anh em cần có kiến thức tốt ở lĩnh vực database. Kiến thức tốt ở đây có thể được hiểu qua vài ví dụ dưới đây:
- Hiểu về data types, hiểu về structure, hiểu về cách thức DB vận hành
- Tối ưu tốc độ, phân tích query, tìm hiểu lý do query bị chậm
- So sánh ưu nhược điểm các loại database, sự khác nhau giữa SQL và NoSQL
- Thiết kế và vận hành database, hiểu sâu về quản lý database
- Complete SQL and Databases Bootcamp: Zero to Mastery [2023]
- Databases and SQL for data science – Professional Certificate
4. Data Structures và Algorithms
Cấu trúc dữ liệu và thuật toán cũng là thiết yếu với backend developer. Thực thế thì data structure là cần thiết với tất cả các kĩ sư phần mềm. Nhưng đối với backend, anh em cần thật sự hiểu sâu về Data structures và Algorithms (thuật toán).
Một số loại cấu trúc dữ liệu phổ biến có thể liệt kê dưới đây:
- Arrays
- Linked Lists
- Stacks
- Queues
- Graphs
- Hash Tables
- Binary Search Tree
Hiểu về cấu trúc dữ liệu là hiểu về cách nó hoạt động. Về performance, về độ phức tạp (complexity) là bao nhiêu. Lúc nào thì dùng loại data structure này, lúc nào thì dùng data structure kia. Chứ không chỉ đơn thuần là nhớ tên rồi muốn dùng sao thì dùng nha anh em.


- Recursion
- Bubble sort
- Selection sort
- Binary Search
- Insertion Sort
- Databases and Cache
Tìm việc làm Backend Intern HCM trên TopDev ngay!
5. API, REST, GraphQL
Anh em luôn thấy là backend với frontend đi liền một cặp, nếu chỉ có backend thì application không thể hoạt động. Tương tự vậy, nếu chỉ frontend thì ứng dụng cũng không thể hoàn thành.
Vậy backend và frontend giao tiếp với nhau như thế nào? Tất nhiên là thông qua API, vậy API có phải là yếu tố bắt buộc và backend developer cần biết không?
Câu trả lời là có, 100% các lập trình viên backend đều biết rõ về API và REST. REST có bao nhiêu method, các method đó sử dụng làm gì? Thiết kế API như thế nào là tốt. Song song với đó, anh em cũng cần có kiến thức và tìm hiểu thêm về JSON, XML. Các phương thức giao tiếp với client.


- GraphQL with React: The Complete Developers Guide
- The Modern GraphQL Bootcamp (with Node.js and Apollo)
Nhiều tin tuyển dụng Backend lương cao trên TopDev
6. Devops và Server
Để backend có thể hoạt động, tất nhiên không thể thiếu server. Vậy anh em cần tìm hiểu thêm về các loại server, Windows thì khác gì Linux? Services mình viết lên sẽ chạy ở đâu, chạy như thế nào? Cấu hình 1 máy như thế nào là đủ.
Sau khi đã hiểu về server. Vậy giờ cần hiểu thêm về CI,CD. Hai cái này khác nhau như thế nào? Để triển khai auto deployment ta cần những gì. Tất tần tật những kiến thức đó là kiến thức bắt buộc với backend developer. Các môi trường development, staging và production khác gì nhau? Tại sao ta lại cần những môi trường này?
Ngoài ra khi tìm hiểu sâu hơn, anh em sẽ cần biết thêm về quản lý version. Kỹ năng điều tra, giải quyết vấn đề. Xử lý sự cố trong trường hợp production down.
7. Tham khảo
Cảm ơn anh em đã đọc bài – Thank you for your time – Happy coding!
Tác giả: Kiên Nguyễn
Bạn có thể quan tâm:
- Tầm quan trọng của Loose Coupling trong hệ thống Backend
- Nên học Front-end hay Back-end? Sự khác biệt là gì?
- Tiêu chuẩn Coding Backend hiệu quả là gì
Đừng bỏ lỡ hàng loạt việc làm IT hấp dẫn trên TopDev nhé!