Rekabetçi programlamaya nasıl başlanır? [kapalı]


17

Bir süredir kodlama yapıyorum, ama sorun şu ki, sorunlara bir çözüm yazmam çok zaman alıyor. Rekabetçi programlamanın bunu geliştirmede bana yardımcı olup olamayacağını sormak istiyorum.

Evetse, nasıl başlamalıyım ve hangi web sitelerinden ( TopCoder gibi ) kullanabilirim? Şimdilik çok zor problemleri çözemeyeceğim açıkçası. Ne yapmalıyım?

Hayır ise, başka ne yapmalıyım?

Kodlamayı öğrenmek istediğim başka bir problemim daha var, ancak mesele şu ki çok iyi olmadığımı hissediyorum. Ne yapmalıyım? Beni içeriden rahatsız etmek gibi.

Bazı insanların bu soruyu bilgilendirici bulamayabileceğini biliyorum ama lütfen en azından bir cevap almama izin verin.


1
İşbirlikçi programlamanın değerini de küçümsemeyin. Ekibimizde, rekabet / mühendislik / kişilerarası konulardaki rekabet gücü nedeniyle bazı sorunlar gördük. Rekabetçi programlama size yardımcı olabilir, ancak açık kaynaklı bir projede yer alabilir veya benzer fikirli arkadaşlarla bir proje geliştirebilir.
Gavin Howden

Yanıtlar:


19

Rekabetçi programlama [hızı] geliştirmeme yardımcı olabilir mi?

Evet, yapabilir ve yeterli zaman verildiğinde kesinlikle olacaktır. Ancak hız, geliştireceğiniz en önemli beceri değildir. 10 yılı aşkın bir süredir TopCoder'e katılma deneyimimden, rekabetçi programlamadan alacağınız en önemli beceri, bir hata ayıklayıcı kullanmadan ilk kez basit kod parçacıkları doğru bir şekilde yazma yeteneğidir.

Nasıl başlamalı ve TopCoder gibi hangi siteden?

2. Bölme için uygulama odalarını kullanın. Div 2'nin 1. Seviyesi genellikle bir çözüm bulmanız anlamında "yazma yarışmaları" dır, böylece göreviniz mümkün olduğunca çabuk kodlanır. Çoğu gerçek hayat ödevi böyledir. Hata ayıklayıcının en büyük "zaman tahliyesi" olduğunu hızlı bir şekilde fark edeceksiniz, bu nedenle kodunuzu hata ayıklamadan doğal olarak tamamlamaya çalışacaksınız. Bu başlangıçta sinir bozucu olacak, ancak zamanla düzelecek. İyi olmak birkaç yüz seviye-1 problemi alacak, pes etmeyin.

Kafanızdaki hata ayıklama , gerçek işinizde size yardımcı olacak beceridir: kodlama hızı önemli olmasa da, hata ayıklamadan doğru kod parçacıkları yazma yeteneği, iyi durumdan seçili hale geçmenize yardımcı olacaktır.


Thanx a lot (@dasblinkenlight) Instagram Profilini Görüntüle
Vaibhav Agarwal

10

Bir başlangıç ​​programcısı olarak, kodunuzun kalitesi ve ardından yazma hızı ile daha fazla ilgilenmelisiniz. Becerilerinizi geliştirmek için kendi başınıza projeler üzerinde çalışmalısınız. Bunu, başkalarının nasıl kod yazdığını görmek için açık kaynaklı projeleri gözden geçirerek ve belki de açık kaynaklı bir projeye katkıda bulunmaya başlayabilirsiniz.

Çeşitli platformlarda ve iş alanlarında 25 yılı aşkın kod geliştirme sürecimde, kod yazma hızımın kodumun kalitesinden ve istikrarından daha önemli olduğu bir durum bulamadım.


Ancak bir yarışmaya katıldığınızda, bazı kodlama yarışması veya röportaj sürecini söyleyelim, o zaman hız önemlidir? Ve bunu çok fazla hissediyorum.
Vaibhav Agarwal

@cdkBu güzel ama rekabetçi programlama araçlarını nereden başlayacağımı da önerebilir misiniz?
Vaibhav Agarwal

@VaibhavAgarwal Project Euler sorunları 1 ila 50: Rekabetçi olmasa da (en son sorunu çözen ilk insanlardan biri olmaya çalışmadıkça), zorlayıcıdır ve kodlama yarışmasında beklenebilecek soru türü veya mülakat süreci.

@Vaibhav, başka bir yarışmaya başladığım şekilde rekabetçi programlamaya başlardım: Uygulama, Uygulama, Uygulama.
cdkMoose

1
@Vaibhav: Programlamayı öğrenmek istediğinizi söylediniz. Eğer bulunduğunuz sahne buysa, şahsen rekabetçi programlama ile ilgilenmeniz gerektiğini düşünmüyorum. Bu, becerilerinizi geliştirdikten sonra gelebilir. Görüşme kadarıyla, görüşme adaylarımdan tam programlar yazmalarını istemiyorum. Onların anlayış ve düşünce süreçleriyle daha fazla ilgileniyorum. Sorunu çözebileceklerine dair bir güven geliştirmeye çalışıyorum, rekor sürede çözeceklerine değil.
cdkMoose
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.