Conheça a notação de Big-O

Se você trabalha, ou sonha em trabalhar, com programação, a notação de Big-O, ou também conhecida como grande ó, ou Ózão pelos mais íntimos.

Ela é uma notação criada para facilitar a explicação da demora de um algoritmo, ou seja, ele explora quanto tempo demoraria para rodar um algoritmo.

Se fossemos comparar um algoritmo como o abaixo em dois computadores com hardwares diferentes, o que aconteceria?

Continue lendo “Conheça a notação de Big-O”

Consiga seu primeiro emprego de dev com 3 dicas para o seu CV ou Linkedin!

Você já se perguntou por que tantos devs têm perfis badalados no LinkedIn e também já quis ter um assim? Ter ofertas de recrutadores em sua Inbox em um sábado de manhã e ainda poder escolher pela que mais lhe atrai e tem mais benefícios?

Embora não sejam tão secretos assim, os métodos que eu vou ensinar aqui vão fazer você ter uma rede de contatos de alta qualidade e que possa lhe impulsionar para o seu primeiro job ou vaga de emprego em tech.

O conteúdo de seu perfil não deve ser fixo (assim como seu currículo também não deve)!

A maior falácia que todos falam a você é: você deve fazer UM currículo e mandar para as vagas que você mais se sentiu interessado, mas a maior verdade é que: Você pode aumentar muito a sua chance de conseguir uma vaga se você tiver um perfil otimizado para ela.

Vejamos um exemplo: Existe uma vaga para desenvolvedor Python que deve saber os frameworks X, Y, Z e W e ter conhecimentos de BackEnd e Machine Learning.

A primeira reação de uma pessoa que não tem todo os “requisitos”que o RH impôs seria: não vou nem tentar aplicar, não tenho esse know-how suficiente para poder entrar nesta empresa.

Achou errado!

Embora você não tenha os requisitos, mas tenha a vontade de aprender e tenha algo próximo a área de atuação da vaga, você pode aplicar sem nenhum problema, afinal, o RH quem filtra os candidatos e não você.

Para você aumentar as chances dessa vaga você deve:

  • Trocar as descrições das vagas que você previamente trabalhou para algo mais próximo do que o que você vai fazer hoje. NÃO MINTA, isso é errado e antiético, mas aproximar a descrição de: desenvolvimento de softwares desktop Python para desenvolvimento em Python de Softwares ou coisas mais genéricas que podem te dar uma chance na vaga, ajudam muito!
  • O quanto mais coisas em comum com a sua vaga, melhor! Tire descrições de vagas de emprego e de experiências prévias que não te ajudam a chegar onde quer. Ao fazer isso, você prova que trabalhou nessas empresas e que fez algo importante lá, mas não relevante para o que deve ser exercido nesta última empresa.
  • Caso você não tenha experiência prévia ou tenha pouca experiência comprovável, deixe repositórios open source que você colaborou. Ao provar sua aptidão para codificar, você demonstra que pode trabalhar com código, em ambientes colaborativos e discutir aspectos técnicos.

Fotos de perfil: como escolhe-las?

Na verdade, esse tópico é mais uma dica que é útil, e não necessariamente será levada em conta (pelo menos não no currículo, afinal quem manda currículo com foto?).

Fotos que mostrem você em eventos da comunidade de tecnologia, palestrando ou dando algum curso podem te ajudar muito a se divulgar nos meios de contratação.

Como dica para foto de capa do LinkedIn, eu recomendo deixar a sua foto palestrando/dando aula/apresentando algo, assim mostra que você tem a capacidade de se comunicar bem com o público.

E como foto de perfil, recomendo deixar uma foto que evidencie seu rosto de maneira bem clara. Uma dos ombros para cima resolve bem este problema.

E agora vamos falar delas, as coisas que mais ajudam em seu LinkedIn: as recomendações!

Recomendações no Linkedin ajudam!

