Taverna /dev/All

Em 2019 eu quero aprender ... porque

Na lista de definições de ano novo dos profissionais de TI, além de fazer atividades físicas e reduzir o consumo de café, sempre existem linguagens/frameworks/bibliotecas/etc do qual gostariam de estudar. Nesse sentido, gostaria da contribuição de todos, dizendo o que cada um pretender estudar/aprofundar no próximo ano e se possível apresentado os motivos pelo qual acha importante dedicar ao assunto.

Algo do tipo:
Em 2019 eu quero aprender … porque …

1 Curtida

Em 2019 eu quero aprender Dart, porque eu não consigo aprender javascript :slight_smile:. Mas o que me pareceu, é que o Dart se vende como o tipo de canivete para as coisas mundanas (web, mobile e server). Pretendo me aprofundar na linguagem GO, porque eu preciso de uma linguagem compilada para sistemas mais baixo nível, e, finalmente, dar um carinho à linguagem Ruby, que há tanto tempo venho negligenciando (Meu mundo gira em torno especialmente de Python/Django).

Nos bancos de dados, escolhi o RavenDB, pela facilidade de instalação, promessas de performance e a pegada “sou um banco de dados para programadores, não para DBAs”.

E, com todas essas linguagens, aprofundar-me em serverless, pois gostei muito da proposta, inclusive com o OpenFAAS e tsuru nos provedores que não oferecem funções como serviço.

Também quero alternativas ao uso de frameworks web, estou um tanto cansado deles. Comecei a estudar sobre arquitetura hexagonal e gostaria de encontrar um ponto de equilíbrio entre ela e os frameworks.

Esqueci: Kubernetes, porque, das coisas que não conheço, é o que mais sinto falta para me sentir “completo”.

Quero testar Kotlin+Spring, não gosto de JAVA e tenho ouvido falar bem desse combo.

Typescript+React (ou outro framework da moda) só para voltar a ter independência no desenvolvimento web, estou a mais de um ano sem tocar em frontend, aprender react teria o bônus para react-native e mobile. Typescrpt porque acho que foi a melhor opção que surgiu para colocar redeas no JavaScript.

Rust, já trabalhei com Go e foi muito bom, pelo que vi Rust permite ir mais próximo ainda do C++ com várias proteções para o seu código (imutabilidade por padrão e gerência de memória).

Terraform, ninguém merece ficar configurando infra na AWS no mouse no Console da AWS ou via Bash+Cloud Formation.

1 Curtida

brinquei com Dart em um dojo no Google a muitos anos, o sentimento que tive na época foi:

  • colocaram uma main() no JS
  • tem uma validação porca na declaração de funções
    fim.

Acho que Ruby não vai agregar muito se já sabe Python, procuraria uma linguagem funcional, tipo Elixir.

Go é lindo demais! hehehehe

Serverless é legal mas entender antes como e quando usar é mais importante que tecnologia.

Acho que aprender outros bancos de dados seria uma boa, nunca usei o RavenDB mas já ouvi bastante.

Kubernetes é o novo caviar. hehehe

1 Curtida

Nossa, a lista é longa, mas vamos lá.

Blockchain - já comecei a estudar bem mais a fundo. No caso, como solução de segurança para alguns dos nossos clientes.

Python - por que já passou da hora de aprender esta linguagem e todo o seu ecossistema. :slight_smile: - curiosamente, eu já soube alguma coisa da linguagem, pra implementar simuladores de dados, mas nunca consegui me aprofundar ou escrever algo realmente grande.

React - a minha primeira impressão foi muito ruim, o que me afastou do framework. Entretanto vejo que é importante que eu tenha uma base mais sólida para poder criticar, o que não tenho hoje.

Desenvolvimento nativo de aplicativos - apesar de não ver relevância futura no desenvolvimento nativo, quero aprofundar bastante o conhecimento que tenho hoje sobre o funcionamento interno destas plataformas.

Oauth - começamos o desenvolvimento de uma solução open source oauth, sobre a qual pretendemos liberar mais detalhes no futuro, sendo assim é inevitável que já estamos gerando um monte de conhecimento a este respeito, que irá inclusive ir parar lá na Revista do /dev/All

Nginx - agora que estou finalizando o guia do Apache, comecei a me aprofundar no Nginx, que é minha próxima vítima de dissecação. :slight_smile:

1 Curtida

Salve, João!

Eu comecei a aprender Rust e empaquei na parte que em geral se empaca, de entender bem os borrowing. Eu até tenho que dar uma volta pra ver como estão as coisas lá, pois uma coisa que me incomoda muito, e me fez parar de estudar Rust, é que a maioria dos pacotes que quero usar exigem um Rust “nightly build”.

Funciona e tals, mas eu tenho esse preconceito e gostaria de poder usar a linguagem, mesmo que para brincar, em suas versões estáveis.

