Como eu aprendi a programar e que lições tirei disso

Fala pessoal, tudo bem com vocês?

Eu venho acompanhando os posts do @trainingcentr escritos pelo @w_oliveiras e tenho que adimitir que achei muito interessante a trajetória de muitos profissionais, alguns até que tive o prazer de conhecer pessoalmente e até trabalhar ao longo dos últimos anos.

Hoje vou compartilhar como foi a minha história.

Como eu comecei

Eu queria ser várias coisas quando eu era mais novo, normalmente um desenhista de quadrinhos ou um músico.

Quando você quer desenvolver uma habilidade como aprender a tocar violão você chega na sua casa e começa a praticar, assim como quando eu chegava em casa, eu sentava na frente do computador, e tentava desenhar alguns HQs/Mangas que gostava na época.

Aos curiosos, eu desenhava coisas como X-Men, Homem Aranha e Dragon Ball.

Com o tempo entre 2005/2006 eu estava terminando o ensino médio e fazia alguns cursos livres, pois eu não sabia exatamente o que queria naquela época.

Dos simples desenhos, eu começava a “brincar” com ferramentas como CorelDraw e a suite Macromedia MX (sim, Dreamweaver, Flash e Fireworks) e algum tempo depois o Photoshop.

Sim, eu comecei como Web Designer.

Eu sabia 0% sobre código, mas eu conhecia pessoas que ganhavam muito dinheiro criando sites (na maioria em flash) e que me motivaram a aprender algumas coisas, e foi assim que eu comecei a ganhar alguns trocados customizando paginas de bandas do antigo MySpace e modificando alguns sites e blogs.

Na época eu sabia o básico de HTML, CSS e ActionScript, por acidente acabei conhecendo sites como o Tutoriais CSS, o qual hoje é o site do nosso querio Maujor, e também sites como o W3Schools e o Apostilando.com, os quais foram essenciais para mim.

Meu primeiro trabalho real foi no inicio de 2008, onde eu troquei meu quase 1 ano trabalhando em uma gráfica, por uma pequena agência de web design onde eu passei 6 meses desenvolvendo email marketing e alguns sites utilizando tableless e as vezes com Flash, e onde eu pude ver o pouco de ASP que tinha aprendido em cursos e apostilas.

Na época, para a agência, era imprescindível validar o XHTML e o CSS do site para podermos adicionar os botões da W3C, uma coisa que hoje pode parecer estupida, mas na época foi um dos porquês eu aprendi a escrever tableless da maneira certa. Inclusive foi nesta mesma época que conheci o site do Tableless.

Com o passar do tempo e com curiosidade, por mais que eu sempre gostei de criação, eu também aprendi a gostar de escrever “programinhas”, e naquela época eu estava começando a brincar com PHP por conta de um fórum em IPB (Invision Power Board) que eu precisava fazer algumas modificações, apenas seguindo tutoriais e não aprendendo de verdade a linguagem.

Mesmo que eu tenha trabalhado como analista de suporte, eu sempre continuava a criar sites e aprender uma ou outra coisa, não importava o que.

Gosto de pensar que ter trabalhado como web designer e aprendido coisas como jQuery e PHP estruturado, eu passava mais tempo querendo estudar HTML e CSS do que qualquer outra coisa, até mesmo o próprio design em si. Foi então que que comecei a querer parar de fazer coisas como email marketing e começar a criar layouts apenas para codifica-los, ja que era isso o que me fazia acordar cedo para trabalhar.

Ejesa
Grupo Ejesa 2011

Na mesma época, comecei a estudar Desenvolvimento de Jogos pela Fatec, um lugar onde eu tive que me esforçar e sofri para aprender algumas coisas, já que eu pensava que iria criar jogos em questão de meses, eu era e continuo muito ansioso, mas na verdade tive uma boa introdução a programação em C++ e Python e principalmente bons fundamentos de computação.

Lições

  • Seja curioso.
  • Estude, estude muito.
  • Existe o talento natural que facilita algumas coisas, mas também existe o esforço!

Eventos e Comunidade

Eu continuava em agências, e comecei me interessar ainda mais pelo mundo do Front-End tentando utilizar novos plugins, aprendendo a utilizar ferramentas novas como pré-processadores CSS e tentando praticar design responsivo em alguns projetos pequenos, e foi quando decidi ir no meu primeiro evento de tecnologia em 2012, o Tableless Conference, onde eu vi coisas sobre HTML5, JavaScript e muito mais, além de conhecer pessoas fantásticas e que me fizeram pensar fora da caixa.

