Một số câu hỏi Phỏng vấn Ruby on Rails Developer

Lời mở đầu

Chào các bạn.

Hôm nay mình mình sẽ giới thiệu cho các bạn một số câu hỏi khi đi phỏng vấn vào vị trí Ruby developer.

Mình làm bài viết này có 2 mục đích:

  • Giúp bản thân mình tự kiểm tra lại kiến thức cơ sở.
  • Giúp bạn sắp phỏng vấn có nơi để tham khảo và để tự tin hơn trong vòng phỏng vấn.

Bài viết này mình tham khảo từ nguồn https://rubyroidlabs.com

Dưới đây mình sẽ chia thành 2 nhóm câu hỏi:

  • Câu hỏi về Ruby
  • Câu hỏi về Ruby on Rails
  • Các câu hỏi chung chung

Bây giờ chúng ta đi vào từng nhóm cụ thể

1. Câu hỏi về ruby

Các câu hỏi về Ruby là nơi chúng ta thảo luận về sự hiểu biết cơ bản về lập trình, thông thường các câu hỏi sẽ xoay quanh các chủ đề như Lập trình hướng đối tượng (OOP) , Design patterns , Ruby core, Business Applications ....

Qua đó nó thể hiện sự hiểu biết cơ bản về lập trình nói chung và lập trình Ruby nói riêng của ứng viên. Vì vậy, nếu ứng viên không thể trả lời các câu hỏi này một cách rõ ràng, thì chào thân ái và quyết thắng "See you next time".

