terça-feira, 15 de agosto de 2017

Profissão Programador


Olá, caros leitores! Cá estou novamente! Depois de uma acalorada discussão sobre a profissão Desenvolvedor de Games e o Mercado de Jogos com meu amigo Vinicius (também desenvolvedor e grande incentivo em minha empreitada escrevendo), inicio com este artigo uma série que tratará sobre as diversas áreas dentro do desenvolvimento de jogos. Em nossa conversa, lembramos de quão difícil foi o início de nossos estudos, além da decisão de qual área seguir, e sentimos que devíamos ajudar iniciantes de alguma forma. Com esta série, espero poder iluminar ao menos um pouco a mente de quem está começando, uma vez que essa ainda não é a forma ideal - palestras e outros eventos trariam um resultado melhor (além de ser a forma pela qual realmente gostaria de auxiliar outras pessoas). No último artigo com este tema, falamos sobre Game Design, a área pela qual me apaixonei e sigo estudando e me aprimorando a todo vapor. Hoje, falaremos a respeito de uma área que assusta muita gente: a Programação.
Programando
Imagine o programador como um tradutor: é ele o responsável por dizer ao computador por meio dos códigos tudo aquilo que foi decidido pelo restante da equipe. A velocidade em que o personagem irá se movimentar, o que acontece quando você faz uma escolha, e o comportamento dos NPCs, além de muitas outras coisas, são todas executadas por meio da programação.

