Học back end cần học những gì? Cho người mới bắt đầu

4956

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.

Backend developer

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.

Programming Languages

Viết tới đây chắc sẽ có một số anh em thắc mắc về Nodejs, tất nhiên Nodejs cũng là ngôn ngữ backend đáng để học. Ngôn ngữ nào cũng có cái hay và phía trên chỉ là ví dụ 3 ngôn ngữ. Còn lại anh em muốn tiếp cận ngôn ngữ nào trước cũng được.

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.

  Top 7 câu hỏi phỏng vấn Backend Developer
  Mechanical Sympathy Là Gì? Lập Trình BackEnd bằng Java

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.

Frameworks backend

Trên đây chỉ là một vài so sánh nhỏ, anh em có thể tìm hiểu sâu hơn về các frameworks để có so sánh rõ ràng hơn các ngôn ngữ mình sẽ lập trình phía BE.
Tham khảo việc làm Back-end Developer Hồ Chí Minh hấp dẫn trên TopDev

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

Database

Một số cuốn sách hoặc khoá học có thể sẽ hữu ích với anh em về database:

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.

Data Structures và Algorithms 
Sau khi đã nắm chắc Data Structure thì về thuật toán, anh em cần hiểu cơ bản về các thuật toán kinh điển. Hiểu ở đây là hiểu rõ cách thức hoạt động, ưu, nhược điểm. Còn lại implement thì thường đã có rất nhiều người làm rồi. Anh em chỉ nhớ sử dụng cho đúng lúc, đúng địa điểm là được.

  • 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.

API, REST, GraphQLMột số khoá học hoặc bài viết có thể giúp anh em hiểu thêm về các công nghệ được nhắc tới ở trên gồm:

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.

Devops và Server

Anh em có thể tham khảo thêm về Devops và các kỹ năng khác:

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:

Đừng bỏ lỡ hàng loạt việc làm IT hấp dẫn trên TopDev nhé!