2018-01-05 11:03:37 +0000 2018-01-05 11:03:37 +0000
35
35

Come posso convincere mio fratello a dedicarsi alla programmazione?

So che questa sezione di StackExchange non è legata alla programmazione, ma questa è la parte di SE più vicina a cui ho pensato di postare questo.

Comunque, riguardo all'argomento…

Ho un fratellino (19 anni, io ne ho 23). Entrambi siamo interessati alla tecnologia (più io che mio fratello, ma il punto è sempre lo stesso).

Io sono un programmatore (mio fratello non lo è). La maggior parte delle volte, sto lavorando a un mio progetto o sto imparando un nuovo linguaggio.

Nel corso degli ultimi 7-8 mesi, mio fratello è venuto da me diverse volte con un'idea su un gioco (con aspetti che un titolo di videogioco AA o AAA avrebbe) e propone di provare a realizzare il gioco.

Qui è dove mi imbatto ogni volta in un problema.

Cerco di spiegargli che dobbiamo sederci e lasciarmi mostrare almeno le basi del linguaggio.

Non ho problemi a sottrarre tempo al mio lavoro per insegnargli, ma ogni volta che tento di insegnargli un paio di cose dice che non vuole più farlo e si allontana dal suo computer.

Ieri sera è venuto da me e ha detto che voleva iniziare a imparare a programmare, così mi siedo con lui e inizio a spiegargli un paio di cose. Dopo neanche 10 minuti dice che ha finito e se ne va come al solito.

Non credo che se dovessimo saltare direttamente in uno di questi giochi complessi di cui ha un'idea, sarebbe in grado di tenere il passo con il progetto che cresce così rapidamente, visto che è solo un principiante.

Come posso spiegare a mio fratello che se dobbiamo fare questi giochi per i quali lui ha delle idee, ho bisogno che almeno impari il linguaggio abbastanza da capire cosa sta succedendo?

Risposte (12)

54
54
54
2018-01-05 11:56:09 +0000

Il mio istinto mi dice che tuo fratello potrebbe non interessarsi mai alla programmazione. Potrebbe sembrare interessato, ma credo che sia ancora un mezzo per un fine per lui in questa fase (voglio fare un gioco, e la programmazione mi ci porterà).

Introducetelo agli altri ambiti della progettazione di giochi, come la grafica o il design del suono e verificate se questi aspetti suscitano il suo interesse.

Una volta che avrete fatto l'introduzione ai framework di game design come Unity, si renderà presto conto che un po’ di conoscenza della programmazione farà molta strada in un team indie come il vostro.

Se poi si interessa alla programmazione dal punto di vista di un creatore (il viaggio, non la destinazione), indirizzatelo alle risorse online come YouTube ecc. e offritevi di essere il mentore che questo giovane viaggiatore merita.

43
43
43
2018-01-05 17:43:11 +0000

Ci sono alcuni punti che vale la pena discutere. Parlerò della mia esperienza personale, forse puoi mostrargli questo e sarà di aiuto per sapere com'è in realtà essere un indie dev.

Mi sono laureato in Games Design. Pessima decisione. Ha toccato le basi, ma alla fine non ero ancora in grado di fare un gioco. Qualche anno dopo ho deciso di imparare ad usare Game Maker Studio. Non sapevo nulla di programmazione. Alla fine del progetto sapevo qualcosa, e avevo portato un gioco dal concetto al completamento. Ero compiaciuto. Non ha venduto quasi nulla. Ero triste.

Più tardi riacquistai un po’ di fiducia, e decisi di fare un corso di conversione post-laurea per persone che volevano imparare la programmazione. Avevo fatto un gioco, quanto poteva essere difficile? Alla fine… abbastanza difficile. Roba come il multithreading però è fortunatamente qualcosa che non ho mai dovuto usare al di fuori di una classe.

Così mi sono laureato, ho trovato un lavoro di programmazione per una società informatica, e sono stato in quel lavoro per due anni. In questo periodo ho anche passato la maggior parte del mio tempo libero dopo il lavoro e nei fine settimana a fare sviluppo di giochi. I progressi sono lenti.

