È essenziale imparare gli algoritmi per essere un vero programmatore? [chiuso]

21

Sono un programmatore PHP e fino ad ora non avevo bisogno di imparare gli algoritmi ...

Ora sto iniziando ad imparare Python (un vero linguaggio di programmazione), perché ho bisogno di usare matplotlib. Ha senso iniziare leggendo un libro dell'algoritmo Python e poi imparare matplotlib e numpy o dovrei passare a matplotlib e numpy?

I migliori saluti,

    
posta André 01.03.2011 - 23:24
fonte

9 risposte

35

Assolutamente. Senza conoscere gli algoritmi, in quale altro modo capirai in che modo un programma fa quello che fa?

È essenziale comprendere lo sviluppo dell'algoritmo in modo da poter programmare in modo più efficiente e scrivere programmi migliori. All'inizio dovresti almeno conoscere le basi di concetti come il flusso di controllo (magari tramite l'automa di stato, ma non sempre è necessario) e la notazione di Big O e come può influire sulle prestazioni.

    
risposta data 01.03.2011 - 23:31
fonte
17

La risposta è sì e no. Non è necessario conoscere i dettagli di come funzionano i diversi algoritmi o la teoria che li sottende - questo è il lavoro degli informatici - ma è necessario conoscere le basi, come ad esempio quali algoritmi sono disponibili per risolvere un particolare compito e qual è il migliore per una determinata situazione.

Nel tuo caso, puoi semplicemente iniziare a usare le librerie che hai citato - sono state costruite da qualcuno solo per semplificare la vita agli altri. Sicuramente non hai bisogno di conoscere gli algoritmi che sono serviti per crearlo solo per usarlo.

    
risposta data 01.03.2011 - 23:36
fonte
6

Sì, in modo da capire come applicare un approccio piuttosto che un altro. Inoltre, non si vuole "reinventare la ruota" poiché esistono già molti algoritmi già funzionanti. Se non sai che sono là fuori, perderai tempo a inventare una soluzione potenzialmente più debole e non capirai nemmeno perché sia più debole.

    
risposta data 01.03.2011 - 23:29
fonte
3

Algoritmi di un programmatore è un martello per un fabbro. Certo, puoi cavartela senza e utilizzare alternative per portare a termine il lavoro, ma se vuoi farlo bene e farlo bene è essenziale.

La cosa buona degli algoritmi è che è un linguaggio di programmazione indipendente, quindi impara una volta la teoria e puoi implementarla in qualsiasi lingua. Ecco un buon sito web che sto sviluppando per iniziare a imparare da: www.ambesty.com Usano Java ma viene fornito con codice di esempio da cui imparare. Offrono semplici algoritmi di ordinamento e ordinamento a quelli più complessi come gli algoritmi di compressione dei dati. Lettura molto interessante Buona fortuna

    
risposta data 22.08.2011 - 16:48
fonte
1

A seconda dell'esperienza PHP, se sei nella fase in cui puoi adattare i concetti di programmazione di base da una lingua all'altra, fallo . Questo sarebbe il modo più efficiente per trascorrere il tuo tempo.

Leggi cosa devi fare per integrare Matplotlib , numpy e Python. E poi se rimani bloccato, continua a immergerti più a fondo. Raccomando questo ordine perché

  • è meno dispendioso in termini di tempo
  • tu probabilmente non applicherà ogni algoritmo che leggi su
risposta data 01.03.2011 - 23:36
fonte
1

Se stai sviluppando applicazioni aziendali (solo), apprendi solo le nozioni di base, come elenchi, code, ordinamento, ricerca stringhe, ecc. in modo che tu possa apprendere la terminologia, come le prestazioni sono influenzate e misurate e così sopra. Un uso migliore del tuo tempo sarebbe quello di concentrarti sulla nuova tecnologia, i modelli OO, la progettazione efficace del database, l'app. metodologie di sviluppo e così!

    
risposta data 22.08.2011 - 17:00
fonte
1

Ok - So che questo non è esattamente quello che intendevi, ma sai già (come fare) algoritmi. A seconda della tua definizione puoi prendere ogni progamm come esempio per un algoritmo.

Quindi non temere. È utile conoscere gli algoritmi di base, è più utile conoscere le strutture di base dei dati, ma è ancora meglio conoscere i "modelli" di progettazione. Dopotutto gli algoritmi di base e le strutture dati saranno implementate nel tuo quadro di scelta ma i modelli molto probabilmente non ...

    
risposta data 22.08.2011 - 21:48
fonte
0

Prima impara Python, quindi se hai voglia puoi studiare gli algoritmi; Perché gli algoritmi non sono specifici per Python - sono generali tutte le lingue.

    
risposta data 02.03.2011 - 01:07
fonte
0

Prima di iniziare all'Università, credevo di essere un programmatore abbastanza decente e avevo un paio di anni di esperienza lavorativa. Ma dopo aver imparato a conoscere algoritmi e strutture dati all'Università, sento che è la conoscenza che devi avere! È essenziale per tutto ciò che fai. Anche se potresti non usare quella conoscenza direttamente ogni giorno, sarà comunque in cima alla tua testa e ti renderà un programmatore migliore.

Si impara molto sulle prestazioni, e anche se le prestazioni di solito non sono la numero uno, gli algoritmi di conoscenza ti impediranno di fare cose stupide, con prestazioni davvero pessime. Anche se la performance non è la numero uno, non c'è alcun motivo per non usare quella conoscenza per prendere le giuste decisioni.

    
risposta data 10.08.2011 - 14:58
fonte

Leggi altre domande sui tag