Quando qualcuno sarebbe considerato un cattivo programmatore? [chiuso]


57

Come considereresti che un programmatore non è bravo in quello che sta facendo?

Se possibile ... Come dovrebbe migliorare?


3
Perché detta persona non accetta risposte su una pagina web relativa alla programmazione. Scherzo :-)
Daniel,

1
@EvanKroske: No, non è vero ... esiste un Wiki della community per consentire la modifica collaborativa dei post. Vedi anche: Il nostro Meta - Tag: community-wiki
Tamara Wijsman

In molte domande, è impossibile accettare una sola risposta. Vedi anche: La nostra meta - Cerca: accetta
Tamara Wijsman

Non tutte le domande ottengono una risposta che risolve effettivamente il problema.
Loren Pechtel,

Risposte:


134

Quando non riescono a imparare dai propri errori e dalle revisioni tra pari.

Siamo tutti verdi ad un certo punto; tuttavia, se non stai migliorando o stai cercando di migliorare, allora sei un cattivo programmatore.


4
D'accordo - devi avere un circuito di feedback, imparando sempre dai tuoi errori.
Marcel Lamothe,

1
@PSU ben detto. Proprio come qualsiasi mestiere, i programmatori sono commercianti e non sono perfetti, imparano sempre ma se non riesci a imparare dagli errori non stai migliorando nel tuo mestiere.
Chris,

2
Questa è una definizione molto ampia; non è limitato ai programmatori. Si applica a scienziati, cuochi, sportivi, traduttori, bidelli, fotografi e qualsiasi professione.
RegDwight,

13
Tutti sono un idiota almeno una volta alla settimana.
MIA,

@RegDwight: e il tuo punto era ...?
SamB,

125

Un programmatore che non sa cosa non sa e non è interessato a scoprirlo.


16
Se potessi votare questo 100x, lo farei. Un po 'di umiltà e una fame di apprendimento compensano molto nel lungo periodo.
William Pietri,

1
+1 anche per Ngu e William. Questo è il criterio più tipico di un cattivo "programmatore".
fabrik,

Cosa succede quando sai di non conoscere MOLTO e difficile quanto ci provi, non ne saprai mai la maggior parte?
Steven Evers,

@snOrfus, trovi un mentore per insegnarti ...

75

Un grande segnale di avvertimento è se sono un programmatore "cult cult" - nel senso che fanno cose ma non sanno perché fanno quelle cose (è solo "magico"). Ottimo post di Eric Lippert qui .

Dall'articolo:

programmatori che capiscono cosa fa il codice, ma non come lo fa.

3
* e ha codificato questa tecnologia per un po '
Joe Phillips,

5
Questo si applicherebbe a quasi tutti i programmatori che hanno mai fatto qualche sviluppo web con framework come Java / Spring o Ruby on Rails. Quelle strutture sono piene di magia nera che i normali programmatori di solito non si preoccupano di capire.
missingfaktor,

3
@Missing Faktor - e quindi, non sarebbe inesatto affermare che la maggior parte dei programmatori che lo fanno, non sono grandi programmatori :)
seanmonstar

14
Inoltre, non è realistico supporre che i programmatori debbano comprendere appieno il funzionamento interno del framework, della macchina virtuale o di qualunque cosa stiano costruendo il codice. (O, in effetti, i dettagli di tutti gli strati di astrazione sottostanti, fino a raggiungere il metallo nudo). Puoi essere un programmatore perfettamente bravo e produttivo anche se conosci solo le parti più rilevanti.
Jonik,

4
@Missing Faktor: potrebbero non capire gli interni delle librerie e dei framework che usano esattamente, ma dovrebbero almeno sapere a cosa serve ogni cosa nel loro codice: "snark the frobber", "perché la documentazione dice che questo è necessario per preservare l'integrità del continuum spazio-temporale ", ecc.
SamB,

45

Un grande suggerimento per me è quando pongono a te o agli altri programmatori domande sullo sviluppo che dimostrano chiaramente di aver fatto uno sforzo assolutamente nullo per capirlo da soli.

Un corollario è quando fanno più volte la stessa domanda di programmazione indicando che non stanno interiorizzando le informazioni.


Ah sì, ho lavorato con lui. Tempo passato, per fortuna.
Mike Woodhouse,