Per qualcuno che vuole fare il proprio gioco, da solo o in un piccolo team, devi essere la persona che può realizzare le proprie idee. I piccoli team non possono permettersi un game designer dedicato che scrive documenti di design tutto il giorno. Poiché la maggior parte delle persone non può permettersi di assumere un team di programmatori, devono essere programmatori per poter essere designer. Arriverei a dire che è preferibile che tu sappia programmare a prescindere. Il punto cruciale è che se vuoi fare il tuo gioco, e non il gioco di qualcun altro, allora devi essere in grado di farlo da solo.

Fare un gioco è difficile. Molto difficile. Se volete fare giochi, dovete essere disposti a tornare a casa stanchi dalle 9 alle 5 e costringervi a scrivere del codice per un problema terribile per il quale nessuno che conoscete può aiutarvi. Stai lottando da settimane, e ti viene da piangere, perché come verrà mai risolto? Sentirsi a volte come se non sapessi se questo finirà mai, e chiedersi se stai sprecando la tua vita. Avere un autentico dubbio su se stessi, e tuttavia concludere: No. Questa è la decisione giusta. Avere quella dannata determinazione.

Attenzione allo spoiler: l'ho aggiustato. Quindi tuo fratello deve capirlo. Forse può essere lui il tuo reparto artistico, invece? Non c'è niente di male in questo, ma non sarà meno lavoro per imparare e fare quello che ti serve. Qualsiasi cosa faccia, deve essere impegnato quanto te. Sei un ragazzo di idee? Sì, vai dietro al ragazzo delle idee che sa fare arte, o al ragazzo delle idee che sa codificare.

Con quel discorso di incoraggiamento concluso, dagli qualcosa come Unity o Game Maker. Ditegli di pensare a fare un gioco molto semplice. Un passo alla volta. C'è un sacco di materiale didattico online per questi due motori (e altri), e qualcosa come TutorialsPoint lo aiuterà a introdurre le basi della programmazione.

Nel mio caso, dopo aver lottato con GML e Game Maker Studio, ho letto le prime cento pagine di Programming: Principles and Practice Using C++ di Bjarne Stroustrup, che è stato sufficiente per iniziare con Unity e C#. Insegnargli a lavorare da solo e a risolvere i problemi da solo con l'aiuto di Google e StackOverflow è metà della battaglia.

Mostragli come usare un IDE come VisualStudio, e il debugger, e tienigli la mano attraverso i tutorial di base di C# (per esempio). Sii paziente. Variabili, funzioni, array, classi, ecc. Noi programmatori dimentichiamo quanto sia spaventoso iniziare. Non posso sopravvalutare quanto sia importante per voi aiutarlo in questi piccoli passi. Siate pazienti. Non tutti sono pazzi come me ad andare da soli. Ma se lo sostenete nelle basi, e lo mettete in grado di fare semplici operazioni di debug e di creare semplici classi, comincerà a pensare alla creazione di giochi in termini di programmazione. Allora lo capirà.

Non puoi convincerlo a programmare. Ha solo bisogno di decidere se vuole davvero fare giochi. Allora capirà che deve diventare un programmatore.

28
28
28
2018-01-05 13:14:00 +0000

TL;DR

Non puoi convincere tuo fratello a dedicarsi alla programmazione. Programmare è difficile, noioso e richiede un certo tipo di cervello per trovare qualsiasi tipo di soddisfazione nella programmazione.


Penso che tu stia fraintendendo la dinamica della relazione proposta dalla situazione.

Tuo fratello non sta dicendo “Ehi, io personalmente voglio costruire un gioco da zero”. Sta dicendo “Ehi, penso che possiamo fare un po’ di soldi se tu programmi le mie idee”. Questa è una proposta d'affari.

Lui gioca ai giochi con completa ignoranza dell'aspetto della programmazione, quindi essenzialmente sa cosa vuole l'utente medio. La sua visione potrebbe essere offuscata perché è tecnicamente nella “trincea” dello sviluppo dei giochi.

So che questo suona come se fosse egoista e scortese ma non lo è; questo è esattamente il modo in cui opera un'azienda. Quando il proprietario di una società vuole un sito web, allora è molto probabile che qualcun altro lo stia costruendo per loro.

Sono abbastanza sicuro che voi ragazzi non siete nella posizione di avviare una società che possa produrre titoli AAA ma se siete disposti a combinare le vostre abilità con le sue idee allora qualcosa di grande potrebbe accadere.

