Aprendendo A Ser Poliglota

Jose PauloJose Paulo
5 min read

Recentemente, na verdade no ultimo ano, me deparei com um desafio grande na minha carreira, motivo pelo qual não posto nada a tanto tempo, nesse desafio precisaria aprender, não só uma linguagem nova mas um paradigma novo, com novas ferramentas e em um contexto muito maior do que estava habituado, uma oportunidade de carreira excelente, e uma oportunidade tão excelente quanto para pensarmos sobre como podemos construir nossa carreira e como tratamos as tecnologias que aprendemos.

Quando estamos decididos a seguir o caminho da programação nos deparamos, cada vez mais cedo, com o dilema sobre aprender uma única linguagem e basear nossa carreira nela nos tornando especialistas em uma plataforma, ou diversificar nossos estudos e aprendermos um pouco de tudo. Esse dilema pode surgir de várias formas, na forma de uma proposta de emprego, ou em uma startup que quer usar alguma linguagem especifica, ou de outras tantas formas. Aqui estamos tratando de experiências subjetivas, cada carreira é diferente, cada história é uma história diferente, esse texto não tem a pretenção de definir algo como certo ou errado, apenas tentar colocar em perspectiva o que podemos levar em consideração ao nos depararmos, de uma forma ou de outra, com essa pergunta.

Uma Única Linguagem

De acordo com a minha experiência e com a do Martin Fowler neste antigo artigo, empresas grandes tendem a unificar sua base de código em torno de uma tecnologia única. Esse movimento faz sentido lógico considerando que quanto mais peças móveis em um sistema mais complexo ele será, sendo assim gerir uma base de código com uma única tecnologia é muito mais simples do que com mais de uma. Esta estratégia aumenta a possibilidade de que ferramentas e bibliotecas internas sejam criadas, além de poder melhorar o ecossistema das linguagens utilizadas. Apesar de ser mais comum em empresas grandes, pode ser uma estratégia que beneficie startups também.

Como diz Miyamoto Musashi no livro dos cinco anéis “é difícil que grandes grupos de homens troquem de posição”, empresas grandes que seguem pelo caminho de adotar uma única plataforma são organizações grandes de mais para que um movimento na direção de trocar de linguagem ou abrir espaço para um ambiente multiplataforma seja viável. Com esse comportamento em mente é simples o raciocínio de que uma organização, salvo raras exceções, aceite o peso de uma plataforma nova para ter um novo desenvolvedor em sua equipe, por mais genial que este desenvolvedor possa ser, se você quer jogar na equipe tem que jogar o mesmo jogo. Este cenário nos mostra que, quanto menor o número de linguagens dominar menor será o numero de oportunidades que teremos a disposição no mercado pois também é fato que apesar da grande popularidade de algumas linguagens, não existe uma unanimidade.

Ainda sim existem organizações que partem para um ecossistema multi-linguagem, esse cenário é fortalecido por uma arquitetura de micro serviços onde é possível ter um ambiente multiplataforma aproveitando o melhor de cada linguagem, neste cenário é mais plausível que a construção de um novo time possa trazer uma nova linguagem ou um movimento parecido possa abrir espaço para uma troca de linguagem, ainda neste cenário parece que o desenvolvedor poliglota leva certa vantagem dado que se torna uma “peça” com vários encaixes, podendo contribuir com vários times, em vários serviços.

A Dificuldade De Ser Poliglota

Existe uma velha maxima que diz “Ou você aprende muito sobre poucas coisas ou pouco sobre muitas coisas”, o que tenta nos ensinar que não é possível saber tudo sobre tudo, no entanto esta velha maxima não pode ser aplicada ao mundo real de forma literal, pois ela desconsidera que o aprendizado e o conhecimento funcionam de forma incremental na nossa mente, aprender sobre um assunto nos destrava a mente para uma serie de outros assuntos que o permeiam ou o tangenciam, o conhecimento não existe isolado e inerte no espaço, novas ideias interagem com antigas criando associações únicas, o que torna o individuo único por si só. Mais uma vez recorrendo a Musashi no mesmo livro citado acima “De uma coisa aprenda mil coisas”, de certa forma a maxima do inicio do paragrafo desconsidera a força da inércia.

Atualmente vivemos em um ecossistema tecnológico que nos permite, com certa liberdade, executar mais de uma linguagem de programação no mesmo hardware e até no mesmo projeto, esse cenário era diferente em um passado não tão distante, onde o ecossistema para uma linguagem de programação permeava até as esferas do hardware, e cada linguagem se tornava um universo a parte, hoje no entanto as linguagens tem muito mais em comum entre si, tanto na sintaxe, como no ferramental, como nos paradigmas usados, o mercado é mais homogêneo nesse sentido, de forma que podemos desenhar um diagrama de Venn que traça similaridades nas linguagens de programação, como por exemplo a implementação de channels de Golang que funciona da mesma forma em Clojure, ou como a sintaxe de Javascript é similar a de C, ou ainda o modelo de desenvolvimento que usamos hoje, editor de texto e um terminal com um bom CLI como ferramental da linguagem, não foi criado por, mas popularizado pelo Ruby, sendo assim podemos inferir que os constructos das linguagens e seu ferramental são semelhantes atualmente, facilitando a tarefa de aprender uma nova linguagem.

Concluindo, existe sim a possibilidade de nos tornarmos especialistas tão únicos em uma tecnologia que nos tornamos referência de mercado nela, no entanto um especialista como esse não se constrói com experiência restrita em uma única tecnologia, além de ser uma aposta arriscada, é preciso que a tecnologia dure toda a sua carreira, o que hoje não é comum de se ver. Uma ideia mais eficiente é focar os esforços exatamente nas intersecções do diagrama de Venn que mencionei mais acima, aprendendo conceitos e não tecnologias, entendendo como as coisas funcionam por baixo dos panos, aprender os fundamentos de ciências da computação, dessa forma conseguimos construir conhecimento resistente ao tempo, e resistente a própria tecnologia.

1
Subscribe to my newsletter

Read articles from Jose Paulo directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Jose Paulo
Jose Paulo