1
Alcuni non sono nemmeno in grado di formulare domande decenti, chiedendoti di "risolverlo"
deltreme,

21

Quando impiegano molto tempo per risolvere il problema FizzBuzz.


1
Penso che potrebbero esserci dei principianti con il potenziale per essere buoni programmatori - che hanno problemi con questo.
JD Isaacks,

2
I principianti vanno bene se stai cercando un programmatore junior che intendi modellare e modellare in un buon programma. Ma quel problema è così banale, non dovrebbe essere necessario scrivere a nessuno con esperienza.
Matt DiTrolio,

8
Direi che non dovrebbe volerci molto tempo per chi ha terminato con successo un corso di programmazione entry level per risolverlo.
EpsilonVector

4
Se un principiante non è in grado di risolvere FizzBuzz, non dovrebbe fare domanda per programmare lavori. Se affermi di essere in grado di programmare (ad es. Facendo domanda per un lavoro di programmazione), dovresti essere in grado di risolvere FizzBuzz.
Chinmay Kanchi,

1
Vale la pena dare un'occhiata alla domanda StackOverflow su FizzBuzz. Scopri la soluzione Python che non utilizza la divisione o il modulo. stackoverflow.com/questions/437/…
Gordon,

21

I programmatori che si rifiutano di apprendere nuove tecnologie / lingue e insistono per attenersi a ciò che già sanno.


Addendum: (aggiungendo ciò che trattino ha detto sotto nei commenti)

Un'estensione di ciò sono le persone che conoscono un sottoinsieme delle funzionalità di alcune tecnologie ma non mostrano alcun desiderio di saperne di più. Linguaggio di programmazione, editor, altri strumenti ...


6
... e senza buoni motivi, dovrei aggiungere.
missingfaktor,

18

Quando un membro del team è lo sviluppatore produttore negativo .

|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0

Significa che il resto della tua squadra deve fare più lavoro a causa del cattivo sviluppatore. NNPP


1
Sono d'accordo - queste persone possono essere estremamente dannose per la loro squadra.
Marcel Lamothe,

44
Eh ... ieri ho rimosso 500 righe di codice ridondante e non ho introdotto bug. Le metriche LOC sono considerate dannose?
Piskvor,

5
La maggior parte delle metriche sono orribili e le metriche LOC sono generalmente più inutili. Il punto qui è che un cattivo programmatore è qualcuno che crea più lavoro per la squadra di quanti ne completi.
danivovich,

5
Le metriche LOC non sono inutili. Sono NOCIVI. Inoltre, il conteggio LOC è molto difficile nella maggior parte delle lingue moderne. Ma la metrica non è il punto qui. Sta solo dicendo | Lavora per creare | - | Lavoro sbagliato | - | lavoro per risolvere | ... cioè se ti ci sono volute 10 ore, delle quali hai trascorso 6 ore a lavorare su qualcosa che alla fine ha dovuto essere riparato e ci sono volute altre 6 ore per farlo, allora sei -2 ore. Il tempo è davvero quello che stai cercando di ottenere comunque.
MIA,

1
Le metriche LOC sono un ottimo modo per misurare il numero di posti in cui i bug devono nascondersi.
SamB


15

Quando sanno che ci sono modi migliori di fare le cose, ma si rifiutano ancora di farle anche quando il tempo lo consente.


Ma potrebbero esserci disaccordi di esperti su ciò che è "migliore".
DarenW,

@DarenW - Non direi che qualcuno è un cattivo programmatore perché si sono schierati su un argomento controverso, ma quando hanno una scelta definitiva nella loro mente.
JeffO,

15

Personalmente penso che qualsiasi programmatore che può guardare il proprio codice che ha scritto qualche tempo fa e non trovare qualcosa di sbagliato in esso non è buono. "Un po '" può ridursi con l'esperienza ... direi tra alcune settimane fino a un anno circa.


5
E se non riuscissero a trovare qualcosa di sbagliato, e questo li preoccupa?
SamB,

1
O peggio, non riescono a trovare nulla di sbagliato e cercano di risolverlo.
Toon Krijthe

15

Coloro che ignorano gli avvertimenti sui loro codici e si preoccupano solo degli errori.


14