12
12
12
2018-01-05 23:34:02 +0000

Sono un programmatore che lavora nell'industria dei giochi, quindi ho molta esperienza con persone che cercano di farmi realizzare le loro idee di gioco. In un'industria in cui praticamente tutti hanno più idee di quante ne possano mai trasformare in realtà, le idee sono assolutamente inutili a meno che tu non abbia le competenze per contribuire a farle diventare realtà.

Tuttavia, l'abilità che contribuisce non deve essere necessariamente la programmazione. Se tuo fratello ha o è disposto a sviluppare abilità artistiche potrebbe fornire le risorse artistiche per il gioco. Trovo spesso che mi impantano cercando di produrre un'arte anche lontanamente passabile per i miei progetti secondari. Quindi avere un partner artistico può essere super utile.

Fondamentalmente, se qualcuno non si preoccupa abbastanza della sua idea da imparare un'abilità per aiutarlo a realizzarla, allora neanche tu dovresti preoccuparti della sua idea.

9
9
9
2018-01-05 13:40:15 +0000

Sto vivendo la stessa identica cosa con il mio coinquilino. Io sono un programmatore e lui no. Non vuole mai imparare nulla sullo sviluppo dei giochi, ma vuole sempre creare un gioco:

Tuo fratello non è interessato a imparare lo sviluppo dei giochi, ma è solo affascinato dal concetto di creare un nuovo gioco.

Offrigli alcuni video di Youtube che può seguire e renditi disponibile se ha qualche domanda. La tua migliore possibilità di farlo interessare sarebbe quella di trovare un video in cui un gioco di base viene sviluppato mentre lui lo guarda, nella tua lingua preferita. Imposterei anche l'ambiente sul suo computer in modo che possa seguirlo.

Se è veramente interessato allo sviluppo dei giochi, allora decollerà da lì. Molto probabilmente, però, vuole semplicemente ‘saltare le parti noiose’ e avere già il prodotto finale. Nessuna quantità di persuasione lo cambierà.

3
3
3
2018-01-08 12:58:50 +0000

Come posso convincere mio fratello a dedicarsi alla programmazione?

Non lo fai.

Per come la vedo io ci sono idee sbagliate da entrambe le parti qui.

I problemi con te:

Sembra che tu sia caduto nell'equivoco comune che giocare ai giochi o avere idee per i giochi ti renda in qualche modo incline ad essere un programmatore o a lavorare con la tecnologia in generale. Tuttavia questo non è affatto il caso.

Collegare l'HDMI al monitor e al PC per tua madre non significa che ora sei un supporto tecnico. Allo stesso modo, descrivere semplicemente un programma che vuoi non fa di te un programmatore o un designer, c'è molto di più di quello che un profano potrebbe considerare - come programmatore tu stesso sai che questo è vero.

Per questo dovresti smettere di avere queste aspettative su tuo fratello.

I problemi con tuo fratello:

Disclaimer: Quello che sto per dire può sembrarti meschino o offensivo, ma questo è quello che ho capito dalla tua descrizione di lui.

Tuo fratello è una sanguisuga. Ha grandi aspettative sul prodotto e si aspetta molto da te mentre allo stesso tempo pretende molto per sé ma non contribuisce molto. Tutti possono lanciare idee su ciò che gli piace in un gioco senza alcun contesto. Ma ha fatto qualcosa per provare che questo è effettivamente fattibile o addirittura divertente? Qualche buon concetto, test, confronto, …?

Non farlo.

Non sa cosa vuole. Hai iniziato più volte ad introdurlo alla programmazione ma ha abortito dopo un tempo incredibilmente breve. E ora vuole farvi credere che avrà la pazienza e la resistenza di sedersi e imparare da un pezzo di codice più grande che avete scritto? Che scherzo!

Non farlo.

È troppo sicuro di sé. Questo sembra applicarsi anche a te. Non ha assolutamente idea di quanto lavoro sarà questo progetto e o sopravvaluta le sue capacità o sottovaluta il lavoro - o entrambi. Voi ragazzi sembrate incapaci di capire la quantità e il tipo di lavoro che deve essere fatto.

Non fatelo.

