I programmatori dimenticano la sintassi

16

I buoni programmatori devono avere la sintassi sulla punta della lingua quando scrivono il codice? Cosa ne fai di loro se google per cose semplici online? Sono buoni o cattivi (forse sanno dove cercare)? I programmatori dovrebbero avere una buona memoria? È un tratto per un buon programmatore?

    
posta maz3tt 03.12.2010 - 07:14
fonte

8 risposte

25

La mia filosofia di programmazione è che si tratta di uno "stato mentale" e il resto è "solo sintassi". (cioè non (come) importante)

Detto questo, non bisogna cercare le cose semplici. Almeno, non per le lingue con le quali lavori regolarmente. Non c'è niente di sbagliato nel bisogno di rinfrescanti e sapere come trovare le informazioni è sicuramente una buona abilità da avere. Tuttavia, la sintassi del core dovrebbe essere sicuramente ben nota. Altrimenti, passi troppo tempo a cercare e troppo poco tempo a programmare.

    
risposta data 03.12.2010 - 07:29
fonte
28

Dipende da cosa intendi, ma la risposta breve è sì.

I programmatori dimenticheranno un punto e virgola o un tutore qua e là? Sicuro. Stanno andando a cercare la sintassi di un'istruzione switch perché probabilmente lo usano raramente? Bene, lo faccio. Lavorerò con ActionScript ma lo scriverò come Java? Decisamente. Ci vuole un po 'di tempo per abituarsi a digitare una nuova lingua, specialmente se hai lavorato con una persona diversa per anni.

La vera preoccupazione dovrebbe essere se un programmatore non può fare la testa o la coda della sintassi anche con un IDE che li aiuta. Se la persona non sa a che cosa serve un punto e virgola, o quali sono quelle parentesi graffe fantasiose, allora hanno più da studiare.

    
risposta data 03.12.2010 - 07:32
fonte
9

Sarei sicuramente sorpreso se un programmatore, per il resto buono, dovesse regolarmente consultare sintassi per una lingua in cui erano fluenti. Naturalmente ci possono essere casi d'angolo che in realtà non vengono usati molto in pratica in modo tale che essere perfettamente accettabile per un buon programmatore di non conoscerli ma, come regola generale, un programmatore fluente non deve cercare la sintassi. Deve cercare funzioni e classi dalle librerie:)

    
risposta data 03.12.2010 - 09:31
fonte
8

Se ti trovi in una posizione in cui stai cambiando le lingue regolarmente o lavori in 3 o 4 lingue contemporaneamente non c'è molto che puoi fare al riguardo. Per un po 'ho finito per lavorare su progetti che richiedevano un passaggio costante e ho iniziato a riferirmi a me stesso come a un "programmatore di riferimento", dovendo cercare cose molto più di quanto avrei preferito.

    
risposta data 03.12.2010 - 10:07
fonte
5

Ho scritto C ++ per > 15 anni, ma ancora non conosco a memoria alcuni dei suoi arcani angoli sintattici.
Come si crea di nuovo un'istanza esplicita di un modello di funzione? E qual è la sintassi per specializzare parzialmente un modello che ha un argomento template template? E non farmi iniziare a dichiarare una funzione che restituisce un puntatore a un array di puntatori a funzioni che portano matrici di puntatori a ...

Sospetto che al massimo ci siano una o due dozzine di persone in questo mondo (se ce ne sono affatto) che conoscono a memoria la sintassi tutto di C ++. E questi probabilmente guadagnano tutti i loro soldi scrivendo i frontend del compilatore C ++.

    
risposta data 03.12.2010 - 12:54
fonte
4

Sono curioso di usare Google "sintassi" qui.

Il mio sospetto (e la mia paura) è che non stiamo parlando di quali parametri prende una chiamata (perché la maggior parte degli IDE ti chiedono di essere lì così non li faresti Google) ma di cose reali come "fare X".

Gli IDE non hanno reso necessario memorizzare nomi e liste di parametri precisi nel modo in cui era necessario e questo ha reso molte persone un po 'pigre, ma va bene.

Ma qualcosa di cui hai bisogno su Google? Per me di solito non è la sintassi, è solo qualcosa che non conosci o di cui solo passivamente hai familiarità.

Ovviamente questo non vuol dire che sia sbagliato avere a Google roba - le lingue oggi possono essere piuttosto ampie e poche persone sanno tutto ma direi che se tu dichiari di essere competente con una lingua allora Google dovrebbe essere l'eccezione piuttosto rispetto alla regola.

Per me, a meno che tu non stia facendo qualcosa di inusuale, o forse sei arrugginito con la lingua dopo un periodo di fare qualcosa di diverso, se pretendi di "conoscere" una lingua, non dovresti usare Google più di 10 al massimo% di roba, e questo dovrebbe essere davvero molto specifico.

In riferimento all'idea che si tratta di avere una buona memoria, non è proprio così. Riguarda il tipo di sensazione istintiva che provi per qualcosa che davvero (piuttosto che superficialmente) sai. Non considero il fatto che io sappia cucinare una parmigiana di Melanzane senza una ricetta un segno che ho una buona memoria, è un segno che io capisco come cucinare quel piatto - sono sottilmente cose diverse.

Inoltre, chiediti questo, ti aspetteresti di andare in una cucina del ristorante e trovare lo chef guardando costantemente un libro di cucina? O vedere il meccanico che lavora sulla tua macchina sfogliando il manuale di Hayes per quel modello? Se vedessi una di queste cose sarei piuttosto a disagio riguardo a quanto fosse brava quella persona.

    
risposta data 03.12.2010 - 15:18
fonte
3

La mia opinione è No. La sua non è sintassi che è importante, ma la tua logica per risolvere un problema o raggiungere un obiettivo Se si suppone di lavorare su più lingue è naturale che a volte non si ricordi la sintassi esatta.

    
risposta data 04.12.2010 - 18:48
fonte
0

La sintassi è solo la vista sulla semantica sottostante della lingua, perché la programmazione consiste nell'usare i semantici sottostanti per costruire qualcosa. Se non capisci i concetti fondamentali che la lingua usa, non importa quanto sei bravo a memorizzare la sintassi, il tuo codice sarà un pasticcio orribile. Come qualcuno ha detto una volta, "I bravi programmatori hanno nella testa un interprete e un compilatore." Nota come non c'è menzione della sintassi perché non è dove avviene il vero lavoro.

    
risposta data 03.12.2010 - 17:43
fonte

Leggi altre domande sui tag