Mas sim, o projeto é demais, e foi justamente por conta do Rust que comecei a olhar para GO.

Eu tenho um passado profissional focado em C, então compilar as coisas me agrada muito. E nesses tempos de CI/CD, quanto mais simples for instalar um sistema, melhor.

AH, na minha listinha esqueci do Terraform, e, diga-se de passagem, os vários produtos da HashiCorp são bem interessantes.

por mim usava HashiCorp p/ tudo, só preciso aprender primeiro hahahaha

acho que o pacotes do Rust devem estar mais estáveis agora que o Firefox depende dele hehe

1 Curtida

Olha, esse lance do main() é uma coisa que me agrada :slight_smile:. No mais vou ficar atento a suas observações.

O Ruby é uma linguagem que me cerca, tenho perdido muitas oportunidades de bons projetos por não dominar ainda o Ruby, que, para pequenas coisas programo, e gosto muito da clareza e elegância da linguagem. Isso de não ser tão mais badalado não me incomoda, pois a linguagem me atrai muito, e a “comunidade” também, especialmente o pessoal do GURU-SP, onda até já palestrei, sobre Perl6!.

Elixir me é tentador por ser uma boa porta de entrada para o mundo Erlang, que é algo que eu venho observando meio de longe há muitos anos. Mas ainda assim, enxergo Erlang muito mais como uma alternativa WEB, mundo do qual (pelo menos em sua ponta) quero desesperadamente sair fora.

Essa onda serverless me agrada por ser uma alternativa melhor a ter aqueles pequenos serviços que ficam escondidinhos num canto, sem atualizar nunca, e que se mexer, pode explodir tudo, fora os preços, para esses casos. Meus desafios ainda são como fazer testes e como fazer uma boa esteira de CI/CD.

Linguagem funcional também é algo que me agradou muito, passei décadas sem saber que isso existia, mesmo tendo passado por uma faculdade de Matemática, que, acredito, esse fascínio meu pelas ciências matemáticas, é que me fez brilhar os olhos quando fucei a primeira vez em Haskell.

E GO é um refresco para minha alma!

entendi, ruby p/ fazer dinheiro hj no mercado é uma boa, o novo php diria, o q tem de projeto abanado em ruby por consultorias q ficam pulando de hype em hype nas tecnologias não deve ser brincadeira. eu fui programador RoR e vivo recebendo oferta para voltar a ser, corro disso!

CI/CD para serverless não resolvi tbm, nos meus casos era script junto com o código para fazer o deploy mesmo.

Haskell foi uma das minhas primeiras linguagens de programação que aprendi, foi a inicial na graduação. Gosto muito mas não vejo mercado.

1 Curtida

Salve, Kiko.

Python é massa. Ainda mais como uma ferramenta de uso geral para resolução rápida de problemas. A uso como principal linguagem para desenvolvimento de sistemas WEB, mas já usei muito para resolver grandes e pequenos pepinos como sysadmin. Penso que pelo menos uma entre Python, Perl, Ruby, devemos dominar, com esse intuito de ferramente geral.

O Blockchain você poderia falar mais sobre como pretende usar? É algo que está no meu radar também. Até muito mais o blockchain, do que criptomoedas, que também são interessantes.

Nginx é demais! Usei muito o Apache, que é excelente também, mas quando surgiu o Nginx parece que tudo ficou mais fácil, até me abriu oportunidades profissionais muito boas.

Também estou interessado em aprender Blockchain, especialmente para aplicação em Smart Contracts. Contudo, não estou muito disposto a aprender Solidity apenas com essa finalidade. Tenho intenção de dedicar mais ao aprendizado de Go e fiquei bastante interessado na dupla " Kotlin+Spring".

1 Curtida

opa, estou pensando em usar o blockchain essencialmente como ferramenta de auditoria. Estou vendo alguns casos envolvendo integrações nos quais ele pode ser aplicado, mas ainda estou dando os primeiros passos.

1 Curtida

Outras coisas que tenho estudado bastante também, mas por causa do meu hobby, talvez vocês riam, mas vai lá.

Cálculo e Geometria Analítica e Álgebra Linear - física em jogos e mais alguns cálculos de coisas que estamos desenvolvendo internamente na itexto para alguns clientes. Tem sido uma jornada bem legal.

Engines de jogos - estou aprendendo vários. Por muito tempo eu que desenvolvia tudo do zero, mas tenho aprendido horrores neste processo - talvez para, teimosamente, criar o meu próprio no futuro, quem sabe.

Basicamente voltei para a faculdade neste final de ano. Tenho passado um bom tempo debruçado em cima destes livros.

Resumindo, to voltando às origens.

1 Curtida