Fotos do meu projeto de programação para a faculdade onde deveríamos desenvolver um pequeno game do Sonic. Tudo deu certo depois de alguns puxões de cabelo, dores de cabeça e crises de gastrite.
Sendo um "tradutor", a principal ferramenta de um programador é a linguagem de programação. Existe uma imensidão dessas linguagens: C, C++, C#, Java, Lua, Python, e a lista continua. As mais usadas por desenvolvedores de games são C# e C++, devido ao fato de que as engines (os programas em que são construídos os jogos) mais utilizadas no mercado têm essas linguagens como "forma de comunicação". Porém, isso não impede que você desenvolva jogos em outras linguagens - diversos jogos usam Lua, Python, Javascript e até mesmo outras proprietárias da engine empregada, como a GML, presente na Game Maker Studio. Existem ainda certas plataformas que exigem que uma integração da linguagem utilizada na engine e a linguagem utilizada pela plataforma seja feita, como é o caso do Android, cujas principais estruturas são programadas em Java. Todos os códigos presentes neste artigo foram desenvolvidos em C#, a linguagem utilizada pela Unity Engine, uma das engines mais acessíveis e utilizadas no mercado.
Todos os programadores que conheço são movidos a café, principal companheiro quando o cansaço aperta. (foto: https://simpleprogrammer.com/2016/08/01/learn-programming-language/) 
Além da "tradução", o programador também é responsável pela revisão do "texto: ele irá atrás dos bugs do jogo, realizando as mudanças necessárias para que tudo funcione da melhor forma possível. Programar é um processo complexo, que apresenta uma série de conceitos a respeito das linguagens e dos softwares usados pelos programadores, sendo uma tarefa quase impossível tratar de maneira sucinta e clara a respeito dessa profissão por aqui, o que não é de fato o intuito deste artigo -  a ideia é dar uma luz para aqueles que se interessam pelo assunto e estão cogitando seguir a área, além de dar um direcionamento para que o pontapé inicial seja dado. Apesar disso, programar não é um bicho de sete cabeças, sendo apenas necessário dedicação, interesse e esforço, como veremos a seguir.
Entrevistando: Programador
Para esclarecer melhor as áreas discutidas nessa série de artigos, entrevistarei profissionais que, assim como eu, estão em início de carreira, estudando e se aprimorando com afinco. Desejo com isso mostrar a você, leitor, que a busca pela profissão dos seus sonhos não está tão longe quanto imagina - se é esse o caminho que quer seguir em sua vida profissional, dedique-se e estude bastante, abrace seu sonho e lute. O entrevistado da vez é Thiago Goulart, aluno do curso Superior de Tecnologia em Jogos Digitais, na PUC-SP. Aos 27 anos, ele nos revela o começo da sua jornada, as dificuldades que passou, e reafirma a importância do foco e da dedicação nos estudos.
Renan: Como você definiu que queria seguir essa área? O que te motivou?
Thiago: Em 2014, entrei em um curso de jogos de outra faculdade, sem saber ainda qual área do desenvolvimento seguir. Inicialmente, imaginei que seria responsável pela arte, tendo até mesmo feito um curso rápido sobre desenho e proporção. Contudo, não me sentia seguro com essa escolha. Foi então que fiz um curso de Unity, tendo meu primeiro contato com programação - um verdadeiro terror. Me senti da mesma forma que muitos dizem se sentir, sem entender nada do que estava escrito ou do que acontecia no código. Ainda que alguém seja um grande programador, ele com certeza passou pela mesma situação no início - é por meio do estudo que você começa a entender as coisas. Eu estava sofrendo bastante com o curso, com o professor ensinando tudo sobre Unity, e mostrando pouco de programação, usando float (um tipo de variável - sim, como o X e o Y que você tanto procurou nas aulas de matemática) e if (usado para criar uma condição para que certo trecho do código seja executado pela máquina) em Javascript. Ainda que eu tenha sofrido muito, sem entender praticamente nada, essa experiência despertou em mim uma vontade de ir mais a fundo em programação. Pensei que poderia largar tudo, mas nesse caso eu acabaria seguindo para Administração, e não era o que eu queria, então segui com os estudos . O que me motivou foi a dificuldade que passei, fora o fato de que a programação é a área que está diretamente envolvida com a engine no desenvolvimento, sendo ela a responsável por "dar vida" ao jogo.
Renan: Como foi o começo dos seus estudos e a sua primeira investida na área?
Thiago: Depois dos ocorridos que citei na pergunta anterior, eu iniciei minha faculdade, entrando em contato com a linguagem C. Foi quando comecei a entender melhor os conceitos de programação, como variáveis, métodos, classes, etc. No final do primeiro ano, comecei a ficar bastante interessado no curso oferecido pela PUC-SP, chegando a conversar com o coordenador responsável, especificamente sobre a programação ensinada. Decidi então mudar de faculdade e ir para a PUC. Já realojado, tive contato com o C#. Comecei a me dedicar ainda mais: tirava fotos dos códigos para estudar em momentos que estivesse longe do computador, passava noites relendo e reescrevendo os códigos feitos em aula, além de fazer todos os exercícios passados para casa. Foi um processo bastante intenso, mas não me arrependo - hoje sou apaixonado pela programação.


Trechos dos códigos do Trabalho de Conclusão de Curso do Thiago. Trabalho árduo!
Renan: O que alguém da sua área deve estudar? E por onde começar?
Thiago: O primeiro passo é buscar por grupos de desenvolvedores Indie nas redes sociais. É sempre importante prestar atenção nas discussões que ocorrem nesses grupos, especialmente acerca das engines. De cara, recomendo foco na Unity, que é bastante versátil tanto para desenvolvedores Indie quanto para estúdios com projetos maiores, sendo uma das mais simples, acessíveis e rápidas. Para resultados mais robustos, recomendo também estudar a Unreal Engine, apresentando contudo um desafio maior, já que sua interface é mais complexa, e a linguagem por ela utilizada, C++, é também mais complexa que a C# utilizada pela Unity. Recomendo ainda pesquisar muito sobre a área, além de conhecer pessoas do meio, buscando por dicas. Por fim, não tenha medo ou vergonha de perguntar, todos já passaram pelo mesmo processo de aprendizado que você.
Renan: Mande um recado para as pessoas que gostariam de seguir a mesma área que você
Estudo, dedicação, disciplina e muita força de vontade. A Programação é muito vista como um bicho de sete cabeças, eu mesmo já a enxerguei dessa forma, mas é uma área exata, não existe interpretação profunda ou algo do tipo - basta apenas saber a linguagem. Não existem atalhos, mas sempre se lembre: até mesmo grandes programadores já passaram pelas dificuldades que você está passando.
Concluindo
Programação é uma área que assusta a muitos, mas com interesse e dedicação você pode aprender e dominar os códigos. Lembro ao leitor que quero por meio deste artigo esclarecer algumas dúvidas e incentivá-lo a seguir a área caso seja de seu interesse. A profissão de programador é abordada de forma bastante sucinta aqui, sendo demonstrada de maneira simplória. Caso tenha alguma dúvida, deixe nos comentários e farei o possível para ajudá-lo a esclarecê-la. E se você decidiu se tornar um programador, te desejo muita sorte e sucesso!
->Gostou do artigo? Não gostou? Críticas? Sugestões? Comente aí! Seu feedback é muito importante! Lembrando que respeito e educação são muito importantes para uma convivência "de boas".
->Compartilhe! Assim como seu feedback, seu apoio também é muito importante para que eu siga escrevendo =D