Both first & take are applied on the ruby objects, they return the requested number of elements from the Array. There are some differences between them, and i have explained the major ones over here.
1) The method take always accepts an argument, and that argument is the number of elements to be returned from the ruby Array, if we don not supply an argument it gives us error.
>> a = [1,2,3,4,5]
=> [1, 2, 3, 4]
ArgumentError: wrong number of arguments (0 for 1)
from (irb):2:in `take'
Whereas, first can be used with an argument or without an argument. If used without an argument, it returns the first element of the array. If used with an argument, it returns the specified number of elements from the beginning of the array.