aumento della produttività: padronanza di una lingua e scelta di strumenti efficienti

5

Sto cercando consigli da sviluppatori esperti su questa domanda.

Nel mio lavoro c'è bisogno di un sacco di codice one-off. Si è tentati di immergersi nelle giuste chiamate della libreria python / perl per eseguire queste piccole attività il più rapidamente possibile.

Ero solito avere la filosofia di "usare lo strumento più efficiente per il compito". Tuttavia, temo che col passare del tempo, questo significhi che non avrò un'esperienza e competenze più approfondite, quindi recentemente mi sono costretta a usare C ++ (con Boost e STL) per tutto, anche se potessi fare il compito in python o perl molto più rapidamente. Spero che a lungo termine, questo mi renderà uno sviluppatore più produttivo. Spero di raggiungere un livello di familiarità che posso fare cose in C ++ il più rapidamente possibile in Python (e ho anche la possibilità di lavorare su progetti più grandi che richiedono C ++).

Questa è una buona strategia per la produttività a lungo termine e le competenze più profonde? O sto inutilmente perdendo tempo / torturando me stesso?

    
posta daj 08.11.2011 - 18:29
fonte

5 risposte

8

Or am I unnecessarily wasting time / torturing myself?

Questo è quello che probabilmente stai facendo.

Un falegname non passa tutto il giorno a usare uno scalpello per tagliare le forme invece di una sega, vero? I linguaggi di programmazione sono strumenti proprio come le librerie e gli ambienti di sviluppo. Scrivere un grande programma C ++ per eseguire un lavoro gestito meglio da Perl o Grep è spesso una perdita di tempo.

Tuttavia, non esagerare con la "miglior strumento per un lavoro" religione . Uno strumento con cui hai familiarità e che ti piace usare potrebbe superare i suoi svantaggi rispetto a uno strumento "corretto" che non ti piace usare.

    
risposta data 08.11.2011 - 18:42
fonte
2

Penso che gli sviluppatori spesso trovino l'erba più verde dall'altra parte. Non c'è molto che non possa essere teoricamente realizzato in nessuno dei due ambienti. Tuttavia, i punti di forza di C ++ diventano più chiari quando si affrontano problemi ad alte prestazioni, mentre i punti di forza degli script diventano più chiari quando si ha a che fare con un'implementazione di ampiezza. Ad un certo punto, le curve di produttività si incontrano e il passaggio al C ++ fa il suo caso.

Inoltre, C ++ è la lingua franca dello sviluppo per ragioni storiche, e ovviamente il C ++ parla meglio con C ++, quindi è probabile che tu lo incontri spesso.

Infine, l'apprendimento di entrambe le parti è ottimo per la prospettiva, che in genere rende uno sviluppatore più versatile e informato. Quindi, penso che migliorare il tuo C ++ sarebbe una cosa molto produttiva per te, e imparare qualcosa come Python (o Perl, ecc.) È una cosa fantastica per gli sviluppatori di C ++.

    
risposta data 08.11.2011 - 18:57
fonte
1

L'unico modo per padroneggiare veramente una lingua è usarlo regolarmente su progetti reali. Costringersi a usare un linguaggio per una tantum è fantastico quando ne sei entusiasta, ma la novità di solito svanisce prima che tu raggiunga davvero la maestria. Non è che essere "familiari" con una lingua non sia utile di per sé.

    
risposta data 08.11.2011 - 20:21
fonte
1

Usando molti linguaggi e strumenti aumenta la capacità di un programmatore di pensare oltre una determinata lingua . Se qualcuno si attacca a C da solo, quella persona codificherà le stringhe ogni volta che c'è bisogno di una stringa. Non male, ma controproducente.
Lasciatemi scrivere da una prospettiva diversa. Ho visto che gli studenti di informatica / ingegneria hanno trasformato i programmatori nell'approccio alla codifica di una soluzione diversa da quella degli altri. Non pensano a ciò che è disponibile nella lingua, ma partono da una soluzione generica e cercano di trovare modi per codificarlo in una lingua. Questo è il concetto di design prima della codifica.
Credo che la tua domanda possa essere risolta dalla stessa prospettiva. Utilizzando molti linguaggi e strumenti diversi per risolvere un problema, consente di comprendere che esistono modi per risolvere un problema oltre il modo tradizionale e si cerca di trovare tali costrutti / librerie in ogni lingua Credo che questa sia una qualità inestimabile per un programmatore che può essere costruita solo lavorando in lingue diverse.

    
risposta data 11.11.2011 - 14:50
fonte
0

"usa lo strumento più efficiente per il compito" - non buttare via completamente questo principio. Non sarai in grado di raggiungere lo stesso livello di efficienza in C ++ come in Python e Perl, semplicemente perché sono linguaggi di alto livello. Ma ci saranno dei motivi per scegliere C ++ nonostante l'efficienza dello sviluppo.

Ma, in ogni caso, scegli C ++ sugli altri per praticarlo. Familiarizzarsi è un buon inizio e non sarà una perdita di tempo. Ma notate che ci saranno dei limiti a quanto sia abile ottenere scrivendo l'equivalente in C ++ di uno script. Alla fine avrai bisogno di andare oltre per diventare veramente competente.

    
risposta data 09.11.2011 - 06:15
fonte

Leggi altre domande sui tag