Perché è sempre "quale lingua dovrei imparare in seguito" invece di "quale progetto dovrei affrontare successivamente"? [chiuso]

14

Perché i programmatori principianti (come me) chiedono sempre la lingua che dovrebbero imparare, invece di chiedere del prossimo progetto da affrontare?

Perché Eric Raymond, nella sezione " Scopri come programmare " del suo saggio " Come diventare un hacker ", parla dell'ordine in cui devi imparare le lingue (rispetto all'ordine in cui dovresti affrontare i progetti).

I carpentieri principianti chiedono "So come usare un martello ... dovrei imparare come usare una sega o un livello successivo?"

Chiedo perché trovo che quasi ogni progetto significativo che mi interessa affrontare (ad esempio un'app Web, una serie di strumenti di analisi del poker) richiede che impari quanto basta di un < strong> moltitudine di lingue (Python, C, HTML, CSS, Javascript, SQL) e framework / librerie (wxPython, tkinter, Django) per implementarle.

Grazie,

Mike

    
posta MikeRand 09.02.2011 - 21:55
fonte

6 risposte

6

Penso che quando molte persone decidono di imparare una lingua, lo fanno perché vogliono affrontare un progetto scritto in quella lingua, ora o in futuro. Per fare ciò, devono imparare quella lingua, che richiede tempo. I linguaggi di programmazione sono come strumenti, ma mentre puoi imparare a usare un martello in circa sessanta secondi, le lingue impiegano un po 'più di tempo per imparare a usare; quindi molte persone si concentrano sull'apprendimento di una lingua prima di concentrarsi sul lavoro su un progetto scritto in quella lingua.

In un'altra nota, penso che quando la maggior parte delle persone chiede quale lingua imparare, in realtà sta a pensare a quale progetto apprendere successivamente, ma si concentrano innanzitutto sull'apprendimento della lingua.

Infine, l'apprendimento delle lingue può essere divertente , anche se non hai in mente un progetto o un obiettivo specifico.

    
risposta data 09.02.2011 - 22:07
fonte
6
  • Il motivo di molti sviluppatori a tempo pieno è di essere più occupabili.

  • Essere più occupabili di solito significa superare l'ostacolo dell'health screener dell'HR (e in seguito superare l'ostacolo dell'intervista reale).

  • Il tipico screener per le risorse umane di solito ha una lista di controllo delle lingue che può abbinare a un curriculum, ma non ha modo di valutare abilità o progetti.

  • Il successo in un'intervista dipende di solito più dalla fortuna e dalle competenze minime in una lingua che dall'esperienza e dalla comprensione profonda di una lingua.

Quindi, essere mediocri in molte lingue è meglio per l'occupabilità che essere un esperto in pochi, a meno che uno non stia facendo domanda per posizioni senior.

    
risposta data 09.02.2011 - 22:16
fonte
2

Le analoghe scelte di programmazione per il falegname sarebbero "Quale applicazione dovrei costruire successivamente?" o "Quale sistema dovrei costruire successivamente?" che sono piuttosto validi e separati da un progetto che può essere applicato quasi universalmente. Potrei avere un progetto per cambiare la mia dieta o perdere 20 libbre con la stessa facilità con cui potrei avere qualcosa che richiede un nuovo software da scrivere per legare insieme le cose.

Per rispondere alla domanda, credo che l'idea sia che una lingua rappresenta uno strumento nella cassetta degli attrezzi di quella persona che può essere utile su un curriculum. Alcune persone potrebbero scegliere di diventare programmatori per pagare le bollette e, in tal caso, potrebbero chiedere quale strumento successivo dovrebbero aggiungere quale sarebbe spesso una lingua, ma ci sono altre possibilità come imparare a implementare, controllare il codice sorgente, test e metodologie di sviluppo per nominare alcune altre aree. Se un falegname dovesse rivelare quali strumenti avesse allora potrebbe avere una prospettiva simile, direi. Tuttavia, vi è un insieme generale di strumenti che si presume che la maggior parte dei carpentieri abbia o abbia accesso per ottenere se richiesto abbastanza rapidamente. Hai mai visto quanti diversi tipi di seghe e martelli ci sono là fuori per le persone da usare?

    
risposta data 09.02.2011 - 22:16
fonte
1

Forse riguarda in parte la mentalità degli hacker, almeno per alcuni dei programmatori. Hacker è definito nel file di gergo come

"A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. "

Quindi, per un'anima hacker, si tratta più di imparare e "armeggiare" con il processo, i concetti, gli strumenti e sì, i linguaggi della creazione di qualcosa, rispetto al prodotto finale stesso. Ulteriori informazioni sul processo stesso.

È un impegno costante per la prossima nuova cosa e / o sfida. Il progetto finito perde quel fascino veloce. A volte (la maggior parte del tempo?) Le più grandi sfide creative o tecniche vengono conquistate prima del completamento del progetto. Molti progetti vengono abbandonati, quando una mente affamata di nuove sfide mentali va avanti.

Soprattutto gli hacker sono interessati a nuovi punti di vista, concetti, astrazioni e modi di pensare, tipo di hacking mentale:

"A language that doesn't affect the way you think about programming, is not worth knowing." -- Alan Perlis

    
risposta data 09.02.2011 - 22:25
fonte
0

Oggi ci sono una varietà di linguaggi crappy in uso comune: C, C ++, C #, Java, JavaScript, Python, Perl, Ruby, Visual Basic, ecc. I programmatori compensano il risucchio di queste lingue imparando e mescolando molti di loro insieme.

C'è una piccola comunità conosciuta come la comunità Lisp che è libera dalla follia che pervade l'informatica moderna.

Poiché Lisp è un linguaggio di programmazione programmabile, puoi esprimere tutte le tue idee in esso senza dover mai allontanarti da altri linguaggi o altri formati di dati come XML. Il Lisp può essere applicato ovunque, anche a livello di hardware, come abbiamo visto con le macchine Lisp .

    
risposta data 10.02.2011 - 12:40
fonte
0

Perché imparare un nuovo linguaggio di programmazione è un investimento enorme, e a nessuno piace fare un cattivo investimento.
Imparare un nuovo linguaggio di programmazione non consiste nel memorizzare come scrivere costrutti di loop, dichiarare classi, importare un altro modulo ...
Devi sapere come scrivere un codice idiomatico in quella lingua e questo processo richiede davvero molto tempo e dedizione.
Il tempo è una risorsa limitata, lo sforzo è una risorsa limitata ma la distrazione, lo stress quotidiano, le fatture e le partite di domenica sono sempre lì e devono convivere.
I programmatori vogliono investire saggiamente.

    
risposta data 23.04.2011 - 04:09
fonte

Leggi altre domande sui tag