thảo luận [Intern,Fresher] Các câu hỏi hay dùng trong phỏng vấn các cty

Hồi còn fresher, pv KMS thì đc hỏi mấy câu sau:
  • Async await với promise
  • 1 câu đơn giản thuật toán, tính sum bình phương dùng arrow function(kiểu kiểu functional style)
  • Luận văn đã làm
  • Cho trước 1 Listlist, viết 1 hàm nhận param là (String a, String b) trả về khoảng cách a,b trong list. Nếu a,b bị duplicate trong list thì trả về khoảng cách bé nhất; a hoặc b không tồn tại thì trả về -1. Ví dụ:
    list = ["cat", "dog", "bird", "fish", "cat","duck","chicken","dog"]
    dist("dog","duck") -> 2 // dog sau gần duck hơn dog đầu.
    dist("cat","frog") -> -1
đang tính td mà chợt nhớ ra còn 1 cách để tối ưu cái đề 4 nữa
https://repl.it/repls/SparklingAggravatingApplicationserver#index.js
 
Ai đi phỏng vấn intern Android java hoặc kotlin cho em hỏi người ta hay hỏi về gì với ạ. Em đang ôn mấy cái cơ bản mà sợ ngươi ta hỏi về mấy cái mình chưa biết.
 
Ai đi phỏng vấn intern Android java hoặc kotlin cho em hỏi người ta hay hỏi về gì với ạ. Em đang ôn mấy cái cơ bản mà sợ ngươi ta hỏi về mấy cái mình chưa biết.

Tối ưu bộ nhớ, so sánh 1 chút giữa các phiên bản Android trong lập trình, vòng đời, xử lý chạy nền như nào, socket... :D
 
Hỏi dễ ẹt thôi. Mình dc hỏi về:
  • Phân tích 4 tính chất của hướng đối tượng. Cho VD từng cái.
  • Array và Linked List khác nhau chổ nào. Dùng 1 ngôn ngữ implement lại 1 class Linked List có 2 hàm insert, display.
  • Stack và queue
  • Thiết kế 1 bảng dữ liệu lưu trữ đơn hàng. Rồi hỏi thêm quan hệ giữa các bảng, tại sao lại có bảng trung gian, truy vấn ngược như thế nào.
  • Viết thuật toán tìm các phần tử lặp lại trong 1 arr có 1000 phần tử. Và giải thích.
Còn vài câu linh tinh nữa...
Nghe khoai quá bác ơi!
 
Cho mình hỏi pv về hash cho fresher thì thường câu hỏi nó ntn nhỉ?

Sent from Sharp 606SH via nextVOZ
Mình thường hỏi những bạn fresher những câu cơ bản này:
  • Hàm băm là gì ? Như thế nào là một hàm băm tốt.
  • Đụng độ là gì? Có những cách xử lý đụng độ nào? Độ phức tạp của từng phương pháp?
  • Khi nào thì nên dùng hash, khi nào thì nên dùng tree.
 
Last edited:
cái này là fresher hả :oops::oops:
Hồi còn fresher, pv KMS thì đc hỏi mấy câu sau:
  • Async await với promise
  • 1 câu đơn giản thuật toán, tính sum bình phương dùng arrow function(kiểu kiểu functional style)
  • Luận văn đã làm
  • Cho trước 1 Listlist, viết 1 hàm nhận param là (String a, String b) trả về khoảng cách a,b trong list. Nếu a,b bị duplicate trong list thì trả về khoảng cách bé nhất; a hoặc b không tồn tại thì trả về -1. Ví dụ:
    list = ["cat", "dog", "bird", "fish", "cat","duck","chicken","dog"]
    dist("dog","duck") -> 2 // dog sau gần duck hơn dog đầu.
    dist("cat","frog") -> -1

Ba cái async/await trước mình nhớ cỡ 1 năm trước có tham gia vào topic trên voz chửi nhau um xùm về cái này, ở công ty mình thì mình thấy mọi người với cái này, kể cả những anh được coi là cứng trong công ty, cũng còn mơ hồ, mà giờ đã thành câu hỏi dành cho fresher rồi.
runrun.gif


Còn mấy cái distinct gì đó thì mình chỉ biết hash aggregate và sort-stream aggregate (distinct sort) và nguyên tắc hoạt động của nó, độ phức tạp thuật toán, chứ kêu mình code liền ngay tại chỗ chắc chịu. :waaaht:

Chắc công ty mình sida chứ mình xác nhận là ở bên mình, hoặc ít nhất là mảng mình đang làm (làm BI system, vị trí là data engineer/data analyst) làm việc sẽ gần như không bao giờ phải code trực tiếp mấy cái này, cùng lắm chỉ cần hiểu (1 số vị trí liên quan đến thiết kế, kiến trúc) chứ làm thì cũng chỉ có call hàm có sẵn thôi :cold:.

Hồi mình mới vào công ty hiện tại thì chỉ có 1 câu SQL và 1 câu code rất rất cơ bản thôi.