** È un aspirante sviluppatore di giochi.** Questo non è raro su internet e non è davvero una sorpresa se si considera la combinazione di ragazzi/adolescenti inesperti con un complesso di superiorità e l'anonimato. Tutti pensano di sapere cosa manca al gioco e come potrebbe essere migliore. Ma quante persone hanno effettivamente esperienza in merito? Quante di queste persone possono fare o hanno esperienza nel fare artwork, animazione, matematica, grafica, programmazione, voce, musica, narrazione, scrittura dei personaggi, level design, gameplay design, … Su quali di questi punti tuo fratello può assisterti con un valido contributo? Da quello che ci hai detto sembra nessuno.

Non farlo.


In conclusione

Questo non è qualcuno con cui vuoi iniziare un progetto. Se iniziate con le condizioni come sono ora, farete tutto voi, con poco o nessun contributo da parte sua. Ve ne accorgerete dopo appena un paio di settimane (anche giorni o con lui in pochi minuti) e il progetto si fermerà.

Cosa puoi fare

In realtà metti giù un concetto scritto di cosa ti aspetti dal gioco e cosa pensi debba essere fatto per raggiungerlo. Ci sono molte cose a cui dovreste prestare attenzione qui, ma dato che questo è InterpersonalSE non mi addentrerò in questo argomento. Tuttavia il lavoro di squadra è certamente interpersonale quindi vi raccomando di scrivere chi può/potrebbe/dovrebbe fare cosa.

La programmazione non è qualcosa che puoi semplicemente convincere qualcuno a imparare. Puoi imparare le basi velocemente ma se vuoi essere bravo devi metterci molto tempo per fare esperienza.

Deve volere il prodotto abbastanza da mettersi a lavorare da solo e quindi imparare a programmare.

1
1
1
2018-01-05 14:17:55 +0000

Cosa trova interessante tuo fratello (oltre ai videogiochi)? Forse c'è un gancio diverso che puoi trovare. Processing (un linguaggio popolare tra gli artisti visivi tecnicamente esperti) e il più ampio make movement di cui fa parte potrebbe far scattare l'interesse. Parlando di scintille – The SparkFun Guide to Processing è un buon posto per iniziare. Forse la A in STEAM è l'ingrediente mancante.

Ma – forse no. In definitiva non puoi forzare tuo fratello ad essere interessato a qualcosa. Esponilo a un paio di possibilità. Se una scatena un interesse genuino - grande. Se no, ad un certo punto dovresti semplicemente abbandonare l'idea.

1
1
1
2018-01-05 20:38:09 +0000

La mia esperienza è simile a quella di molti altri post, ma penso che sia importante sottolineare quanto possa essere difficile per noi, come programmatori, vedere quanto il linguaggio sia confuso per qualcun altro che potrebbe essere nuovo.

Una cosa che mi è rimasta impressa nel tuo esempio, in particolare, è stato lo spostamento di P sullo schermo. Mentre a noi sembra un esempio banale, un non programmatore non avrà alcuna base di comprensione nemmeno per gli elementi più semplici di quell'esercizio, e tuo fratello potrebbe sentirsi frustrato nel cercare di capire come le coordinate si riferiscono all'immagine sullo schermo.

Nella mia esperienza personale ho “imparato” per la prima volta la programmazione al liceo, e sono andato bene, finché non mi è stato dato un compito impossibile (mi è stato dato il lavoro senza i file letterali per seguire le istruzioni). Mi sentivo come se avessi fallito, ho rinunciato e ho invece perseguito una laurea in inglese.

Anni dopo ho usato VBA per automatizzare un compito di lavoro noioso in Excel, poi il compito successivo, e il successivo, e così via. È qui che mi ricollego a tuo fratello: se qualcuno mi avesse detto ‘Impara a programmare per automatizzare l'analisi dei dati’. Mi sarei annoiato entro i primi dieci minuti, e probabilmente non avrei ancora programmato. Invece, ho trovato il mio valore nel compito, sollevandomi da un lavoro noioso, e incrementando le mie capacità perché la ricompensa di farlo era il rinforzo.

