thắc mắc Phỏng vấn take home assignment ở VN (code app, server tại nhà) ?

yep.

p/s: theo tôi được biết thì kiểu take home này khá phổ biến nhé, bởi vì người ta cần tuyển là người làm được việc (dù là dùng google) chứ không phải nói xạo.
Để lát e hộp cho bác nhé, github e sợ lộ info mốt ko lên đây nói xấu dc :sexy_girl:
Trình thì e nghĩ nếu e dỡ thì nó gửi cái mail chửi cũng dc, đằng này im im bực mình quá.
 
Để lát e hộp cho bác nhé, github e sợ lộ info mốt ko lên đây nói xấu dc :sexy_girl:
Trình thì e nghĩ nếu e dỡ thì nó gửi cái mail chửi cũng dc, đằng này im im bực mình quá.
vl không biết tạo throwaway account à.

p/s: không liên quan cơ mà chợt nhớ ra vụ inbox: ai inbox tôi hỏi về cntt tôi nói luôn là tôi không trả lời đâu nhé. nếu muốn thì tạo topic mở, rảnh mọi người vào trả lời, chứ tôi không dành thời gian đi trả lời từng bạn, lãng phí.
nhiều năm sinh hoạt voz qua các nick phiền nhất là vụ này.
 
vl không biết tạo throwaway account à.

p/s: không liên quan cơ mà chợt nhớ ra vụ inbox: ai inbox tôi hỏi về cntt tôi nói luôn là tôi không trả lời đâu nhé. nếu muốn thì tạo topic mở, rảnh mọi người vào trả lời, chứ tôi không dành thời gian đi trả lời từng bạn, lãng phí.
nhiều năm sinh hoạt voz qua các nick phiền nhất là vụ này.
ko bít throwaway account bác ơi, e cũng gà để e mò thử
 
vl không ai dạy bạn là nhét code vào trong src/ à
.git đâu rồi, không có version control à.

tôi nghĩ đến đây thì người ta đã chả muốn xem tiếp rồi :(
 
vl không ai dạy bạn là nhét code vào trong src/ à
.git đâu rồi, không có version control à.

tôi nghĩ đến đây thì người ta đã chả muốn xem tiếp rồi :(
Đúng là ko ai chỉ e vụ src/ thật :beat_brick:
Còn cái .git e nhớ lưu thông tin local ko có tác dụng khi share nên bỏ ra ko gửi, bác cần để làm gì hay sao á :beat_brick:
 
Sửa lần cuối:
mà tôi có hơi tò mò là cái convention idParent, idChild là từ đâu vậy nhỉ?
lần đầu tiên thấy luôn, parentID thì không nói....

export function khó viết lắm sao mà toàn export const?
đặt tên function tại sao lại là pascal case? nhái c# à?
async/await có biết dùng không, sao callback kinh thế
readFileSync có vấn đề gì à mà không dùng lại dùng readFile lại bắt nest thêm một level nữa.

thêm combine với cái hungarian notation kiểu M$ nữa tôi đúng là phục luôn :)))
scoping của variable cũng sai lè, code thì thừa cả đống.

kết: kể ra thì chả đến nỗi nào nhưng tôi đoán là bạn đòi hơi cao cho nên người ta ignore luôn :)
 
Sửa lần cuối:
mà tôi có hơi tò mò là cái convention idParent, idChild là từ đâu vậy nhỉ?
lần đầu tiên thấy luôn, parentID thì không nói....

export function khó viết lắm sao mà toàn export const?
đặt tên function tại sao lại là pascal case? nhái c# à?
async/await có biết dùng không, sao callback kinh thế
readFileSync có vấn đề gì à mà không dùng lại dùng readFile lại bắt nest thêm một level nữa.

thêm combine với cái hungarian notation kiểu M$ nữa tôi đúng là phục luôn :)))
scoping của variable cũng sai lè, code thì thừa cả đống.

kết: kể ra thì chả đến nỗi nào nhưng tôi đoán là bạn đòi hơi cao cho nên người ta ignore luôn :)
Còn chưa tới vòng deal lương bác à :cold:

Edit: cách viết của e có vấn đề zậy à,

  • export function khó viết lắm sao mà toàn export const?
Lúc đó lười, copy code vào nên quên sửa :beat_brick:

  • đặt tên function tại sao lại là pascal case? nhái c# à?
  • thêm combine với cái hungarian notation kiểu M$ nữa tôi đúng là phục luôn :)))

chuẩn đó bác, e nhái c#, do e phải làm song song C#, java, javascript nên xài chung 1 kiểu viết, chắc phải sửa lại.

  • async/await có biết dùng không, sao callback kinh thế