Giờ mà mình có phỏng vấn fresher thì mình chỉ quan tâm đến mấy có chịu học hỏi làm nghiêm túc hay không chứ mình sẵn sàng cho chuyện không trả lời đúng được bất cứ câu hỏi nào. :after_boom:
 
Last edited:
đề 4 thú vị nhỉ. để làm thử coi sao
sau 1 hồi mò mẫn em cũng làm dc nhưng cách này chưa dc tối ưu lắm. ko biết cách nào hay hơn ko?
https://repl.it/repls/BlueTomatoFeeds#index.js
JavaScript:
const dis = (in, p1, p2) => {
    let i1 = -1;
    let i2 = -1;
    let distance = in.length;
    for (let i = 0; i < in.length; i++) {
        if (in[i] === p1) i1 = i;
        if (in[i] === p2) i2 = i;
        if (i1 !== -1 && i2 !== -1) Math.min(distance, Math.abs(i1 - i2));
    }
    return distance == in.length ? -1 : distance
}
O(n) time, O(1) space là đủ rồi bác
 
JavaScript:
const dis = (in, p1, p2) => {
    let i1 = -1;
    let i2 = -1;
    let distance = in.length;
    for (let i = 0; i < in.length; i++) {
        if (in[i] === p1) i1 = i;
        if (in[i] === p2) i2 = i;
        if (i1 !== -1 && i2 !== -1) Math.min(distance, Math.abs(i1 - i2));
    }
    return distance == in.length ? -1 : distance
}
O(n) time, O(1) space là đủ rồi bác

Đù. Cảm ơn bác. Em tay ngang nhảy vào nên mấy cái O(n) j đó k biết

Sent from Vsmart Active 3 using vozFApp
 
nắm vững kiến thức, logic, ko chém mạnh, khiêm tốn, biết nói biết ko nói ko... thì bạn có 60-70% pass rồi
 
Trước mới ra trường, em cũng ôn lại đủ loại kiến thức, câu hỏi để đi pv, ... Thế mà họ chỉ quan tâm mỗi các Projects mình đã làm thôi. Ví dụ em tự làm một vài cái, họ chỉ hỏi xoay quanh nó, áp dụng những cái gì, làm như thế nào, ... Không phải một cty mà 3, 4 cty em đi pv họ đều hỏi như vậy.

Hình như xưa hay phỏng vấn như thế, giờ chuyển sang test ngắn thuật toán


via theNEXTvoz for iPhone
 
JavaScript:
const dis = (in, p1, p2) => {
    let i1 = -1;
    let i2 = -1;
    let distance = in.length;
    for (let i = 0; i < in.length; i++) {
        if (in[i] === p1) i1 = i;
        if (in[i] === p2) i2 = i;
        if (i1 !== -1 && i2 !== -1) Math.min(distance, Math.abs(i1 - i2));
    }
    return distance == in.length ? -1 : distance
}
O(n) time, O(1) space là đủ rồi bác
Em chưa code nhưng có ý tưởng thế này. Lấy 2 biến A: dùng để chứa "dog", B: dùng để chứa "duck". Chạy vòng lặp để 2 biến này cùng duyệt từng phần tử , mỗi biến sẽ lưu lại vị trí khi đúng giá trị (nếu 1 biến đúng giá trị, biến còn lại ko thì biến đó tiếp tục duyệt biến kia dừng chờ), khi cả 2 cùng chạm đúng 1 cặp giá trị thì gán var min (ban đầu = 0) = (vị trí sau - vị trí trước). Giả sử A lưu vị trí số 2, B lưu vị trí số 4 thì sau khi gán min=2 thì duyệt tiếp A từ vị trí số 5. Cứ mỗi lần tìm đc giá trị mới sẽ so sánh vs min hiện tại, nếu nhỏ hơn min hiện tại thì gán min bằng giá trị đó. Nếu hết vòng lặp min =0 thì return -1.
Ao5ktfU.png
Ao5ktfU.png
Ao5ktfU.png

ps:Viết xong mới thấy giống quote
IYqzj0A.png
IYqzj0A.png
IYqzj0A.png
 
Hỏi dễ ẹt thôi. Mình dc hỏi về:
  • Phân tích 4 tính chất của hướng đối tượng. Cho VD từng cái.
  • Array và Linked List khác nhau chổ nào. Dùng 1 ngôn ngữ implement lại 1 class Linked List có 2 hàm insert, display.
  • Stack và queue
  • Thiết kế 1 bảng dữ liệu lưu trữ đơn hàng. Rồi hỏi thêm quan hệ giữa các bảng, tại sao lại có bảng trung gian, truy vấn ngược như thế nào.
  • Viết thuật toán tìm các phần tử lặp lại trong 1 arr có 1000 phần tử. Và giải thích.
Còn vài câu linh tinh nữa...
Bạn ơi người ta có phỏng vấn tiếng anh không bạn. Nếu có thì cho mình hỏi ng ta hỏi gì v
 
Back
Top