Programmare il più velocemente possibile come tipo di tocco ... Come arrivare a quel punto? [duplicare]

6

Recentemente ho eseguito un test e ho scoperto che potevo toccare il tipo comodamente a circa 100 wpm ... e se avessi una sorta di autocorrect / intellisense, allora sarebbe ancora più veloce (chissà che forse 150 wpm?) ...

Non programma assolutamente da nessuna parte vicino a quella velocità ... Questo mi ha portato a chiedermi come si fa a diventare più veloce nella programmazione? Una volta che guardo un problema e disegno l'algoritmo per risolverlo (il problema è risolto ... so cosa sto andando dopo dare o fare alcune esecuzioni di debug) perché mi ci vuole molto più tempo per scrivere programma? Quello che ho scoperto è che, in generale, quando sto codificando, finché non ho finito di digitare una parola ... anche se è solo la lettera a o il numero 1, non riesco a pensare e scrivere contemporaneamente. Ciò significa che posso inventare cose mentre sto scrivendo, ma non ho la capacità di guardare avanti. È l'uno o l'altro ... Ad esempio, scrivendo questo, potrei avere un'idea di dove questo va, ma finché le mie dita non colpiscono la tastiera, non so davvero cosa dirò dopo.

Come posso cambiare questo? Come ottengo la capacità di pensare in anticipo mentre sto scrivendo in modo da poter sfruttare la mia velocità di digitazione?

Inoltre, in generale, in che modo si diventa un risolutore di problemi più veloce? Conosco la solita lista di pratica (che non ho problemi con) ma c'è qualche esercizio particolare che si dovrebbe sottolineare per allenare la propria mente? Ad esempio, giocare a vari giochi di logica (sudoku, ecc.) Porta molto aiuto nel migliorare il tuo senso della logica in altre aree della programmazione?

Ci scusiamo un sacco di domande contemporaneamente ma sono tutte correlate ...

P.S. È possibile utilizzare uno stenografo per programmare? Ho sentito dire che gli utenti di stenografi possono raggiungere velocità bollose come 200 - 300 wpm. Supponendo che io possa in qualche modo pensare più velocemente ... sarebbe bello.

Ovviamente programmazione veloce! = buona programmazione. Ma se ti alleni sempre per diventare un programmatore migliore, non fa male essere in grado di farlo velocemente.

    
posta frogeyedpeas 14.06.2013 - 15:32
fonte

5 risposte

10

Alcune risposte molto pessimistiche qui. Posso dire per esperienza personale che è assolutamente possibile la programmazione touch-type. Ma non è proprio questo il problema, giusto? Voglio dire, stai davvero chiedendo "come posso essere un programmatore più produttivo?" Diamo un'occhiata ad alcuni dei fattori:

  1. Quanto prolisso è il linguaggio. Sono un programmatore java e posso facilmente scrivere alla massima velocità facendo cose come fare metodi getter e setter su un POJO. Ma alcune lingue non richiedono nemmeno la creazione di questi metodi standard. E Eclipse ha strumenti per la generazione automatica di questi. In Python è possibile eseguire in una singola riga che richiede dieci linee Java. Quindi digitando lentamente in Python è altrettanto efficiente scrivere velocemente in Java?

  2. Quanto bene hai pianificato in anticipo. Se inizi a lavorare su qualcosa con vaghe intenzioni, passerai più tempo a pensare invece di scrivere. Se hai una buona conoscenza di quale codice è già esistente e sai esattamente come affrontare la tua soluzione, allora puoi aspettarti di fare le cose più velocemente. Ma stai ancora spendendo più tempo per pianificare in anticipo. Quindi la quantità totale di tempo trascorso è uguale? Persone diverse lavorano meglio con stili diversi. Alcune persone preferiscono saltare direttamente nel fuoco e farsi strada attraverso.

  3. Quanto sei distratto o concentrato. Alcune persone pensano che sia una buona idea ascoltare la musica per tonificare il proprio ambiente. Ad alcune persone piace la pace e la tranquillità, e alcune persone godono effettivamente di un ambiente rumoroso. Personalmente penso che la meditazione sia LA CHIAVE per ottenere una buona concentrazione. La maggior parte delle persone non si rende conto di quanto poco controllo hanno sulla propria mente. Venti minuti di meditazione ogni giorno possono fare un'incredibile differenza nella tua chiarezza mentale, traducendo in una produttività elevata.

  4. Quanto sei sano. La salute del tuo cervello è direttamente correlata alla salute del tuo corpo. Evitare di fumare, consumare alcol o caffeina, mangiare cibi pesanti o malsani, assumere farmaci non necessari, ecc. Ottenere la giusta quantità di sonno ogni notte, che è diverso per ogni persona. Sarai stupito dalla differenza che questo fa.

  5. Quanto stress sei sotto, per quanto tempo hai lavorato, quanti bambini stanno piangendo in background, ecc, ecc, ecc ... Ci sono troppi fattori da elencare qui. Vale la pena ricordare ancora una volta che la meditazione può aiutare con queste cose. La tua mente è una bestia e se non la domini, allora ti controlla, invece di controllarla.

