Fala pessoal, tudo bom com vocês? Pokemão de volta aqui com mais um tema para iniciantes em desenvolvimento. Se você ainda não leu os outros artigos. Dá uma olhada lá que tem muito conteúdo legal para você que está começando ou quer entender mais sobre o mundo de desenvolvimento.
O tema de hoje é uma pergunta que também recebo muito nas minhas lives. “Pokemão, estou começando a desenvolver, que projetos é legal eu fazer?”. Obviamente as pessoas vem falar, ah, vi por ai que é legal fazer uma to do list, um clone da interface da empresa tal… Não faça só isso... todo mundo faz... você tem que ser diferente… Quer saber a real? A galera que recruta já tá de paciência esgotada com esses negócios de clone, qualquer curso de uma semana ensina isso e você nada mais faz do que copiar e colar código que você viu em algum lugar e que no fundo você não entende nada do que está fazendo ali. E uma porrada de gente faz a mesma coisa… Como você vai se diferenciar fazendo o mesmo que todas as pessoas?
Vou elucidar vocês com o primeiro projeto que eu realmente finalizei durante meus estudos de desenvolvimento. Era entre 1999 e 2000, a internet discada imperava no ambiente brasileiro (de quem tinha internet né, lembro que demorei alguns anos para ter, pois, onde eu morava - um conjunto da marinha em Brasília só tínhamos ramal e portanto só pude ter internet quando mudou para linha telefônica "real"). Eu tinha um PC até ok para a época, era um Pentium II 166. As pessoas estavam conhecendo ainda o que era mp3 e lembro que demorava um dia para baixar um mp3 kkkk e o pessoal de hoje reclama que demora pra baixar videos rsrs. Dentre os tocadores de mp3 o que imperava com certeza era o winamp, porém, além do meu PC não rodar o winamp decentemente, eu não curtia a interface e não gostava do jeito que o winamp fazia o aleatório entre as músicas. Não tínhamos whatsapp, nem facebook, nem orkut na verdade, no Brasil quase ninguém tinha ouvido falar em Google, o que mandava aqui era o cadê e o bate-papo da UOL. Imagina como era fácil achar conteúdo de programação nessa época, risos, exatamente, não tinha quase nada. E eu gostava de usar o que seria o slack de hoje em dia, o mIRC!
Para quem não sabe o IRC é basicamente um protocolo de comunicação cliente-servidor para desenvolvimento de bate-papo. Por exemplo, o chat da twitch é desenvolvido em cima de um servidor IRC e eu usei meus conhecimentos daquela época para desenvolver o bot da minha live, mas, isso é papo para outro artigo. A questão é que para acessar uma rede IRC em geral a gente usava um client desktop chamado de mIRC. Esse em cima desse cliente a gente podia customizar ou desenvolver funcionalidades usando a linguagem de programação IRC script (com certeza a galera mais velha de internet lembra disso). Como eu passava a maior parte do meu tempo no IRC, nada mais justo que aprender essa linguagem. Lembro que dentro do mIRC tinha uns arquivos helpers .hlp que abrem no windows helper viewer e esses arquivos tinham os conhecimentos sagrados de como desenvolver scripts para o cliente IRC. E num desses estudos eu aprendi como criar GUIs (interfaces visuais para o IRC tipo aquelas janelas show do Delphi), aprendi a manipular arquivos no IRC (ler arquivos nas pastas, listar e acessá-los) e também descobri que era possível tocar mp3 dentro do client.
Bem, vocês lembram o que falei no meu primeiro artigo aqui?: a gente pegava o problema, aprendia as ferramentas e depois resolvia. E foi isso que fiz: eu sabia que gostaria de ter um tocador de mp3 mais leve e mais útil que o winamp. Peguei o que aprendi no IRC e fui criar o The Poke’s Player. Eu lembro que fiquei muito feliz quando consegui terminar o projeto. Não porque um cliente ia usar e tinha pago para ter algo que nunca está do jeito que quer. Mas sim porque o cliente daquele projeto era eu. Aquilo iria resolver um problema que eu tinha, um problema real que eu queria resolver. E isso me ensinou muito mais sobre o que eu conseguia resolver com programação, me fez ter muito mais vontade de estudar o que precisava para resolver o problema e fez o projeto ter uma qualidade decente, já que eu iria usar aquilo diariamente. Eu sabia exatamente o que eu queria, o que esperar do projeto e o que ele iria entregar para mim, afinal, o problema era meu, literalmente.
Me diz quantas pessoas você conhece que o primeiro projeto foi resolver um problema pessoal? E quantas você conhece que foi fazer um to do list ou clonar uma interface? Qual projeto despendeu mais criatividade? Qual projeto tem mais propósito? Não estou falando que aprender a fazer to do lists ou clonar interfaces é algo ruim, às vezes, é algo bem didático para você ver um resultado imediato, porém, hoje em dia todo mundo faz isso, todo mundo aprende assim. Qual diferencial você vai ter com outras pessoas que fazem a mesma coisa?
Então, a primeira dica de projeto que tenho para você hoje é: resolva algum problema que você tem, seja o seu primeiro cliente. Todo mundo tem pelo menos um problema, e a grande parte desses problemas podem ser resolvidos utilizando programação. Você usa vários apps no seu celular e no seu computador que foram criados da mesma maneira. Alguém tinha um problema e decidiu resolver esse problema, incrivelmente a grande maioria das empresas que você vai aplicar geralmente também nasceram da mesma maneira: para resolver o problema que alguém teve anteriormente.
Cria sei lá: um sistema que manda e-mail pra te acordar, um bot no telegram para mandar foto de bom dia no grupo da família, um sistema para te avisar quando acontecer uma nova treta dev no twitter (ops, ai não vai funcionar, pois, as tretas são sempre as mesmas...)
Aí você fala… “Ah Pokemão, mas eu não tenho nenhum problema…”, primeiramente você não é uma pessoa humana então kkkkkk. Mas tá, se você cismou que não tem problemas, você gosta de alguma coisa então. Faça algum projeto que envolva o que você gosta. Quando eu era menor eu gostava de pokémon (que inusitado né?). Então, criava bots de batalha pokémon no IRC. Fiz um site sobre esse sistema de batalhas. Criei uma pokédex. E outras coisas que envolviam o que eu gostava. Coloca essa cabeça pra viajar! Você vai ajeitar algo legal!
Se ainda assim você vier falar que não gosta de nada “PQP einnnn vamos rever esses conceitos aí” faz o seguinte. Sabe aquela pessoa amiga que descobriu que você está estudando para ser dev e pediu para você consertar a impressora? Ela mesmo, ela tem uma idéia revolucionária que vai fazer todo mundo ficar rico e só está precisando de você para iniciar uma sociedade inacreditável de desenvolvimento. Ou uma dica melhor: entre em algum grupo do facebook de desenvolvimento, espere um post sobre essas ideias maravilhosas e pede pra pessoa contar a ideia rs! Ouça ou leia essa ideia aleatória e tenta codar o que der disso. Com certeza vai ser uma experiência bem aleatória, porém, pode te dar muitas skills em soluções random kkkk. Grandes devs que conheço começaram em agências ou consultorias e basicamente o trampo era desenvolver as coisas mais aleatórias do mundo, repetitivamente e também mandar e-mail marketing :), e-mail marketing não pode faltar.
Agora, se o que você precisa é entender um pouco como funciona o trabalho em equipe dentro do github. Contribua para projetos open source. Todo mundo lembra (inclusive eu) que existem projetos para contribuição durante a hacktoberfest (evento anual para estimular a contribuição ao open source) para ganhar camiseta. Porém, esquecemos tudo que envolve a contribuição para esses projetos. Desde os conceitos mais simples como fork, git clone, git push, git pull. Até os mais maravilhosos conflitos de merge (oh coisa linda). Além do conceito de backlog, priorização, bug reporting e outros com as issues. Revisão de código com os pull requests e muito mais. E ensinamentos não técnicos como a divisão do time, o vai e vem de devs contribuindo (o que simula contratação e desligamento em times), entre outros conceitos que você pode aprender.
Sei que você vai falar “Ah Pokemão, mas não sou bom tecnicamente para contribuir com esses projetos…”, tudo bem, eu entendo. Mas, sabia que você pode contribuir com outras coisas sem ser código propriamente dito? Pode ajudar na tradução, pode ajudar na documentação, pode ajudar criando comentários, comentando nas issues, dando ideias de novas funcionalidades e muitas outras maneiras.
Tem alguns repos e artigos legais com alguns projetos que são de fácil entrada para a contribuição:
https://github.com/backend-br/opensource-br
https://dev.to/womakerscode/hacktoberfest-conheca-os-projetos-open-source-da-womakerscode-2doj
https://jtemporal.com/projetos-brasileiros-para-fazer-pull-requests-nesse-hacktoberfest-2021/
https://ok.org.br/noticia/hacktoberfest-2021-na-okbr-contribua-com-projetos-brasileiros-de-inovacao-civica/
Ou só procure no google por “open source repositórios hacktoberfest” (o hacktoberfest é só pra facilitar achar :) )
Ou contribua para algum projeto que você use durante seus estudos de código.
Bem, por acho que hoje é isso. Desejo que esse artigo tenha ajudado você em alguma coisa, se ajudou deixa seu comentário ai, taca o coração e o unicórnio, salva, manda pra vó e tudo mais. Se eu puder melhorar em alguma coisa avisa ai.
Um grande abraço para você e vamos fortalecer a bolha dev!
Rodrigo “Pokemaobr” Cardoso
Caso você queira me ajudar a continuar criando conteúdo para devs, me ajude no apoia.se, assista minhas lives na twitch e me siga no twitter.
Top comments (25)
Contribuir para projetos open source é na minha opinião o melhor a se fazer. Mas esquece esse papo de hacktoberfest. O ano inteiro é hora de contribuir e 99% dos projetos estão abertos a contribuições.. Procure por issues taggeadas como good first issue e seja feliz.
Exatamente. Eu usei o hacktoberfest só como parametro de procura pq como o pessoal fica alvoroçado de criar conteúdo para engajar no final do ano é mais fácil ver. A dica do good first issue é muito legal! Obrigado pela contribuição
como assim: good first issue? poderia explicar melhor por favor?
Desculpa o incomodo sou novo ainda e to tentando entender como posso me destacar da melhor maneira.
É uma tag que estão em alguns repositórios do github para dizer que aquele repositório tem issues de fácil resolução e que seriam uma boa para você começar a contribuir! Para achar esses repositórios é só procurar pelo tópico good-first-issue nesse link ai. github.com/topics/good-first-issue
entendi, mas assim, outra duvida de iniciante, como isso conta pro meu github? eu faço um branch, corrigo e peço pra ser avaliado ou algo assim? Porque qndo eu desenvolvo um projeto e subo ele pro github, fica la nos meus repositorios né...
Enfim se ja tiver algum conteudo explicando essas coisas me passa por favor para que eu possa aprender mais... se não tiver e puder fazer deixo de sugestão: "Github para iniciantes"
Para você contribuir com algum repositório você vai fazer um fork com isso o repositório alvo estará linkado com sua conta do github. Então. Posso fazer um tipo de artigo desse aqui sim. Mas acho que já tem um artigo que é bem completo sobre esse tema que é esse Do Fernando Daciuk @fdaciuk : blog.da2k.com.br/2015/02/04/git-e-...
Muito obrigado cara pela sua paciência e por compartilhar seu conhecimento, vou conferir o artigo do Fernando, mas se por ventura fizer algo seu tb, vou beber das duas fontes. Brigadão.
Curti muito seu artigo mano. Inclusive quando eu comecei a minha faculdade e comecei a aprender C eu criei um pequeno jogo, eu diria que é uma versão melhorada do pedra, papel e tesoura kkkkk eu adicionei lagarto e spock pra jogar contra o pc. Quando eu assistia a serie the bigbang theory eu vi um dos personagens brincando com isso e achei que seria legal criar esse jogo xDD
Cara, entrei hj no dev.to por causa de você. To curtindo mto a plataforma e seu conteúdo, obrigado e continua assim.
To consolidando e relembrando oque sabia de html, css e js e to doido pra pular e desenvolver algum projeto meu e fico o tempo todo pensando em ideias legais para aplicar, seu texto so reforçou algo que eu ja imaginava: Td mundo ta fazendo as mesmas coisas... preciso encontrar algo para me destacar.
+1 unicornio, qndo descobrir pra que serve conta pra nos, tmj...
Grande Poke, também acho tem que dar um tapa nesses clones de interfaces kkkk, brincadeiras a parte também acho que tem que valer a criatividade. Embora seja muito dificil mesmo encontrar um problema real (mesmo nosso) e nesse ponto sou o pior mesmo kkkkk... mas também vou ver esses "good first issue"
que maravilha
Maravilhaaaaaa e sucesso sempre, valeu pela força!
Muito bom o artigo
Muito obrigado João Pedro
Excelentes dicas!!! Com certeza vai ajudar a galera que esta começando, muito obrigada 💜
Que isso Jess, obrigado você por apoiar o trabalho e fazer parte da criação desse conteúdo :)
Top d+++ Poke, vou seguir essas dicas...
Brigadaço pelo apoio de sempre lindão!
Sugestões tops, valeu pelo conteúdo e pelas dicas, Poke!
Conteúdo e dicas :) Valeu você Morganna pelo apoio de sempre!
que maravilha
Valeu demais pela força de sempre Levxyca