Leonardo Fiedler

Mobile & Web DevData SciencePodcaster
Portfolio|Blog|Sobre

Meus 100 dias de código - #100DaysOfCode

2020-01-14

Os 100 dias de código é um desafio que tem por objetivo o foco e a continuidade dos estudos de programação. A ideia é programar/estudar programação por pelo menos uma hora todos os dias durante CEM DIAS SEGUIDOS!!! Isso inclui: finais de semana e feriados também, viu?! Acho que já dá para imaginar o tamanho do desafio, e claro, eu não poderia ficar de fora dessa! Venha acompanhar como está indo o meu progresso, prometo que colocarei descrições simples e em formato RPG para que não fique chato de ler! E tem mais, prometo que colocarei links e vou deixar tudo o mais explicado para que você também se empolgue em estudar e quem sabe faça o desafio também!

Dia 01

A jornada do guerreiro solitário se iniciou em uma taverna com uma batalha com JavaScript (no primeiro dia da semana OmniStack). Além disso, foi um bom momento para estudar outros inimigos que estavam por perto, como: Yarn, NPM, Chocolatey e brew.

Links do dia:

Oh My ZSH, Dracula e Spaceship - Configurando o seu terminal para deixar bonito e funcional.

Yarn x NPM - Explicando as diferenças entre dois dos mais famosos package manager voltados para JavaScript/Node.

Dia 02

Numa galáxia não tão distante assim, nosso herói segue solitário na semana OmniStack. Dia de hoje também foi bom para uma continuação de leitura do livro Clean Code e também de debates na internet sobre distros Linux, além da atualização e publicação destes conteúdos no blog! :D

Links do dia:

O que é Gnome? KDE? XFCE? - Explicando as diferenças entre os Desktop Environments disponíveis no Linux.

The State Of JS 2019 - Pesquisa com desenvolvedores sobre o mercado e uso de JavaScript e suas bibliotecas.

Levels.fyi - Ferramenta que procura mostrar quais são as empresas que mais pagam, em termos de salário. Muito interessante para ter uma base de salário que o mercado lá fora pode oferecer!

Dia 03

No meio de uma batalha intergalática, entre iOS e Android, nosso herói segue sua jornada tentando passar desapercebido pelo iOS enquanto migra para o Android e mesmo assim se mantém concentrado para salvar o dia! Este dia foi marcado pelas batalhas no backend do curso da Semana Omnistack, com Express e também da migração de iOS para Android. Aproveitei também para ler mais um pouco do livro Clean Code.

Links do dia:

Ainda que eu lhe desse milhares de links, você não entenderia!

Dia 04

Durante sua jornada, enfrentando o calor escaldante e as trovoadas de fim de tarde, nosso bravo guerreiro segue firme com seus estudos (até de madrugada), na semana Omnistack, tendo completado a parte de backend. Uma experiência árdua, mas muito interessante, que contou com batalhas duras contra vilões conhecidos, como: Node, Express e MongoDB. Além disso, está sendo bem interessante a estrutura de pastas criada em aula.

Links do dia:

Meu projeto no Github da Semana Omnistack - Criei um repositório no GitHub afim de compartilhar os meus avanços da semana Omnistack. Aproveitei o momento e também adicionei um arquivo chamado Notes.md, com algumas notas que fiz durante o aprendizado que obtive.

Dia 05

Ao caminhar pelo vale das sombras, o guerreiro desbrava novos caminhos. De longe, ele avista um inimigo, poderoso e com reputação de caçador, o guerreiro impõem sua espada em sua direção e parte para cima em uma luta que poderá levar dias para ter um vencedor. E o inimigo, quem é? Seu nome é React! Mas não se engane, ele pode parecer pequeno e fácil de ser derrotado, mas ele vem com toda a sua gangue junto. O dia de hoje foi voltado para estudar na Semana Omnistack e aprender um pouco mais sobre React e fazer o frontend da aplicação da semana (Link do GitHub no dia 04). Também foi um momento para ler alguns artigos aleatórios, mas muito interessante e que agregam bastante conhecimento.

Links do dia:

How is computer programming different today than 20 years ago? - Artigo que compara as semelhanças e diferenças de se programar nos tempos atuais e a 20 anos atrás.

