Kinh nghiệm cá nhân khi vào Feishu qua tuyển dụng campus
Lời giới thiệu: Tác giả bài viết cuối cùng đã vào Feishu làm development thông qua tuyển dụng campus. Trong bài viết này, tác giả chia sẻ trải nghiệm tuyển dụng campus và kinh nghiệm cá nhân.
Địa chỉ bài gốc: https://www.ihewro.com/archives/1217/
Tình hình cơ bản
Tôi chủ yếu theo hướng backend development bằng C++.
Trong đợt tuyển dụng mùa xuân năm 2021, tôi vào làm tại client Feishu của ByteDance; trước khi vào ByteDance, tôi đã nhận được offer từ Baidu (mảng audio/video livestream), đồng thời vượt qua vòng phỏng vấn HR của Tencent PCG (Weishi, backend development) (chưa nhận được thư ý định tuyển dụng).
Quá trình tuyển dụng mùa xuân không thuận lợi
Thực tập tuyển dụng mùa xuân không mấy thuận lợi với tôi
Phòng thí nghiệm chính thức được nghỉ về nhà vào ngày đầu năm mới tháng 1, nhưng về nhà vẫn tiếp tục “làm việc từ xa”, công việc không hề giảm, mỗi ngày lặp đi lặp lại việc test và debug “hệ thống hội nghị streaming” do chúng tôi phát triển.
Vào ngày áp chót thứ ba của tháng 1, chúng tôi tổ chức một cuộc họp online về “tổng kết cuối năm”. Từ đó, với tư cách là nghiên cứu sinh năm hai, tôi cơ bản bắt đầu nói lời tạm biệt với công việc ở phòng thí nghiệm. Tôi cũng chính thức bắt đầu giai đoạn ôn tập cho tuyển dụng mùa xuân.
Trước tháng 2, tôi đã bắt đầu chuẩn bị không liên tục, chẳng qua chỉ là làm vài bài trên LeetCode; mỗi ngày không làm được mấy bài, về sau thậm chí chỉ làm tượng trưng bài mỗi ngày. Việc này giúp ích rất ít cho quá trình luyện thuật toán của tôi.
Từ tháng 2, vào đầu tháng 2, tôi mới làm được khoảng hơn 40 bài LeetCode, rồi tranh thủ vài tuần để cập nhật phiên bản 8.x của theme handsome; đó lại là vài tuần bận rộn. Mãi đến đúng ngày Tết mới chính thức phát hành, sau Tết lại bắt đầu tranh thủ một ít thời gian để sửa bug và phát hành các bản sửa lỗi. Tháng 2 cứ thế lặng lẽ trôi qua.
Quá trình tìm thực tập
Đầu tháng 3 năm 2021
Đầu tháng 3, tôi nộp hồ sơ vào đợt tuyển dụng sớm của Alibaba. Không ngờ đợt tuyển dụng sớm của Alibaba đã kết thúc vào ngày 4 tháng 3, cuộc phỏng vấn qua điện thoại vòng một được hẹn hôm đó cũng bị hủy. Ngay sau đó, trong lúc phòng thí nghiệm họp để đồng bộ tiến độ khi bắt đầu học kỳ, tôi phát hiện mọi người đều đã đến tiến độ vòng một/vòng hai/vòng ba, còn tôi vẫn chưa có tiến triển gì trong việc nộp hồ sơ.
2021-03-08
Nộp hồ sơ vào ByteDance Feishu.
Đầu tháng 4 năm 2021
Vòng một đầu tiên của ByteDance, vòng một đầu tiên của Tencent.
Giữa tháng 4 năm 2021
Vòng một và vòng hai của Meituan, vòng một và vòng hai lần thứ hai của Tencent, ba vòng phỏng vấn của Baidu, và đã vượt qua.
Cuối tháng 4 năm 2021
Vòng một lần thứ ba của Tencent và vòng một lần thứ hai của ByteDance.
Đầu tháng 5 năm 2021
Vòng hai lần thứ ba của Tencent và vòng hai lần thứ hai của ByteDance; sau đó cả hai đều đã vượt qua.
Alibaba
Lần đầu tôi nộp vào DingTalk, không ngờ vì làm bài kiểm tra năng lực không tốt nên bị từ chối ngay ở vòng sàng lọc hồ sơ.
Lần thứ hai là phỏng vấn backend của Alimama, vòng một qua điện thoại. Tôi cảm thấy mình phỏng vấn khá ổn, cuối cùng cũng giải được bài. Ở phần đặt câu hỏi ngược, tôi hỏi người phỏng vấn có đề xuất gì cho phần phỏng vấn của mình. Người phỏng vấn nói rằng ứng tuyển vào Alibaba thì tốt nhất vẫn nên biết Java... Sau khi cuộc điện thoại kết thúc, tôi bị từ chối luôn...
Lúc đó tâm lý tôi thực sự suy sụp đôi chút. Vì cuộc phỏng vấn diễn ra lúc 7 giờ 30 tối, tôi cứ đọc sách mãi mà không ăn tối...
Vì vậy, tôi đã không có duyên với tuyển dụng mùa xuân và Alibaba.
Meituan
Người phỏng vấn vòng một của Meituan thực sự rất tốt. Không khí cũng rất thoải mái. Vì đó là vị trí Java nên họ không hỏi kiến thức C++, chỉ trao đổi một số kiến thức cơ bản. Nửa tiếng sau đó chủ yếu nói về các vấn đề phi kỹ thuật, chẳng hạn lập trình viên nào trên mạng được yêu thích nhất, làm thế nào để viết code thanh lịch, những sách kỹ thuật được đề xuất,... Lúc đó tôi trả lời rằng Wang Yin là lập trình viên mình yêu thích, người phỏng vấn cười và nói anh ấy cũng rất thích. Không khí phỏng vấn rất tốt.
Ở vòng hai, suốt buổi chỉ hỏi về một project trong CV, khoảng 90 phút. Tôi cảm thấy ngay từ đầu anh ấy đã hơi không muốn nhận tôi; nguyên nhân lớn có lẽ là tôi dùng C++, chuyển sang Java vẫn có một số chi phí. Cuối cùng khi hỏi HR, tôi được trả lời là kết quả vẫn chưa quyết định; vài ngày sau tôi nhận được thông báo bị từ chối.
Baidu
Baidu có tổng cộng ba vòng phỏng vấn, được tiến hành cùng trong một buổi chiều, thực sự rất hồi hộp. Vòng một chỉ hỏi một số câu hỏi C++ rất cơ bản, yêu cầu viết một bài và nói về hướng giải quyết nhưng không cần chạy (nếu thực sự cần chạy thì chưa chắc đã chạy được 😃)
Vòng hai cũng là kiến thức cơ bản: bài đầu tiên là gộp hai array đã sắp xếp, bài thứ hai là viết merge sort. Kết quả tôi viết không đúng, nên người phỏng vấn đổi sang một bài khác là BFS của tree. Cuối vòng hai, người phỏng vấn hỏi tôi cảm thấy thế nào về buổi phỏng vấn hôm nay. Tôi nói rằng tuy giữa chừng có một bài cho kết quả không đúng, nhưng hướng giải quyết là đúng, có thể chỉ có một chỗ nhỏ nào đó viết sai, nhưng nhìn chung chắc vẫn ổn. Vòng hai đã cho tôi vượt qua.
Vòng ba hỏi khá ít vấn đề kỹ thuật, hơn 30 phút, cũng không yêu cầu viết bài, chỉ hỏi một số tình hình cơ bản và kiến thức nền tảng. Cuối cùng hỏi bộ phận sẽ làm nội dung gì. Người phỏng vấn nói HR sẽ liên hệ sau để cho tôi biết nội dung.
ByteDance Feishu
Vòng một lần đầu đã trượt, nguyên nhân có lẽ là kết quả bài thi viết không đúng...
Vòng một lần thứ hai diễn ra vào cuối tháng 4 và khá thuận lợi. Vòng hai diễn ra sau ngày Quốc tế Lao động mùng 1 tháng 5, người phỏng vấn còn nhờ một chị khóa trên báo tôi nên xem thêm về smart pointer. Khi phỏng vấn, họ yêu cầu tôi tự viết shared_ptr. Trước đó tôi đã xem một số implementation nhưng chưa từng tự viết, nên code chưa được cân nhắc đầy đủ; leader cứ liên tục nhắc tôi phải sửa thế này, sửa thế kia.
Ban đầu tôi nghĩ mình đã trượt. Đến giữa tháng 5, tôi đã chuẩn bị vào làm ở Baidu thì nhận được thông báo là đã vượt qua. Thế là tôi quyết định vào ByteDance.
Cảm nhận
Điều khiến tôi cảm nhận sâu sắc nhất sau rất nhiều lần phỏng vấn là các bài kiểm tra trong phỏng vấn thực sự rất quan trọng. Vì kiến thức nền tảng của tôi cũng không nổi bật, thêm vào đó nếu không giải được bài thuật toán (thường là 1 hoặc 2 bài) thì cơ bản sẽ trượt. Ngược lại, bài thi viết trước phỏng vấn không quan trọng và cũng không khó đến vậy. Về cơ bản, trong 4 bài chỉ cần viết được 1-2 bài là có cơ hội được phỏng vấn. Độ khó cơ bản chỉ tương đương các thuật toán trên LeetCode top 100.
Khi giải bài trong phỏng vấn, tôi rất dễ căng thẳng, đầu óc dễ trở nên trống rỗng. Chỉ cần không chú ý, viết sai một ký hiệu hoặc gán giá trị sai cho linked list thì rất khó nhận ra vấn đề, dẫn đến kết quả cuối cùng không đúng.
Thực tập tại ByteDance
Trước khi vào ByteDance, ban đầu tôi nghĩ vị trí này có lẽ phù hợp với mình nhất trong số các vị trí đã phỏng vấn, vì tôi chuyên về C++, hơn nữa Feishu có vẻ dùng C++ khá sâu. Sau khi vào, tôi lại cảm thấy có lẽ mình không thích làm những việc liên quan đến client lắm, cảm giác khá phức tạp... Có lẽ server sẽ tốt hơn, hiện giờ tôi vẫn chưa thể khẳng định.
Phúc lợi thực tập của ByteDance có lẽ khá tốt trong số các công ty này. Vấn đề nhỏ là chỗ ngồi khá hẹp, cường độ làm việc cũng lớn hơn một chút so với các công ty Internet khác. Canteen ByteDance miễn phí và khá ổn. ByteDance có rất nhiều tòa nhà văn phòng, địa điểm tôi làm việc tương đối nhỏ.
Hiện tại, tôi cần thư giãn, cứ từ từ xem code trong repository. Mentor cũng bảo tôi không cần vội, có vấn đề thì hỏi nhiều hơn, không được giữ trong lòng làm lãng phí thời gian. Sau khi nhận được offer chính thức, trong đợt tuyển dụng mùa thu tôi vẫn muốn thử thêm các công ty nước ngoài hoặc doanh nghiệp nhà nước. Hiện tại tôi khó thích nghi với công việc có cường độ quá cao.
Hy vọng sau một thời gian nữa tôi có thể chia sẻ cảm nhận của mình, đồng thời thích nghi tốt hơn với nội dung công việc hiện tại.
Chia sẻ kinh nghiệm tìm việc
Một số khái niệm
Thực tập thường nhật và thực tập chính thức (mùa hè) khác nhau thế nào
- Nếu một group thiếu người, thực tập thường nhật rất có thể sẽ tuyển thực tập sinh quanh năm, từ đó có cơ hội thực tập thường nhật, chỉ cần là sinh viên đang học đều có thể đi phỏng vấn. Còn thực tập chính thức có thời gian bắt đầu tương đối cố định, chẳng hạn từ tháng 3 đến tháng 6 hằng năm, tức là thực tập mùa hè.
- Thực tập thường nhật tương đối dễ vào hơn, nhưng có một số vị trí thực tập thường nhật không có quota chuyển chính thức, cần xác nhận trước.
- Thực tập thường nhật và thực tập chính thức của ByteDance không khác nhau về việc chuyển chính thức, đều cùng đăng ký chuyển chính thức.
Sau khi nhận offer thực tập chính thức thì khi nào có thể đi thực tập
Sau khi nhận offer thực tập mùa hè, bạn có thể đi thực tập ngay (thường cần hoàn tất một quy trình mất khoảng 1 tuần), cũng có thể chọn đi thực tập muộn hơn, thời gian có thể tự sắp xếp. Có công ty cho phép chọn thời gian thực tập trên hệ thống, có công ty chỉ cần trao đổi trực tiếp với HR.
Sự khác nhau giữa đợt tuyển dụng sớm và đợt tuyển dụng chính thức
Lấy việc tìm thực tập làm ví dụ:
- Tuyển dụng sớm trước, tuyển dụng chính thức sau. Tuyển dụng sớm thường do group trực tiếp tuyển người, không vào hệ thống, không có bài thi viết, quy trình tương đối nhanh, thường sau khi qua vòng một sẽ nhanh chóng đến vòng hai.
- Phỏng vấn trong đợt tuyển dụng chính thức đều có đánh giá phỏng vấn. Nếu đánh giá của lần phỏng vấn thất bại trước đó ảnh hưởng đến lần phỏng vấn tiếp theo thì vẫn nên thận trọng hơn.
Sự khác nhau giữa offer thực tập và offer chính thức
Nói đơn giản, offer thực tập chỉ cho bạn một cơ hội thực tập. Nếu làm tốt trong thời gian thực tập thì có thể chuyển chính thức và nhận offer chính thức.
Sau khi ký offer chính thức không có nghĩa là phải lập tức đi làm. Vì chúng ta là sinh viên được tuyển qua campus, sau khi nhận offer chính thức vẫn có thể tiếp tục thực tập (lương sẽ là một tỷ lệ phần trăm của lương chính thức), cũng có thể xin nghỉ một thời gian rồi đến khi thực sự tốt nghiệp mới bắt đầu làm việc chính thức.
Mốc thời gian
Hãy hoàn thiện CV càng sớm càng tốt, tốt nhất là trong thời gian gần đây, vì hiện tại mọi người vẫn còn rất quen thuộc với project trong phòng thí nghiệm, viết lúc này không khó. Vài tháng nữa viết CV sẽ khá vất vả.
Lấy năm ngoái làm ví dụ:
- Giữa tháng 2 bắt đầu đợt tuyển dụng sớm của Alibaba (về cơ bản lúc đó chỉ Alibaba mở tuyển dụng sớm), ngày 8 tháng 3 đợt tuyển dụng sớm của Alibaba kết thúc. Tuyển dụng sớm của Tencent bắt đầu vào khoảng tháng 3 và kết thúc ngày 15 tháng 4.
- Từ tháng 3 đến tháng 5 nhận được offer thực tập; tốt nhất là có thể nhận được offer thực tập mong muốn vào tháng 4.
- Thực tập từ tháng 4 đến tháng 8, đầu tháng 7 là tuyển dụng sớm mùa thu, cuối tháng 7 hoặc đầu tháng 8 là tuyển dụng chính thức mùa thu. Cuối tháng 9 cơ hội tuyển dụng mùa thu giảm khá nhiều, nhưng đó chỉ là tương đối, vẫn còn cơ hội.
- Cuối tháng 10, tuyển dụng mùa thu cơ bản kết thúc; sau đó vẫn còn đợt tuyển bổ sung mùa thu.
- Cách tìm cơ hội thực tập: cá nhân tôi thấy tìm người quen để referral sẽ tốt hơn. Lợi ích của referral ngoài việc có thể giúp theo dõi tiến độ, thường còn có thể giới thiệu thẳng vào group, nhờ đó loại bỏ một số group có vấn đề và biết trước group đó làm gì.
- Thực tập khá quan trọng, tốt nhất là tìm được công ty muốn vào ngay trong thời gian thực tập, khi tuyển dụng mùa thu sẽ nhẹ nhàng hơn nhiều, vì chuyển chính thức sau thực tập cơ bản không có vấn đề gì; hơn nữa offer chuyển chính thức sau thực tập thường tốt hơn offer từ tuyển dụng mùa thu (tất nhiên nếu thể hiện tốt trong tuyển dụng mùa thu thì vẫn có thể nhận được offer rất tốt). Không ít người xung quanh tôi nhận offer chính thức nhờ chuyển chính thức sau thực tập.
- Kiểm soát tốt thời gian thực tập, vì vừa thực tập vừa chuẩn bị cho tuyển dụng mùa thu rất mệt. Thông thường áp lực công việc trong thời gian thực tập cũng khá lớn, không có nhiều thời gian luyện bài.
Chuẩn bị phỏng vấn
Kinh nghiệm project
Tôi thấy project của phòng thí nghiệm chúng tôi không có vấn đề gì, điều quan trọng là phải trình bày tốt.
- Giới thiệu project
Trước hết, có thể họ sẽ yêu cầu bạn giới thiệu project này là gì và tại sao phải thực hiện project này.
- Kết quả của project
Sau đó, có thể họ sẽ hỏi về kết quả cuối cùng trên một số dữ liệu của project, chẳng hạn hệ thống hội nghị có thể cho bao nhiêu người sử dụng đồng thời, hoặc trải nghiệm được lượng hóa như độ mượt, hoặc một số ưu điểm khác.
- Khó khăn trong project
Cuối cùng, họ thường sẽ hỏi trong quá trình thực hiện có gặp khó khăn hay thách thức nào không và đã giải quyết thế nào. Phần này chủ yếu kiểm tra điểm kỹ thuật của project là gì.
Khó khăn là gì? Cá nhân tôi cho rằng chủ yếu là vấn đề phải mất vài ngày mới giải quyết được mới được xem là khó khăn.
Lấy hai ví dụ:
Ví dụ thứ nhất là điều tra bug, chẳng hạn một vấn đề memory leak mất một tuần mới điều tra ra, vậy thì đó được xem là một khó khăn. Quá trình giải quyết khó khăn này chính là quá trình định vị vấn đề, chẳng hạn trước tiên chúng ta tìm kiếm tài liệu liên quan dựa trên lỗi. Chắc chắn không dễ tìm được nguyên nhân ngay, mà chúng ta sẽ tìm thấy một số từ khóa trong các tài liệu đó, chẳng hạn một số tool. Việc sử dụng tool đó chính là một phần của quá trình giải quyết vấn đề.
Ví dụ thứ hai là thiết kế phương án cho yêu cầu, chẳng hạn để hoàn thành một yêu cầu nào đó, chúng ta có thể có nhiều phương án thiết kế khả thi. Quá trình giải quyết khó khăn này chính là suy nghĩ về lý do chọn phương án cuối cùng và ưu, nhược điểm của các phương án thiết kế khác.
Có người nói rằng cách giải quyết của tôi chỉ là tìm kiếm trên Baidu, nhưng trên thực tế chi tiết cũng bắt đầu bằng việc tìm kiếm một lỗi hoặc vấn đề nào đó. Chắc chắn không thể lập tức tìm được đáp án code, mà là tìm thấy một từ khóa nào đó trong một đáp án, sau đó tiếp tục tìm từ khóa để thu thập thêm thông tin.
Bài thi viết
Tôi thấy bài thi viết khi tìm thực tập sẽ không quá khó. Thông thường nếu có 4 bài, làm được 1-2 bài là gần như có cơ hội phỏng vấn.
Vấn đề luyện bài đã được nói nhiều: LeetCode Top100. Lúc đầu luyện bài rất đau khổ, đến khi làm được 40 bài thì bắt đầu có cảm giác hơn. Đề xuất bắt đầu từ linked list và binary tree; các bài dạng array có nhiều kỹ thuật không thể áp dụng chung.
, nhất định phải dùng bảng trắng. Việc này không chỉ để ghi nhớ API phục vụ phỏng vấn, quan trọng hơn là sau khi thành thạo với bảng trắng, bạn sẽ viết code thuần thục hơn, đồng thời tư duy cũng độc lập hơn và ít phụ thuộc hơn. - Bài thuật toán là ưu tiên hàng đầu. Mục tiêu không phải là các bài khó, mà là phải luyện đến mức thành thạo và nhớ kỹ các bài đơn giản, trung bình, thường gặp, tần suất cao.
- Trong quá trình làm bài viết của phỏng vấn, nếu xuất hiện vấn đề, nhất định phải lập tức xin phép sử dụng IDE local để debug, nếu không có thể sẽ mất rất nhiều thời gian mà vẫn không tìm ra vấn đề, lãng phí cơ hội.
Phỏng vấn
Một buổi phỏng vấn thường kéo dài 1 giờ và chia thành hai phần. Nửa đầu sẽ hỏi một số kiến thức cơ bản hoặc kinh nghiệm project, nửa sau làm bài.
Khi bắt đầu ôn tập kiến thức cơ bản, không cần ôn một cách có hệ thống ngay. Trước hết phải đảm bảo các câu hỏi thường gặp đều biết, chẳng hạn một số câu hỏi bắt buộc về computer network và operating system. Có thể xem thêm các bài chia sẻ kinh nghiệm phỏng vấn để tìm những câu hỏi thường gặp. Với các câu hỏi ít gặp, ngay cả khi không trả lời được thì cũng không ảnh hưởng mang tính quyết định.
- Xem nhiều bài chia sẻ kinh nghiệm phỏng vấn!!!!!! Đừng chỉ vùi đầu tự học, hãy xem người khác đã bị hỏi những câu hỏi thường gặp nào.
- Với công việc thực tập, các câu hỏi thường gặp về những điểm kiến thức cần xem phải nắm đầy đủ!!!!!. Những kiến thức quá ít gặp thì không có vấn đề gì, nhất định phải đầy đủ, nhất định phải đầy đủ!!!!
- Với những gì bản thân không biết, hãy cố gắng nói nhiều nhất có thể!!!! Nếu thực sự không được thì hãy chuyển sang nói về phần khác!!! Tóm lại là dẫn dắt người phỏng vấn hỏi sang những phần mình biết.
- Bài viết trong phỏng vấn có phong cách khác với bài thi viết trước đó. Bài phỏng vấn không quá khó, nhưng kiểm tra khả năng bình tĩnh suy nghĩ, code thanh lịch và không có bug. Hãy suy nghĩ cho rõ ràng trước!!! Sau đó mới viết!!!
- Khi mô tả điểm khó của project, đừng nói việc nghiên cứu tài liệu là điểm khó. Phần trả lời này nên tập trung vào khó khăn kỹ thuật, cuối cùng đã dùng kỹ thuật nào để giải quyết vấn đề. Những kỹ thuật này có thể giúp người phỏng vấn hỏi sâu hơn để biết năng lực kỹ thuật của bạn.
Lời cuối
Nếu nội dung hữu ích với bạn, hãy tiện tay tặng JavaGuide một Star miễn phí để ủng hộ: GitHub | Gitee.
JavaGuide đã được duy trì gần bảy năm, tích lũy 6100+ commit, với sự chung tay hoàn thiện của 620+ contributor. Star, phản hồi và PR của bạn đều là động lực để dự án tiếp tục cập nhật.
Nếu bạn đang chuẩn bị phỏng vấn backend / phát triển ứng dụng AI, có thể tham khảo Knowledge Planet của tôi, bao gồm các project thực tế về backend và AI, tối ưu CV, hỏi đáp 1-1 và tài liệu về các trọng điểm thường gặp, đã được duy trì liên tục sáu năm.