Quando ero un caposquadra in un piccolo negozio, c'erano diverse persone che dovevo riassegnare (né io né il mio supervisore diretto avevamo la possibilità di terminare senza una tonnellata di burocrazia e una pila di documentazione.) O di non rinnovare il contratto alla fine dell'attuale incarico. Alcuni dei tipi elencati hanno funzionato anche per altri team leader e hanno praticamente adottato la stessa opinione. Cose che hanno portato la gente nella categoria "Bad Programmer" nel mio libro:

  1. Non addestrabile o ossificato in passato
    Quando il "programmatore" non sembra essere in grado di assorbire il nuovo sistema, il nuovo strumento o qualunque cosa venga distribuita, indipendentemente da come viene svolto l'addestramento / istruzione. Deve ripetere questo allenamento su base frequente.
    Quando il "programmatore" conosce solo la tecnologia o il paradigma di codifica che hanno usato 10 o 15 anni fa. Allora era abbastanza buono, quindi perché dovrebbero cambiare?
  2. Codificatore da cowboy
    La persona che codifica per prima, senza un piano. Il "programmatore" che apporta modifiche non testate al codice di produzione e / o ai dati "perché ora dobbiamo ripararlo" e quindi è sorpreso quando la "correzione" fallisce.
    Anche il Cowboy non è sicuramente un giocatore di squadra. Non ha bisogno di una squadra puzzolente.
  3. La banderuola
    Questo "programmatore" è innamorato della "tecnologia del giorno " e vede ogni nuovo quadro, linguaggio, metodologia o qualunque cosa sia nuova e accattivante come il
  4. Il "grande cervello"
    Questo "programmatore" è così sicuro del suo talento e delle sue capacità che vengono fatte cose che non hanno molto senso del progetto. ad es. riscrivere una libreria standard "perché è inefficiente per il nostro sistema" o introdurre strumenti e tecniche non adatti al problema in questione. ad es. presentazione di Lisp o Forth in un ambiente mainframe.
  5. LOC a. Sandbagger
    Questo "programmatore" usa l'offuscamento e la cattiva direzione per aumentare la a. LOC: righe di codice che vengono pagate. Ho visto codice in questa situazione che era pagina dopo pagina, schermata dopo schermata di struttura e logica duplicate, con solo i nomi delle variabili di controllo o paragrafo modificati per aumentare il conteggio delle righe.
  6. Esperto indispensabile
    Il "programmatore" che ha le conoscenze di dominio per risolvere i problemi a portata di mano, ma dal momento che "sanno" tutto al riguardo. In effetti, se fossero stati colpiti da un autobus, l'intera organizzazione sarebbe precipitata. { Osservazione: quelli che pensano di essere indispensabili lo sono di solito. (Qualcuno ha la fonte di questo aforisma?)}
  7. The Pasta Chef
    Questo "programmatore" è specializzato nel codice spaghetti, speziato con identificatori che sono troppo difficili da seguire senza un IDE implementato sintatticamente. ad es. IndexI1O0, Index1I0O, ecc.
  8. Stagista estivo - Sottotipo specifico Walking Disaster Il
    mio vecchio negozio era solito assumere un certo numero di tirocinanti della scuola superiore o del college. Una volta un dipartimento aveva bisogno di un piccolo database per tenere traccia dell'utilizzo delle apparecchiature (ora questo era indietro e utilizzava dBase III). Il ragazzo ha programmato per tutta l'estate, ma non è stato fatto quando il college è iniziato in autunno. Ha avuto una proroga di una settimana e poi una seconda settimana. Alla fine della seconda settimana, sono stato inviato per riprendere il suo progetto e riportarlo allo sviluppo dei sistemi per essere completato. Mi mostrò le cose che aveva fatto e poi la parte incompiuta. Ciò che ha funzionato ha avuto un piacere per gli occhi, ma l'applicazione lo eraincompleto. Quando ho aperto la nuova scatola di floppy formattati per ottenere copie, mi ha detto "solo un secondo, fammi cancellare i miei file di test ..." e prima che potessi dire qualcosa, aveva eliminato un mucchio di file.
    Essendo un tipo sospetto e trovando che la sua applicazione non era altro che un piacere per gli occhi quando sono tornato al mio negozio, sono tornato al dipartimento e ho tirato fuori Norton e cancellato i file che aveva eliminato, cercando di trovare qualche logica aggiuntiva, anche se incompleto.
    Ho trovato, non cattiva logica, ma cattivo comportamento. La stampante collegata al PC che stava usando era una stampante a margherita. Il set di caratteri normalmente montato era una variante svizzera. L'output dei programmi eliminati emette un nome, un indirizzo, un DOB, alcuni codici di lettere e un tipo di numero ID. Il formato e il layout mi hanno infastidito. Tutte le date di nascita di più persone erano a mala pena legali per l'età da bere. La maggior parte degli indirizzi non c'erano, quando li ho cercati nella nostra directory incrociata. Quando ho mostrato le stampe al suo supervisore, mi ha guardato e ha detto "Patenti di guida, non credi?" Ho detto di averlo fatto. Disse che era per questo che aveva trovato tutti i pezzi trasparenti tagliati nella spazzatura accanto alla Xerox. Il nostro cattivo ragazzo aveva fatto delle sovrapposizioni per adeguare l'età di lui e dei suoi amici alle patenti di guida. L'abbiamo segnalato alle autorità.non pagato per le sue ultime due settimane.