1.1 Lập trình hướng đối tượng OOP

  • Class là gì?
  • Sự khác nhau giữa ClassModule?
  • Object là gì?
  • Làm thế nào để tạo và sử dụng Constructor trong Ruby?
  • Làm thế nào để tạo gettersetter method trong Ruby?
  • Miêu tả sự khác nhau giữa class variablesinstance variables?
  • 3 cấp độ truy cập method của class và ý nghĩa có nó là gì? (public, protected, private.
  • Giải thích câu"hầu hết tất cả mọi thứ đều là object" trong Ruby?
  • self là gì?
  • Eigenclass là gì?
  • Mô tả hoạt động của Ruby method lookup?
  • method_mising là gì?
  • Sự khác nhau giữa ProcLambda
  • Khái niệm và cách hoạt động của Array và hash trong ruby?
  • Singleton method là gì?
  • Miêu tả về các callbacks của Ruby. Ta sử dụng chúng như thế nào?

1.2 Business Applications

Ngoài OOP, điều quan trọng là phải có kinh nghiệm và kỹ năng làm việc với các Business Applications. Trong Rails app, Rack là một interface rất phổ biến, nên dưới đây là 1 số câu hỏi về nó:

  • Bạn có biết về CGI? phân biệt CGIRack?
  • Giải thích về cách hoạt động của Rack application interface.
  • Hãy thử viết một Rack application đơn giản.
  • Rack Middleware hoặt động như thế nào?
  • Design pattern nào sử dụng Rack Middleware.

1.3 Gems

Và cuối cùng, không có cuộc phỏng vấn về Ruby nào mà không có cuộc thảo luận của Ruby Gems. Đây là một cơ hội hoàn hảo cho người nộp đơn không chỉ chứng minh kiến thức cơ bản mà còn chia sẻ ý kiến cá nhân và sở thích trong quá trình lập trình của mình.

  • RubyGems là gì? Nó hoạt động như thế nào?
  • Làm thế nào để bạn tự xây dựng gem của riêng mình?
  • Giải thích cấu trúc của một Ruby gem.
  • 3 gems yêu thích của bạn là gì?
  • Ruby Gems có an toàn khi sử dụng không?

2. Câu hỏi về Ruby on Rails

2.1 Ruby on Rails basic

  • Rails 5.2 vừa ra có điểm gì mới bạn có biết ko?
  • Rails 5 có gì khác với Rails 4?
  • Asset Pipline là gì?
  • ActiveJob là gì? Khi nào ta sử dụng chúng?
  • Giải thích sự khác nhau giữa Page, Action, Fragment, Low-level, SQL caching.
  • Rails engine là gì? sử dụng nó có ưu và nhược điểm gì?

2.2 Routing, Controllers và Views

  • REST và RESTful là gì? lấy ví dụ về RESTful routing và controller.
  • CRUDđại diện cho những từ nào và các actions của nó là gì?
  • Template engines là gì?
  • Làm thế nào để test routes?
  • Làm thế nào để sử dụng filters trong controller?
  • Strong Parameters là gì?
  • Làm thế nào để sử dụng content_foryield?
  • Làm thế nào để sử dụng nested layouts?
  • Nói những gì bạn biết về Form Object trong rails.
  • Bạn biết gì về design pattern Presenter

2.3 Active Record

  • Giải thích về Active Record pattern?
  • Object-Relational Mapping là gì?
  • Miêu tả về conventions của Active Record.
  • Giải thích cơ chế Migrations.
  • Mô tả các loại associations trong Active Record.
  • Scopes là gì? Sử dụng như thế nào?
  • Giải thích sự khác nhau giữa optimisticpessimistic locking.

3. Câu hỏi chung chung

3.1 Vấn đề về Bảo mật

Một vấn đề quan trọng là việc đảm bảo bảo mật và sự ổn định của các ứng dụng. Đó là lý do tại sao cần phải hỏi những điều cơ bản về bảo mật thông tin

  • Cookies là gì? Làm thế nào để lưu đa ta vào cookies? Các nguy cơ có thể xảy ra khi dùng cookie?
  • Phân biệt CookiesSession? ưu và nhược điểm?
  • CSRF là gì?
  • Một số cách để hack một web application mà bạn biết?
  • SQL Injection là gì? làm thế nào để phòng tránh?
  • Ưu và nhược điểm của HTTPs và HTTP2

3.2 Kỹ năng Refactoring

Refactoring là một điều lớn, cho thấy kiến thức thực tếtrình độ kỹ thuật của ứng viên.

  • Đối với bạn code smell là gì?
  • Fat controller là gì? vì sao nên tránh fat controller?
  • Fat model là gì? vì sao nên tránh fat model?
  • Kể tên 3 design patterns mà bạn thích? Lý do?

3.3 Câu hỏi về bản thân ứng viên

Ở phần này, các câu hỏi xoay quanh bản thân ứng viên, qua đó nhà tuyển dụng có thể biết được sơ bộ tính cách, sở thích của ứng viên. Dưới đây là một số câu hỏi tham khảo:

  • Bạn thích điều gì ở vị trí mà bạn ứng tuyển?
  • Tại sao bạn lại quyết định trở thành 1 developer?
  • Có điều gì bạn không thích tại vị trí công việc hiện tại?
  • Điều gì làm bạn thích nhất khi nói về công việc trước đây?
  • Project nào của bạn mà bạn tâm đắc nhất là gì?
  • Sở thích của bạn là gì?
  • Bộ phim yêu thích nhất?
  • Quyển sách yêu thích nhất?

3.4 Ngoại ngữ

Ngoài các câu hỏi trên, nếu các bạn thông thạo ít nhất là một ngoại ngữ thì đấy là điểm cộng cho vị trí này. Và ngôn ngữ mà mình nghĩ được ưu tiên cho vị trí ruby developer là: Tiếng anhTiếng nhật. Tiếng anh thì khỏi phải bàn rồi. còn Nhật ngữ thì vì Ruby là ngôn ngữ do người Nhật tạo ra. Các dự án về Ruby phần lớn xuất phát từ Nhật. vì thế Biết đc tiếng Nhật là một lợi thế rất lớn.

4. Kết luận

Trên đây mình giới thiệu cho các bạn một số câu hỏi để Self review lại kiến thức của bản thân, cũng như là chuẩn bị cho các cuộc phỏng vấn vào các vị trí Ruby developer. Hi vọng nó giúp ích được cho bạn.

5. Tài liệu tham khảo

https://rubyroidlabs.com/blog/2016/12/how-we-interview-ruby/

https://techblog.vn/phong-van-ruby-on-rails-developer