Por onde e como começar nesse mundo imenso que é a programação?
Hamilton Junior
Este artigo contém dicas para você avançar na carreira.
Breve introdução
Hoje muitas pessoas querem aprender a desenvolver tecnologias inovadoras, que podem mudar a vida de outras pessoas para melhor.
Mas quando se deparam com a enxurrada de ferramentas que elas podem utilizar, acabam por ficar ansiosas e querem aprender tudo de uma vez.
Digo por experiência própria, mas não é bem assim que as coisas funcionam.
Imagine você tentando aprender a dirigir, pilotar moto, tanque de guerra, avião e navio.
Você consegue fazer tudo isso? Consegue, mas será um expert em tudo? Isso talvez não.
Então foi pensando nisso que eu estou aqui para te ajudar.
Crie o hábito de ler
A minha primeira dica para você é: crie o hábito de ler. Você terá muitas dúvidas, no início da sua carreira e até mesmo no decorrer.
E muito conteúdo que você procura estará escrito em posts no Google.
Então, se você tem preguiça de ler, como eu tive no começo, isso pode te atrapalhar um pouco, você dependerá de vídeo aulas que te enfada muito.
Imagina que você está desenvolvendo um app e precisa de determinado código.
Indo pesquisar no Google você levaria, por exemplo, 3 minutos para solucionar o seu problema, mas indo em um vídeo no YouTube, você vai ter que ficar lá por no mínimo 7 minutos ouvindo o instrutor falar “curta, compartilhe e blá blá blá”, quando a sua solução levaria apenas 2 ou 3 minutos.
Claro que você pode avançar o vídeo, mas nem tudo que você irá procurar sobre determinada ferramenta vai está claramente explicado no YouTube, tem coisas que só estarão claramente explicados na documentação daquela ferramenta.
Então, vale muito a pena investir o seu tempo lendo, hoje eu não tenho mais aquela preguiça chata de ler, mas se eu tivesse me esforçado para ler mais antes hoje eu estaria bem mais avançado nos meus estudos.
Aprendendo as Tecnologias
A princípio nada parecerá fácil.
Hoje umas das linguagens que eu mais acho fácil é HTML.
Quando estava iniciando, fui procurar um vídeo no YouTube sobre esta linguagem, e… a minha experiência não foi das melhores, confesso que quando eu vi o código e como era “complexo” naquele momento, eu simplesmente desisti da programação (por um tempo).
Mas eu queria aprender a programar, porque eu gosto muito disso e queria saber mais como funcionava a “coisa”.
Mas aqui, bem no início da minha jornada, cometi erros que me custaram muito tempo e dinheiro.
Eu agora, depois de 3 anos de experiência, conheço muitas tecnologias, uso micro serviços, e etc… mas quando estamos iniciando, só conhecemos o básico do básico, literalmente.
E aqui foi um dos meu primeiros erros, como não conhecia praticamente nada, comprei um curso defasado, que me prometia mundos e fundos em apenas dois meses por apenas R$311 (estava em promoção, olha que fantástico).
O desfecho disso?!
Até hoje não completei aquele curso, pelo fato de que as abordagens do instrutor não são atualizadas, apesar de que o curso era de 2018, ou seja, comprei um curso em 2019 (se não me falha a memória), mas as abordagens são antigas e desatualizadas.
Como você pode resolver isso?
Então pense bem antes de comprar um curso a esse preço, sem antes saber como ele realmente é “por dentro”.
Um conselho que eu te dou sobre esse assunto, é: quando você escolher a tecnologia que quer aprender dá uma olhada no YouTube, mas foque mesmo em procurar uma plataforma que tenho uma melhor organização dos seus cursos, o YouTube é meio “onde a vida me levar eu vou”, lá você começa assistir o vídeo de como criar seus primeiro código em HTML e no fim pode acabar assistindo um vídeo que explica como são feito os foguetes.
Bem, isso não é ruim, talvez você queira construir foguetes.
Mas para cursos gratuitos existem a Digital Innovation One, Curso em Vídeo (do professor Gustavo Guanabara), a Udemy (lá tem cursos pagos e gratuitos).
Enfim, são diversas possibilidades.
Mas se você tem 300 contos em mãos e está pensando em comprar um curso, é melhor você avaliar melhor suas decisões, você pode comprar uma memória RAM para o seu pc, comprar 10 cursos na plataforma da Udemy, ou guardar esses R$300 e usar a própria plataforma da Digital Innovation One, aqui na DIO você pode assinar o Premium trimestral por 50 conto cada mês, e ainda ficar com 150 em mãos, enfim fica ao seu critério.
Escolha minuciosamente a sua Stack
Stack na programação é a sua área de atuação, ou seja, se você quer desenvolver a parte visível de uma aplicação web, então você quer ser uma pessoa desenvolvedora Front End, mas se quiser desenvolver os servidores, você provavelmente quer ser uma pessoa desenvolvedora Back end.
Mas aqui está a pegadinha, se você não escolher com exatidão o que você realmente quer fazer, você simplesmente vai está perdendo o seu tempo, o que é mais importante até mesmo do que o dinheiro (lembrando que, escolhas erradas podem fazer você perder tanto tempo, quanto dinheiro).
Exemplo, como tinha dito antes, quando iniciei eu não sabia nada disso, não sabia sobre back end, nem sobre front end, eu simplesmente queria atuar na área.
Fiz as escolhas erradas
Já tinha “perdido” o meu dinheiro, agora faltava perder algo ainda mais precioso: o meu tempo.
Sim, hoje eu sou dev back end, mas de início eu estudava sobre front end, o bom disso é que hoje eu tenho tal conhecimento.
Mas a questão é, eu poderia ter investido o meu tempo em algo que realmente fosse útil para mim hoje.
Então, você realmente quer ser front, back, isso, ou aquilo, escolha com cautela, para que no futuro você não olhe para trás e pense “perdi tanto tempo estudando aquilo, sendo que não era aquilo que eu realmente queria”.
Porque eu penso assim às vezes, mas sem arrependimento, vida que segue.
Como escolher a área de atuação
significado de nicho: https://pt.wikipedia.org/wiki/Nichos_de_mercado
Dentro desse nicho que é o desenvolvimento de software, existem várias áreas para você atuar.
Para exemplificar o que eu quero dizer eu vou supor que você quer escolher ser uma pessoa desenvolvedora back end, ok?!
Por onde começar
A primeira parte a se fazer é procurar o que realmente faz uma pessoa desenvolvedora back end.
Você pode fazer uma simples pergunta no Google, mas vou te dar uma breve explicação.
O Back-End, por sua vez, é a parte de trás de uma aplicação.
Essa parte a pessoa não vê, quando vai acessar o seu site/app, ou pelo menos esperamos que ele não veja.
Por exemplo, qualquer pessoa pode ver o código do seu front end quando estiver acessando o seu site.
Como?!
É bem simples, como o back end é a parte que o usuário não vê o front end é o oposto disso, ou seja, é tudo o que ele vê, desde imagens, vídeos, textos, etc. Até o código fonte do seu site pode ser visto usando poucos cliques no navegador. Enfim... O programador back end se preocupa na segurança, no banco de dados, na resposta do servidor, entre outras coisas.
Linguagens que são usada no back end
Aqui está o pulo do gato, onde iniciantes podem cometer erros.
Por exemplo, as linguagens mais usadas no back end são:
Golang (a linguagem de programação do Google): https://go.dev/ PHP: https://www.php.net/ JavaScript no NodeJS: https://nodejs.org/ Java: https://www.java.com/pt-BR/
Se você que aprender a ser um dev back end, talvez não faça nenhum sentido você querer aprender HTML, ou CSS, você pode até estudar, mas foca em uma coisa e vai, eu de início tentei atirar para todos os lados, hoje tenho mais conhecimento, mas se tivesse focado em apenas uma dessas, hoje meu conhecimento seria muito mais focado.
Veja o que Bruce Lee disse: Eu não temo ao homem que treinou 10.000 tipos de chutes, eu temo aquele que praticou um chute 10.000 vezes.
Decidi qual tecnologia vou usar e agora?!
Uma das coisas que podem acontecer contigo é querer aprender todas tecnologias ao mesmo tempo.
Você até pode fazer isso um dia, mas quando estiver iniciando isso pode se tornar um fardo muito pesado a princípio.
Por isso, eu disse mais acima para você escolher exatamente o que você quer, se você for na emoção do momento uma hora você vai fadigar daquilo e vai querer aprender outra linguagem/tecnologia.
Então comenta o mesmo erro que.
Eu comecei estudando HTML, CSS e PHP, de início, tudo ao mesmo tempo, sabe o que aconteceu né?!
Hoje não uso PHP, nem o HTML muito menos CSS.
Por isso te digo: pense bem antes de tomar uma decisão.
Você pode usar Grupos para tirar dúvidas, mas o Google tá aí para isso.
Muitas dúvidas podem aparecer no meio do seu aprendizado.
De início você vai querer entrar em grupos do facebook, whatsApp, entre outros, para lá tirar suas dúvidas.
Isso funciona? Funciona sim, mas você vai fazer uma pergunta e talvez vai esperar durante 20, 30, ou mais minutos, até que alguém te responda, e talvez a resposta dessa pessoa nem seja o que você procura.
Você pode simplesmente jogar aquela mesma pergunta no Google, que com certeza você terá suas dúvidas sanadas.
Talvez, por motivos de preguiça você não procure no Google, porque não quer ler posts e mais posts achando que vai passar horas para achar a sua solução.
Eu também tinha essa preguiça de início, mas você como uma pessoa resolvedora de problemas com certeza tem que criar o hábito de ler.
Programe em time
Recentemente eu fiz uma entrevista de emprego e um dos requisitos era trabalho em equipe.
Esse requisito é um requisito fundamental, pois quando você estiver atuando na área é muito provável que você vá atuar em um time nessa empresa e sem tal experiência talvez você não seja aprovado para a vaga.
Obviamente, você não precisa se preocupar tanto com as vagas, mas sim com o aprendizado, então busque meios de está sempre no meio da comunidade dev, seja em grupos canais no Telegram, aqui na DIO, no LinkedIn, no Discord, mas “esteja” em pelo menos um desses lugares, isso vai fazer com que você consiga se desenvolver mais rapidamente.
Como eu faço isso?
Mas você não tem tantos amigos que querem atuar no mercado de tecnologia, como conseguir esse tipo de experiência?
Então, existem várias formas, além das que eu citei acima, mas eu vou falar de uma que eu estou gostando bastante, o Discord.
No Discord você pode entrar em servidores (que é muito parecido com grupos no WhatsApp), e dentro desses servidores existem os canais.
Existem canais onde você pode compartilhar a tela do seu computador, ou seja, quando você estiver programando, estará sempre compartilhando a sua tela.
Com isso, é muito provável que outras pessoas estejam ali contigo, e com certeza vão te ajudar em caso de dúvida, a partir daí, você e elas podem compartilhar entre si as suas experiências, fazendo com que você avance ainda mais nos seus estudos.
Servidores no Discord que podem te ajudar ainda mais
Servidor da Digital Innovation One: https://discord.gg/cpb9P6qu
Servidor da Rocketseat: https://discord.gg/BaCNcQRw
Servidor da Codify Community: https://discord.gg/JZbqwsXS
Enfim, esses são alguns dos diversos servidores que existem no discord.
Caso queira mais é só fazer uma pesquisa no Google, ele é o nosso aliado.
Mas talvez você não queira usar o Discord
Como eu disse você pode usar outras “ferramentas” para te auxiliar na sua jornada, entre elas existem:
TabNews:
O TabNews é uma comunidade voltada para pessoas desenvolvedoras, existem diversos assuntos para pessoas que estão desde de o inicio da carreira e até mesmo para quem está mais avançado.
Digital Innovation One
Na DIO você pode publicar um artigo, expondo todas as suas dúvidas que alguém em algum momento vai te responder.
Para isso siga esse link: https://web.dio.me/articles
Grupos no LinkedIn:
LinkedIn é uma rede social voltada para vagas de emprego, vale a pena aparecer por lá.
Dev Brasil: https://www.linkedin.com/groups/3078301/ Desenvolvedor JavaScript: https://www.linkedin.com/groups/12454019/
Entre outros grupos, você pode pesquisar no próprio LinkedIn: https://www.linkedin.com/
Grupos no Telegram
Lá no Telegram você pode procurar por grupos específicos, por exemplo, se você está estudando JavaScript, basta você ir na barrinha de pesquisa pesquisar por “JavaScript” e voilá aparecerá um ou mais grupo, a partir e daí é só você entrar e interagir para tirar as suas dúvidas.
Segue alguns grupos:
Grupo Estudos Golang: https://t.me/grupoDeEstudosGolang
Cafeína Help | Iniciantes em TI: https://t.me/CafeinaVagasChat
Developers: https://t.me/devs_brasil
Desenvolva as suas Soft Skills
Já falamos muito sobre Hard Skills, que é você aprender tecnologia, ferramentas entre outros, mas você não é um robô, você precisa desenvolver suas habilidades interpessoais, ou seja, ser educado, saber lidar com situações difíceis, ou seja coisas que você faz pessoalmente, ou em qualquer área que você possa atuar.
Assim como a maioria, ou uma boa parte, eu sempre estive à procura de trabalho freelancer.
E uma experiência que me "testou" como pessoa, foi quando eu estava trabalhando como freelancer, desenvolvendo uma landing page para um cliente.
Porém, eu cometi um erro, que foi desenvolver a landing page sem contrato (bem louco), as alterações nunca acabavam mesmo depois de meses, sem falar que tive que esperar bastante para receber o pagamento, mas a todo o momento eu fui paciente com essa situação, porque afinal de contas não é o dinheiro que me faz "andar", ele não me leva para frente e eu não acho legal discutir com alguém por um bem material.
No fim das contas eu recebi o meu pagamento e a pessoa que me contratou recebeu o seu site responsivo e bonitinho.
Então, hoje eu tenho uma ideia de que não vale a pena discutir esse tipo de coisa.
Ou seja, seja paciente mesmo quando o assunto é dinheiro, não tente culpar os outros por algo que você também tem culpa, porque o mais correto era eu ter pegado o projeto com um contrato.
Ah! Desenvolvi o site em umas 2 ou 3 semanas e só recebi depois de 6 meses.
E como desenvolver as minhas Soft Skills?
Eu posso falar como eu desenvolvi as minhas e como isso me ajuda nos dias de hoje.
Uma das coisas que tem me feito ser uma pessoa melhor, é me colocar no lugar do "próximo", isso acaba me impactando muito como um profissional, pelo fato de que eu não irei fazer algo que eu não goste com outra pessoa.
Hoje eu estudo muito sobre as linguagens de programação, e a melhor maneira de programar uma aplicação, mas tudo aquilo que pode impactar a programação em si chama a minha atenção, como, por exemplo, a diversidade, inclusão...
Hoje me considero uma pessoa muito evoluída, tanto profissionalmente, quanto pessoalmente. Digo isso com convicção e a minha esposa é testemunha disso, nós já passamos por poucas e boas, a cada dia que se passava, nós aprendemos com os nossos erros e nos tornamos pessoas melhores.
O que não é diferente nos dias de hoje apanhei muito nessa área, já passou até o pensei em desistir, mas com determinação eu consigo seguir adiante.
Ou seja, combina um pouco de determinação, paciência e educação que você consegue ir muito mais longe.
Aprender é fundamental, mas nem sempre os riscos valem o aprendizado.
Eu me inscrevi em um site freelancer uma vez, mas para fazer parte dos freelancers "premium" eu tive que fazer um teste para certificar os meus conhecimentos e eu já havia criado outras contas em outros sites freelancers, mas sem retorno financeiro.
Aqui nesse ponto eu cometi um grande erro.
Digo isso porque eu me lembro que estava estudando a linguagem Go, acabei me atrevendo a não usar JavaScript (que é a linguagem de programação que tenho mais experiência), mas sim a linguagem que eu estava aprendendo (Go), fiz isso porque achei a curva de aprendizagem melhor com Golang.
Lembre-se! Nem sempre suas decisões são as corretas a se fazer.
Tive muitas dificuldades, pois havia muita coisa que eu não sabia sobre a linguagem, mas em meio a tudo isso eu aprendi muita coisa sobre a programação em si, coisas que antes eu não sabia, ou mesmo sabendo, ainda tinha muita dificuldade para aplicar e isso foi um grande avanço para mim.
Fazer aquele teste, me impulsionou a estudar SOLID e Clean architecture.
Mas eu não digo que foi uma experiência em "vão", porque, com essa experiência, se eu for fazer algum outro teste, com certeza eu irei usar JavaScriptou Typescript que são as linguagens que eu tenho mais domínio e tenho experiência.
Obviamente em uma entrevista de emprego ou outra coisa parecida, não irei usar a linguagem que estou estudando, mas sim a que eu tenho mais domínio.
Como diz o ditado: "a prática leva a perfeição"
Mas a minha prática com Golang naquele teste/projeto me fez aprender muito, mas não acho que foi um bom lugar para eu praticar aquela linguagem.
O que tenho para te dizer é, que nem sempre vale a pena arriscar tanto quando tem algo de muito valor em jogo, já que eu não passei no teste.
Aprenda inglês o quanto ante
Por último, mas não menos importante.
Hoje o inglês é fundamental, em praticamente todas as áreas, e não é diferente nessa.
Hoje quando estou programando, dou preferência para escrever tudo em inglês, desde o código em si como até mesmo os comentários.
Eu faço isso porque é a maneira que é adotada pela Comunidade Dev.
Muito conteúdo que você irá procurar poderá estar em inglês e talvez nunca seja traduzido para o nosso português, você até consegue usar uma ferramenta para traduzir, como o Google Tradutor, mas cá entre nós, o que é mais produtivo? Usar o Google Tradutor ou você mesmo traduz instantaneamente?
Hoje, depois de longos 3 anos, não sei falar inglês e uso muito o Google Tradutor, talvez se no início, a uns 2 anos e 6 meses atrás, eu tivesse me esforçado para aprender inglês diariamente, hoje com certeza estaria tão avançado que não precisaria do Google Tradutor, pelo menos não para ler.
Comecei a estudar inglês recentemente, mas nunca é tarde demais não é?
Espero que tenha gostado!
Caso v
Cara eu realmente pensei que tinha sido cópia de algum lugar, fico feliz que seja tudo sua experiência e caaaaaara, tô estudando recentemente HTML e CSS no curso em vídeo, terminei literalmente hoje o módulo 2 de 5 e assim que acabar vou pra Javascript, estudo junto com um amigo (irmão pra mim), e maluco eu vou salvar o link num grupo privado por que realmente isso é um grande ponto de vista, e algo muito motivador, agradeço por você ter emprestado seu tempo para escrever para a comunidade DEV algo tão útil. abraços mano !
CARAMBA CARA! O que foi isso que acabei de ler? Isso me ajudou muito e ainda vai me ajudar mais muito obrigado, vou até favoritar por que gostei muito, parabéns pelo tópico.
Olá hamiltonjr,
Uma dica, tenta não copiar o conteúdo de outros lugares, o objetivo da comunidade é escrever e ajudar com suas experiência para criar um lugarzinho melhor na internet, então caso for copiar algo de fora tenta escrever junto com suas experiências e dando exemplos. Assim não fica coisas repetidas em vários lugares, o que dificulta quem for fazer uma pesquisa.
Abraço.