Buon codice!

    
risposta data 14.06.2013 - 21:50
fonte
28

Non sarai mai in grado di risolvere nuovi problemi il più velocemente possibile. Accettalo. Potrebbe funzionare per problemi semplici che hai già fatto 1000 volte.

Ma c'è ancora un valore nelle abilità di battitura. La digitazione della memoria muscolare consente di mantenere la mente nel problema, non sulla tastiera. La tua mente rimane nella zona e la tastiera è solo un'estensione naturale. Non si tratta di velocità, ma di fluidità. Se riesci a digitare senza sforzo i tuoi pensieri, la tua mente può rimanere in una zona di riflessione profonda mentre provi le cose.

Mi sono dedicato un po 'di tempo per imparare a memoria tutti i personaggi e i numeri speciali. Ne vale la pena.

    
risposta data 14.06.2013 - 15:52
fonte
12

È solo una limitazione del cervello umano. Se le persone potessero pensare in modo creativo alla massima velocità possibile, potrebbero inventare un romanzo medio in due giorni lavorativi. Il vantaggio principale di una digitazione veloce e riflessiva per un programmatore è che ti dà più tempo per pensare e interruzioni più brevi.

Per quanto riguarda la tua capacità di pensare in anticipo mentre scrivi, potrebbe essere utile prendere uno strumento musicale. La musica ha rigide scadenze in tempo reale per ogni nota, ed è impossibile suonare correttamente senza leggere almeno una nota in anticipo, o più, a seconda della complessità della musica e dello strumento.

A parte questo, tutto ciò che puoi fare è esercitarti.

    
risposta data 14.06.2013 - 16:39
fonte
4

Practice

  • Se vuoi migliorare la tua velocità di codifica, codifica più spesso. Datti un piccolo problema e vedi quanto velocemente puoi codificarlo. Project Euler ha alcuni brevi problemi che sarebbe opportuno verificare. Non conosci il ABC ?
  • Se vuoi migliorare la velocità di risoluzione dei problemi, risolvi più problemi. Ancora una volta, ti dai un problema e vedi quanto velocemente riesci a capirlo. La presa? Non programmarlo. Non preoccuparti della sintassi o di qualcosa del genere. Basta scrivere alcune idee e cercare di capire come risolverlo il più velocemente possibile.

Questo non è qualcosa che viene fatto facilmente o rapidamente. Diventare un buon programmatore veloce richiede anni di esperienza e come ha detto Mike30, probabilmente non sarai mai in grado di digitare tanto velocemente quanto tu pensi. Sebbene tu possa avvicinarti abbastanza, tira fuori il tuo editor di testo preferito e inizia a programmare.

    
risposta data 14.06.2013 - 15:40
fonte
2

Bottom Line - Non puoi quindi non provare

La sintassi non è la stessa di "Il pigro cane nero ha scavalcato la recinzione inseguendo una volpe marrone". Stai confrontando mele e arance. La programmazione non ha luogo sulla tastiera. La programmazione si svolge alle lavagne, nelle discussioni attorno al tavolo, sui tovaglioli a pranzo con un amico.

La maggior parte delle volte che trascorrerai come programmatore modificherà il codice che è già stato scritto e deve essere esteso alle sue funzionalità. La velocità di battitura non è un fattore in relazione a questo tipo di lavoro.

IMHO, staresti meglio e avrai più valore come impiegato se passerai il tuo tempo ad imparare come tradurre "geek speak" con i non geek.

Ad esempio: come descriveresti un database a una persona non tecnica?

Risposta:
(seloh eibbuc otni ffuts tup uoy stel taht loot a si esabatad A)

    
risposta data 14.06.2013 - 16:40
fonte

Leggi altre domande sui tag