Jelaskan Manfaat dan kritik dari Pemrograman kompetitif

Partisipasi dalam kontes pemrograman dapat meningkatkan antusiasme siswa terhadap bidang studi ilmu komputer. Kemampuan yang didapatkan dari kontes pemrograman seperti ICPC juga meningkatkan prospek karir kedepannya, karena kemampuan tersebut dapat berguna untuk mengerjakan soal-soal interview kerja, yang sering kali kandidat diminta untuk menyelesaikan masalah pemrograman kompleks dan algoritme secara langsung.

Namun ada juga kritik terhadap pemrograman kompetitif yang secara spesifik disampaikan oleh pengembang perangkat lunak profesional. Salah satu poin penting yang disampaikan adalah banyak kompetisi pemrograman serba cepat yang mengajarkan kompetitornya kebiasaan pemrograman dan gaya kode yang buruk. Contohnya seperti penggunaan makro yang tidak perlu, kurangnya abstraksi pemrograman berorientasi objek, kode komentar yang menjelaskan isi dari kode tersebut, penamaan variable yang pendek, dan lain-lain. Selain itu, dengan hanya menawarkan permasalahan algoritmik yang kecil dengan solusi yang relatif singkat, kompetisi pemrograman seperti ICPC dan IOI tidak serta merta mengajarkan keterampilan dan praktik rekayasa perangkat lunak yang baik, sedangkan proyek perangkat lunak pada dunia kerja biasanya memiliki ribuan baris kode dan dikembangkan oleh tim besar dalam jangka waktu yang lama. Peter Norvig menyatakan bahwa berdasarkan data yang tersedia, menjadi pemenang dari kontes pemrograman berkorelasi negatif dengan kinerja pemrogram pada pekerjaannya di Google. Meski demikian, pemenang kontes memiliki peluang lebih tinggi untuk mendapatkan pekerjaan.

Ada juga sentimen lain yang berkata bahwa daripada membuang-buang waktu dengan berkompetisi secara berlebihan menyelesaikan masalah yang solusinya sudah ada, pemrogram lebih baik menginvestasikan waktu mereka dengan menyelesaikan dunia nyata.