Kỹ năng phỏng vấn tuyển dụng

Top 20 Câu Hỏi Phỏng Vấn Backend Thường Gặp 

Backend là xương sống của các ứng dụng web, xử lý xử lý dữ liệu, logic phía máy chủ và quản lý cơ sở dữ liệu. Để vượt qua các cuộc phỏng vấn Backend khó nhằn, bạn phải có hiểu biết vững chắc về các khái niệm và nguyên tắc cơ bản trong lĩnh vực này. Trong bài viết dưới đây, Masterskills sẽ cùng bạn đi qua 20 câu hỏi phỏng vấn Backend thường gặp nhất, giúp bạn có được cái nhìn tổng quát về những kiến thức trọng tâm hay được sử dụng!

Câu hỏi phỏng vấn Backend cơ bản 

Đầu tiên, hãy cùng Masterskills sơ lược về một số câu hỏi phỏng vấn Backend cơ bản. Đây là các câu hỏi thường được sử dụng ở đầu buổi phỏng vấn nhằm “làm nóng” và tạo tiền đề cho các câu hỏi kỹ thuật ở phần sau.

1. Nêu mục đích của back-end là gì? 

Trong phát triển phần mềm, back-end là một phần quan trọng của hệ thống, chịu trách nhiệm xử lý các quy trình xử lý dữ liệu và logic mà người dùng không nhìn thấy trực tiếp. Mục đích chính của back-end là xây dựng các hệ thống và quy trình để xử lý, lưu trữ và truy xuất dữ liệu, đảm bảo hệ thống hoạt động một cách ổn định và duy trì tính bảo mật.

2. Quy trình điển hình để triển khai một tính năng mới trong backend là gì? 

Quy trình triển khai các tính năng trên back-end có thể khác nhau tùy thuộc vào công ty và nhóm công nghệ. Tuy nhiên, quy trình làm việc điển hình sẽ bao gồm việc thảo luận về tính năng với các bên liên quan, thiết kế và tạo nguyên mẫu tính năng, viết mã và thực hiện QA thử nghiệm. 

Trong hầu hết các trường hợp, back-end developer sẽ làm việc với nhà phát triển giao diện người dùng để đảm bảo rằng dữ liệu được truyền chính xác giữa máy khách và máy chủ. Điều cần thiết là đảm bảo rằng mọi tính năng mới đều tương thích ngược với các phiên bản trước của ứng dụng.

3. Giải thích nguyên tắc của nguyên tắc DRY và DIE 

Nguyên tắc DRY (Don’t Repeat Yourself) là một nguyên tắc phát triển phần mềm quy định rằng các nhà phát triển không nên sao chép mã. Mã trùng lặp có thể dẫn đến các vấn đề về bảo trì vì các thay đổi cần được thực hiện ở nhiều nơi. 

Nguyên tắc DIE (Duplication Is Evil) cũng khá tương tự với nguyên tắc DRY. Tuy nhiên, nó tiến thêm một bước bằng cách tuyên bố rằng ngay cả một lượng nhỏ trùng lặp cũng không được chấp nhận.

4. Một web server là gì? 

Máy web server là một máy tính lưu trữ và cung cấp các trang web. Khi bạn nhập một URL vào trình duyệt của mình, trình duyệt sẽ liên lạc với web server và yêu cầu trang. Sau đó, web server sẽ gửi trang trở lại trình duyệt, trình duyệt này sẽ hiển thị nó trên màn hình của bạn. Apache và NGINX là một số máy chủ web phổ biến nhất được sử dụng bởi các ứng dụng phụ trợ. Web server cũng có thể lưu trữ các tài nguyên khác, như hình ảnh hoặc video.

5. Hãy nói về trải nghiệm của bạn khi làm việc trong một nhóm

Thông thường, các nhà phát triển back-end được yêu cầu làm việc theo nhóm. Khi trả lời câu hỏi này, ứng viên có thể đưa ra một vài ví dụ về những lần họ làm việc nhóm.

Là nhà phát triển, bạn có thể đề cập đến bất kỳ hoạt động cộng tác nào đã thực hiện với các nhà phát triển khác trong quá khứ để đạt được mục tiêu cũng như công cụ họ đã sử dụng để giao tiếp với các thành viên khác trong nhóm.

Tham khảo:   Bộ 10 Câu Hỏi Phỏng Vấn Giáo Viên Tiếng Anh Thường Gặp Nhất

Câu hỏi phỏng vấn backend trung cấp 

6. Theo bạn, như thế nào là một constructor? Các loại constructors là gì?

Java sử dụng một constructor để khởi tạo các đối tượng. Nó được sử dụng khi một đối tượng trong một lớp được tạo. Một constructor có cùng tên với lớp của nó. Nó cũng tương tự về mặt cú pháp như một phương thức. Tuy nhiên, constructor không có kiểu trả về rõ ràng.

