È saggio andare avanti e indietro tra due linguaggi di programmazione? [chiuso]

28

Ho scritto un bel po 'di PHP per quasi due anni. Ora sto facendo lo sviluppo .NET (principalmente c #). Tuttavia, a volte torno indietro e faccio un po 'di php.

La mia domanda principale è, è saggio per me continuare a farlo o dovrei continuare lo sviluppo in C #? Questo mi farebbe del male a lungo andare (badate che il mio obiettivo principale non è quello di essere un tuttofare) o è una buona pratica da fare?

    
posta superM 08.08.2012 - 16:01
fonte

15 risposte

75

L'uso di due lingue allo stesso tempo non è nulla. Non è raro che i programmatori utilizzino più lingue diverse ogni giorno. Diversi compiti e diverse tecnologie richiedono lingue diverse.

Proprio oggi, ho già usato quattro o cinque lingue diverse, e questo è interessante perché non ho mai fatto una programmazione qualsiasi finora. Tutto quello che ho fatto è lavorare su una presentazione.

Essendo un buon programmatore è essenzialmente richiesto che conosci le tue abilità in diverse lingue, e l'unico modo per ottenere (e quindi preservare) una fluidità ragionevole è usare quelle lingue.

    
risposta data 08.08.2012 - 12:38
fonte
37

is it a good practice to be doing?

È una pratica eccellente. Inoltre, ti consiglio di espandere regolarmente la tua lista di lingue provandone una nuova.

Le lingue e le tecnologie entrano e escono dal favore molto rapidamente, nel giro di pochi anni. Ad esempio, l'obiettivo C è decollato con una forza straordinaria dopo essere quasi morto per due decenni e mezzo - un'eternità secondo gli standard di questo settore!

Non importa molto che tu stia pianificando di "non essere un tuttofare": se hai intenzione di rimanere nel settore abbastanza a lungo, è molto sicuro presumere che dovresti cambiare lo stack tecnologico almeno una volta durante la tua carriera. L'utilizzo di più lingue ti consente ora di passare a un preavviso ragionevolmente breve.

    
risposta data 08.08.2012 - 16:06
fonte
14

Would this harm me in the long run (mind you my main goal is not to be a jack o all trades) or is it a good practice to be doing?

Conoscere due o più lingue non ti farebbe mai del male. Conoscere le tue lingue molto superficiali (senza comprendere i meccanismi interni) può farti del male.

La mia preferenza personale era sempre controllare per primo un linguaggio di programmazione orientato agli oggetti . Ciò ti fornirà un apprendimento approfondito di tutti i concetti di programmazione e faciliterà l'apprendimento del prossimo una volta che ce ne sarà bisogno.

is it a good practice to be doing?

Assolutamente sì!

Suggerirei sicuramente di imparare più di uno e esercitarli creando alcune applicazioni. Nel frattempo, potresti anche pianificare di imparare alcuni linguaggi di scripting (jQuery, KnockoutJs, ecc.) E le librerie se stai facendo o stai pensando di fare lo sviluppo web.

    
risposta data 08.08.2012 - 21:33
fonte
5

Non dovrebbe danneggiarti a lungo termine, essere abile in un certo numero di lingue ti rende uno sviluppatore a tutto tondo. Utilizzare lo "strumento giusto per fare il lavoro giusto" è l'obiettivo finale e essere esperti in diverse lingue ti aiuta a realizzarlo come sai che altro è là fuori e puoi prendere una decisione ben informata su quale piattaforma / framework / linguaggio usare per fai qualcosa.

    
risposta data 08.08.2012 - 12:35
fonte
5

Nel corso della tua carriera, hai per imparare nuove lingue e nuove tecnologie; l'industria lo richiede semplicemente. Al mio primo incarico professionale, ho dovuto consegnare il codice scritto in Ada, C e Fortran, insieme ad alcuni script SQL e shell. Ho dovuto passare da C ++ a Java e viceversa negli ultimi due anni. Ho scritto script di shell in csh, bash e perl.

Prendersi del tempo per apprendere lingue diverse, specialmente se si trovano in domini diversi (OO, funzionale, logico, ecc.) ti aiuteranno in diversi modi. Manterrà il tuo cervello acuto. Ti aiuterà a separare i concetti dall'implementazione (ad es. Hash e mappe non sono solo tipi di dati in una particolare lingua). Vi darà un'idea migliore di quali strumenti sono appropriati per un determinato problema (ad esempio, non creerei un sito Web in C, né scriverei un driver di dispositivo in Haskell). Potrebbe renderti più facile trovare un lavoro ("Ehi, lo sa già Intercal 1 , non dobbiamo addestrarlo! "). Ti darà un'idea di quali sfide affrontano i progettisti di linguaggi. Potrebbe ispirarti a creare il tuo linguaggio di programmazione.

Per lo meno, ti impedirà di annoiarti.

