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

Como posso convencer o meu irmão a assumir a programação?

Sei que esta secção do StackExchange não está relacionada com programação, mas esta é a parte mais próxima do SE em que eu poderia pensar em publicar isto.

De qualquer modo, sobre o tópico…

Eu tenho um irmãozinho (19, tenho 23 anos). Ambos estamos interessados na tecnologia (mais em mim do que no meu irmão, mas o ponto continua de pé).

Eu sou um programador (o meu irmão não é). Na maioria das vezes, ou estou a trabalhar num projecto meu ou a aprender uma nova língua.

Ao longo dos últimos 7-8 meses, o meu irmão veio ter comigo várias vezes com uma ideia sobre um jogo (com aspectos que um título de videojogo AA ou AAA teria) e propõe-nos que tentemos fazer o jogo.

Aqui é onde eu chego sempre a um problema.

Tento explicar-lhe que precisamos de nos sentar e deixa-me mostrar-lhe pelo menos o básico da linguagem.

Não tenho qualquer problema em tirar tempo do meu trabalho para o ensinar, mas cada vez que eu tento ensinar-lhe um par de coisas que ele diz que já não o quer fazer e sai do seu computador.

Ontem à noite ele veio ter comigo e disse-me que queria começar a aprender a programar, por isso sentei-me com ele e comecei a acompanhá-lo num par de coisas. Não 10 minutos depois, ele diz que terminou e sai como de costume.

Não sinto que se saltássemos directamente para um destes jogos complexos ele tenha uma ideia de que seria capaz de acompanhar o crescimento do projecto tão rapidamente, uma vez que é apenas um principiante.

Como posso explicar ao meu irmão que se quisermos fazer estes jogos que ele tenha ideias para isso, preciso que ele pelo menos aprenda a língua o suficiente para compreender o que se passa?

Respostas (12)

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

A minha intuição é que o seu irmão pode nunca se interessar por programação. Ele pode parecer interessado, mas creio que ainda é um meio-termo para ele nesta fase (quero fazer um jogo, e a programação levar-me-á até lá).

Apresente-o aos outros domínios da concepção de jogos, como gráficos ou design de som e verifique se esses aspectos despertam o seu interesse.

Uma vez feita a introdução a estruturas de design de jogos como Unity, ele logo se aperceberá de que um pouco de conhecimento de programação irá percorrer um longo caminho numa equipa indie como a sua.

Se ele se interessar então por programação do ponto de vista de um criador (a viagem, não o destino), remeta-o para os recursos online como YouTube, etc. e ofereça-se para ser o mentor que este jovem viajante merece.

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

Há alguns pontos que vale a pena discutir. Falarei sobre a minha própria experiência, talvez lhe possa mostrar isto e será uma ajuda saber como é realmente ser um indie dev.

Fiz a minha licenciatura em Design de Jogos. Má decisão. Tocou no básico, mas no final ainda não consegui fazer um jogo. Alguns anos mais tarde decidi aprender a usar o Game Maker Studio. Eu não sabia nada de programação. No final do projecto eu sabia alguma coisa, e tinha trazido um jogo desde a concepção até à conclusão. Eu era presunçoso. Não vendia quase nada. Fiquei triste.

Mais tarde recuperei alguma confiança, e decidi fazer um curso de conversão pós-graduado para pessoas que queriam aprender programação. Eu tinha feito um jogo, quão difícil poderia ser? Acontece… bastante difícil. Coisas como multithreading no entanto, felizmente, é algo que nunca tive de usar fora de uma sala de aula.

Então formei-me, consegui um trabalho de programação para uma empresa de TI, estou nesse trabalho há dois anos. Nesse tempo também passei a maior parte do meu tempo livre depois do trabalho e nos fins-de-semana a fazer desenvolvimento de jogos. O progresso é lento.

