CS Foundation 101 (P3): Làm thế nào để ghi điểm trong vòng phỏng vấn Competency tại Got It?

Sau phần 1phần 2 của series CS Foundation 101, bạn đã biết được các khái niệm, sáu yếu tố quan trọng trong CS Foundation, cũng như những khóa học giúp nâng cao kiến thức CS Foundation. 

Bài viết cuối của series sẽ chia sẻ tới các bạn một số điểm cần lưu ý để có thể vượt qua vòng kiểm tra CS Foundation tại Got It – Competency Interview. Việc bạn có thật sự hiểu kỹ, hiểu sâu những kiến thức CS Foundation hay không đóng vai trò rất quan trọng vào kết quả của buổi phỏng vấn này.

Vòng phỏng vấn Competency là nơi Got It kiểm tra CS Foundation của các bạn ứng viên
Vòng phỏng vấn Competency là nơi Got It kiểm tra CS Foundation của ứng viên

Ở bài viết hôm nay, chúng mình sẽ đưa ra một số ví dụ thực tế xảy ra trong các buổi phỏng vấn tại Got It. Đồng thời, team cũng chia sẻ các gợi ý giúp bạn biết được chúng mình, từ góc độ của người phỏng vấn, mong đợi gì ở ứng viên và cách bạn có thể trả lời để trở nên nổi bật hơn so với những ứng viên khác. 

1. Ví dụ về phần kiểm tra kiến thức cấu trúc dữ liệu và giải thuật

Cấu trúc dữ liệu và giải thuật là một trong những kiến thức nền tảng không thể thiếu của ngành khoa học máy tính. Trong các cuộc thi tin học nói chung, đề bài thường xoay quanh việc sử dụng các cấu trúc dữ liệu phù hợp và giải thuật tối ưu nhất để giải quyết một bài toán. 

Cấu trúc dữ liệu và giải thuật là xuất hiện nhiều trong phỏng vấn CS Foundation
Cấu trúc dữ liệu và giải thuật là phần kiến thức quan trọng trong khoa học máy tính

Ở các buổi phỏng vấn Competency tại Got It, gần như tất cả các câu hỏi đầu tiên đều liên quan tới cấu trúc dữ liệu và giải thuật. Trong phần lớn các trường hợp, ứng viên có thể sẽ đưa ra được những định nghĩa và một số thông tin khái quát. Ví dụ như:

  • Liên quan đến các phần tử trong mảng (array), các ứng viên đều biết chúng được lưu trữ trên những ô nhớ nối tiếp nhau và độ phức tạp khi truy xuất một phần tử nhất định của mảng là O(1).

Đây đều là những thông tin chính xác. Tuy nhiên, không dừng lại ở đó, Engineer ở Got It sẽ hỏi bạn sâu thêm một chút: “Bạn có biết tại sao độ phức tạp trong trường hợp này lại là O(1) không?”. Rất bất ngờ là khá nhiều bạn không thể trả lời câu hỏi này. 

Thật ra câu trả lời cũng không quá phức tạp. Để biết địa chỉ ô nhớ chứa phần tử i trong mảng, ta chỉ cần lấy địa chỉ của ô nhớ chứa phần tử đầu tiên của mảng, cộng với i lần kích thước của phần tử được lưu trong mảng đó. Công thức tính toán là:

addr(a[i]) = addr(a[0]) + i*size(object)

Hoá ra cũng dễ hiểu phải không? Tại Got It, chúng mình luôn mong muốn ứng viên không chỉ biết về các khái niệm mà còn hiểu được bản chất của vấn đề. 

  • Liên quan đến các giải thuật sắp xếp, hầu hết các ứng viên đều có thể mô tả, cài đặt được các giải thuật như bubble sort, merge sort, quick sort, v.v… và phần lớn đều nói rằng quick sort có hiệu năng tốt nhất. 

“Vậy điều đó có đồng nghĩa với việc ta sẽ luôn sử dụng quick sort hay không?”