1. Scherzo. Non cercare di imparare Intercal.

    
risposta data 08.08.2012 - 17:44
fonte
4

I pensionati di quest'anno hanno iniziato la loro carriera prima che venisse creato C . È sicuro che potresti cambiare lingua di programmazione una o due volte nella tua carriera. Non vuoi lavorare per i datori di lavoro che non lo capiscono.

Quando sei nuovo, il cambio di contesto tra due lingue è molto più difficile, quindi sarai più produttivo se lavori almeno 4-8 ore in una lingua prima di passare. Più tardi sarai in grado di passare all'istante senza perdita di produttività. In altre parole, l'uso di due lingue diventerà un punto di forza invece di rallentare.

    
risposta data 08.08.2012 - 15:12
fonte
2

C'è un lato positivo e uno svantaggio di questo.

Ecco il lato positivo ...

Come altri hanno menzionato, essere in grado di apprendere nuove e lavorare con molte lingue e strumenti di programmazione è quasi essenziale per avere una lunga carriera nella programmazione. Le cose cambiano nel corso degli anni, gli strumenti / le lingue vanno e vengono. Certo, ci sono alcune persone che si accontentano di programmare nello stesso COBOL del mainframe che hanno usato negli anni '80 ma questa è una situazione relativamente rara. La maggior parte dei programmatori finisce per cambiare strumenti / lingue diverse volte nel corso della propria carriera. A volte potresti essere assunto perché conosci qualche tecnologia obsoleta o conosci tutte le lingue con cui un'azienda lavora.

Lo svantaggio è ...

Alcuni datori di lavoro ti vedranno come un "tuttofare, padrone di nessuno" e rifiuteranno la tua domanda senza darti una possibilità. Stanno cercando un esperto ristretto in un'area specifica, non semplicemente un programmatore buono, ben arrotondato. A volte potresti venire interrotto dalle risorse umane perché non hai "5 anni di esperienza continua in [X]". Potresti evitarlo adattando il tuo curriculum per adattarlo al lavoro, ma questo potrebbe non essere di aiuto in un colloquio tecnico.

Per me, il lato positivo è molto migliore, ma devi essere consapevole che una minoranza di organizzazioni la vede come negativa.

    
risposta data 08.08.2012 - 13:49
fonte
2

Quando stavi sviluppando PHP hai scritto javascript o SQL? Nel tuo sviluppo C # potresti ancora utilizzare entrambi. Non è abbastanza tagliato e asciutto come usare un linguaggio di programmazione.

Se sei felice di farlo, non preoccuparti. Se non vuoi fare entrambi (o entrambi), allora hai un problema.

    
risposta data 08.08.2012 - 13:55
fonte
2

Imparare un nuovo linguaggio di programmazione ti insegnerà cose sulla programmazione che puoi applicare alle lingue che già conosci. Dovresti assolutamente considerare di giocare almeno con qualche altro linguaggio, anche se non li usi professionalmente, piuttosto che averne solo pochi.

Idealmente, uno che è molto diverso nell'approccio a quelli che già conosci.

    
risposta data 08.08.2012 - 15:52
fonte
2

No, non c'è niente di sbagliato nell'apprendimento di più lingue e nell'usarle tutte abbastanza spesso. Nel mio giorno posso incontrare Ruby, PHP, JavaScript, CoffeeScript, Python e occasionalmente C. Conosco abbastanza bene tutti questi linguaggi e passando da uno all'altro capovolgo un interruttore nel mio cervello. Certo mi mancano le caratteristiche di alcune lingue quando vado in un'altra, ma supererai quella.

Cerco di avere sempre una lingua che sto apprendendo in profondità e poi un'altra come "in arrivo". In questo modo hai sempre un chiaro obiettivo educativo e poi qualcosa all'orizzonte. In questo momento Ruby è la mia lingua principale e sto sperimentando con Go. Probabilmente non otterrò mai un lavoro come sviluppatore di Go, ma imparare una nuova lingua è diventato uno sviluppatore migliore.

Quando intervisto uno sviluppatore mi piace sempre vedere alcune lingue diverse sul proprio curriculum. Se uno sviluppatore ha "C / C ++" o "PHP e Javascript" sul proprio curriculum, sembra molto meno interessante di qualcuno che ha una solida conoscenza di 4 o 5 lingue. Assicurati di sentirti a tuo agio in qualsiasi lingua tu elencherai, qualsiasi cosa sul tuo curriculum è un gioco leale nell'intervista!

In breve: l'utilizzo di più lingue regolarmente è un segno di un buon sviluppatore che si preoccupa della loro arte. Continua a scrivere il codice!

    
risposta data 08.08.2012 - 16:48
fonte
2

Quando guardiamo i curriculum di solito cerchiamo qualcuno che conosca più lingue. Inoltre, l'esperienza di una persona aumenta il numero di lingue che hanno utilizzato dovrebbe aumentare anche.