Para alguém que quer fazer o seu próprio jogo, sozinho ou numa pequena equipa, tem de ser a pessoa que pode implementar as suas próprias ideias. As pequenas equipas não podem permitir-se a um designer de jogos dedicado a escrever documentos de design durante todo o dia. Porque a maioria das pessoas não tem dinheiro para contratar uma equipa de programadores, precisam de ser programadores para poderem ser designers. Eu iria ao ponto de dizer que é preferível que se possa codificar independentemente. O ponto crucial é que se quiser fazer o seu jogo, e não o jogo de outra pessoa, então precisa de ser capaz de o fazer você mesmo.

Fazer um jogo é difícil. Muito difícil. Se quiser fazer jogos, tem de estar disposto a voltar para casa cansado de um 9-5 e forçar a si próprio a escrever algum código para um problema terrível de Deus com o qual ninguém que conheça pode ajudar. Há semanas que se debatem e têm vontade de chorar, porque como é que isto vai ser resolvido? Sentir-se por vezes como se não soubesse se isto alguma vez acabará, e perguntar-se se está a desperdiçar a sua vida. Ter dúvidas genuínas sobre si próprio, e ainda por concluir: Não. Esta é a decisão certa. Ter essa determinação sangrenta.

Alerta de spoiler: Eu consertei-o. Por isso, o seu irmão precisa de conseguir isso. Talvez ele possa ser antes o seu departamento de arte? Não há nada de errado nisso, mas não será menos trabalho para aprender e fazer o que precisa. O que quer que ele faça, ele precisa de estar tão ocupado como tu. És um tipo de ideias? Sim, fica atrás do tipo de ideias que sabe fazer arte, ou do tipo de ideias que sabe codificar.

Com essa conversa animada concluída, dê-lhe algo como Unity ou Game Maker. Diga-lhe para pensar em fazer um jogo muito simples. Um passo de cada vez. Há muito material de aprendizagem on-line para esses dois motores (e outros), e algo como TutorialsPoint irá ajudá-lo a introduzir o básico da programação.

No meu caso, depois de lutar com GML e Game Maker Studio, li as primeiras cem páginas de Programming: Principles and Practice Using C++ por Bjarne Stroustrup, que foi suficiente para começar com Unity e C#. Apenas ensiná-lo a trabalhar por conta própria e a resolver problemas por conta própria com a ajuda do Google e do StackOverflow é metade da batalha.

Mostrar-lhe como usar uma IDE como VisualStudio, e o depurador, e segurar a sua mão através de tutoriais básicos de C# (por exemplo). Seja paciente. Variáveis, funções, matrizes, aulas, etc. Nós, programadores, esquecemo-nos de como é assustador começar. Não posso exagerar a importância de o ajudar através desses passos de bebé. Seja paciente. Nem todos são tão loucos como eu em ir sozinho. Mas se o apoiarmos através do básico, e o conseguirmos fazer uma simples depuração e criar classes simples, ele começará a pensar em criar jogos em termos de programação. Depois, ele vai tê-lo.

Não o conseguirá convencer a fazer programação. Ele só precisa de decidir se quer realmente fazer jogos. Então ele vai perceber que tem de se tornar um programador.

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

TL;DR

Não pode convencer o seu irmão a assumir a programação. A programação é dura, enfadonha, e requer um certo tipo de cérebro para encontrar qualquer tipo de realização na programação.


Penso que está a interpretar mal a dinâmica da relação proposta da situação.

O seu irmão não está a dizer “Ei, eu pessoalmente quero construir um jogo a partir do zero”. Ele está a dizer “Ei, acho que podemos ganhar algum dinheiro se programares as minhas ideias”. Isto é uma proposta de negócio.

Ele joga jogos com total ignorância do aspecto da programação, pelo que sabe essencialmente o que o utilizador médio quer. A sua visão pode estar nublada porque está tecnicamente nas “trincheiras” do desenvolvimento de jogos.

Eu sei que isto parece estar a ser egoísta e rude, mas não está; é exactamente assim que um negócio funciona. Quando o proprietário de uma empresa quer um website, é muito provável que alguém o esteja a construir para eles.

Tenho a certeza de que não estão em posição de criar uma empresa que possa produzir títulos AAA, mas se estiverem dispostos a combinar as vossas capacidades com as suas ideias, então algo de grande poderá acontecer.

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

