Lợi ích của giỏi thuật toán với ngành CNTT?

Xin chào mọi người trong diễn đàn , e là sinh viên năm 3 trường ĐHBKHN. e muốn hỏi là lợi ích của thuật toán với ngành CNTT, e thuộc đội tuyển OLP và ACM của trường nên cũng tự nhận biết 1 ít về thuật toán, nhưng e ko đc vào ngành khoa học máy tinh( do năm nhất nhác học) nên e muốn hỏi công sức cày thuật toán của mình có uổng phí ko sau khi thi vòng quốc gia sắp tới… E vẫn chưa biết việc học thuật toán của mình có thể áp dùng gì cho code( trừ ngành khmt) của mình trong tương lai. Và các ac có thể giúp e định hướng với khả năng thuật toán tốt thì nên theo hướng gì ạ( trư ngành khoa học máy tinh :(( ) . E cảm ơn ạ

1 Like

Nếu giỏi thuật toán em có thể thử apply vào Google, Facebook, Amazon nhé.
Còn nếu em ko định apply vào các công ty trên thì chờ câu trả lời của các anh khác nhé, anh ko biết :smiley:

làm cho google ạ, e ko dám vs tới thế đâu ạ

Không chỉ có mỗi Google, Facebook hay Amazon mà nhiều công ty top tech khác cũng phỏng vấn giải thuật rất kỹ. Nên lợi thế của giỏi giải thuật là có cơ hội phỏng vấn tốt ở các công ty top tech, ví dụ nhé

Top thế giới
Google, FB, AMZ, Microsoft, Dropbox, Youtube, Uber, Grab, Linkedin, Quora, StackOverflow, … nhiều quá kể không hết

Top VN
Ở VN thì Đạt thấy các công ty chưa có style phỏng vấn giải thuật, có lẽ trong tương lai sẽ có. Các công ty như CocCoc chắc là có.
VNG và các công ty khác not sure

Các top tech ở VN sớm hay muộn cũng sẽ có pv sâu về giải thuật

1 Like

như thế chỉ giúp ích cho việc phỏng vấn thôi ạ :(( ?

Hiện giờ đó là ưu điểm lớn nhất, nhìn thấy rõ ràng nhất.

Giỏi thuật toán sẽ cho em tư duy tốt hơn khi lập trình. Các công ty top tech pv giải thuật là để tìm ra người có tư duy giải quyết vấn đề tốt, giỏi giải thuật có thể giúp được ít nhiều khi gặp các vấn đề khó khi lập trình.

Nhưng mà để gọi là lập trình viên giỏi, giải thuật chỉ là một phần nhỏ trong đó. Em cần nhiều kỹ năng khác, quan trọng hơn giỏi giải thuật như

  • kỹ năng giao tiếp
  • kỹ năng quản lý công việc / thời gian
  • kỹ năng làm việc nhóm / lãnh đạo
  • kỹ năng thiết kế hệ thống
  • kỹ năng code
  • kỹ năng tiếp nhận cái mới, áp dụng vào công việc (Elon Musk là ví dụ, ổng không mua được tên lửa thế là ổng học và chế tạo vài con cho thiên hạ lác mắt chơi)

Đọc clean code, clean coder, code complete, mythical man month để biết thêm :smiley:

10 Likes

5 posts were split to a new topic: Gợi ý 1 vài cuốn sách bằng tiếng Việt tốt về giải thuật?

tùy level anh. bữa trước em pv entry level Java, hỏi toàn thuật toán không -> tạch. bên đó đang cần người tối ưu hệ thống.

2 Likes

Anh nghĩ là các công ty top tech ở VN nên pv thuật toán nhiều hơn.

Anh muốn pv thuật toán mà công ty cùi quá, nâng cái bar lên chả ai thèm vào pv :’(

4 Likes

Bọn nước ngoài từ trước đến nay cũng ko ưa pv thuật toán, lý do là pv thuật toán phần nhiều là mang tính đánh đố, không đánh giá được các kĩ năng khác của nhân viên, chỉ nên dùng algorithm khi pv junior chưa có kịn nghiệm. Đợt trước có ông nào nổi tiếng trong cộng đồng open source, nhất quyết không ôn thuật toán, đi PV rớt 6 cty nên post bài chia sẻ ấy ;))
Lý do nó vẫn được nhiều người dùng là do chưa có cách nào hay hơn để đánh giá ứng viên. Hiện nay có 1 số cách hay hơn như giao module nhỏ, thực tế để ứng viên làm, đánh giá chất lượng code. Hoặc mời uv ra pảir programming một hôm rồi đánh giá. Em thấy mấy cái này tốt hơn pv thuật toán nhiều :smiley:

3 Likes

Chính xác là do chưa có cách nào hay hơn, nên chọn thuật toán để pv thôi.

Ai thực sự muốn vào làm thì phải ôn, điều đó chứng tỏ người đó là người thực sự muốn vào chứ không hời hợt. Và biết được người này ít ra biết code.

Cách pv này đưa ra kết quả tốt hơn là chỉ hỏi qua loa.


Cách thứ hai là giao module code đem về nhà làm rồi 1 tuần sau đưa code lại. Cách này cũng được mà mất công người interviewer, tương tự cho cách pair programming. Đẩy cái cost đó cho Interviewee thì khỏe hơn. Vì pv rất mất thời gian và công sức tức là tiền bạc của một công ty.

Bây giờ kêu dev ra chấm bài, với kêu dev ra hỏi đại vài câu, xem thử interviewee họ có trả lời được hay không, câu trả lời có innovative hay không thế là xong, khỏe hơn nhiều. Kể cả khỏe như thế, interviewer vẫn phải làm một cái report là interviewee này tốt chỗ nào, khá chỗ nào, dở chỗ nào. Có thang điểm để chấm hết. Vẫn rất mệt.

Google và nhiều công ty khác họ thà chọn false positive hơn là false negatives. Tức là thà không tuyển dev giỏi chớ không tuyển dev dở.

Cái PV thuật toán ít ra là phải có tư duy lập trình tốt. PV tốt không có nghĩa là code giỏi. Người ta thử nghiệm đem một Senior và Junior ra làm bài phỏng vấn giải thuật, Junior nhiều khi làm tốt hơn. Nhưng không có nghĩa là Junior giải quyết vấn đề tốt hơn.

PV bằng cách này chỉ đảm bảo là không tuyển dev dở vào thôi, nó sẽ đánh rớt dev giỏi mà không chuẩn bị đủ hoặc hôm đấy … trật tủ.

5 Likes

Riêng bản thân mình đi làm, mới thấy giỏi thuật toán giúp rất nhiều trong việc coding. Lợi ích rất nhiều trong việc clean, optimized code , save times…!

1 Like

a nói rõ hơn đc ko a ?

Giỏi thuật toán giúp bạn giải quyết vấn đề nhanh hơn, đỡ tốn thời gian vì những cái lặt vặt, ngoài ra khi giỏi thuật toán bạn có thể tối ưu hóa code để cho phần mềm hoặc ứng dụng chạy nhanh hơn.!

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?