Hãy thử tìm đáp án cho câu hỏi trên. Bạn chắc chắn sẽ gây được ấn tượng tốt với người phỏng vấn nếu bạn có thể trả lời câu hỏi này. Có một gợi ý thú vị mà chúng mình muốn chia sẻ với các bạn: Hàm sort() trong ngôn ngữ lập trình được rất nhiều người yêu thích – Python không sử dụng quick sort.  

Hãy chuẩn bị kiến thức thật tốt để thành công với phỏng vấn CS Foundation
Hãy chuẩn bị kiến thức thật tốt để bản thân không phải bỡ ngỡ với những câu hỏi của Got It

Đó là hai ví dụ cụ thể về phần cấu trúc dữ liệu và giải thuật. Mong rằng, qua đây, bạn đã mường tượng được về cách hỏi và đặt vấn đề của chúng mình.

Got It kỳ vọng các ứng viên sẽ không chỉ học thuộc một cách rập khuôn, mà sẽ tư duy sâu, tìm hiểu căn nguyên của các khái niệm, tính chất trong CS Foundation. Do vậy, với các yếu tố khác của CS Foundation (Cơ sở dữ liệu, Hệ điều hành, Mạng máy tính, Lập trình hướng đối tượng, Ngôn ngữ lập trình), bạn cũng hãy hiểu sâu, hiểu đúng để không bỡ ngỡ với các câu hỏi “bất ngờ” của Got It Engineer nhé! 

2. Ví dụ về câu hỏi tổng hợp kiến thức CS Foundation

Ngoài những câu hỏi trực tiếp về kiến thức như trên, chúng mình cũng sẽ hỏi bạn các câu hỏi tổng hợp rất gần gũi, xuất phát từ câu chuyện đời sống hằng ngày. Dưới đây là ví dụ về một câu hỏi như vậy.

“Internet giờ đã trở thành một phần không thể thiếu trong cuộc sống của mỗi người. Với rất nhiều người trong chúng ta, việc đầu tiên chúng ta làm sau khi thức dậy không phải là ra khỏi giường, mà sẽ là với lấy chiếc điện thoại và truy cập Facebook. Có khi nào bạn tự hỏi, những việc gì đã diễn ra trong suốt quá trình từ khi bạn gõ facebook.com vào thanh địa chỉ của trình duyệt cho đến khi trang Facebook hiện ra?” 

Trên thực tế, đây chính là một câu hỏi mở thường xuyên được đặt ra cho các bạn ứng viên tham gia phỏng vấn Competency tại Got It. Mỗi bạn sẽ có một cách trả lời khác nhau do phạm vi câu hỏi bao trùm rất nhiều kiến thức, thành phần trong mạng máy tính.

Phỏng vấn Competency: Đằng sau quá trình truy cập vào Facebook của bạn là những gì?
Đằng sau quá trình truy cập vào Facebook của bạn là những gì?

Bạn có thể đưa ra một câu trả lời rất đơn giản: Trình duyệt gửi yêu cầu đến máy chủ của Facebook để lấy về nội dung trang web.

Tuy nhiên, đáp án của bạn sẽ được đánh giá cao hơn nếu bạn có thể cung cấp thêm chi tiết về việc làm sao trình duyệt biết phải gửi yêu cầu tới máy chủ của Facebook tại địa chỉ IP nào. Chắc hẳn lúc này bạn đang nghĩ tới dịch vụ phân giải tên miền – domain name service (DNS) phải không? 

Chính xác là trình duyệt sẽ cần thông qua DNS để làm việc này. Và như chúng mình đã đề cập ở trên, Got It luôn muốn bảo đảm rằng ứng viên có những hiểu biết sâu sắc về những vấn đề ứng viên trình bày. Vậy nên, rất có thể câu hỏi tiếp theo sẽ là: DNS hoạt động như thế nào?

Sẽ rất tuyệt nếu bạn có hiểu biết về các lớp server của DNS như root servers, top-level domain servers và authoritative servers. Và sẽ tuyệt vời hơn nữa nếu bạn có thể nói cho chúng mình biết rằng DNS chính là một ví dụ tiêu biểu của hệ cơ sở dữ liệu phân tán

