Come iniziare la programmazione competitiva? [chiuso]

17

Ho praticato la programmazione per un po ', ma il problema è che mi ci vuole un sacco di tempo per scrivere una soluzione per i problemi. Voglio chiedere se la programmazione competitiva può aiutarmi a migliorare questo aspetto.

Se sì, allora come dovrei iniziare e da quali siti web posso usare (come TopCoder )? Ovviamente non sarò in grado di risolvere problemi molto difficili per ora. Cosa dovrei fare?

Se no, che altro dovrei fare?

Ho anche un altro problema che voglio imparare a programmare, ma la cosa è che sento di non essere molto bravo in questo. Cosa dovrei fare? È come disturbarmi dall'interno.

So che alcune persone potrebbero non trovare questa domanda informativa, ma per favore permettimi almeno di ottenere una risposta.

    
posta Vaibhav Agarwal 12.10.2012 - 18:13
fonte

2 risposte

18

[can] competitive programming help me in improving [the speed]?

Sì, può, e dato un tempo sufficiente, lo farà sicuramente. Tuttavia, la velocità non è l'abilità più importante che stai per migliorare. Dalla mia esperienza di partecipazione a TopCoder per oltre 10 anni, l'abilità più importante che si intende trarre dalla programmazione competitiva è la capacità di scrivere semplici frammenti di codice correttamente la prima volta, senza usare un debugger.

How should I start and from what site like TopCoder?

Usa le stanze degli allenamenti per la Divisione 2. Il Livello 1 di Div 2 è tipicamente "concorsi di battitura", nel senso che tu capisci subito una soluzione, quindi il tuo compito diventa codificandolo il più rapidamente possibile. La maggior parte degli incarichi nella vita reale sono così. Ti renderai presto conto che il debugger è il più grande "time drain", quindi tenterai naturalmente di completare il tuo codice senza eseguire il debugging. Questo sarà frustrante all'inizio, ma migliorerà col tempo. Ci vorranno alcune centinaia di problemi di livello 1 per essere bravo, quindi non arrenderti.

Il debugging nella tua testa è l'abilità che ti aiuterà nel tuo vero lavoro: mentre la codifica la velocità non è importante, la possibilità di scrivere snippet di codice corretti senza debugging ti aiuterà a passare da buono ad eccezionale.

    
risposta data 12.10.2012 - 19:00
fonte
10

Come programmatore principiante, dovresti essere più interessato alla qualità del tuo codice, quindi alla velocità di scriverlo. Dovresti lavorare su progetti da solo per espandere le tue capacità. Potresti continuare con la revisione dei progetti open source per vedere come gli altri scrivono il codice e magari iniziare a contribuire a un progetto open source.

Nei miei 25 anni di sviluppo di codice su varie piattaforme e domini aziendali, non ho mai trovato un caso in cui la velocità della scrittura del mio codice fosse più importante della qualità e della stabilità del mio codice.

    
risposta data 12.10.2012 - 18:31
fonte

Leggi altre domande sui tag