Test attitudinale programmatore [chiuso]


14

Ho molti amici che vedono quello che faccio, lo trovano interessante e mi fanno la domanda

Do you think I could be a programmer?

La mia risposta è

...   ummm  ...  do you like math?

Mi piacerebbe avere una risposta utile, quindi non sapevo se qualcuno fosse a conoscenza di un test attitudinale abbastanza decente per qualcuno che sarebbe partito da un punto di partenza, ma ha capacità di pensiero critico e di risoluzione dei problemi?


Propongo BuzzFizz: dati tre diversi eseguibili, possono eseguirli e identificare quale è "FizzBuzz"?
Macneil,

15
Non mescolare matematica e programmazione. Lavoro come programmatore da anni. Odio la matematica. Un altro esempio: Jeff Atwood è un programmatore eccellente. Odia la matematica (vedi codinghorror.com/blog/2007/01/… , punto 3).
Arseni Mourzenko,

2
@MainMa Non posso sottolineare quanto sia vero. Io sono nella esatto stessa barca. La matematica non è mai stata una mia passione, né un punto di forza, per quella materia. Detto questo, molti di quelli che mi conoscono attesteranno la mia estrema attitudine (leggi: ossessione) per la programmazione. La matematica può essere una parte importante della programmazione, ma l'una non genera necessariamente l'altra.
Nathan Taylor,

1
forse quando dico "ti piace la matematica?", intendo dire " rispetti la matematica?", in realtà faccio schifo alla matematica a mano, motivo per cui mi piace che il computer faccia la matematica per me, ma rispetto e comprendere i principi finiti della matematica che credo mi aiutino nei miei processi di pensiero logico.
jondavidjohn,

2
"apptitude" è davvero un refuso in questo contesto :-)
Ferruccio

Risposte:


12

"Mi piace la matematica" è una brutta prova. Non mi è mai piaciuta la matematica (soprattutto perché il 90% degli insegnanti di matematica al liceo ha fatto schifo).

Quando dici "matematica", molte persone pensano che intendi "risolvere attentamente un'equazione secondo un insieme di regole molto rigorose". La programmazione non è affatto così.

La programmazione è più simile al disegno, in quanto ciò che puoi ottenere è limitato solo da ciò che puoi immaginare.

Ciò che conta è la capacità di immaginare un sistema e vedere come funziona.

  • Pensi a come funzionano le cose?
  • Pensi ai modi per migliorare le cose di tutti i giorni?
  • Riesci a visualizzare come costruire qualcosa con blocchi elementari più semplici?

È più simile alla geometria?
Gulshan,

è una scienza applicata, quindi in realtà non ha una scienza pura "equivalente" di per sé.
jondavidjohn,

1
La programmazione è più simile alla falegnameria, prima visualizzi la soluzione, selezioni i tuoi strumenti, applichi il tuo mestiere con attenzione usando il miglior legno TDD. Gesù sarebbe stato un programmatore se il commodoro 64 fosse stato inventato un po 'prima.
Will

2
In realtà ciò che hai descritto suona molto come la matematica, al contrario di ciò che passa per le scuole di matematica.
uman

1
@Brennan: l'unica matematica che ho trovato simile alla programmazione era la matematica discreta all'università. La maggior parte degli altri studi matematici che abbiamo studiato riguardava l'applicazione senza regole di regole e formule per risolvere una sorta di equazione. Puoi sostenere che non è vero matematica, ma non importa in questa discussione.
hasen

8

Ricordo che da bambino facevo un test di attitudine al cervello ; Ho ancora il certificato conservato da qualche parte ...

Lo schema del test:

Abstract Thinking
    Process Flow
    Spatial Manipulation
Analytical Reasoning
    Inductive Reasoning
    Logic Application
    Word Problems
Attention to Detail
    Following Instructions
    Reading Comprehension
    Rule Interpretation
    Writing Analysis
Mathematical Problem-Solving
    Word Problems
Process Mapping
    General Processes
    Letter Manipulation Processes
    Number Manipulation Processes
    Shape Manipulation Processes

1
È un test molto complicato. Se qualcuno mi avesse detto di fare il test prima di approfondire la programmazione mi sarei spaventato. OK, forse non mi importerebbe, ma chiunque prendesse sul serio il test sarebbe spaventato.
hasen

2
Così? La programmazione può essere un campo complicato (come altri). Se sei spaventato così facilmente, forse non fa per te. Immagina se ti fosse stato chiesto se qualcuno voleva essere un dottore, in cosa dovrebbe essere bravo? Non penso che ti importerebbe che spaventasse alcune persone ... La vita è dura e complessa, dovrebbero abituarsi.
Dan McGrath il

2
Beh, si tratta di un campo complicato, se ci si avvicina a testa alta si avrà esito negativo. Tutti quelli che hanno iniziato a programmare hanno iniziato con cose semplici e hanno creduto che fosse davvero facile. Tale convinzione sarà probabilmente mantenuta per tutta la loro esperienza di apprendimento. Non ti rendi mai conto di quanto sia complicato finché non ti guardi indietro o non guardi qualcuno che lotta con qualcosa che trovi molto semplice.
hasen

Siamo spiacenti, dall'elenco sopra sono competenze essenziali che utilizzerai come programmatore. Penso che tu sia stato spaventato dai loro nomi, piuttosto che dalle domande che sarebbero cadute sotto di loro. Non è come chiederti concetti complessi usati nella programmazione. In altre parole, i test attitudinali non hanno nulla a che fare con quanto capisci i concetti di programmazione che puoi imparare, si tratta di attitudine , quindi il commento su "iniziare con cose semplici" non è molto rilevante qui
Dan McGrath,