Chỗ đó e theo code của thằng firebase nó hướng dẫn nên ko xài async/await, callback e đâu có dùng nhiều lắm đâu nhỉ.

  • readFileSync có vấn đề gì à mà không dùng lại dùng readFile lại bắt nest thêm một level nữa.
readfile thì google xong bỏ vô thôi chớ e ko bít vụ nest.

  • scoping của variable cũng sai lè, code thì thừa cả đống.
Cái này thì e chịu thua, ko nhìn ra sai với thừa ở đâu


Em mà bị bác @Nipin phỏng vấn chắc rớt từ vòng gửi xe 🤣🤣
Cũng thank bác vì bỏ công đọc code rồi cho e nhận xét :beauty::sweet_kiss:
 
Sửa lần cuối:
Mấy cái code thể dùng tools để phát hiện ngay khi mở code:
  • Var với let loạn lên.
  • Chơi 3 blank line ở đầu files
  • Sai chính tả (single, multi)
1 và 2 thì thấy có xài eslint mà đêr mấy cái lỗi này thì hơi chán.
3 dùng vscode thì nên xài extension code spell checker

GetDeviceToken với GetDeviceTokenByLstParent giống nhau tới 99%, đơn giản thì dùng hàm map để gọi thằng getDevideToken là được rồi.
Thằng GetDeviceTokenOfGroup return 2 kiểu null với array, nên thằng gọi hàm phải check khá mệt, ví dụ bên nó xài filter hoặc map thì khi trả về null bị lỗi, sao không trả về 1 kiểu là array thôi, lúc length bằng 0 thì trả mảng rỗng là dc.

Chút rảnh comment thêm
 
Chuyện làm assignment thì năm 2012 pv vào lazada là có rồi. Pv kiểu này thì ai hay chém gió dễ bị lộ tẩy lắm. Vì chỉ là 1 app nhỏ nhưng nó check được lắm thứ:

  • Git using
  • App Architect
  • Coding mindset
  • Problem solving
  • .....

Anh nào dạng NATO hay thợ gõ chỉ có chết. Cho dù làm xong thì cũng chả pass vì bao nhiêu thứ nó lộ ra hết :v

Hiện tại ko biết nhiều cty apply cái này không chứ năm 2019 thì Gojek cũng là dạng này
 
Mấy cái code thể dùng tools để phát hiện ngay khi mở code:
  • Var với let loạn lên.
  • Chơi 3 blank line ở đầu files
  • Sai chính tả (single, multi)
1 và 2 thì thấy có xài eslint mà đêr mấy cái lỗi này thì hơi chán.
3 dùng vscode thì nên xài extension code spell checker

GetDeviceToken với GetDeviceTokenByLstParent giống nhau tới 99%, đơn giản thì dùng hàm map để gọi thằng getDevideToken là được rồi.
Thằng GetDeviceTokenOfGroup return 2 kiểu null với array, nên thằng gọi hàm phải check khá mệt, ví dụ bên nó xài filter hoặc map thì khi trả về null bị lỗi, sao không trả về 1 kiểu là array thôi, lúc length bằng 0 thì trả mảng rỗng là dc.

Chút rảnh comment thêm

var, let, 3 blank line e làm ẩu, tự gạch :beat_brick:

eslint là do t lúc tạo project nó add sẵn chứ e chưa bít xài, thank bác khai sáng để học xài 2 cái eslint và extension code spell checker. :beauty:

Mấy cách viết hàm kia như là ko dùng lại hàm với return nhiều kiểu là lúc làm cty cũ nó yêu cầu như vậy cho phù hợp với mấy cái có sẵn, lâu dần e thành tật đúng là phải sửa lại. :beat_brick:
 
Sửa lần cuối:
đi làm lâu chưa, nhìn code hơi lủng củng :censored:
1 năm thím à, mà lúc đó e vô thì ứng tuyển C#, xong thử việc thì o team lead nghỉ nên phải tự học rùi làm lun phần nodeJS của ổng song song với cái C#. Làm tự kỷ 1 mình từ đó tới h. :too_sad:
Hồi đó nghỉ chắc ko sao, h nghe các bác phân tích mới thấy tác hại của nó. :beat_brick:
Phải té gấp kiếm senior học hỏi mới dc :too_sad:
 
Mình review code ứng viên mà thừa là reject luôn, khó tính vl ahihu.
Lời khuyên là đừng làm nghĩ phải làm nhanh, cái nên là làm kĩ. Nếu mới thì làm gì search best practices rồi làm theo. Cẩn thận là đức tính nhà tuyển dụng nào cũng thích.
 

Thống kê chủ đề

Ngày tạo
Bánh Mì Chấm Sữa,
Người trả lời cuối
Nipin,
Trả lời
44
Lượt xem
8.082
Quay lại
Lên đầu trang