Kubernetes - nesse ano de 2018 aprendi um bocado sobre Docker, mas ainda me falta conhecimento de como orquestrar e gerenciar containers. Como Kubernetes ganhou a briga dos orquestradores, acho que não preciso escolher qual, apenas cair de cabeça nessa opção. hehehe

Rust - uma linguagem que me chamou atenção desde o início, mas ainda não tive oportunidade de separar um tempo para aprender. Até fiz um projetinho uns 2 anos atrás (https://github.com/hlmerscher/megasena-gen) com umas 2 ou 3 horas que dediquei pra dar uma olhada na linguagem, mas foi bem superficial. Mas mesmo com esse pouco tempo, a linguagem me cativou, parece a fusão de Haskell + Ruby + mensagens de erro de Elm. :heart_eyes:
Assim como Rust, GO me parece uma boa alternativa de linguagem compilada e mais próximo de C, porém tem alguns detalhes da linguagem que não me agradaram e as ferramentas de gerenciamento de dependência não parece ter um padrão até hoje.
Rust me parece bem resolvida em termos de ferramental, documentação e comunidade.

DevOps - aprender ferramentas e conceitos gerais em mais detalhes. Há quase 2 anos tenho trabalhado quase exclusivamente com backend apenas, e uma coisa que me aperta o calo ainda é infraestrutura. Quero aprender um pouquinho de cada plataforma, e me aprofundar em AWS já que a empresa onde trabalho (e grande parte das outras) utiliza. E todo o conteúdo organizacional e implicações dessa mistura de equipes de infra e dev e atitudes pregadas pelo movimento.

Unity (game engine) - esse é um hobby. Já trabalhei profissionalmente com C# no passado, e gosto de programar jogos por diversão. Mas não tenho intenção de transformar meu hobby em profissão. Trabalhe com o que você ama, e em algum momento você começará a odiar isso: https://medium.com/startup-da-real/se-você-trabalha-com-o-que-gosta-não-se-importa-de-trabalhar-muito-startupdareal-respostas-2-91636119ffb (off-topic aqui, mas dá um bom novo tópico).

Alemão - há 1 ano me mudei para Berlim. Para trabalhar com TI só o inglês basta, mas… é bom aprender a língua local para fazer novos amigos, se integrar melhor na sociedade, e em algum momento pode me favorecer profissionalmente.

Se ainda me sobrar tempo (o que é difícil, já que tenho muitas outras prioridades listadas acima), quero experimentar Kotlin. Já trabalhei com Java, experimentei Scala e Clojure, mas nada me chamou atenção para voltar para JVM até o momento. Não tenho interesse em mobile no momento, mas Kotlin me parece um boa alternativa para voltar a usar a JVM como backend e aproveitar tudo que a mesma tem a oferecer.

Bem, faz menos de um ano que estou no mundo profissional, e sinceramente eu me sinto muito atrás e gostaria que vocês pudessem me ajudar a tirar essa paranóia da cabeça…

Esse ano eu quero:

Aprender o que der sobre Front-End!
Até hoje eu só trabalhei no back-end com Java. E sem frameworks, só Java puro.

Aprender sobre alguns frameworks do Java!
Eu ainda nem decidi quais. Sinto muita falta de orientação quanto a isso, ao que estudar e tudo mais.

Aprender Python!
Sendo sincero eu tenho facilidade com Java, então eu acho que preciso me desafiar com linguagens que eu não entendo.

Aprender mais sobre teoria da programação!
Eu ainda não decidi como farei meu mestrado, mas eu sinceramente gostaria de estudar mais sobre paradigmas de programação e coisas que você “não precisa” necessariamente saber para programar (como por exemplo o funcionamento por completo da JVM ou então coisas mais teóricas).

Aprender sobre Design Patterns!
Tá aí uma coisa que eu não sei. É só isso, mesmo.

Aprender sobre Banco de Dados!
O básico de SQL eu sei, mas nada aprofundado. Nunca usei Java com banco de dados, por exemplo (quando fiz, usei NODE).

E, por final, como hobby: automação residencial!
Eu fico vendo amigos que desde os 13 fazem modificações super-legais em suas casas… e eu nunca fiz nada! Me sinto muito “pra trás” e quero começar a mexer com isso. Só espero não ser muito tarde para mim.

1 Curtida

Ei Kiko,

Pra quem está acostumado com linguagem tipada, aconselho React com TypeScript.

O artigo abaixo é muito bom e traz um exemplo que tenho utilizado como template:

Abraços,

Miguelângelo

me lembro algum tempo atrás você me falando sobre Angular com Typescript, lembra?
Pois é: foi uma das melhores coisas que aprendi ano passado. :slight_smile:

O /dev/All mesmo foi a primeira prova de conceito disto - https://devall.com.br

Agora tá na hora de aprender React!

Lembro sim. Foi em 2016.
Bom que a conversa rendeu bons frutos!!!

itexto