Questi sono solo alcuni dei personaggi cattivi con cui ho dovuto lavorare ...

/ s / BezantSoft


RE "Quelli che pensano di essere indispensabili di solito sono" mi ricorda un po ' en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
DaveDev

10

Incapace di adattarsi alle prossime tecnologie


10

A parte l'ovvia mancanza di conoscenza / abilità, un programmatore è un cattivo, se il loro codice è più difficile da leggere e / o mantenere di quanto dovrebbe essere.


1
E il programmatore è davvero pessimo quando non riesce a leggere un codice ben scritto :-)
Maniero

4
Non sarebbe quasi tutti? Voglio dire, il codice non è quasi sempre più difficile da leggere e / o mantenere di quanto dovrebbe essere?
SamB,

No. Il codice è sempre più facile da scrivere che da leggere. Ma ho dovuto mantenere un codice molto ben scritto che riduceva il più possibile questo dolore.
Chinmay Kanchi,

10

Quando nessun altro può leggere il suo codice. Non importa quanto tu sia brillante; nessun programmatore è un'isola.


Bene, se sta scrivendo in Unlambda, nessuno dovrebbe essere in grado di leggerlo.
SamB,

Inoltre, quando un programmatore impiega pochissimo tempo per fare qualcosa inizialmente e poi molto tempo per personalizzarlo. Ho visto spesso che ciò accade perché il programmatore copia principalmente il codice delle paste (ecco perché è veloce all'inizio), ma poi impiega molto tempo perché è difficile (anche per i bravi programmatori) modificarlo da lì a causa dell'assenza dell'intento per scrivere codice personalizzabile all'inizio.
Sandeepan Nath,

7

Qualcuno che non presta attenzione ai dettagli ed è sempre in "funziona, quindi lo lascio da solo. Tutte quelle eccezioni nei registri non contano".


7

Per me ci sono due categorie di programmatori: solo e team.

I programmatori solisti sono cattivi

  • Coloro che hanno impiegato troppo tempo per svolgere il semplice compito.
  • Coloro che non possono cercare da soli ciò che stanno facendo.
  • Coloro che dimenticheranno ciò che è stato codificato oggi entro pochi giorni e non riescono a mantenere molto bene la propria base di codice.
  • Coloro che non riescono ad adattarsi ai requisiti cambiano.

I programmatori di squadre cattive sono quelli che rientrano nella categoria di programmatori solisti cattivi, tra cui

  • Coloro che non sono in grado di coordinarsi con altri membri del team.
  • Coloro che non accolgono favorevolmente le critiche.
  • Coloro che non sanno come essere utili agli altri e come trarre vantaggio dagli altri membri del team.
  • Coloro che non sono in grado di scrivere codice leggibile.
  • Coloro che non commentano per motivi di leggibilità per gli altri.

8
Non ricordo esattamente come ho implementato le cose che ho programmato la scorsa settimana. È insolito? Avevo l'impressione che lavorare con la memoria umana finita fosse solo una delle sfide della programmazione. Da qui l'importanza di strutturare e documentare il codice in modo da non dover ricordare i dettagli.
James,

@James Per favore, scusa il mio inglese;). Voglio dire che se un programmatore torna a guardare il suo codice pochi giorni dopo e non ha alcun indizio, è un brutto segno. Inoltre, non ricordo come e cosa ho fatto esattamente qualche giorno fa, ma sono sicuro di non dovermi grattare la testa quando guardo il mio codice e dire "che cosa stavo pensando?"
tia,