Có ba loại constructor chính:

  • Default Constructor: Constructor không có đối số. Chúng khởi tạo các thành viên dữ liệu với các giá trị thực.
  • Parameterized Constructor: Constructor chứa các đối số. Ở đây chúng ta có thể vượt qua nhiều hơn một đối số.
  • Copy constructor: Khởi tạo một constructor bằng cách sử dụng một constructor khác của cùng một lớp.

7. Phân biệt finally, final và finalize

Final là một công cụ sửa đổi truy cập, finally là một block và finalize là một phương thức của một lớp đối tượng. Finally được thực thi khi được gọi. Final được thực thi sau khi khối try-catch được thực thi. Việc thực hiện nó không phụ thuộc vào ngoại lệ. Cuối cùng, finalize được thực thi trước khi đối tượng có thể bị hủy.

8. Sự khác nhau giữa Primitive Data Types và Wrapper Classes là gì? 

Wrapper Classes cho phép sử dụng nhiều kiểu dữ liệu nguyên thủy như int hoặc boolean làm đối tượng. Wrapper Classes chuyển đổi Primitive Data thành một đối tượng. Primitive Data Types là kiểu dữ liệu được xác định trước mà ngôn ngữ lập trình Java cung cấp.

9. Các loại threads khác nhau trong Java là gì? 

Thread là một luồng thực thi trong một chương trình. Các thread cho phép các ứng dụng Java phản hồi nhanh hơn và thuận tiện hơn bằng cách thực hiện nhiều tác vụ cùng một lúc.

Có hai loại thread: thread người dùng và thread daemon. Thread daemon có mức độ ưu tiên thấp và chỉ cung cấp dịch vụ cho các thread người dùng. Mặt khác, thread người dùng là thread có mức độ ưu tiên cao.

10. Sự khác nhau giữa MySQL và SQL là gì?

SQL (Structured Query Language) là ngôn ngữ lập trình dùng để giao tiếp với cơ sở dữ liệu. MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ sử dụng SQL làm ngôn ngữ chính. SQL được sử dụng để tạo, sửa đổi và xóa cơ sở dữ liệu, trong khi MySQL được sử dụng để lưu trữ và truy cập dữ liệu trong cơ sở dữ liệu.

11. RDBMs là gì? 

Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) là một chương trình được sử dụng để quản lý cơ sở dữ liệu quan hệ. Nó đóng vai trò là nền tảng của các hệ thống cơ sở dữ liệu hiện đại như MySQL, Microsoft Access, Microsoft SQL Server và Oracle. RDBMS sử dụng SQL để lấy dữ liệu từ cơ sở dữ liệu.

12. Các mệnh đề (clauses) phổ biến nhất được sử dụng trong truy vấn SQL SELECT là gì? 

Các mệnh đề SQL này thường được sử dụng với câu lệnh SELECT bao gồm:

  • FROM: chỉ định (các) bảng mà dữ liệu được lấy từ đó.
  • WHERE: lọc các bản ghi dựa trên các tiêu chí nhất định.
  • GROUP BY: nhóm các bản ghi dựa trên các tiêu chí nhất định.
  • HAVING: lọc các bản ghi được nhóm dựa trên các tiêu chí nhất định.
  • ORDER BY: sắp xếp các bản ghi theo thứ tự tăng dần hoặc giảm dần.
  • LIMIT giới hạn số lượng bản ghi được trả về từ một truy vấn.
  • OFFSET: chỉ định điểm bắt đầu mà các bản ghi được trả về.
  • AS: tạo bí danh cho tên cột hoặc tên bảng.
  • JOIN: kết hợp các bản ghi từ hai hoặc nhiều bảng.
  • UNION: kết hợp tập hợp kết quả của hai hoặc nhiều truy vấn CHỌN.
Tham khảo:   Những Câu Hỏi Phỏng Vấn Về Thời Trang

13. Sự khác nhau giữa statistic website và dynamic website là gì? 

Các trang web tĩnh (statistic website) có nội dung cố định, nghĩa là nó sẽ không được cập nhật thường xuyên. Nội dung được mã hóa trực tiếp vào HTML và yêu cầu cập nhật thủ công khi cần thay đổi. Trang web động (dynamic website) là những trang web có nội dung được cập nhật thường xuyên và tự động.

Câu hỏi phỏng vấn backend nâng cao 

14. Nêu sự khác nhau của 2 loại biến trong Python: Global và Local

Biến Global được khai báo bên ngoài hàm hoặc trong không gian Global. Các biến này có thể được truy cập từ bất kỳ chức năng nào trong chương trình.

Biến Local là bất kỳ biến nào được khai báo trong một hàm. Biến này chỉ hiện diện trong không gian Local.

15. Sự khác nhau giữa mảng và danh sách trong Python là gì? 

Mảng Python tương tự như danh sách ở chỗ cả hai đều được sử dụng để lưu trữ nhiều giá trị. Tuy nhiên, không giống như danh sách, mảng được giới hạn ở một kiểu dữ liệu duy nhất và có kích thước cố định. Ngoài ra, mảng sử dụng bộ nhớ hiệu quả hơn nhiều so với danh sách vì chúng chỉ lưu trữ các giá trị của một loại duy nhất.