Nel nostro ambiente dobbiamo spesso affrontare problemi nuovi e interessanti e stiamo cercando persone disposte a saltare e risolvere quei problemi, che abbiano bisogno di imparare una nuova lingua o meno. Il problema potrebbe essere nel codice in esecuzione su un desktop Windows, un server Windows, un server Linux o un browser.

Conoscere più lingue è un segno di qualcuno con una buona attitudine verso il loro mestiere. Vogliono sempre imparare nuove cose così fanno. La mancanza di conoscere un certo numero di lingue è un segnale per me che una persona fa solo il minimo indispensabile e non è interessata all'apprendimento.

    
risposta data 08.08.2012 - 18:31
fonte
2

È sempre stato il caso per le persone di programmare usando più di una lingua. Quando le persone utilizzavano Assembly, dovevano appoggiarsi a un nuovo linguaggio Assembly ogni volta che cambiavano architetture.

Quando le persone dovevano fare COBOL o Fortran, tipicamente facevano anche RPG e / o JCL.

In Unix, le persone lavorerebbero con C, sed, awk, script di shell e praticamente tutto nel kitchen sink di Unix (quasi tutti gli strumenti a riga di comando in Unix sono i suoi DSL molto specializzati).

In DOS, le persone dovrebbero programmare in Turbo Pascal o C oltre agli script batch. Più tardi, quando arrivò Windows, era VB o qualcosa come PowerBuilder accoppiato con SQL ed eventualmente script di installazione batch.

Al giorno d'oggi, è di fatto che le persone "lavorano" con più di due lingue ogni giorno (e con "lavoro" intendo fare il giorno reale- codifica odierna o conoscenza lavorativa). Java o C # o VB mescolati con JavaScript e SQL per lo meno. Poi entrano in gioco altre lingue per lo scripting batch / job e simili. Quindi, per ogni lingua, hai un framework che implementa di per sé un DSL interno, un mini-linguaggio a sé stante.

Quindi, non è solo vantaggioso lavorare con più di una lingua, ma è necessario. Non c'è modo di costruire un sistema moderno e complesso con una sola lingua (e con "build" non intendo solo codificare una schifezza che compila, ma per costruire qualcosa con un design decente.)

Diamine, uscirò da un arto e direi che mi aspetterei che i bambini al college abbiano una buona conoscenza di due o più lingue se sono seri nell'essere in questa professione.

Quindi, riguardo alla tua domanda:

My main question is, is it wise for me to continue doing this or should I continue development in C#? Would this harm me in the long run (mind you my main goal is not to be a jack o all trades) or is it a good practice to be doing?

Quindi, una risposta breve, no, l'uso o il passaggio da una lingua all'altra non ti daranno le follie. Conoscere più di una lingua non ti farà diventare un tuttofare e non è possibile per uno sviluppatore diventare un esperto non potendo utilizzare più di una lingua.

    
risposta data 08.08.2012 - 20:03
fonte
1

Più devi confrontare in riferimento alla / e tua / e lingua / e principale / i, meglio comprenderai i compromessi progettuali che sono diventati particolarmente forti o deboli in certe cose e ne traggono vantaggio / compenso. Padroneggia almeno uno, ma non preoccuparti di essere un jack di molti altri. Sembra solo buono.

È meglio chiedere come appaiono i curriculum con una sola lingua elencata dagli sviluppatori "senior". La risposta a questa domanda è: "Non sono molto interessato a ciò che fanno per vivere".

    
risposta data 08.08.2012 - 21:33
fonte
0

Due lingue possono aiutarti o no - dipende. Non ti farà del male, questo è sicuro. Molti sviluppatori tendono a pensare che usare qualcos'altro oltre al "linguaggio principale" sia pura perdita di tempo, ma sono strongmente in disaccordo. Imparare un'altra lingua (e usarla) è un puro vantaggio: ti offre una prospettiva diversa su come risolvere i problemi. Può succedere che inizierai ad usare una delle lingue per compiti particolari in ogni momento (come è successo a me dopo aver avuto la possibilità di imparare e usare Python).

    
risposta data 08.08.2012 - 17:09
fonte
0

In questa situazione non stai chiedendo di passare da JAVA a C # e viceversa, invece stai andando con C # e PHP, il che non è un grosso problema.

Supponiamo che tu voglia fare alcune cose basate su WEB dove stai usando uno stack WAMP (Windows / Apache / MySQL / PHP) e C #. Usa il C # per scrivere alcuni servizi basati su SOAP e poi usa PHP per consumarli.

Questo mi sembra totalmente accettabile.

In ogni caso, conoscere più di una lingua è buono. Più conosci meglio. Librerie PHP / C # / Java / Python / javascript [JQuery per esempio]. Siate utili a quante più persone possibile.

    
risposta data 08.08.2012 - 19:00
fonte

Leggi altre domande sui tag