@James: Esatto, dovrebbe documentare il suo codice in modo che non abbia importanza che abbia dimenticato come funziona metà
SamB

4

Non disposti ad ammettere di non conoscere la risposta e / o riluttanti a cercare le cose.

Se non lo conosci, non mollare, scoprilo e fallo.


4

Un grande segnale di avvertimento nella mia esperienza è quando non commentano i loro hack ...

Sai cosa intendo: quando sei costretto a fare qualcosa di molto caotico perché semplicemente non c'è modo migliore per farlo.

I bravi programmatori odieranno doverlo fare e inserire commenti in linea dicendo quanto odiano mettere in quel tipo di hack, ma non c'è scelta. I programmatori sbagliati inseriranno l'hacking e non lo commenteranno.


3

Silenzioso ovviamente quando un programmatore scrive MOLTO codice. Funzioni molto grandi, forse copia / incolla di linee o blocchi di codice, usando molto più se necessario, ecc. Ciò potrebbe essere dovuto al fatto che il programmatore non conosce una funzione standard per fare ciò che vuole, ma la maggior parte delle volte non lo è.


3

Essere ripetutamente ha mostrato il modo giusto di farlo, e ripetutamente semplicemente farlo nel modo più semplice.


3

Sto spostando la mia risposta qui da un argomento duplicato chiuso che ha chiesto Riesci a riconoscere se sei un cattivo programmatore? L'altro argomento veniva chiuso mentre componevo la mia risposta. La mia risposta affronta più direttamente la domanda in quanto è stata formulata dall'altro richiedente e leggerà meglio se lo capisci.

Sospiro! Una parte di me non voleva aggiungere a questo argomento già occupato, ma l'altra parte di me ha vinto! Perché ha vinto? perché mi preoccupo di aggiungere ancora più parole a questo particolare multilogo? Bene, perché, in una certa misura, potrei avere un approccio leggermente diverso rispetto ai molti commentatori precedenti.

Il binario funziona alla grande nei computer: è "1" o "0", "acceso" o "spento". Possiamo astrarre e codificare molte informazioni usando quei due famosi stati. Ma non tende a funzionare così bene per le questioni umane: "buono" o "cattivo", "sano" o "insano", "buono" o "cattivo", "intelligente" o "stupido", "grasso" o "magro", "vivo" o "morto?" Questo tipo di valutazioni polarizzate ha sempre lasciato l'essere umano premuroso parte di me terribilmente insoddisfatto. Indipendentemente dagli schemi di misurazione che scelgo di applicare, di solito scopro che le risposte a contrasti così netti in realtà si trovano da qualche parte lungo un continuum tra uno di questi poli e l'altro, non alle due estremità.

Ho combattuto con questa tendenza alla polarizzazione per un po 'di tempo, ormai, e la mia soluzione personale è che trovo molto più utile applicare tre parole a una tale valutazione: " in che misura!"

Quindi, la mia risposta alla tua domanda è di suggerirti di riformularla e di chiederti questo: "In che misura sono un cattivo programmatore?" O, ancora meglio, chiederlo nella direzione opposta: "In che misura sono un buon programmatore?" Se persegui la verità, probabilmente ti troverai da qualche parte lungo un continuum tra l'essere un programmatore "cattivo" e un "buono". Quindi, una volta che riesci a localizzare approssimativamente dove ti trovi lungo questo percorso, probabilmente puoi identificare un punto un po 'più vicino alla fine "buona", un punto in cui ti piacerebbe ritrovarti nel prossimo futuro.

Se non imposti questo punto troppo lontano, probabilmente puoi innestare la marcia posteriore e iniziare a spostarlo in quella direzione. Se riesci a ripetere più volte questo algoritmo euristico piuttosto semplice, potresti presto trovarti troppo impegnato a programmare per dover porre di nuovo questa domanda! Oh, e probabilmente farai progressi più rapidi se inizi a martellare il codice su una tastiera il più rapidamente e spesso possibile; e, se fai una piccola pausa di tanto in tanto, leggi un codice di alta qualità scritto dai tuoi colleghi! In questi giorni di sviluppo dinamico Open Source, non c'è carenza di codice gratuito e squisito da cui imparare!