16. NULL là gì? 

Kiểu dữ liệu NULL là kiểu dữ liệu một giá trị đặc biệt. Một biến kiểu dữ liệu NULL là một biến không có giá trị. Nó có thể được chỉ định bằng cách sử dụng như sau: $var = NULL; hoặc $var = null;

17. PHP và HTML tương tác với nhau như thế nào? 

Bạn có thể tạo HTML bằng cách sử dụng tập lệnh PHP. Ngoài ra, bạn có thể chuyển thông tin từ HTML sang PHP. PHP thực thi trên máy chủ và trả về kết quả của nó ở dạng chuỗi, mảng và đối tượng. Sau đó, chúng sẽ hiển thị các giá trị đã đề cập trong HTML.

18. Python tạo ra số ngẫu nhiên bằng cách nào? 

Trong Python, bạn có thể tạo ra các số ngẫu nhiên bằng cách sử dụng module random. Module random cung cấp một số hàm để tạo ra các số ngẫu nhiên với các loại khác nhau. Dưới đây là một số hàm phổ biến:

  • random.random(): Hàm này trả về một số thực ngẫu nhiên trong khoảng từ 0 đến 1.
  • random.randint(a, b): Hàm này trả về một số nguyên ngẫu nhiên trong khoảng từ a đến b (bao gồm cả a và b).
  • random.uniform(a, b): Hàm này trả về một số thực ngẫu nhiên trong khoảng từ a đến b.
  • random.choice(sequence): Hàm này trả về một phần tử ngẫu nhiên từ dãy được cung cấp, như một list hay một chuỗi.
  • random.shuffle(sequence): Hàm này xáo trộn ngẫu nhiên các phần tử trong dãy được cung cấp.

Để sử dụng các hàm này, bạn cần import module random ở đầu của script Python hoặc phiên tương tác. Ví dụ:

import random

# Tạo một số thực ngẫu nhiên trong khoảng từ 0 đến 1

so_ngau_nhien = random.random()

# Tạo một số nguyên ngẫu nhiên trong khoảng từ 1 đến 100

so_nguyen_ngau_nhien = random.randint(1, 100)

# Tạo một số thực ngẫu nhiên trong khoảng từ -1 đến 1

so_thuc_ngau_nhien = random.uniform(-1, 1)

# Chọn ngẫu nhiên một phần tử từ một list

danh_sach_cua_toi = [1, 2, 3, 4, 5]

phuong_an_ngau_nhien = random.choice(danh_sach_cua_toi)

# Xáo trộn các phần tử trong một list

random.shuffle(danh_sach_cua_toi)

Đây chỉ là một số ví dụ về cách tạo ra các số ngẫu nhiên trong Python bằng cách sử dụng module random. Module random cung cấp thêm nhiều hàm và tùy chọn tùy chỉnh khác để tạo ra dữ liệu ngẫu nhiên.

Tham khảo:   System Design Interview Là Gì? 7 Bước Xử Lý Phỏng Vấn Thiết Kế Hệ Thống Cho Dân IT

19. Các loại mảng (arrays) khác nhau trong PHP là gì? 

Có ba loại mảng (arrays) có sẵn trong PHP:

  • Mảng được lập chỉ mục – Một mảng có chỉ số bằng số được gọi là mảng được lập chỉ mục. Các giá trị được lưu trữ theo thứ tự tuyến tính và có thể được truy cập bằng các phương tiện tuyến tính.
  • Mảng kết hợp – Một mảng bao gồm các chuỗi làm chỉ mục còn được gọi là mảng kết hợp. Điều này lưu trữ các giá trị phần tử liên kết với các giá trị chính, thay vì theo thứ tự chỉ mục tuyến tính nghiêm ngặt.
  • Mảng đa chiều – Một mảng nhiều chiều chứa một hoặc nhiều mảng. Ở đây, nhiều chỉ số được sử dụng để truy cập các giá trị.

20. Type hinting trong PHP là gì

Type hinting được sử dụng để xác định kiểu dữ liệu dự kiến cho một đối số trong khai báo hàm. Khi bạn gọi nó, PHP sẽ xác định xem các đối số có thuộc loại được chỉ định hay không. Nếu không, thời gian chạy sẽ hiển thị lỗi và quá trình thực thi sẽ dừng lại.

Kết luận

Vậy là Masterskills đã cùng bạn tìm hiểu top 20 câu hỏi phỏng vấn Backend thường gặp nhất. Hy vọng những gợi ý trên sẽ giúp bạn có được sự chuẩn bị tốt nhất cho buổi phỏng vấn sắp tới. Nếu cảm thấy hứng thú với các chủ đề tương tự, hãy ghé qua Blog của Masterskills để cập nhật thêm nhiều nội dung chất lượng khác nhé!

  Viện Đào Tạo Kỹ Năng Masterskills chuyên Đào Tạo tại Doanh Nghiệp (In-house) trên Toàn Quốc  
G

0903966729

1
Hỗ trợ bạn qua Zalo