7

C'è una possibilità che ce ne sia già una buona là fuori.

Vedi ad esempio la discussione sulla separazione delle pecore da programmazione da capre non programmate :

Tutti gli insegnanti di programmazione scoprono che i loro risultati mostrano una "doppia gobba". È come se ci fossero due popolazioni: quelle che possono [programmare] e quelle che non possono [programmare], ognuna con la propria curva a campana indipendente. Quasi tutte le ricerche sulla programmazione dell'insegnamento e dell'apprendimento si sono concentrate sull'insegnamento: cambiare la lingua, cambiare l'area di applicazione, utilizzare un IDE e lavorare sulla motivazione. Nessuno di questi funziona e la doppia gobba persiste. Abbiamo un test che individua la popolazione che può programmare, prima dell'inizio del corso. Possiamo separare la doppia gobba. Probabilmente non ci crederai, ma dopo aver sentito il discorso lo farai. Non sappiamo esattamente come / perché funzioni, ma abbiamo alcune buone teorie.

Ciò che il test identifica è quanto le persone siano coerenti con l'operatività di una sequenza di istruzioni. Ciò significa che possono costruire modelli (astrazioni) nelle loro menti e lavorare con loro.


2

Penso che un "test" più importante sarebbe quello di mostrare loro un semplice linguaggio / ambiente di programmazione con cui possano giocare. Ad esempio, elaborazione o python . Se riescono a imparare e ad usare un linguaggio del genere, magari risolvendo una o due semplici attività, è probabilmente il miglior "test attitudinale" che potresti chiedere.


2

"Ti piace la matematica?" non è un brutto inizio. La matematica è fondamentale, dopo che ...

È consigliabile vedere se sono in grado di affrontare un problema e iniziare a romperlo in blocchi, solo nel discorso, se possono camminare passo dopo passo attraverso un problema di base è un buon inizio iniziale.

  • Come diresti a un robot come preparare una tazza di tè? Essere il più specifici possibile.
  • Ordinare un pasto al McDonalds, quali passaggi sono coinvolti nella gestione dell'ordine, dall'essere inizialmente detti a dare il resto / cibo.
  • Come funziona il sistema telefonico?

Se riescono a rispondere bene, nella maniera analitica e profonda che un programmatore deve affrontare giorno dopo giorno, probabilmente possono gestirlo.


1

Una volta che sei esposto al codice, o hai la coazione a farlo o no. L'attitudine è solo uno dei fattori per capire se sarai bravo o meno. L'esposizione a buoni esempi, istruzioni, tempi di esecuzione, sforzi sono altri. Volere / aver veramente bisogno di fare qualcosa rende molto più facile trarre vantaggio dagli altri fattori.


1

Una domanda migliore di "Ti piace la matematica" è "Ti piace risolvere enigmi logici"? Si tratta di cose come il Sudoku, ecc. O di capire la risposta a enigmi come "John, Anne, Peter, Mary e Brittany sono vicini. John ha un'auto bianca, la Bretagna vive a sinistra di Anne, blah blah, in quale ordine a loro vivono? "

Perché questo è ciò che la programmazione è: un enorme enigma logico.


1
Mi piace (in qualche modo) la matematica, ma i puzzle sono solo inutili colpire la testa contro i muri. Penso che tu abbia bisogno di motivazione per creare qualcosa di utile, al contrario della ginnastica mentale allo scopo di mostrare quanto sei intelligente.
Omega Centauri

Bene, OK, non è necessario che ti piaccia, sii solo bravo. :-)
Lennart Regebro

1

Penso che una domanda migliore sia "Ti piace costruire cose con i blocchi lego?"


1

Proprio come il Gusteau, un personaggio del film Ratatouille ha detto:

Chiunque può cucinare.

Allo stesso modo, chiunque può programmare. Ma non tutti saranno bravi a farlo. La maggior parte dei lavori di programmazione richiede un livello medio di attitudine e competenza.

Rispondi solo si. Perché? Perché la maggior parte delle persone vuole solo sentirsi apprezzata da qualcuno che pensa sia intelligente.


2
Non sono assolutamente d'accordo sul fatto che chiunque possa programmare. Fa schifo, ma questa è la vita.
uman

0

Penso che apprezzare la matematica sia importante. Non dal punto di vista ti piacciono le cose rigorosamente dimostrative, che sarebbero necessarie per essere un matematico serio. Ma, dato un problema che è importante per te, puoi formulare le questioni relative alla sua risoluzione in modo matematico. Sostengo che tutto ciò che un computer fa è matematica, prende dati simbolici di qualche tipo ed esegue una sorta di operazione su di esso. Questa è l'essenza della matematica. Quindi devi essere in grado di astrarre le cose in una sorta di struttura matematica simile e ragionare sui passi avanti. In mancanza di ciò, stai solo hackerando, lanciando un po 'di codice e sperando che faccia quello che vuoi. Essere in grado di risolvere algebra complicata senza fare errori di battitura e perdersi, probabilmente non è così necessario. Ma essere in grado di formulare un piano, è importante. Scrivo spesso programmi a dieci righe per verificare che la mia matematica non troppo complicata sia stata eseguita bene. Combinare i computer con la matematica, ai fini della verifica, della scoperta e sì per elaborare i dettagli, quando ce ne sono molti, è la vera chiave.

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.