Pode parecer besteira, mas ter recomendações no LinkedIn faz com que seu perfil salte aos olhos de diversos recrutadores de grandes empresas.

A prova social é algo que faz com que as pessoas tenham como confiar mais facilmente em você e te coloca na frente de diversos currículos, pois existem pessoas que confiam em seu trabalho!

Então, para que você consiga ter o maior sucesso, peça recomendações para pessoas que trabalham contigo, para pessoas que estudaram com você, pessoas que já fizeram projetos contigo. Elas podem agregar muito em seu currículo e LinkedIn além de lembrarem de você caso tenham alguma nova oportunidade de trabalho nas empresas que eles estão.

Nosso bônus secreto!

Nós sabemos o quão complicado é colocar em prática essas idéias fora do papel e queremos te ajudar com isso! Para isto, estamos montando nossa newsletter de bate papo sobre dicas e desafios do mercado de trabalho tech!

Se inscreva abaixo:

Fique ligado nas novidades da RecrutaDev

Se inscreva e receba as novidades do mundo de RH para desenvolvedores.

Please wait...

Obrigado por se inscrever!

Dev Convidado: Filósofo e Pythonista @Riverfount

Nós da RecrutaDev, acreditamos que devemos trazer os desenvolvedores para perto da comunidade e ajuda-los a expor suas idéias, para isso, estamos criando esta série de posts com desenvolvedores convidados!

Dessa vez, o River, também conhecido como Riverfount ou Vicente Marçal, professor de filosofia na UNIR (Universidade Federal de Rondônia) e doutor em psicologia social pela USP conta como transformou sua carreira de filósofo para filósofo programador.

É contigo @River! xD

Filósofo e Pythonista: é possível?

Sou um professor e pesquisador apaixonado por tecnologia, programação e, claro, Filosofia. Descobri o Python enquanto buscava soluções para os meus problemas do dia a dia e com ele, entendi que posso ajudar outras pessoas também. Foi assim, desafiando-me a cada dia, que comecei a contribuir com projetos open source e acabei me tornando um aficionado em usar o que aprendo para automatizar as tarefas maçantes do cotidiano.

Já desde cedo tive acesso à tecnologia e sempre fui um curioso. Dentro da área de humanas, por assim dizer, sou um dos poucos usuários de Linux, pois gosto do desafio de aprender. O conhecimento é uma obsessão, não a toa que me tornei um filósofo, um amante da sabedoria.

Sou licenciado em Filsofia, mestre em Filosofia e doutor em Psicologia Social e foi justamente durante o doutora que encontrei-me com o Python. Isso se deu porque eu precisava, dentre outras coisas, fazer um levantamento de todos os trabalhos de mestrado e doutorado sobre a temática de minha Tese.