Obfuscação de código em JavaScript - Artigo que mostra o que é uma obfuscação de código e como ela pode ser usada no dia a dia como forma de segurança para o JavaScript de uma página web.

Utilizando Docker para desenvolvimento frontend - Artigo que mostra como é possível utilizar Docker junto das tecnologias frontend.

Dia 06

Ao chegar em um vilarejo, o bravo aventureiro conhece as belezas de sua terra, lapidadas linha a linha pelo CSS (o guerreiro tentou entendê-las, até brincou com flexbox, mas falhou). Os locais ficaram espantados quando o guerreiro falou que acabara de derrotar React, em uma batalha de várias horas. React utilizava também CSS e inclusive levou esta tecnologia para o povo deste vilarejo, onde eles conseguiram avançar suas tecnologias e deixar o local muito mais bonito e aconchegante, o que atraira aventureiros e turistas. O dia de hoje foi novamente voltado para os estudos da Semana Omnistack, onde foi possível concluir a aplicação React e de quebra mexer com Flexbox do CSS (algo que eu nunca vi, nem mexi eu só ouço falar rsrs).

Links do dia:

Conceitos de Clean Code - JavaScript - Um repositório incrível com várias dicas de Clean Code, SOLID e outros - e o melhor, totalmente open source e em português (traduzido).

Flex Container - Aqui o Flex Container (aquilo que você coloca na propriedade display: flex no CSS) e que pode te ajudar a dividir conteúdos na sua página web de maneira muito mais fácil. Tudo explicado com bastante detalhe e em português!

Dia 07

Ao sair do vilarejo, o nobre aventureiro se depara com o filho de React, o React Native! Mas espere, desta vez ele não veio por vingança e sim para ensinar a este aventureiro como ele pode melhorar o desenvolvimento de aplicações móveis. Ao sacar a sua espada e proferir os primeiros golpes, o guerreiro já consegue ver como seu conhecimento foi aprimorado. Ao final, o React Native ainda o guia pelos caminhos do Socket.IO. O que será que o aguardam? O dia de hoje foi marcado pelo fim da semana Omnistack (Yeeeh) e também pelos conhecimentos aplicados em React Native e também WebSockets (com Socket.IO).

Links do dia:

Skylab - Rocketseat - Se você, assim como eu, terminou a semana Omnistack (ou perdeu ela), saiba que ainda tem bastante conteúdo sobre JavaScript na Plataforma Skylab da Rocketseat, que pode te ajudar muito, desde JavaScript, ES6 até React e React Native! Além disso, eles estão lançando a GoStack e também a Launch Base, sendo que a GoStack é para quem já tem experiência e quer se aprofundar na Stack e o Launch Base é para quem está começando!

FreeCodeCamp - Caso você queira se aprofundar ainda mais no HTML, CSS e JavaScript, a FreeCodeCamp pode ser uma ótima opção para você!

Dia 08

O heroi retorna ao vilarejo e lá encontra uma taverna, onde escuta alguns seres místicos falando de tecnologia. E então ele decide entrar para saber mais... E de repente, ele descobre muitas coisas sobre seu mundo ao redor e sobre os mistérios que o futuro lhe aguarda. O dia de hoje foi marcado pela gravação de um podcast, então não tive muito tempo para estudos. Ainda assim, consegui ler um pouco do livro Clean Code (amanhã devo praticar mais - e vou dar foco para Data Science).

Links do dia:

Usar ou não Expo? - Coloquei esta pergunta no Twitter e gerou alguns debates, a maioria da galera foi contra ou falou para tomar cuidado. Embora o Expo facilite bastante o trabalho, ele pode acabar dando bastante dores de cabeça na hora de gerar a versão de produção.

Dia 09

Após sair da Taverna e descansar um pouco, o aventureiro chega a um totem abandonado e consegue fazer um fast travel (viagem rápida) para um universo mais profundo. Ao chegar, logo é desafiado a relembrar seus movimentos sobre Deep Learning em um curso e também lidar com o Python, Pandar, TensorFlow, Matplotlib e tantos outros inimigos poderosíssimos! Será que ele conseguirá derrotá-los?! O dia de hoje foi marcado pelo início dos estudos em Deep Learning (Aqui nos 100 dias de código) e de uma revisão. Continuei um curso da Udemy que havia deixado de lado e também lendo alguns artigos interessantes! Os links do dia serão voltados para quem está começando em Data Science ou pretende se aventurar e entender um pouco de Deep Learning.