In qualche modo, potreste dare a vostro fratello un semplice file, e lasciarlo manipolare e giocare con esso. Potrebbe decidere che la ‘P’ in movimento è troppo noiosa da manipolare, o potrebbe invece chiedersi come cambiare la ‘P’ in ‘O’, ‘O’ in ‘MOVING’, potrebbe scoprire come farla rimbalzare sulle pareti, o cambiare forma. In definitiva, deve essere interessato a testare il codice, e a scoprire come funziona il processo, altrimenti non ne assorbirà nulla.

Ho avuto la fortuna di avere alcuni grandi programmatori che mi hanno insegnato ciò che sapevano per aiutarmi a raggiungere altezze maggiori, ma in ogni caso ho dovuto prima vedere veramente il valore del codice prima di usarlo. È facile sapere che l'astrazione è buona, o che le interfacce sono utili, ma un'altra cosa è dover affrontare quel problema che non può essere facilmente risolto senza un'interfaccia, o lottare con un groviglio di codice che si frantuma se i cambia in i + 1 e cambiando quel codice in j lo risolvi, ma hai dimenticato di risolverlo anche qui, e bene ora siamo su k perché non riesci a ricordare se i era giusto, o se era davvero j.

Alla fine, deve essere appassionato del lavoro, prima che diventi un hobby, altrimenti è solo un altro lavoro.

1
1
1
2018-01-07 20:31:59 +0000

Questa risposta è da un punto di vista strettamente “interpersonale”…

Ho avuto una situazione molto simile con mio fratello intorno a quell'età e almeno per noi il problema si è rivelato non avere nulla a che fare con la programmazione e tutto a che fare con le relazioni interpersonali.

I fratelli hanno questa tendenza a volersi differenziare l'uno dall'altro. Almeno nel nostro caso, mio fratello aveva una resistenza alla programmazione perché è quello che facevo io. Non avrei mai potuto insegnargli o convincerlo (ci ho provato) perché veniva da me - ero io l'esperto anche se potevo assolutamente vedere che lui aveva il potenziale per essere almeno altrettanto bravo.

Dopo che se ne andò di casa passò attraverso alcuni lavori non tecnici prima di arrivare alla programmazione per conto suo da una direzione completamente diversa.

È diventato un fantastico programmatore/manager/leader/architetto per un'azienda di medie dimensioni e lo è stato per un paio di decenni. Non credo che avrei potuto guidarlo o spingerlo a farlo, anche se… ci ho provato. Non sarebbe stato istruito da me, avrebbe resistito (inconsciamente).

Quindi, se lo guardo da questo punto di vista, cosa farei nel tuo caso?

Data la tua descrizione, probabilmente gli farei scaricare il framework Unity (come suggerisce la risposta accettata). Ho provato questo ultimamente perché un'ENORME percentuale di giochi sta iniziando ad essere rilasciata usando Unity. Il fatto è che, una volta che l'ho scaricato, hanno iniziato a tormentarmi con e-mail cercando di invogliarmi a correre attraverso i loro tutorial (e hanno un sacco di tutorial/aiuto per i principianti). Sono molto bravi a tenere la mano ed è abbastanza facile portare su un gioco che sembra abbastanza non banale.

Inoltre–non scaricate/imparate/usate da soli. Lasciate che diventi l'esperto di qualcosa. Anche se non sai rispondere a una domanda, è fantastico! Lascia che ci pensi da solo - puoi sempre sederti con lui e cercare insieme una risposta su SO.

Non sono sicuro che questo funzionerà, ma penso che avrebbe funzionato per me e mio fratello.

1
1
1
2018-01-06 00:44:42 +0000

In questo momento tuo fratello non sembra capace di lavorare in modo concentrato per soli dieci minuti. Se non può farlo, allora lo sviluppo di software non fa per lui. Quindi non cercare di convincerlo a intraprendere questa professione, non aiuterà nessuno.

Il tuo fratellino ha delle idee. È stato detto altrove che le idee valgono dieci centesimi. Quindi, per creare qualcosa di valore, deve avere più di una semplice idea. Chiedigli di iniziare effettivamente la progettazione di un gioco. Non solo un'idea. Fategli scrivere come inizia il gioco. Quali cose può fare l'utente, quali effetti hanno le azioni dell'utente, quali azioni sono prodotte dal gioco. Tutto deve essere progettato in dettaglio. Qualunque cosa renda grande il gioco deve essere nel suo design, non può affidarsi ai programmatori per rendere il gioco coinvolgente. Il game designer deve fare questo.