Bật mí nho nhỏ là Got It Engineer sẽ luôn có các câu hỏi follow-up cho những câu trả lời các bạn đưa ra. Trả lời được càng nhiều, càng chính xác, có nghĩa là bạn càng nắm chắc phần kiến thức về CS Foundation. Vậy nên, bạn đừng quên đào sâu và thử áp dụng CS Foundation để phân tích các hệ thống, hiện tượng khoa học máy tính xuất hiện trong đời sống nhé!

Phỏng vấn Competency xuất hiện nhiều trong đời sống hàng ngày của bạn
Kiến thức CS Foundation xuất hiện nhiều trong đời sống hàng ngày của bạn

3. Lưu ý về bài test lập trình

Ngoài các câu hỏi kiểm tra về CS Foundation, một phần không thể thiếu của các buổi phỏng vấn Competency là các bài test lập trình nhỏ. Thông thường, các bạn ứng viên sẽ có xu hướng bắt tay ngay vào việc viết code nhưng đây không phải là một ý hay. Việc đầu tiên các bạn nên làm là đọc kĩ và đặt ra các câu hỏi để bảo đảm rằng các bạn đang hiểu đúng yêu cầu đề bài. 

Ví dụ, nếu đề bài có liên quan đến chuỗi (string), câu hỏi có thể là: 

  • Chuỗi có phân biệt chữ hoa, chữ thường hay không?
  • Khoảng trắng trong chuỗi cần được xử lý như thế nào? 

Hay nếu đề bài liên quan đến mảng thì có thể bạn cần quan tâm đến việc mảng đó có được sắp xếp theo thứ tự nào hay không. 

Bạn nên đọc kỹ đề bài và đặt ra các câu hỏi trước khi bắt tay làm bài phỏng vấn CS Foundation
Bạn nên đọc kỹ đề bài và đặt ra các câu hỏi trước khi bắt tay làm bài Test 

Kỹ năng lập trình của các bạn là rất quan trọng. Tuy nhiên, ngoài kỹ năng, Got It đặc biệt quan tâm đến cách bạn tiếp cận vấn đề. Sau khi đã hiểu đề bài, nếu bạn cần thêm thời gian suy nghĩ, đừng ngại đề cập với người phỏng vấn. Đồng thời, đừng chần chừ hỏi mượn giấy bút nếu bạn cần để làm nháp nhé. 

Với những bài test lập trình này, việc đưa ra cách giải tối ưu ngay từ đầu là rất khó vì bạn đang phải làm dưới áp lực của buổi phỏng vấn Competency. Vì thế, hãy bắt đầu bằng một giải pháp đơn giản nhất, sau đó từng bước tìm cách cải thiện về mặt hiệu năng.

Việc này cũng phần nào giống như cách chúng ta xây dựng sản phẩm. Chúng ta sẽ bắt đầu với một sản phẩm tối giản dùng được – minimum viable product (MVP), sau đó cải tiến liên tục theo các release để cuối cùng có một sản phẩm hoàn chỉnh.

Got It đặc biệt quan tâm đến cách bạn tiếp cận vấn đề trong vòng phỏng vấn CS foundation
Got It đặc biệt quan tâm đến cách bạn tiếp cận vấn đề trong vòng phỏng vấn CS Foundation

Nếu trong quá trình làm bài, bạn cảm thấy dù đã rất cố gắng nhưng hướng giải quyết bài toán vẫn chưa rõ ràng, hãy thử hỏi xem người phỏng vấn có thể cho bạn gợi ý gì không. Việc nhận ra lúc nào chúng ta nên dừng lại và tìm kiếm sự giúp đỡ cũng là một kĩ năng rất quan trọng. 

Cuối cùng, đừng quên viết test cho phần cài đặt của bạn. Hãy bảo đảm rằng sản phẩm bạn làm ra luôn đạt chất lượng tốt nhất. 

“All code is guilty, until proven innocent”

– Anonymous – 

Lưu ý nhỏ cuối cùng nhưng không kém phần quan trọng đó là: Bạn chỉ nên trả lời những gì mình thật sự nắm chắc thôi!

