Một số câu hỏi Phỏng vấn Ruby on Rails Developer
Bài đăng này đã không được cập nhật trong 6 năm
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
Class
vàModule
? Object
là gì?- Làm thế nào để tạo và sử dụng
Constructor
trong Ruby? - Làm thế nào để tạo
getter
vàsetter
method trong Ruby? - Miêu tả sự khác nhau giữa
class variables
vàinstance 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
Proc
vàLambda
- 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ệtCGI
vàRack
? - 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ớiRails 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_for
vàyield
? - 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
optimistic
vàpessimistic 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
Cookies
vàSession
? ư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ế
và 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 anh
và Tiế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/
All rights reserved