Elegemos o site Catálogo de Teses e Dissertações da CAPES (http://catalogodeteses.capes.gov.br) como fonte. O site tem uma boa ferramenta de busca, mas não permite que as pesquisas realizadas sejam salvas o que nos força a copiar e colar os resultados num documento. Claro que isso para uma pesquisa que te retorna poucos trabalhos é tranquilo, mas para minha pesquisa a qual eu tinha mais de 900 (novecentos) trabalhos, pois envolvia um período de 10 (dez) anos, era muita coisa para um control+c e control+v!! Como resolver isso?

Depois de um tempo de pesquisa por uma possível solução foi-me indicado pesquisar por Python e Webscraping. Claro, Python como linguagem de programação e Webscraping a técnica que eu precisaria implementar. Normalmente, nesse caso, o pesquisador lançaria mão de contratar alguém que pudesse fazer esse trabalho para ele, mas não foi o meu caso. Minha obsessão por conhecimento e paixão pela tecnologia me levou a estudar a linguagem de programação e a técnica indicada.

Não por menos, mas com ajuda da comunidade Python, essa um ponto fora da curva e que merece uma artigo só sobre ela, consegui em pouco tempo escrever um script em Python que acessa o referido site, faz a busca com os descritores e ainda filtra pelo intervalo de datas que preciso. Salvando a pesquisa em uma base de dados SQLite.

E não parou por aí. Como eu precisava, depois da coleta e análise dos dados, fazer tabelas e cálculos estatísticos, lancei mão do Python para esse processo também, que muito me ajudou para montar as tabelas de quantificação que precisava para submeter ao programa estatística que usei para minha pesquisa. Infelizmente, por falta de tempo com o prazo de finalização da Tese chegando ao fim, não consegui escrever um programa que fizesse os cálculos estatísticos que eu precisava, mas pude escrever um script que fez a quantificação que eu precisava, percorrendo os PDF’s das dissertações e teses que levantei e analise, totalizando primeiro as palavasr-chaves e, depois a partir das palavras-chaves, a qual escolhemos as 10 (dez) que mais apareciam nos trabalhos, verificando como essas palavras apareciam nos Resumos e, também totalizando as referências para saber quais eram as mais mencionadas e tudo isso em Python.

A paixão pela linguagem Python foi tanta que hoje estudo outras técnicas para auxiliar nas minhas pesquisas na área de Filosofia como NLP e outras bibliotecas como Pandas, scikit-learn etc. Além de colaborar com projetos open source diversos em Python para manter minha skill de programador ativa.

Está procurando seu primeiro emprego Python? Entre no PyJobs.com.br e encontre uma vaga

Você já criou seu blog de portfólio?

Há muito tempo atrás, entrei no fórum de um dos cursos que fiz e acabei vendo o seguinte tópico no fórum:

“Você já fez seu blog, hoje?”

Essa pergunta acima me fez refletir: há muito tempo atrás eu escrevia tutoriais de programação, mas parei por diversas questões pessoais e profissionais.

Motivos para você ter um blog

Motivos realmente não faltam, você pode usar seu blog para:

  • Documentar projetos que você desenvolveu
  • Mostrar funcionalidades de bibliotecas/linguagens/hardwares e softwares 
  • Demonstrar novas habilidades
  • Treinar a escrita em suas línguas de interesse

Mas por que um desenvolvedor deve ter um blog?

Mostrar conteúdo e habilidadede é extremamente importante nos dias de hoje. Para isso, uma das possíveis formas é utilizar um blog, que é uma plataforma hospedada em algum provedor de hosting, ou seja: ninguém pode tirar seu blog de você, apagar seu blog, ou ainda sumir com ele. Ele é responsabilidade sua.

Produzir conteúdo técnico sobre as linguagens, frameworks e demais peripécias tecnológicas faz com que você se torne uma autoridade, inclusive, algumas das certificações como Microsoft Valuable Professional ou Google Developers Expert tem como requisito a apresentação de trabalhos feitos para ajudar a comunidade tece, além de indicações de pessoas que já são MVP ou GDEs.

Como você pode criar um blog agora?

Para criar um blog hoje em dia é muito simples: bastam alguns cliques e você tem no ar um WordPress inteirinho para chamar de seu.

Uma das hospedagens que encontramos e que achamos que faça sentido para os devs é a Umbler, uma plataforma desenvolvida pelo time da RedeHost que permite com que você configure VPSs, faça uploads via CI/CD e tenha tudo o que você precisa.

Para criar um site WordPress, basta seguir o Wizard da Umbler e depois configurar um banco de dados, assim você poderá ter seu blog em poucos instantes no ar.

Gostou desta dica? Compartilhe com seus colegas, amigos e programadores conhecidos!

Conheça a ferramenta que reduzirá o bug de seus códigos!

Não vamos falar sobre coaching neste texto e nem sobre programadores mágicos (por mais incrível que pareça)

Hoje vamos falar sobre uma coisa que já é bem debatida em diversos livros de engenharia de software: Testes de códigos e filosofias de testes

O que são testes?

Testes são códigos que literalmente testam seu código como uma forma de validar que estão funcionando e que o deploy pode ser feito tranquilamente. Basicamente eles são seu selo de garantia!

Resultado de imagem para eçe eu agarantiu

Segundo a wikipedia, testes de software são:

O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar, se relaciona com o conceito de verificação e validação. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.

O teste é um processo realizado pelo testador de software, que permeia outros processos da engenharia de software, e que envolve ações que vão do levantamento de requisitos até a execução do teste propriamente dito.

Para você entender melhor, vou falar dois exemplos de testes:

  • testes unitários: que testam uma unidade do seu codigo (uma função ou uma classe) de maneira independente;
  • testes de integração que tratam de testar a integração entre funções, apis e diversas comunicações

Caso você queira saber mais sobre os outros tipos de testes, as Live de Python demonstram mais alguns deles, disponibilizadas neste link. (obrigado @dunossauro)

Tá… Mas porque eu vou perder meu tempo fazendo testes?

Esta pergunta é super válida, afinal estamos sempre aprendendo sobre novas modalidades de código!

Então vou responder a esta pergunta com outra:

Você gosta de re-trabalhos e de procurar bugs?

Se a sua resposta for não e você não conhece testes… Meu amigo, chegou a sua hora de programar mais feliz.

Quando você escreve testes, você pode ter mais tranquilidade* no deploy de uma aplicação, já que as partes cruciais de seu código foram desenvolvidas pensando nos erros que podem dar e possíveis retornos que podem ser dados.

* há uma pequena ressalva aqui, dependendo de como for feito os testes, pode ser que por mais que tudo esteja passando, algum caso de teste ainda não esteja funcional, então seus testes ainda não cobrem suficientemente bem aquela função.

Tá, e o que eu devo testar?

Depende de sua filosofia de código, prazos e criticidades.

Existem filosofias de código, como o TDD, que se prega que antes de escrever qualquer código, devemos escrever os testes.

Resultado de imagem para tdd

Nem sempre será possível escrever os testes anteriormente ao código se ele já estiver em produção ou for algum produto legado, mas sempre que for mexer em algo que já rode, colocar testes é uma boa opção.

Uma forma muito boa de se trabalhar em time é definindo o quanto de cobertura (métrica que permite ver o quanto seu código está coberto pelos seus testes) mínima que seus códigos terão, fazendo com que um critério de qualidade prevaleça.

Também há pessoas que preferem escrever os testes apenas depois de terem validado que seus códigos fazem sentido comercial para a empresa, usando-os como uma forma de manter a qualidade, funcionalidade e mantendo a sanidade de seu time.

Gostou de nossas dicas? Compartilhe este texto!

Fonte das imagens:

Home

Como melhorar suas chances de entrar no tão sonhado trampo tech e aprender bastante!

A maioria dos alunos de faculdade, ou até mesmo os recém-formados, já passaram pelo seguinte momento de angústia:

Enviou o currículo para a empresa que queria trabalhar, mas por algum motivo, acabou não conseguindo a tão sonhada vaga por falta de portfolio, de experiência em projetos ou por ser jovem demais.

Estou escrevendo este texto para mostrar como você pode vencer isto e se preparar para o mercado de trabalho da melhor forma possível, por isso, separei algumas alternativas de oportunidades que você seguir e realizar para tentar aumentar suas chances de entrar no mercado de trabalho.

Faça os cursos da sua área e publique seus projetos

Sabe aqueles cursos da sua área que você tanto quer fazer?  Pegue um tempo livre que você tenha e utilize-o para se aprimorar: faça o curso, desenvolva o projeto que é ensinado, crie um repositório no GitHub e hospede todos os arquivos no GitHub.

Se você colocar estes códigos em seu GitHub, você já sai na frente de muitos candidatos por ter experiência naquele tipo de aplicação e saber usar o Git de forma efetiva.

Crie toy-projects para fixar aprendizagens

Resultado de imagem para learning pyramid

Realizar pequenos projetos com o objetivo de fixar a aprendizagem pode parecer besta, mas pesquisas, do National Training Laboratories, mostram que você retém cerca de 75% do aprendizado se você praticar ao fazer algo com aquele conhecimento.

Ou seja: se você aprendeu a criar funções em Python, crie funções em Python para seus projetos pessoais, ou crie um novo projeto para testar seu conhecimento e sua taxa de retenção de aprendizagem poderá ser, na média, de 75%.

Compartilhe conteúdo

Resultado de imagem para feynman

Seja nos eventos de tecnologia, na faculdade ou até mesmo no bar, compartilhe o que você aprendeu. Compartilhar conhecimento é a melhor forma de fixa-lo, como vimos no item acima.

O nome dado a essa metodologia de aprendizado é uma homenagem ao professor doutor Richard Feynman (um dos cientistas responsáveis pelo projeto Manhattan), a Técnica Feynman é resumida da seguinte forma:

Você só aprendeu algo se conseguir explica-lo com simplicidade e facilidade.

E compartilhando conteúdos que você já sabe em diversas situações, para poder ajudar as pessoas, é a melhor forma de fixa-lo e de lhe tornar uma autoridade no assunto!

E o que você achou de nosso conteúdo? Compartilhe com seus colegas devs e distribua conteúdo!

Grande abraço,

Equipe RecrutaDev

Conheça as 3 dicas que vão fazer você se tornar um dev requisitado no mercado!

Você está em busca daquela vaga dos sonhos, mas a @ ainda não te chamou para trabalhar lá? Nós sabemos como é este momento…

Até eu já passei por este momento: estava muito afim de trabalhar em uma empresa de investimentos há algum tempo, mas infelizmente não fui chamado no processo seletivo por não ter o perfil que eles buscavam.

Fique ligado nas novidades da RecrutaDev

Se inscreva e receba as novidades do mundo de RH para desenvolvedores.

Please wait...

Obrigado por se inscrever!

Depois de um tempo de vivência nas comunidades de desenvolvedores, descobri que existe uma série de coisas que você pode fazer para ser notado pela @, e resolvi descrevê-las para você, assim tu não perderá tanto tempo quanto eu para resolver este problema.

Participe de eventos

Os eventos são a alma da comunidade de desenvolvedores, e embora muitos não acreditem, estão cheios de oportunidades. Vá nos eventos de diversas tecnologias, não apenas aquelas que você conhece.

Converse com as pessoas, entenda as necessidades. Muitas vezes você pode desenvolver um produto, ou encontrar uma vaga em uma empresa massa. Muita coisa gira em torno do papo durante os eventos e os pós-eventos.

Apareça nas redes

A sua rede (virtual ou pessoal) é o seu maior ativo, procure sempre manter a sua rede ativa: poste vídeos, faça textos, monte slides e tutoriais para poder dar acesso às informações de maior qualidade a todos.

Se a sua rede estiver bem alimentada, ela provavelmente lhe retornará com vagas, conteúdo de excelente qualidade. Ou seja, sempre que possível, compartilhe conteúdo, códigos e aprendizagens, isso lhe impulsionará na carreira.

Palestre

Divulgar conteúdo em eventos e em Webinars é de grande serventia, e ajuda muita gente a aprender. Palestras, por si só, são importantes para criar uma autoridade em um assunto como, por exemplo: desenvolvimento de pipelines de machine learning.

Com estas palestras, muito capaz de você ficar em evidência para muitas empresas, aumentando suas chances de ser recrutado em uma boa vaga.

 

E aí, o que achou destas dicas? Espero que você tenha curtido muito e compartilhe com outros colegas nossos para, todos, podermos ter acesso a melhores oportunidades de emprego.