Links do dia:

Datasets para serem explorados da UCI - Um repositório com vários datasets para uso em Data Science (e o melhor, já prontinhos para usar).

Kaggle - Neural Networks For Beginners - O interessante deste link é que ele mostra a introdução a redes neurais de uma visão matemática e de programação! Não se assuste com as fórmulas, se você estiver começando e não estiver habituado, procure captar o conceito.

Dia 10

O guerreiro continua em sua derrocada por Machine Learning e Data Science, após algumas batalhas, ele aproveitou o momento para descansar um pouco o seu braço e ler mais sobre estes assuntos e aproveitou para baixar e configurar seu projeto do curso de Deep Learning. (Link do projeto e do curso abaixo)

Links do dia:

Curso de Deep Learning com Python de A à Z - Este curso é bem interessante para quem quer aprender um pouco mais sobre Deep Learning, Keras e NumPy.

Projeto meu no GitHub com exercícios do curso

Time de futebol do Liverpool usando Data Science! - É isso mesmo, o time do Liverpool usou Data Science para avaliar o desempenho da sua equipe e saber o que pode evoluir!

Dia 11

A aventura de hoje se inicia do mesmo modo que o dia anterior, por Machine Landia, mas agora aventurando-se pelo dataset Iris e desbravando os mistérios para descobrir os melhores pesos para que a classificação ocorra de maneira segura e confiável. O guerreiro continuará sua jornada por Machine Landia e ficará treinando suas skills para encarar oponentes do mais alto nível! Será que ele conseguirá derrotá-los?! Não perca os próximos episódios! Dia de hoje foi dedicado ao exercício e da retomada nos estudos do Keras e Tensorflow (apanhei um pouquinho hehehe).

Links do dia:

Deep Learning e o estado da arte em 2020 (Série do MIT) - Vejam esse vídeo, ele fala bastante sobre como chegamos até 2020 com Deep Learning, além disso, vale muito a pena dar uma vasculhada no canal do Lex Fridman no YouTube, caso você goste de inteligência artificial, pois ele posta diversos conteúdos muito interessantes.

