Bài test đánh giá năng lực dành cho vị trí lập trình viên PHP

Tại Gemstech chúng tôi đang xây dựng một team có đủ năng lực, phẩm chất và sự chuyên nghiệp để đào tạo thành các chiến binh. Vì vậy các bạn ứng viên cần phải trải qua các bài test đánh giá dưới đây trước khi trở thành thành viên chính thức của Gemstech.




1. Bài test kỹ năng phân tích

Công ty A cần quản lý các đơn hàng và theo dõi tình trạng các đơn hàng trong hệ thống. Quy trình như sau: Tạo đơn hàng (một đơn hàng có thể có nhiều mặt hàng), cập nhật trạng thái đơn hàng (mới tạo, đang xử lý, đang giao hàng, đã giao hàng). Hãy thiết kế các tables cần thiết trong database, mô tả quan hệ giữa các tables để xử lý các yêu cầu nghiệp vụ trên và viết mô tả thuật toán xử lý các nghiệp vụ bao gồm: tạo đơn, sửa đơn, cập nhật trạng thái đơn, xem báo các các đơn hàng trong hệ thống (list).

2. Bài test cơ sở dữ liệu MySQL

Cho 3 tables khách hàng, đơn hàng, phiếu thu, công nợ. Hãy tạo các trường cơ bản nhất của các tables trên, mô tả các mối quan hệ của các table này trong nghiệp vụ quản lý công nợ và viết các câu lệnh MySQL để lấy ra được báo cáo công nợ chi tiết của khách hàng trong khoảng thời gian từ 01/10/2022 đến 31/10/2022. Theo cấu trúc -- ngày -- nội dung --- số tiền - số dư công nợ

3. Bài test PHP


Cho một đoạn text như sau
ngày 2022-01-29 mua hàng 100,000 đ,
ngày 2022-02-02 mua hàng 300,000 đ,
ngày 2022-02-07 thanh toán 200,000 đ,
ngày 2022-02-10 mua hàng 250,000 đ,
ngày 2022-02-15 thanh toán 400,000 đ,
Hãy viết code PHP để biến đoạn text trên thành biến mảng và lọc ra các khoản giao dịch từ ngày 01/02/2022 đến ngày 10/02/2022, hiển thị trên màn hình (lưu ý hiển thị ngày theo dạng dd/mm/YYYY và cho biết dư nợ tính đến ngày 20/02/2022 là bao nhiêu.

4. Bài test Javascript


Vẫn với đoạn text trên, sử dụng Javascript hoặc jquery để tách chuỗi thành một biến mảng hoặc object, sau đó đưa các biến mảng đó vào một form với các input được sắp xếp như sau:
ngày: 29/02/2022 -------- số tiền: 100,000 ---------- diễn giải: mua hàng

5. Bài test Fixbug

Hãy cho biết đoạn code sau đây có thể phát sinh lỗi runtime error hay không và lỗi đó dẫn đến hiện tượng gì, cách khắc phục ra sao?



6. Lưu ý

Thời gian nộp bài test tối đa 01 tuần sau khi nhận yêu cầu. Được phép làm tại nhà và gửi kết quả qua email info@gemstech.com.vn  Ứng viên đạt sẽ được liên hệ mời phỏng vấn. Trong buổi phỏng vấn ứng viên sẽ phải chuẩn bị một bài thuyết trình trên google slide để tóm tắt và trình bày về phương pháp, cách làm, kết quả khi giải các bài toán nêu trên. Đồng thời trả lời thêm một câu hỏi để kiểm tra tư duy logic và kỹ năng đọc hiểu tiếng Anh. Ứng viên đạt yêu cầu sẽ được mời thử việc với mức lương tối thiểu 8 con số trở lên. Ứng viên không giải quyết được các bài toán trên nhưng vẫn muốn xây dựng sự nghiệp ở Gemstech thì có thể đăng ký làm thực tập sinh để được đào tạo giải quyết các bài toàn thực tế nêu trên, khi thành thạo sẽ nhận mức lương từ 7 đến 8 con số trở lên. Chúc các bạn may mắn và thành công.