Oppure chiedigli di scoprire cosa serve per vendere un gioco. Dall'avvio di una società, la compilazione delle tasse, il pagamento degli sviluppatori per creare il gioco, la ricerca di editori, e così via.

1
1
1
2018-01-05 23:04:37 +0000

Ognuno ha modi diversi di imparare qualcosa, a seconda di cosa c'è da imparare. Io non imparerei nulla sulla programmazione guardando video; invece lo imparo facendolo. Qualcun altro potrebbe imparare dai video o dai libri.

Comunque la programmazione non è qualcosa che si può insegnare. Richiede esperienza che si ottiene solo facendola. Si può, in una certa misura, aiutare qualcuno a sapere di cosa si tratta, e fin dall'inizio, quel qualcuno ha bisogno di capire da solo, come imparare a leggere. Da lì, l'allievo ha bisogno di esplorarlo da solo.

Non si può insegnare a qualcuno ad andare in bicicletta. Anche quando si insegna tutta la fisica coinvolta, lo studente non sarà in grado di guidarla perché richiede esperienza, che può ottenere solo facendola. È così che non si può insegnare la programmazione.

La programmazione è un'abilità, come leggere o andare in bicicletta. Ci sono cose che bisogna sapere per farlo, e solo quelle possono essere insegnate. L'abilità in sé non può essere insegnata, può essere sviluppata solo da chi impara — e chi impara lo farà solo se lo vuole.

Potresti essere in grado di dire a tuo fratello cosa comporta la creazione di un gioco, e forse troverà qualcosa tra queste cose che vuole imparare. In caso contrario, non sarà in grado di fare un gioco e ha deciso di rendersi impotente.

Programmare non è affatto difficile o frustrante, soprattutto al giorno d'oggi con tutti i grandi strumenti disponibili e la macchina non si blocca più quando il programma non funziona, come una volta, ed è divertente.

Forse a chiunque stia imparando conviene usare un computer di 35 anni e qualche libro di programmazione adatto, e non di più. Questo lo mantiene concentrato, e non può giocare prima di aver inserito lui stesso il programma, il che dà un certo incentivo. L'apprendimento poi arriva da solo, semplicemente inserendolo, perché può vedere come è fatto e inevitabilmente inizia a pensare di cambiarlo, e poi a farlo.

Date a qualcuno una specie di software per lo sviluppo di giochi, o un compilatore C/C++ completo e borbottate qualcosa su classi e metodi, e il vostro allievo sarà totalmente sopraffatto. Dategli qualcosa di semplice e diretto scritto in una semplice variante BASIC — se riuscite ancora a trovarne una — o, in alternativa, in perl, stampatelo e fateglielo inserire da solo, e potrebbe semplicemente imparare.

Credo che uno studente abbia bisogno di capire il problema che deve risolvere con la programmazione prima di iniziare a programmare. Il passo successivo potrebbe essere quello di mostrargli come dividere il problema in modo che un computer possa affrontarlo; poi mostrare e spiegare l'implementazione effettiva. È necessario iniziare con il problema più semplice che si possa pensare, non con uno dei più difficili come fare un gioco.

-2
-2
-2
2018-01-05 17:28:35 +0000

Mostragli quanti soldi può guadagnare. https://www.upwork.com/o/profiles/browse/c/web-mobile-software-dev/nss/90/hrs/1000/?rate=60&user\pref=1

E

Tuttavia, programmare è duro e non tutti possono farlo. Ecco perché i programmatori guadagnano così tanto. Mia madre prese un Commodore-64 per imparare la dattilografia e comprò un libro BASIC, e fui io a finire il libro. Se fosse stato destinato a fare il programmatore, lo avrebbe già fatto. Da questo grafico, si può vedere che l'età media in cui i programmatori hanno iniziato è di 13,5 anni. Pochissimi hanno più di 20 anni.

0x4 Fonte

Ho un fratello giocatore che è allo stesso modo - nessuna motivazione, nessuna ambizione, nessuna perseveranza. Forse trova un'altra abilità correlata a cui potrebbe interessarsi. Se insisti a continuare a provare, forse inizia con Scratch, che è stato sviluppato per aiutare i bambini a imparare la programmazione con un'interfaccia drag & drop. https://scratch.mit.edu/