Data Hackers - uma comunidade de Data Science brasileira - Se você quer aprender mais sobre Data Science e não domina tanto inglês, ou domina inglês mas quer trocar uma ideia com galera brasileira (e até mesmo aprender com materiais produzidos por br's), dá uma olhada nesta comunidade! Além disso, eles tem podcast (dá pra ouvir no Spotify :D).

Dia 12

O guerreiro continua sua interminável jornada por Deep Learning, mas hoje, ele aproveita também para ler sobre a documentação do Keras, bem como vislumbra o LeetCode e HackerRank, possíveis adversários em breve. Além do mais, o guerreiro continua executando o dataset Iris em seu computador (já que no dia anterior seu computador travou e ele acabou perdendo a execução). O dia de hoje foi de poucas evoluções, isto porque aproveitei o momento para rever alguns conceitos e também por conta de algumas dores no braço direito, que limitaram meu tempo de esforço em frente ao computador.

Links do dia:

Documentação do Keras - O Keras facilita bastante quando o assunto é Deep Learning, já contando com bastante abstrações e podendo rodar com o backend em TensorFlow e outros, o Keras pode ser uma ótima ferramenta para que você dê seus primeiros passos em Deep Learning.

Dataset Iris - O Dataset Iris (que é um tipo de planta), cujo objetivo é classificar a planta, baseado em quatro informações, se a mesma é do tipo: Virgínia, Setosa ou Versicolour.

Dia 13

O dia de hoje foi marcado pelo guerreiro fazendo side quests (sim, às vezes é bom variar hehehe). O guerreiro fez algumas missões secundárias, mais tranquilas, mas que lhe renderam algum aprendizado, principalmente revendo a linguagem C e também conceitos de eletrônica em geral.

Links do dia:

Java is Dead - Este artigo é muito legal, mostra como o Java (NÃO) está morrendo. Li há algum tempo atrás e vale bastante a pena a leitura, principalmente para os que continuam achando que a linguagem irá morrer. Pelo visto, não será tão cedo.

Dia 14

A jornada continua pelos vales sombrios do Data Science, dessa vez, o destemido herói usa de seu poder para ler artigos e estudar os poderosos adversários que irá enfrentar em breve! Será que ele está preparado?!

E o próximo episódio de nossa jornada será: Oi, eu sou o Aventureiro! Vou dominar todos os oponentes de Data Science, até não sobrar um para derrotar!

O dia de hoje foi marcado pela leitura de artigos e conceitos de Data Science, amanhã será de prática novamente!

Links do dia:

Data Science Cardio Weather - Pequeno projeto de Data Science que mostra uma API de consulta climática e faz algumas correlações que envolvem latitude, longitude com temperatura, humidade e outros.

Data Science - Guia de estudo de entrevista - Um guia com vários conteúdos que podem cair em perguntas durante uma entrevista para uma vaga de Data Science. Excelente para quem está procurando uma vaga na área e quer um review geral de conteúdo e também para quem quer ter uma visão geral da área.

Dia 15

A jornada do heroi retoma aos estudos de deep learning, desta vez, testando seus limites para resolver problemas de regressão, será que ele conseguirá se safar desta?

O dia de hoje, embora tenha sido pouco tempo, foi de bastante aprendizagem e exploração, pois tornei a continuar o curso de deep learning e desta vez, usando o dataset de carros usados (link abaixo), será possível fazer mais uma atividade.

Links do dia:

Dataset de carros usados - Um dataset real com informações de carros usados. O objetivo deste dataset é descobrir o valor de compra de um veiculo, com base nas suas informações. Um outro ponto interessante é que este dataset está disponível no Kaggle, ou seja, além da pré-visualização, você pode dar uma espiada nas soluções que outras pessoas fizeram e publicaram por lá!

Canal no YouTube chamado Didática Tech - Este canal é bem interessante, tem vários vídeos sobre inteligência artificial, Data Science, Python e R!

Dia 16

A aventura de hoje foi em um Dojo, onde destemidos guerreiros se juntaram com o intuito de resolver os mais complexos desafios do mundo (ou quem sabe do URI). Ao programar em pares e resolver problemas em grupo, foi possível resolver um problema usando a linguagem Python!

Links do dia:

O que é um Coding Dojo? - Link que explica o que é um coding Dojo e como funciona a dinânima (lembrando que ela é colaborativa e não competitiva).

Problema do URI resolvido no Dojo - E aí, que tal um desafio de caça ao tesouro com um capitão que deseja encontrar um tesouro mas só consegue andar na vertical e horizontal, por conta da sua perna de pau!

Dia 17

O guerreiro teve um dia calmo, de pouca aventura e bastante leitura de adversários e regiões perigosas. Além disso, aproveitou para atualizar suas listas de leituras, e-mails e estudos (que estavam atrasados rsrs).

Links do dia:

Monolitos são o futuro - isso mesmo que você leu e eu NÃO vou te dar detalhes, vou deixar você acessar o link, ler e depois me contar o que acha sobre isso!

Class Central - Site que mostra cursos gratuitos oferecidos em diversas plataformas (inclusive de universidades como Stanford, California e outros).

Especialização em Deep Learning do Coursera - Toda uma especialização cobrindo desde Machine Learning até o Deep Learning e ensinando diversas técnicas, para te deixar pronto para o mercado! Você tem 7 dias gratuitos e depois paga uma taxa mensal para continuar consumindo os recursos. Apesar do conteúdo ser em inglês, você pode ativar as legendas em português!

Dia 18

O guerreiro se prepara para sua longa jornada de amanhã, ainda assim, foca em estudar seus oponentes de deep learning, desta vez seguindo com o exemplo de uma base de dados de carros usados. No dia de hoje, foram feitos ajustes de base, remoção de ruídos e colunas não necessárarias para o problema (ou que estejam desbalanceadas).

Links do dia:

AWS Inovate - Plataforma com várias palestras gravadas (e com divulgação de eventos online da AWS) disponíveis para você assistir! E o melhor, totalmente gratuito e on demand! Você pode se inscrever e também receber e-mails de quando haverão novos eventos - inclusive participar do deep racer!

Dia 19

O guerreiro retoma para a sala de aula, junto de outros aprendizes, para reviver conceitos matemáticos, como teoria dos conjuntos, trigonometria e análise combinatória. Esta aventura foi muito importante e servirá de base para futuras batalhas em sua jornada para se tornar um Data Scientist.

Links do dia:

Livro: Matemática Discreta para Ciência da Computação - Este livro cobre vários assuntos sobre matemática com aplicações para ciências da computação. (Recomendado pelo professor da Disciplina).

Dia 20

As aventuras em um vale tão tão distante, fazem com que a jornada do nosso guerreiro seja dura e sinuosa. Ele escala grandes montanhas do conhecimento, enquanto luta com bravos inimigos para entender mais e mais sobre Machine Learning. Desta vez, travou bravas batalhas com o Label Encoder e com a substituição de textos nan em um dataset. Será que ele conseguirá executar este dataset logo?! Vejamos nos próximos episódios!

Links do dia:

Inteligência artificial e o futuro da raça humana (Inglês) - Este post pode servir bastante como uma reflexão. Será que teremos uma vida como os Jetsons e seus roboôs? Será que viveremos na Matrix? Descubra neste link que o fará refletir bastante sobre os reais impactos da inteligência artificial em nossas vidas.

Dia 21

Em uma caverna escura e sombria, grandes guerreiros, elfos, magos e criaturas mitológicas se reuniram para ouvir a palavra de Flutter. Mas espere, o que será que Flutter ter a nos dizer que é tão importante? Ah, sim! São as maravilhas do mundo mobile e da geração de código nativo!

O dia de hoje foi marcado pela presença no Meetup de Flutter e pelos conhecimentos adquiridos sobre este Framework e sobre Dart, o qual conhecia pouco. Pude fazer um hello-world, mexer em algumas coisas, testar o hot deploy e configurar o ambiente no IntelliJ (que comentários a parte, foi um espetáculo de bom).

Links do dia:

Flutter Interact - Para quem quer ver um pouco de conteúdo sobre Flutter (em inglês - com legenda), tem uma lista com uma série de vídeos sobre Flutter que é bem bacana e mostra um pouco dos poderes desta tecnologia.

Flutterando - A comunidade Flutterando é da galera brazuca, ou seja, se você quer aprender ou se aprofundar em Flutter, eis aqui um ótimo grupo brasileiro!

Curso gratuito de Flutter - Bata.io - Um curso gratuito de Flutter e um site muito bom (em português) que fala bastante de Flutter.

Dia 22

Em uma jornada pelo vale da imensidão, o nobre aventureiro testa sua capacidade de aprimorar as mensagens de commits com o conventional commits, ajuda a domar feras como: SonarQube e SonarLint e ainda trabalha em seu projeto de Data Science com seus colegas de aventura!

Este dia foi marcado pelo início da aplicação dos conventional commits, pelo início do uso do SonarQube e divulgação do SonarLint e pelo esforço que eu e uns colegas temos feito em tocar um projeto de Data Science, com intuito de efetuarmos algumas avaliações - este dia também contemplou com a nossa organização de atividades, levantamento de hipóteses e variáveis e ensaios de algumas consultas SQL.

Links do dia:

Conventional Commits - Eis aqui uma padronização de commit que é simples e eficáz! Se quando você escreve um commit a coisa sempre foge de um padrão ou você nunca sabe direito o que escrever no seu commit, ou então você manda aqueles commits com um monte de classes juntas, o conventional commits pode te ajudar a resolver isso - e também gerar changelog's maneiríssimas para você!

Gitmoji - usando emoji nos commits?! - Parece pegadinha, mas não é! Sabe aqueles emoji's que talvez você já viu no GitHub/GitLab/BitBucket/Outro e não entendeu ou achou que estava ali apenas para bonito?! Pois saiba que não é bem assim, com o Gitmoji você pode usar os emoji's para chamar a atenção das pessoas e também se comunicar por meio disso! Legal, né?!

SonarQube - O SonarQube é bem interessante para você medir a qualidade de código, avaliar code smells, duplicidade de código e outros! É bem interessante e funciona em 15 linguagens. Este link é um vídeo no YouTube (em português) que explica um pouco mais sobre! Ah, uma dica BONUS: você pode instalar o SonarLint diretamente pela Marketplace da sua IDE e está disponível no IntelliJ/Eclipse/VS Code/VS e outros.