Sou um programador que trabalha na indústria dos jogos, por isso tenho muita experiência com pessoas que tentam fazer com que eu faça as suas ideias de jogos. Numa indústria em que praticamente toda a gente tem mais ideias do que alguma vez poderá tornar realidade, as ideias são absolutamente inúteis, a menos que se tenha as competências necessárias para as ajudar a tornarem-se realidade.

Contudo, a habilidade com que contribui não tem de ser programação. Se o seu irmão tem ou está disposto a desenvolver capacidades artísticas, ele poderia fornecer os recursos artísticos para o jogo. Descubro frequentemente que fico atolado ao tentar produzir arte mesmo remotamente passável para os projectos do meu lado de casa. Assim, ter um parceiro artístico pode ser super útil.

Basicamente, se alguém não se importa o suficiente com a sua ideia para aprender uma habilidade que a ajude a torná-la realidade, então também não se deve importar com a sua ideia.

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

Estou a experimentar exactamente a mesma coisa com o meu colega de quarto. Eu sou um programador e ele não. Ele nunca quer aprender nada sobre o desenvolvimento de jogos, mas quer sempre criar um jogo:

O seu irmão não está interessado em aprender sobre o desenvolvimento de jogos, mas apenas fascinado com o conceito de criar um novo jogo.

Ofereça-lhe alguns vídeos do Youtube que ele possa seguir e disponibilizar-se caso tenha alguma dúvida. A sua melhor hipótese de o fazer interessar-se seria encontrar um vídeo onde um jogo básico estivesse a ser desenvolvido enquanto ele o assistia, na sua língua preferida. Também montaria o ambiente no seu computador para que ele possa acompanhá-lo.

Se ele estiver verdadeiramente interessado no desenvolvimento de um jogo, então ele descolará a partir daí. O mais provável, porém, é que ele simplesmente queira ‘saltar as partes chatas’ e já ter o produto final. Nenhuma quantidade de convencimento irá mudar isso.

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

Como posso convencer o meu irmão a assumir a programação?

Não convence.

Como vejo, há aqui concepções erradas de ambos os lados.

Os problemas consigo:

Parece ter caído no equívoco comum de que jogar jogos ou ter ideias para jogos o tornam de alguma forma propenso a ser um programador ou a trabalhar com tecnologia em geral. Contudo, este não é de todo o caso.

Ligar o HDMI ao monitor e ao PC da sua mãe não significa que seja agora suporte técnico. Da mesma forma, apenas descrever um programa que deseja não o torna um programador nem um designer, há muito mais do que um leigo consideraria - como programador você mesmo sabe que isto é verdade.

Devido a isto, deve parar para ter estas expectativas do seu irmão.

Os problemas com o seu irmão:

Disclaimer: O que estou prestes a dizer pode parecer-lhe mau ou ofensivo, mas isto é o que obtive da sua descrição dele.

O seu irmão é uma sanguessuga. Ele tem grandes expectativas em relação ao produto e espera muito de si, ao mesmo tempo que reclama muito para si, mas não contribui muito. Todos podem atirar ideias sobre o que gostam num jogo sem qualquer contexto. Mas será que ele fez alguma coisa para provar que isto é realmente exequível ou mesmo divertido? Algum bom conceito, testes, comparações, …?

Não o faça.

Ele não sabe o que quer. Começou várias vezes a apresentá-lo à programação, mas ele abortou após um tempo incrivelmente curto. E agora ele quer que acredite que terá paciência e resistência para se sentar e aprender com uma peça de código maior que escreveu? Que piada.

Não o faça.

Ele está demasiado confiante. Isto também parece aplicar-se a si. Ele não tem absolutamente nenhuma noção de quanto trabalho este projecto vai ser e ou sobrestima as suas capacidades ou subestima o trabalho - ou ambos. Vocês parecem não ter a menor ideia da quantidade e tipo de trabalho que tem de ser feito.

Não o façam.