Outsite of the confort zone is where the magic happens!

Deste dia em diante eu vi o potencial do HTML5 e comecei a estuda-lo como se não houvesse o amanhã. Eu precisava utilizar aquilo, e claro que com isso eu precisava aprender ainda mais.

Comecei a ir em mais e mais eventos e espiar o que se passava na comunidade. De lá pra cá eu perdi as contas de quantos eventos eu já fui, seja em São Paulo, Rio de Janeiro, Florianópolis, Porto Alegre e algumas outras cidades.

Não contente com isso, comecei também a tentar me engajar mais nas comunidades, que na verdade são uma grande família onde tentamos compartilhar experiências e também é um é um bom momento socializar e rir. Com isso também comecei a falar e apresentar pequenas talks, contribuir com o pouco que sabia, aceitar criticas sobre pontos que não estavam totalmente corretos e também tentar responder perguntas que eu nunca tinha uma resposta. Depois de alguns anos dei minha primeira palestra no TDC (The Developers Conference) em 2014, e de lá pra cá tento compartilhar cada vez mais.

Me juntei a grupos e Meetups sobre HTML5, PHP, Ruby e NodeJS, e sei que isso mudou minha forma de pensar, pessoas que já haviam estado onde eu estava naquele momento, sendo o cara que trabalha em agência, o faz tudo, que vai do web design ao front-end e as vezes até ao backend e banco de dados se necessário.

Entenda que não estou reclamando sobre isso, na realidade sou grato as empresas de terem dado um voto de confiança para eu aprender coisas novas, e pela comunidade por ter compartilhado algum conhecimento que pude aplicar dia-a-dia.

Lições

  • Vá a eventos, mesmo que você ja saiba muita coisa, conheça pessoas novas.
  • Compartilhe e aprenda com comunidades, elas existem para isso.
  • Pense fora da caixa e deixe sua zona de conforto!

Olá, eu sou um programador PHP!

Além de trabalhar como front-end, também escrevia pequenas coisas com PHP estruturado, fazia algumas mágicas com Worpress e Magento, e com o que aprendia na faculdade como Orientação a Objetos, comecei a tentar introduzir algumas coisas no meu trabalho.

Tudo era feito para hospedagens (Hosts) que normalmente rodavam PHP, então eu não conseguia aplicar o que sabia sobre Python, logo tive que aprender mais sobre o PHP, até comprei alguns livros que me ajudaram a ter um desbloqueio melhor sobre programação.

Em 2012 começamos então a utilizar frameworks como o CodeIgniter mesmo não tendo uma base tão sólida de OO e MVC, tudo o que eu e meus colegas de trabalho tínhamos era um livro e a documentação que na época era um tanto difícil para mim, mas em 1 ano eu aprendi muitas coisas sobre PHP, e tenho que agradecer por esse ano, pois ele foi meu marco inicial para deixar de lado a parte de criação nas agências e começar a trabalhar apenas com código.

Depois disso, comecei a trabalhar na 4Linux, onde tive a oportunidade de aprender ainda mais coisas sobre Linux, Banco de dados e Git.

Também foi o meu lab pessoal para utilizar coisas como BackboneJS, ZendFramework e até criar meus próprios plugins jQuery.

Depois disso mais portas se abriram para trabalhar como FullStack na Rocket Internet e evoluir como programador, aprendi muito com as pessoas que conheci por lá, e mesmo que esse conhecimento por mais que seja limitado comparado ao que sei sobre Front-End, é uma ótima base seja para trabalham com PHP, Node, Rails ou até mesmo Java.

Sei que não sou nenhum expert em PHP como alguns profissionais que tive o prazer de trabalhar, e por mais que eu não esteja totalmente por dentro do que se passa com o PHP hoje, ainda resolvo muitos problemas com ele. Até adotei o Wordpress e o Laravel como parte do meu canivete suíço para projetos.

Lições

  • Aprenda uma linguagem de programação, ou várias.
  • Aprenda um framework, ou vários.
  • Seja especialista em alguma área.
  • Seja generalista, conheça coisas novas.

Estude e faça um bom network

A nossa profissão esta em constante evolução, não importa o que você estude, as coisas sempre vão mudar menos em Cobol.

