Test di idoneità del 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 sapeva di un test attitudinale abbastanza decente per qualcuno che sarebbe partito dal punto di partenza, ma ha capacità di pensiero critico e di problem solving?

    
posta jondavidjohn 31.12.2010 - 03:46
fonte

10 risposte

12

"Mi piace la matematica" è un cattivo test. Non mi è mai piaciuta la matematica (soprattutto perché il 90% degli insegnanti di matematica della scuola superiore risucchiati).

Quando dici "matematica", la maggior parte delle persone pensa che tu intenda "risolvere attentamente un'equazione secondo un insieme molto rigido di regole". La programmazione non è affatto così.

La programmazione è più simile al disegno, in quanto ciò che è possibile ottenere è limitato solo da ciò che si può 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?
  • Puoi visualizzare come costruire qualcosa con elementi di costruzione più semplici?
risposta data 31.12.2010 - 04:30
fonte
8

Ricordo di quando ero un ragazzino che faceva un Test Aptitude di Brainbench ; Ho ancora il certificato archiviato da qualche parte ...

Il profilo 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
    
risposta data 31.12.2010 - 04:02
fonte
7

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

Vedi ad esempio la discussione su Separazione delle pecore di programmazione da capre non di programmazione :

All teachers of programming find that their results display a 'double hump'. It is as if there are two populations: those who can [program], and those who cannot [program], each with its own independent bell curve. Almost all research into programming teaching and learning have concentrated on teaching: change the language, change the application area, use an IDE and work on motivation. None of it works, and the double hump persists. We have a test which picks out the population that can program, before the course begins. We can pick apart the double hump. You probably don't believe this, but you will after you hear the talk. We don't know exactly how/why it works, but we have some good theories.

Ciò che identifica il test è come le persone coerenti stanno operazionalizzando una sequenza di istruzioni. Ciò significa che possono costruire modelli (astrazioni) nelle loro menti e lavorare con loro.

    
risposta data 31.12.2010 - 04:13
fonte
2

Penso che un "test" più importante sarebbe mostrare loro un linguaggio / ambiente di programmazione semplice con cui possono giocare. Ad esempio, elaborazione o python . Se possono imparare e divertirsi usando un tale linguaggio - magari mentre risolvono un semplice compito o due - allora questo è probabilmente il miglior "test attitudinale" che potresti chiedere.

    
risposta data 31.12.2010 - 04:01
fonte
2

"Ti piace la matematica?" non è una brutta partenza. La matematica è fondamentale, dopo che ...

È consigliabile vedere se possono risolvere un problema e iniziare a romperlo in blocchi, solo in parole, se possono seguire passo dopo passo un problema di base è un buon inizio iniziale.

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

Se riescono a rispondere bene, nel modo analitico e profondo che un programmatore deve affrontare giorno per giorno, probabilmente possono gestirlo.

    
risposta data 31.12.2010 - 04:03
fonte
1

Una volta che sei esposto alla codifica, o hai l'obbligo di farlo o non lo fai. L'attitudine è solo un fattore sul fatto che tu sia o meno bravo a farlo. L'esposizione a buoni esempi, istruzioni, tempo sul compito, sforzo sono altri. Volere / dover realmente fare qualcosa rende molto più facile sfruttare gli altri fattori.

    
risposta data 31.12.2010 - 04:00
fonte
1

Una domanda migliore di "Ti piace la matematica" è "Ti piace risolvere i puzzle logici"? Questo è cose come il Sudoku, ecc., O capire la risposta ad enigmi come "John, Anne, Peter, Mary e Brittany sono vicini." John ha una macchina bianca, Brittany vive alla sinistra di Anne, bla bla, in quale ordine vivono? "

Perché è questo che è la programmazione: un enorme puzzle logico.

    
risposta data 31.12.2010 - 08:59
fonte
1

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

    
risposta data 31.12.2010 - 10:41
fonte
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 fantastici. La maggior parte dei lavori di programmazione richiede un livello medio di attitudine e competenza.

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

    
risposta data 01.01.2011 - 01:58
fonte
0

Penso che la matematica gradita sia importante. Non dal punto di vista del godimento rigoroso delle prove, che sarebbe richiesto essere un matematico serio. Ma, dato un problema che è importante per te, puoi formulare le questioni implicate nel risolverlo in modo matematico. Io sostengo che tutto ciò che un computer fa è matematico, prende dei 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, e la ragione dei passi in avanti. In mancanza di questo, stai solo hackerando, buttando fuori del codice e sperando che faccia ciò che vuoi. Essere in grado di risolvere un'algebra complicata senza fare refusi e perdersi, probabilmente non è così necessario. Ma essere in grado di formulare un piano è importante. Scrivo spesso dieci programmi di linea per verificare che la mia matematica non troppo complicata sia stata fatta bene. Combinare i computer con la matematica, per scopi di verifica, scoperta e sì per elaborare i dettagli, quando ce ne sono molti, è la vera chiave.

    
risposta data 01.01.2011 - 04:47
fonte

Leggi altre domande sui tag