Ele é um aspirante a criador de jogos. Isto não é invulgar na Internet e não é realmente uma surpresa se considerarmos a combinação de crianças/jovens inexperientes com um complexo de superioridade e anonimato. Todos pensam que sabem o que falta ao jogo e como este seria melhor. Mas quantas pessoas têm realmente experiência com isso? Quantas destas pessoas podem fazer ou ter experiência com arte, animação, matemática, gráficos, programação, voz, música, narração de histórias, escrita de personagens, design de níveis, design de jogabilidade, … Em qual destes pontos o seu irmão o pode ajudar com uma valiosa contribuição? Pelo que nos disse, parece que nenhum.

Não o faça.


Em conclusão

Não é alguém com quem se queira iniciar um projecto. Se começar com as condições tal como estão neste momento, fará tudo, com pouca ou nenhuma contribuição da sua parte. Notará isto após apenas algumas semanas (dias pares ou com ele em minutos) e o projecto parará.

O que pode fazer

Ponha realmente um conceito escrito sobre o que espera do jogo e o que pensa que tem de ser feito para o conseguir. Há muita coisa que deve ter em atenção aqui, mas como isto é InterpersonalSE, não vou entrar nisto aqui. No entanto, o trabalho de equipa é certamente interpessoal, por isso recomendar-vos-ei que escrevam quem pode/deve/deve fazer o quê.

Programação não é algo que apenas vai convencer alguém a apanhar. Pode aprender o básico rapidamente, mas se quiser ser bom, precisa de dedicar muito tempo para ganhar experiência.

Ele tem de querer que o produto seja suficientemente mau para pôr em funcionamento sozinho e assim aprender programação.

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

O que é que o seu irmão considera interessante (para além dos jogos de vídeo)? Talvez haja um gancho diferente que se possa encontrar. Processing (uma linguagem popular entre os artistas visuais com conhecimentos técnicos) e o maior make movement de que faz parte pode despertar um interesse. Por falar em faíscas – O Guia de Processamento da Faísca é um bom sítio para começar. Talvez o A em STEAM seja o ingrediente que falta.

Mas – talvez não. Em última análise, não pode forçar o seu irmão a interessar-se por nada. Exponha-o a um par de possibilidades. Se alguém despertar um interesse genuíno – óptimo. Caso contrário, a dada altura deverá simplesmente desistir da ideia.

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

A minha experiência é, até certo ponto, semelhante a muitos dos outros cartazes, mas penso que é importante salientar como pode ser difícil para nós, enquanto programadores, ver como a linguagem é confusa para outra pessoa que possa ser nova nela.

Uma coisa que me ficou bem com o vosso exemplo em particular foi mover o P no ecrã. Embora para nós isto pareça um exemplo trivial, um não-programador não terá qualquer base de compreensão, mesmo para os elementos mais simples desse exercício, e o seu irmão pode ficar frustrado no processo de tentar compreender como as coordenadas se relacionam com a imagem no ecrã.

Na minha própria experiência, primeiro “aprendi” a programar no liceu, e fiz bem, até me ser dada uma tarefa impossível (foi-me dado o trabalho sem os ficheiros literais para seguir as instruções). Senti-me como se tivesse falhado, desistido, em vez disso, tivesse seguido um curso de inglês.

Anos mais tarde utilizei VBA para automatizar uma tarefa aborrecida no Excel, depois a tarefa seguinte, e a próxima, etc., etc. É aqui que me relaciono com o seu irmão: se alguém me dissesse ‘Aprender programação para automatizar a análise de dados’. Eu teria ficado aborrecido nos primeiros dez minutos, e provavelmente ainda não teria programado. Em vez disso, encontrei o meu próprio valor na tarefa, aliviando-me de um trabalho aborrecido, e progressivamente estendi as minhas capacidades porque a recompensa de o fazer era o reforço.

De certa forma, poderá dar ao seu irmão um ficheiro simples, e deixá-lo manipular e brincar com ele. Ele pode decidir que o ‘P’ em movimento é demasiado aborrecido para ser manipulado, ou pode, em vez disso, perguntar-se como mudar ‘P’ para ‘O’, ‘O’ para ‘MOVING’, pode descobrir como fazê-lo saltar das paredes, ou mudar de forma. Em última análise, ele tem de estar interessado em testar o código, e descobrir como o processo funciona, caso contrário ele não absorverá nada dele.