Estudei Jogos, não contente estudei Analises em Desenvolvimento de Sistemas e depois comecei a fazer Pós graduação em Desenvolvimento Web na UFSCAR, onde pude levar em consideração por exemplo, aprender Java e Android.

Sim estudar a nível universitário tem suas vantagens profissionalmente, mas também não é a única coisa que vai te fazer aprender, você pode também estudar através de plataformas como o Codecademy, Coursera, Udacity, edX e outros que são gratuitos.

Até mesmo com uma simples busca no YouTube você vai achar conteúdo sobre o que deseja. Lembro que quando estava criando cursos para a 4Linux ou quando queria uma referência de como fazer algo com Ionic YouTube era minha primeira opção para ver um exemplo funcionando.

Eu aprendi muito com comunidades, fóruns de discussão, eventos e até hackathons, porem, mais importante que isso, eu conheci pessoas. Pessoas que foram bons amigos, algumas de onde estudei, algumas de algum lugar que trabalhei, mas o mais importante é que algumas que serviram de mentores, e outras são meus mentores até hoje.

Isso me motivou a estudar algumas coisas em especial, a tentar ser tão bom quanto esses mentores, seja em tecnologia, seja em empreendedorismo seja sobre não se acomodar e continuar curioso.

Não conseguiria citar todos aqui, e mesmo que fizesse isso me sentiria mal em esquecer alguém que foi importante na minha atual jornada.

Lições

  • Faça uma faculdade, ela vai ser útil de alguma forma.
  • Atualize-se e aprenda coisas novas (é inevitável).
  • Explore a internet, ela é sua amiga.
  • Tenha um mentor, isso vai fazer toda a diferença.
  • Seja um mentor, isso não é apenas uma forma de contribuir, mas também de desenvolver uma nova habilidade.

Respondendo algumas perguntas rápidas

Eu gastei muito dinheiro ou tive que ir a faculdade para aprender a programar?

A resposta é não!

Claro que fiz alguns cursos ao longo do tempo, creio que as mudanças de designer gráfico a web designer foi a mais significante delas, mas isso não quer dizer que foi isso o que me fez aprender a programar.

Minha maior motivação foi a curiosidade, os tutoriais, a vontade de saber como as coisas funcionavam.

E é isso o que me motiva a transformar um Raspberry Pi em um mini Arcade, ou controlar um Drone via Leap Motion, entre muitas outras coisas.

O que poderia ter sido melhor?

Algumas vezes por não ter paciência ou por ansiedade eu deixei algumas coisas de lado, e talvez isso seja um fatores que me custou muito a ser um programador melhor.

Eu fiquei acomodado nos primeiros anos sabendo apenas HTML, CSS e jQuery, e hoje vejo que talvez se eu tivesse conhecido algumas pessoas antes ou um mentor talvez eu tivesse evoluído mais rápido e consequentemente errado menos.

Sem dúvidas se tivesse permanecido acomodado, hoje eu provavelmente estaria trabalhando como web designer, e talvez seguido um caminho diferente como Publicidade ou algo do tipo, mas gosto de pensar que as coisas aconteceram no tempo certo.

Por mais que minhas “lições” sejam algo já sabido, espero que elas ajudem aqueles que estão iniciando agora, e também gostaria de deixar outras 3 coisas básicas que não mencionei de propósito:

Aprenda Inglês:

Programar é uma coisa legal e divertida, e com inglês seu acesso a recursos para estudar será ilimitado.

Seja humilde e continue assim:

Não deixe as coisas subir a sua cabeça e mantenha o respeito pelos outros, afinal você também ja esteve ou pode estar lá um dia.

Seja ambicioso:

Isso contradiz a dica acima, mas ambição pode ser uma coisa boa quanto ruim certo?

Todos temos sonhos, quais são os seus?

  • Trabalhar em uma grande empresa?
  • Se tornar um especialista em uma área especifica?
  • Crescer e fazer nome na comunidade do seu interesse?
  • Morar/trabalhar fora?
  • Ou até mesmo construir uma família e ter um cachorro?

O que eu quero dizer é que as vezes você precisa se manter ambicioso para conseguir realizar um sonho, não importa se eles são simples ou se parece impossíveis, enquanto você estiver tentando. Se você realmente quer algo, só você pode lutar por isso.

Anything is possible until your heart stops beating
Gabriel (Seth Gilliam) - The Walking Dead

Join the Conversation