Rất nhiều ứng viên cố gắng trả lời câu hỏi trong khi không nắm chắc kiến thức khiến cho cơ hội vượt qua vòng phỏng vấn của các bạn bị giảm đi ít nhiều. Nếu gặp phải câu hỏi ngoài phạm vi hiểu biết của mình, đừng ngần ngại chia sẻ thật với người phỏng vấn. Engineer của Got It chắc chắn sẽ trao cho bạn một cơ hội khác để thể hiện khả năng.

Hãy chia sẻ thẳng thắn những điều bạn không biết với người phỏng vấn. Bạn sẽ được đánh giá cao đó!
Hãy chia sẻ thẳng thắn những điều bạn không biết với người phỏng vấn. Bạn sẽ được đánh giá cao đó!

4. Lời kết

Hy vọng rằng bài viết này đã phần nào giúp bạn hiểu được chúng mình mong đợi gì từ các ứng viên và cách để các bạn có thể đạt được số điểm cao nhất trong vòng phỏng vấn Competency.

Hiện tại, Got It đang tuyển dụng nhiều vị trí engineering đặc biệt dành cho các bạn New Grads, sinh viên năm cuối. Nếu bạn đang tìm một bến đỗ giúp bạn trở thành một World-class Engineer ngay tại Việt Nam, thì đừng chần chừ gì nữa, hãy apply Got It, bạn nhé!

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://vn.got-it.ai/blog/wp-content/uploads/2021/04/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
May 07, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
CS Foundation 101 (P3): Làm thế nào để ghi điểm trong vòng phỏng vấn Competency tại Got It?

CS Foundation 101 (P3): Làm thế nào để ghi điểm trong vòng phỏng vấn Competency tại Got It?

Sau phần 1 và phần 2 của series CS Foundation 101, bạn đã biết được các khái niệm, sáu yếu tố quan trọng trong CS Foundation, cũng như những khóa học giúp nâng cao kiến thức CS Foundation.  Bài viết cuối của series sẽ chia sẻ tới các bạn một số điểm cần lưu ý […]
CS Foundation 101 (P2): Nguồn tài liệu tham khảo CS Foundation hay nhất

CS Foundation 101 (P2): Nguồn tài liệu tham khảo CS Foundation hay nhất

Thống kê cho thấy, tuy kiến thức nền tảng ngành Computer Science (CS Foundation) thường được dạy trong các tín chỉ tại các trường Đại học, Cao đẳng, nhưng có đến hơn 90% ứng viên đã từng “fail” Got It vì chưa nắm chắc CS Foundation. Nguyên nhân lớn nhất được các Engineer của Got […]
CS Foundation 101 (P1): CS Foundation là gì? 6 yếu tố bạn cần nắm vững là gì?

CS Foundation 101 (P1): CS Foundation là gì? 6 yếu tố bạn cần nắm vững là gì?

Theo thống kê, một năm Got It chỉ có thể tuyển khoảng 3% các ứng viên nộp CV đầu vào. Điều khiến 90% các bạn apply chưa vượt qua được vòng Competency chủ yếu là sự thiếu hụt kiến thức về Computer Science Foundation (CS Foundation). Không chỉ có Got It, các tập đoàn công […]
Hướng dẫn xóa 1 phần tử trong mảng của Python

Hướng dẫn xóa 1 phần tử trong mảng của Python

Nhiều bạn mới học lập trình sẽ không biết cách xóa 1 phần tử trong mảng của Python. Việc xoá phần tử sẽ trở nên dễ dàng hơn nếu bạn biết những phương thức phù hợp. Trong bài viết này, Got It sẽ chia sẻ tới bạn 4 cách để xóa 1 phần tử trong […]
Conversational AI

Conversational AI

Trong số những sản phẩm mà Got It đang xây dựng, Conversational AI (CAI) là sản phẩm có tuổi đời trẻ nhất, chưa có nhiều khách hàng nhất. Tuy nhiên, đây lại là sản phẩm phức tạp nhất và được kỳ vọng lớn nhất trong chiến lược phát triển của công ty. Tại sao lại […]
Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Biến Git và GitHub trở thành công cụ đắc lực cùng Software Engineer nhà Got It!