Tive a sorte de ter alguns grandes programadores a ensinar-me o que sabem para me ajudar a atingir maiores alturas, mas em todos os casos tive de ver primeiro verdadeiramente o valor no código antes de o utilizar. É fácil saber que a abstracção é boa, ou que as interfaces são úteis, mas é outra coisa ter de enfrentar esse problema que não pode ser facilmente resolvido sem uma interface, ou lutar com um emaranhado de código que se estilhaça se i mudar para i + 1 e mudar esse código para j corrige-o, mas esqueceu-se de o corrigir também aqui, e bem, agora estamos em k porque não se lembra se i estava certo, ou se era realmente j.

No final, ele tem de ser apaixonado pelo trabalho, antes de se tornar um passatempo, caso contrário é apenas mais um trabalho.

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

Esta resposta é de uma perspectiva estritamente “Interpessoal”.

Tive uma situação muito semelhante com o meu irmão por volta dessa idade e, pelo menos para nós, o problema acabou por não ter nada a ver com programação e tudo a ver com relações interpessoais.

Os irmãos têm esta tendência para se quererem diferenciar uns dos outros. Pelo menos no nosso caso, o meu irmão teve uma resistência à programação porque foi o que eu fiz. Nunca o poderia ter ensinado ou convencido (tentei) porque vinha de mim - eu era o perito, embora pudesse absolutamente ver que ele tinha o potencial de ser pelo menos tão bom.

Depois de ter saído de casa, ele passou por alguns trabalhos não técnicos antes de se deixar levar pela programação por si próprio a partir de uma direcção completamente diferente.

Tornou-se um programador/manager/lead/architect fantástico para uma empresa de média dimensão e assim tem sido durante algumas décadas. Acho que não poderia tê-lo liderado ou empurrado para isso - eu tentei. Ele não teria sido ensinado por mim, ele teria resistido (inconscientemente).

Então, se eu olhasse para ele desse ponto de vista, o que faria eu no seu caso?

Dada a sua descrição, eu provavelmente fá-lo-ia descarregar o quadro da Unidade (como a resposta aceite sugere). Tentei isto ultimamente porque uma percentagem ENORME de jogos está a começar a ser lançada usando a Unidade. O problema é que, uma vez descarregado, começaram a incomodar-me com e-mails que tentavam seduzir-me a correr através dos seus tutoriais (e têm MUITOS tutoriais/ajuda para principiantes). São muito bons a dar as mãos e é muito fácil criar um jogo que parece bastante não trivial.

Também - não descarregue/aprenda/utilize você mesmo. Deixe-o tornar-se o perito em alguma coisa. Mesmo que não consiga responder a uma pergunta, isso é óptimo! Deixe-o resolver por si próprio - pode sempre sentar-se com ele e procurar uma resposta em SO juntos.

não tenho a certeza de que isto funcione, mas penso que teria funcionado para mim e para o meu irmão.

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

Neste momento, o seu irmão parece não ser capaz de focalizar o trabalho durante apenas dez minutos. Se ele não consegue fazer isso, então o desenvolvimento de software não é para ele. Por isso, não tente convencê-lo a entrar na profissão, isso não vai ajudar ninguém.

O seu irmão mais novo tem ideias. Já foi dito noutro sítio, as ideias são dez por cêntimo. Portanto, para criar algo de valor, ele deve ter mais do que apenas uma ideia. Peça-lhe para começar realmente o desenho de um jogo. Não apenas uma ideia. Deixe-o anotar como o jogo começa. Que coisas o utilizador pode fazer, que efeitos têm as acções do utilizador, que acções são produzidas pelo jogo. Tudo precisa de ser concebido em pormenor. O que quer que torne o jogo grande deve estar na sua concepção, ele não pode contar com o(s) programador(es) para tornar o jogo cativante. O designer do jogo precisa de o fazer.

