thảo luận dậm chân tại chỗ - competitive programming

  • Người tạo chủ đề Người tạo chủ đề codernhi
  • Ngày bắt đầu Ngày bắt đầu
Lớp 10 mà thím được level đấy thì nếu luyện tập tử tế thì chắc sẽ có giải quốc gia năm lớp 11. Muốn tiếp tục theo đuổi hay đổi hướng đến lúc đấy quyết định cũng chưa muộn.

Mình nói thím đừng buồn chứ mình không nghĩ thím đi luyện ở trung tâm sẽ hiệu quả hơn việc tự luyện. Cái khó của việc luyện tập là làm sao tìm ra được phương pháp phù hợp cho bản thân và nghiêm túc thực hiện theo phương pháp đấy. Ý kiến cá nhân thì mình thấy thím nên học cho vững những kiến thức cơ bản (có nhiều nguồn để học, ví dụ có thể học qua 3 section Bronze, Silver và Gold trong https://usaco.guide/) rồi sau đó luyện tập để nâng dần độ khó các bài lên. Tuyệt đối không chạy theo số bài giải được.

Nếu thím share nick CF thì mình có thể nhìn qua và đánh giá xem cách thím chọn bài có ổn hay chưa.
e nghĩ là chỗ học - thầy dạy nó cũng ảnh hưởng không ít đối với e. Vì bản thân e tự học khá kém, không biết những người khác sao chứ bình thường nếu không có người cho bài tập, tài liệu của những kiến thức căn bản thì e rất khó để hình dung và áp dụng thuật đó cho những bài tương tự (đơn giản nhất là kiến thức về segment tree, fenwick. 2 kiến thức này e có thể xem trên wiki vnoi và hiểu nhưng e lại không làm được bài tập tương tự dạng khó hơn. Ngoài ra chỗ hiện tại e học chỉ là cho 1 số bài căn bản, học để hiểu xong skip luôn chứ không có bài khó nên bình thường e hay phải tìm bài, mà tìm bài thì bị 1 cái là e không biết mức độ khó nào mới hợp với mình, làm mấy bài 1k5 mãi thì quá dễ, còn lên làm cỡ 2k thì quá căng. Hơn nữa e cũng chỉ được tiếp cận với 1 số dạng rất cơ bản (ví dụ binary search thì e chỉ làm được những bài thuần của bs mà không thể làm những bài lai giữa dp với bs / graph lai với dp,.... các thể loại nhiều tag của vnoj). E nghĩ những thiếu sót này sẽ được bù đắp nếu học ở trung tâm chuyên. Vì e nghe bảo khóa CP bên đó toàn cho học sinh làm bài trên 1k9 với lai giữa nhiều tag
 
Nhân tiện đây cho em hỏi là em chưa có chút kinh nghiệm nào trong việc giải thuật toán (trước đây em chưa từng học thuật toán), vậy thì có nguồn tài liệu nào tốt và phù hợp cho người mới không ạ. Em không cần phải là tiếng Việt ạ, nhưng mà tài liệu có giải thích, hoặc chú thích cách tư duy thì tốt ạ. Em cảm ơn
Youtube 28Tech nha thím trong cái khoá c++ á, kết hợp vnoi, cái code learn j của fpt nữa, nói chung là học đến phần nào r lên Youtube xem thôi
 
e nghĩ là chỗ học - thầy dạy nó cũng ảnh hưởng không ít đối với e. Vì bản thân e tự học khá kém, không biết những người khác sao chứ bình thường nếu không có người cho bài tập, tài liệu của những kiến thức căn bản thì e rất khó để hình dung và áp dụng thuật đó cho những bài tương tự (đơn giản nhất là kiến thức về segment tree, fenwick. 2 kiến thức này e có thể xem trên wiki vnoi và hiểu nhưng e lại không làm được bài tập tương tự dạng khó hơn. Ngoài ra chỗ hiện tại e học chỉ là cho 1 số bài căn bản, học để hiểu xong skip luôn chứ không có bài khó nên bình thường e hay phải tìm bài, mà tìm bài thì bị 1 cái là e không biết mức độ khó nào mới hợp với mình, làm mấy bài 1k5 mãi thì quá dễ, còn lên làm cỡ 2k thì quá căng. Hơn nữa e cũng chỉ được tiếp cận với 1 số dạng rất cơ bản (ví dụ binary search thì e chỉ làm được những bài thuần của bs mà không thể làm những bài lai giữa dp với bs / graph lai với dp,.... các thể loại nhiều tag của vnoj). E nghĩ những thiếu sót này sẽ được bù đắp nếu học ở trung tâm chuyên. Vì e nghe bảo khóa CP bên đó toàn cho học sinh làm bài trên 1k9 với lai giữa nhiều tag
Mình việc thím ko tự học đc là một nguyên nhân đấy, mai sau làm lập trình mảng j cx phải tự học hết, tự mày mò tìm hiểu, bọn giỏi đa số cũng tự học hết thôi, ít phụ thuộc vào thầy cô lắm.
 
Lời khuyên của mình là nên bỏ luyện CP đi. Tập trung vào cái gì khác có ích hơn.

Luyện CP giống như học trò giải Rubik hay chơi game Puzzle vậy.

Những người giỏi giải Rubik với game Puzzle có quyết định tới sự thành công trong cuộc sống?

Tự nghĩ rồi trả lời đi

Ps: CP cũng ko phải trò test IQ hay chứng tỏ năng lực bản thân trong công việc, cuộc sống. Đơn giản nó là luyện nhiều quen tay. Làm nhiều dạng đề thì đọc đề xong biết cách giải vì đã làm những đề tương tự. Thế thôi.

via theNEXTvoz for
Haha, tôi muốn tranh luận vs bạn về những luận điểm này, nếu áp dụng first principle vào trong mọi vấn đề của swe, thì nó sẽ đưa bạn đến với 1 bài DS & A. Nhiều cty start up để giúp ứng viên hiểu rõ hơn về vấn đề mà cty đang gỉai quyết cũng pv kiểu này, ban đầu là bắt đầu vs những API cơ bản nhất, và đòi hỏi candidate build dần dần hệ thống vs lượng kiến thức tăng dần tuỳ theo đòi hỏi thiết thực của cty.

Còn thứ quan trọng nhất vs 1 người kỹ sư là j? áp dụng 1st principle 1 lần nữa, thì đó là khả năng giải quyết vấn đề thôi. Nếu chỉ chăm chăm học những thứ đem lại lợi ích ngay lập tức, thì với cùng lập luận đó, ko ai nên học PhD, vì lĩnh vực nghiên cứu của PhD thường rất nhỏ, và chẳng phải ai cũng là Larry Page để biến công trình nghiên cứu của mình thành cty tỷ đô. Tôi không dám nói sau khi luyện CP, bạn sẽ có kỹ năng tư duy hệ thống bài bản như PhD, nhưng, nó đòi hỏi bạn phải động não mỗi khi gặp 1 vấn đề mới.

Luyện CP, hay tập trung làm bất cứ thứ gì vượt qua khả năng của mình, sẽ giúp bạn hiểu rõ mình ở đâu, và cảm thấy vừa tự tin hơn, vừa khiêm tốn hơn. Còn, tôi không đồng ý quan điểm, chưa bắt tay vào làm, đã phê phán: luyện CP chỉ là làm quen tay, thi quốc tế toán chỉ là học quen dạng, giỏi chess chỉ là do học hết các thế cờ .... Nếu thực sự bạn đã chú tâm làm 1 cái j, thì tôi tin là bạn sẽ không còn cách tư duy nhị nguyên như vậy đâu.
 
Haha, tôi muốn tranh luận vs bạn về những luận điểm này, nếu áp dụng first principle vào trong mọi vấn đề của swe, thì nó sẽ đưa bạn đến với 1 bài DS & A. Nhiều cty start up để giúp ứng viên hiểu rõ hơn về vấn đề mà cty đang gỉai quyết cũng pv kiểu này, ban đầu là bắt đầu vs những API cơ bản nhất, và đòi hỏi candidate build dần dần hệ thống vs lượng kiến thức tăng dần tuỳ theo đòi hỏi thiết thực của cty.

Còn thứ quan trọng nhất vs 1 người kỹ sư là j? áp dụng 1st principle 1 lần nữa, thì đó là khả năng giải quyết vấn đề thôi. Nếu chỉ chăm chăm học những thứ đem lại lợi ích ngay lập tức, thì với cùng lập luận đó, ko ai nên học PhD, vì lĩnh vực nghiên cứu của PhD thường rất nhỏ, và chẳng phải ai cũng là Larry Page để biến công trình nghiên cứu của mình thành cty tỷ đô. Tôi không dám nói sau khi luyện CP, bạn sẽ có kỹ năng tư duy hệ thống bài bản như PhD, nhưng, nó đòi hỏi bạn phải động não mỗi khi gặp 1 vấn đề mới.

Luyện CP, hay tập trung làm bất cứ thứ gì vượt qua khả năng của mình, sẽ giúp bạn hiểu rõ mình ở đâu, và cảm thấy vừa tự tin hơn, vừa khiêm tốn hơn. Còn, tôi không đồng ý quan điểm, chưa bắt tay vào làm, đã phê phán: luyện CP chỉ là làm quen tay, thi quốc tế toán chỉ là học quen dạng, giỏi chess chỉ là do học hết các thế cờ .... Nếu thực sự bạn đã chú tâm làm 1 cái j, thì tôi tin là bạn sẽ không còn cách tư duy nhị nguyên như vậy đâu.

Có một sự hiểu lầm không hề nhẹ cho đa số người như anh.

Anh nên hiểu competitive programming như một môn thể thao để cả đám nhào vô chơi với nhau, code chạy đua xem ai nhanh hơngiải đúng hơn trong 1 khoảng thời gian giới hạn cho trước.

CP HOÀN TOÀN KHÁC với khả năng nghiên cứu và vận dụng DS & Algo trong công việc hay hoạt động nghiên cứu PhD... v.v..

Công việc thực tế hay các công trình nghiên cứu thực tế ko ai đòi hỏi giải bài trong 60 phút, 120 phút như vậy. Larry Page hay Mark xoăn hay một ông Ph.D trong trường đại học Harvard mà có đi thi CP thì cho cái đề bảo giải trong 120 phút thì tôi nghĩ cũng rớt như thường nếu không luyện.

Cho nên anh đừng có đi so sánh là giỏi CP thì sẽ có thể giúp làm PhD này nọ, đơn giản là ko liên quan. Giống như anh chơi sudoku giỏi thì bảo anh sẽ có thể thành công trong công việc, trong kỹ năng giải quyết vấn đề vì anh chịu khó ngồi giải sudoku??? BULLSHIT!

CP hay Sudoku nó chỉ là một trò chơi, và trò chơi thì theo sở thích, nó ko quyết định kỹ năng giải quyết vấn đề hay mức độ hoàn thành công việc của 1 người vì nó phụ thuộc vào sở thích/bản tính của 1 người.
 
Có một sự hiểu lầm không hề nhẹ cho đa số người như anh.

Anh nên hiểu competitive programming như một môn thể thao để cả đám nhào vô chơi với nhau, code chạy đua xem ai nhanh hơngiải đúng hơn trong 1 khoảng thời gian giới hạn cho trước.

CP HOÀN TOÀN KHÁC với khả năng nghiên cứu và vận dụng DS & Algo trong công việc hay hoạt động nghiên cứu PhD... v.v..

Công việc thực tế hay các công trình nghiên cứu thực tế ko ai đòi hỏi giải bài trong 60 phút, 120 phút như vậy. Larry Page hay Mark xoăn hay một ông Ph.D trong trường đại học Harvard mà có đi thi CP thì cho cái đề bảo giải trong 120 phút thì tôi nghĩ cũng rớt như thường nếu không luyện.

Cho nên anh đừng có đi so sánh là giỏi CP thì sẽ có thể giúp làm PhD này nọ, đơn giản là ko liên quan. Giống như anh chơi sudoku giỏi thì bảo anh sẽ có thể thành công trong công việc, trong kỹ năng giải quyết vấn đề vì anh chịu khó ngồi giải sudoku??? BULLSHIT!

CP hay Sudoku nó chỉ là một trò chơi, và trò chơi thì theo sở thích, nó ko quyết định kỹ năng giải quyết vấn đề hay mức độ hoàn thành công việc của 1 người vì nó phụ thuộc vào sở thích/bản tính của 1 người.
Haha, bạn có thể chỉ ra hoàn toàn khác ntn không? bạn đưa ra rất nhiều khẳng định, nhưng chẳng có 1 lập luận hay ví dụ nào để chứng minh khẳng định đó.

Việc cp là 1 môn thể thao, thì nó không giúp ích gì cho tư duy, tôi không hiểu, vậy chơi cờ cũng ko giúp j cho tư duy? hay việc bạn khẳng định hoàn toàn khác là hoàn toàn khác?

Vấn đề nào cũng thế thôi, cũng có giới hạn thời gian, nếu không thì vô nghĩa, bài toán lớn thì cần nhiều năm, bài nhỏ thì cần vài giờ, tôi không hiểu là lập luận như vậy là sao?

Bạn so sánh CP vs sudoku, vậy cơ sở nào để bạn coi nó chỉ như sudoku?
 
Có một sự hiểu lầm không hề nhẹ cho đa số người như anh.

Anh nên hiểu competitive programming như một môn thể thao để cả đám nhào vô chơi với nhau, code chạy đua xem ai nhanh hơngiải đúng hơn trong 1 khoảng thời gian giới hạn cho trước.

CP HOÀN TOÀN KHÁC với khả năng nghiên cứu và vận dụng DS & Algo trong công việc hay hoạt động nghiên cứu PhD... v.v..

Công việc thực tế hay các công trình nghiên cứu thực tế ko ai đòi hỏi giải bài trong 60 phút, 120 phút như vậy. Larry Page hay Mark xoăn hay một ông Ph.D trong trường đại học Harvard mà có đi thi CP thì cho cái đề bảo giải trong 120 phút thì tôi nghĩ cũng rớt như thường nếu không luyện.

Cho nên anh đừng có đi so sánh là giỏi CP thì sẽ có thể giúp làm PhD này nọ, đơn giản là ko liên quan. Giống như anh chơi sudoku giỏi thì bảo anh sẽ có thể thành công trong công việc, trong kỹ năng giải quyết vấn đề vì anh chịu khó ngồi giải sudoku??? BULLSHIT!

CP hay Sudoku nó chỉ là một trò chơi, và trò chơi thì theo sở thích, nó ko quyết định kỹ năng giải quyết vấn đề hay mức độ hoàn thành công việc của 1 người vì nó phụ thuộc vào sở thích/bản tính của 1 người.

Vấn đề là nó giúp cho tư duy thì việc nó được coi trọng không có gì sai.
Trong công việc hằng ngày cũng chẳng thiếu những đoạn cần tối ưu giải thuật, vừa nghĩ ra giải thuật tốt trong thời gian ngắn lại chẳng hơn mấy ông làm thuần brute force?
 
Haha, bạn có thể chỉ ra hoàn toàn khác ntn không? bạn đưa ra rất nhiều khẳng định, nhưng chẳng có 1 lập luận hay ví dụ nào để chứng minh khẳng định đó.

Việc cp là 1 môn thể thao, thì nó không giúp ích gì cho tư duy, tôi không hiểu, vậy chơi cờ cũng ko giúp j cho tư duy? hay việc bạn khẳng định hoàn toàn khác là hoàn toàn khác?

Vấn đề nào cũng thế thôi, cũng có giới hạn thời gian, nếu không thì vô nghĩa, bài toán lớn thì cần nhiều năm, bài nhỏ thì cần vài giờ, tôi không hiểu là lập luận như vậy là sao?

Bạn so sánh CP vs sudoku, vậy cơ sở nào để bạn coi nó chỉ như sudoku?

Khác giữa CP và kỹ năng giải quyết vấn đề trong công việc, hoặc nghiên cứu Ph.D:
  1. Giới hạn thời gian, bài toán lớn cần vài ngày hay vài năm thì ko gọi là CP nữa mà là nghiên cứu giải thuật.
  2. Khi tham gia CP thì ko được phép tra cứu, sử dụng tài liệu, hỏi, trao đổi với cộng đồng, đồng nghiệp, experts.. Hoạt động nghiên cứu hay problem solving bao giờ cũng hiệu quả hơn khi làm team work!
  3. Làm CP muốn leo top thi phải train, phải bỏ thời gian luyện! Ai ko luyện thì chắc chắn ko thể leo top. Vấn đề là skill cần luyện chỉ đặc thù cho mổi việc giải đề + nhận dạng đề. Trong khi problem solving là tổng hợp nhiều yếu tố từ kỹ năng tra cứu/tìm kiếm, communication, relationships, cuối cùng mới tới tech skills v..v..
CP, sudoku, giải rubik, puzzle games là như nhau vì 3 cái yếu tố trên (short time limit, work alone, training).

Còn ai muốn tìm tòi, nghiên cứu thuật toán thì là cái khác. Và cái này chả liên quan tới CP vì ko có bị giới hạn bởi 3 yếu tố trên.
 
Vấn đề là nó giúp cho tư duy thì việc nó được coi trọng không có gì sai.
Trong công việc hằng ngày cũng chẳng thiếu những đoạn cần tối ưu giải thuật, vừa nghĩ ra giải thuật tốt trong thời gian ngắn lại chẳng hơn mấy ông làm thuần brute force?

Thì lúc đó nó là 1 task và có thể a mất 3 ngày hay 1 tuần để đi giải quyết. Kỹ năng giải quyết vấn đề lúc đó bao gồm tự tra cứu, đi hỏi stackoverflow, hỏi expert, áp dụng giải thuật mới khi đã nghiên cứu + discuss với cả team.
 
Thì lúc đó nó là 1 task và có thể a mất 3 ngày hay 1 tuần để đi giải quyết. Kỹ năng giải quyết vấn đề lúc đó bao gồm tự tra cứu, đi hỏi stackoverflow, hỏi expert, áp dụng giải thuật mới khi đã nghiên cứu + discuss với cả team.

So với 1 thằng luyện CP chán rồi và nó solve cái đó trong mấy phút? Dĩ nhiên là phải có test.
Mấy cái FAANG dùng để phỏng vấn còn dễ hơn mấy bài CP nhiều.
 
Thêm một cái nữa là luyện CP thì thường code style theo kiểu dùng trick, code ngắn, khó đọc và maintain. Những điều này đi ngược lại hoàn toàn best practice trong lập trình phần mềm nên những a làm CP mà code style thế thì lại mang hoạ chứ chả có lợi cho dự án.

via theNEXTvoz for iPhone
 
So với 1 thằng luyện CP chán rồi và nó solve cái đó trong mấy phút? Dĩ nhiên là phải có test.
Mấy cái FAANG dùng để phỏng vấn còn dễ hơn mấy bài CP nhiều.

Vì tụi nó biết chỉ dùng CP để lọc ứng viên chứ đâu thể dùng nó để đánh giá ứng viên dc. Các bài khó thì cũng phải ít nhất tới vòng onsite, 2f2 để cùng discuss chứ online assessment toàn bài dễ ẹc

via theNEXTvoz for iPhone
 
Vì tụi nó biết chỉ dùng CP để lọc ứng viên chứ đâu thể dùng nó để đánh giá ứng viên dc. Các bài khó thì cũng phải ít nhất tới vòng onsite, 2f2 để cùng discuss chứ online assessment toàn bài dễ ẹc

via theNEXTvoz for iPhone

Vẫn chưa thấy anh chứng minh được là CP vô dụng?
Luyện CP tốt thì giải interview question dễ hơn.
Giải interview question thì chứng minh tư duy thuật toán tốt.
Và tư duy thuật toán tốt chắc chắn không phải là một thứ vô dụng trong công việc.
 
Vẫn chưa thấy anh chứng minh được là CP vô dụng?
Luyện CP tốt thì giải interview question dễ hơn.
Giải interview question thì chứng minh tư duy thuật toán tốt.
Và tư duy thuật toán tốt chắc chắn không phải là một thứ vô dụng trong công việc.

Peter Norvig - director of research and search quality at Google. phán như này đây:
https://catonmat.net/programming-competitions-work-performance
He said that one thing that was surprising to him was that being a winner at programming contests was a negative factor for performing well on the job.
đại loại là mấy anh mà giỏi CP, thắng cuộc thì này nọ thì làm việc như c*t :feel_good:

Và người ta phán sau khi chạy Machine Learning model nhé chứ ko lại bảo là phán 1 cách cảm tính.

I have to agree with Peter about this observation. Having worked with dozens of developers, the worst ones have always been the competitive programmers. Absolutely the worst communication skills and their code is a one-liner that implements three algorithms at once, double-recursively, and all while using single letter variables. Not a single soul could understand their code or communicate with them.

Don't hire competitive programmers and see you next time!
 
Sửa lần cuối:
Peter Norvig - director of research and search quality at Google. phán như này đây:
https://catonmat.net/programming-competitions-work-performance

đại loại là mấy anh mà giỏi CP, thắng cuộc thì này nọ thì làm việc như c*t :feel_good:

Và người ta phán sau khi chạy Machine Learning model nhé chứ ko lại bảo là phán 1 cách cảm tính.

Lol, đồng nghiệp tôi toàn những người trước tham gia CP, và chả có ai mắc mấy cái trait này cả, đặc biệt bọn này cực kỳ thông minh và nắm cái gì cũng nhanh. Thấy khác hẳn so với làm cty cũ toàn mấy ông ngơ ngơ code Brute force.
Anh có kinh nghiệm thực tế làm việc cùng CPer chưa hay chỉ dựa vào bài trên?
 
Lol, đồng nghiệp tôi toàn những người trước tham gia CP, và chả có ai mắc mấy cái trait này cả, đặc biệt bọn này cực kỳ thông minh và nắm cái gì cũng nhanh. Thấy khác hẳn so với làm cty cũ toàn mấy ông ngơ ngơ code Brute force.
Anh có kinh nghiệm thực tế làm việc cùng CPer chưa hay chỉ dựa vào bài trên?

Tôi từng là người luyện CP và cũng từng pv FAANG (nhưng failed) nên đừng hỏi tôi. Nhưng chuyện đó cũng ko liên quan...cty tôi đang làm cũng có online assessment cho vòng đầu tiên. Còn những người mà code nát thì do ng ta code nát chứ chả liên quan có luyện CP ko. A nào ẩu thì tới lúc deadline dí cũng makeno cho dù là top cp.. :ah:
 
Peter Norvig - director of research and search quality at Google. phán như này đây:
https://catonmat.net/programming-competitions-work-performance

đại loại là mấy anh mà giỏi CP, thắng cuộc thì này nọ thì làm việc như c*t :feel_good:

Và người ta phán sau khi chạy Machine Learning model nhé chứ ko lại bảo là phán 1 cách cảm tính.
Biết ngay là lại lôi vụ Peter Norvig ra. Vào đây đọc tiếp đi nhé ;) https://news.ycombinator.com/item?i...VIF_UwPVNIAmsRNr3MAL4U09cGWbmUh5lciVm6QCgPMbA
 
Biết ngay là lại lôi vụ Peter Norvig ra. Vào đây đọc tiếp đi nhé ;) https://news.ycombinator.com/item?i...VIF_UwPVNIAmsRNr3MAL4U09cGWbmUh5lciVm6QCgPMbA

Cái này tôi đọc rồi. Thật sự khi Peter nói câu này ra đã đụng chạm rất nhiều nhân viên ở Google, cái vụ nói là chạy trên data nhỏ thì thấy thế nhưng data lớn thì ko… tôi ko dám phán đúng hay sai vì chỉ có ổng biết.

Nhưng rõ ràng đây là vấn đề nhạy cảm… :shame: chưa kể nó đụng chạm luôn cả quy trình tuyển dụng của Google.

via theNEXTvoz for iPhone
 
CP hay mà các bác. Nó không có ứng dụng nhưng nhìn vào thì ai cũng trầm trồ. Giống như giờ English show cái chứng chỉ C2 Proficiency thì ai chẳng ngưỡng mộ ạ.
 

Thống kê chủ đề

Ngày tạo
codernhi,
Người trả lời cuối
huungphan,
Trả lời
130
Lượt xem
38.139
Quay lại
Lên đầu trang