Quindi, ti consiglio vivamente di provare le mie tre piccole parole, "fino a che punto" e vedere fino a che punto in una buona direzione possono portarti!


2

Qualcuno che dice "Non si può fare".

A mio avviso, si tratta di risolvere i problemi, lo strumento dovrebbe essere molto meno pertinente rispetto a svolgere effettivamente il lavoro. Se devo risolverlo usando MS-Access o il linguaggio assembly, è una questione di tempo e denaro, non di "Non si può fare"

Un segnale di avvertimento è troppo focalizzato sul modo accademico e "corretto" di fare le cose, e non abbastanza su come svolgere il lavoro.


2
E quando dice perché può essere fatto?
Maniero,

1
Quindi, che ne dici di risolvere un problema di arresto? Si può fare?
P Shved,

2
È brutto respingere qualcosa di impossibile se non lo è e viceversa.
Randall Schulz,

2
@Randall Schulz: Per quanto ne so da Craigslist, un programmatore di rock star è qualcuno che gestisce tutti i livelli di sviluppo (database, esperienza utente, implementazione, amministratore di sistema e supporto utente) in un'agenzia pubblicitaria a un costo significativamente inferiore al normale stipendio per una di quelle cose. Le chiamano rock star perché dopo 60 ore a settimana la loro dieta è simile a quella di chi fa un giro in un furgone di econolina e deve impegnare le loro chitarre per il cibo.
Dan Monego,

1
Sì, ho fatto una generalizzazione generalizzata :), ma ... era per fare un punto. "La mia opinione professionale è che non dovrebbe essere fatto" è meglio. Ancora meglio "Che ne dici di risolvere lo stesso problema in modo diverso". Il mio punto è che un buon programmatore dovrebbe essere focalizzato sulla soluzione. "Non si può fare", senza offrire opzioni è molto frustrante per il cliente.
Dan Williams,

2

Se conosce solo la sintassi di una lingua ma non conosce i concetti di base degli algoritmi.


2

Quando fanno molto pontificando ma producono molto poco.



2

Coloro che non conoscono principi come SOLID, DRY, OOP e così via. È importante avere una buona conoscenza dei principi e delle basi di programmazione piuttosto che conoscere specifiche tecnologie. Quelli con solide basi saranno in grado di apprendere facilmente nuovi argomenti e produrranno un codice migliore.


2

Un programmatore incorporato che non capisce molto bene gli interrupt o il multitasking. Anche i programmatori che devono lavorare con i campi di bit ma non comprendono operazioni logiche su di essi e lo spostamento.


2

Un segnale di riconoscimento immediato è qualcuno che dice: "Non capisco perché non funziona. Ho fatto tutto bene".


Seguito da vicino "Non capisco perché funzioni, non è giusto."
Randall Schulz,

Sì, è il computer che è stupido :)
Dan Williams,

2

Una cosa che distingue un programmatore cattivo da un programmatore principiante è l'insistenza ostinata sull'implementazione del proprio sistema preferito in qualsiasi lingua e API in cui stanno lavorando.

Una volta ho ereditato un sistema in cui lo sviluppatore precedente ha reimplementato (in Java) un ampio set di api Ashton Tate DBase III + api sovrapposto alla libreria di accesso dbf personalizzata. Nessuno del framework delle raccolte Java è stato utilizzato.

Questo è stato così che poteva scrivere un'app Java / swing che sembrava e si comportava come un'app DBase III + (o forse clipper).

Le app che ha scritto in questo sistema avevano menu della barra lite e aprivano una finestra intera con una fila di pulsanti in basso quando si spostava la barra lite sull'opzione. Era come una piccola macchina del tempo negli anni '80.

L'uomo era chiaramente un abile sviluppatore. Sapeva abbastanza che era in grado di scrivere da solo l'intero sistema nel periodo di tempo di quel progetto. È stato anche in grado di riutilizzarlo su alcuni altri sistemi interni.

Ma era un programmatore terribile in quanto il suo codice utilizzava in modo improprio le funzionalità dei sistemi su cui lavorava. Era più disposto a spendere 3 mesi in una libreria personalizzata di dubbia utilità rispetto all'apprendimento di Java / Swing / SQL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.