Ou pedir-lhe que descubra o que é necessário para vender um jogo. Desde a criação de uma empresa, o registo de impostos, o pagamento aos programadores para criar o jogo, encontrar editoras, e assim por diante.

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

Cada um tem formas diferentes de aprender algo, dependendo de si próprio, daquilo que há para aprender. Eu não aprenderia nada sobre programação vendo vídeos; em vez disso, aprendo-o fazendo-o. Alguém mais poderia aprender com vídeos ou livros.

Ainda programar não é algo que se possa ensinar. Requer experiência que só se obtém ao fazê-lo. Pode, até certo ponto, ajudar alguém a saber o que está envolvido, e desde o início, que alguém precisa de fazer a compreensão por si próprio, como aprender a ler. A partir daí, o aprendente precisa de o explorar por si próprio.

Não se pode ensinar alguém a andar de bicicleta. Mesmo quando se ensina toda a física envolvida, o aluno não será capaz de a andar de bicicleta porque requer experiência, a qual só pode obter fazendo-a. É desta forma que não se pode ensinar programação.

Programação é uma habilidade, como ler ou andar de bicicleta. Há coisas que precisa de saber para o fazer, e só essas são as que podem ser ensinadas. A habilidade em si não pode ser ensinada, só pode ser desenvolvida pelo aprendiz — e o aprendiz só o fará se o desejar.

Talvez consiga dizer ao seu irmão o que está tudo envolvido em fazer um jogo, e talvez ele encontre algo entre aquilo que quer aprender. Caso contrário, não será capaz de fazer um jogo e decidiu ficar desamparado.

Programação não é nada difícil ou frustrante, especialmente hoje em dia com todas as grandes ferramentas disponíveis e a máquina não congelar quando o programa não funciona, como costumavam fazer, e é divertido.

Talvez toda a gente que o aprende seja bem aconselhada a usar um computador de 35 anos e alguns livros de programação adequados, e não mais. Isso mantém-no concentrado, e ele próprio não pode jogar o jogo antes de entrar no programa, o que lhe dá algum incentivo. A aprendizagem vem então por si só, simplesmente entrando nele porque ele pode ver como é feito e inevitavelmente começa a pensar em mudá-lo, e depois a fazê-lo.

Dê a alguém algum tipo de software de desenvolvimento de jogos, ou um compilador C/C++ completo e murmure algo sobre aulas e métodos, e o seu aprendiz ficará totalmente sobrecarregado. Dê-lhe algo simples e directo escrito numa simples variante BASIC — se ainda conseguir encontrar um — ou, em alternativa, em perl, imprima-o e faça-o entrar nele ele próprio, e ele poderá apenas aprender.

Acho que um aprendiz precisa de uma oportunidade para compreender o problema que deve ser resolvido através da programação antes de começar a programar. O passo seguinte poderia ser mostrar-lhes como dividir o problema de modo a que um computador possa lidar com ele; depois mostrar e explicar a implementação real. É preciso começar com o problema mais simples que se possa imaginar, não com um dos mais difíceis como fazer um jogo.

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

Mostrar-lhe quanto dinheiro ele pode ganhar. https://www.upwork.com/o/profiles/browse/c/web-mobile-software-dev/nss/90/hrs/1000/?rate=60&user_pref=1

Contudo, a programação é duro e nem todos o podem fazer. É por isso que os programadores fazem tanto. A minha mãe conseguiu um Commodore-64 para aprender a escrever e comprou um livro BASIC, e fui eu que terminei o livro. Se ele estivesse destinado a ser um programador, já o teria feito. A partir deste quadro, pode ver-se que a idade média em que os programadores começaram era 13,5 anos. Muito poucos têm mais de 20 anos.

0x4 Fonte

Tenho um irmão jogador que é da mesma maneira - sem motivação, sem ambição, sem perseverança. Talvez encontre outra habilidade relacionada que ele se interessaria. Se insiste em continuar a tentar, talvez comece com Scratch, que foi desenvolvido para ajudar as crianças a aprender programação com uma interface de arrastar e largar. https://scratch.mit.edu/