De Leigo a Especialista em Aprendizado Profundo | Natural Language Institute

Embracing Singularity

BLOG

De Leigo a Especialista em Aprendizado Profundo

2. Escolhendo Python

By Victor - 02/jul/2020 #Ciência e Tecnologia

Quando decidi me tornar um programador de computadores e especialista em deep learning, é natural que, sendo um entusiasta de línguas estrangeiras, a minha primeira pergunta foi: “Qual linguagem de programação devo aprender?”

Ao buscar a resposta online, descobri que as linguagens de programação podem ser de mais alto ou mais baixo nível em termos de abstração das operações computacionais. Quanto mais baixo o nível da linguagem, mais performática do ponto de vista da máquina, porém mais difícil para programadores utilizarem de forma criativa e eficiente. Para estudantes da ciência da computação ou para pesquisadores, pode fazer sentido aprender linguagens de nível relativamente mais baixo como C[1], pois sua lógica é um pouco mais próxima a como os computadores de fato funcionam e porque seu desempenho em termos de velocidade pode ser decisivo para certas finalidades. Em contrapartida, para alguém buscando mudar de profissão ou simplesmente adicionar uma habilidade ao seu arsenal de produtividade, aprender uma linguagem de muito alto nível, como Ruby, Python ou Visual Basic, pode ser uma opção mais viável e poderosa.

Eu queria aprender a programar por motivos muito práticos – para resolver problemas reais. Queria ser capaz de desenvolver aplicativos web e software visando a produtividade e a linguística aplicada no Natural, organizar e automatizar rotinas pessoais, analisar dados na corte de contas, administrar minha fazenda com mais efetividade. Claramente, eu precisava aprender uma linguagem de programação multiuso e de alto nível.

Minha escolha inicial foi Ruby. Deve ter aparecido com muita frequência nos resultados de busca como uma linguagem ideal para aprender em 2018. Parecia se encaixar bem como uma linguagem produtiva de uso geral e de altíssimo nível, perfeita para alguém querendo dar uma guinada na carreira, mas sem uma formação em engenharia ou em ciência da computação. Comprei livros, inclusive um para crianças, esperando que minha filha de 10 anos se entusiasmasse para aprender junto comigo (algo que nunca aconteceu). Comecei a estudar os primeiros capítulos de dois livros diferentes, mas não me inspirei. Provavelmente teve mais a ver com os livros do que com a linguagem em si; de qualquer forma, acho que foi até bom meu entusiasmo não ter despertado naquele primeiro momento.

Enquanto isso, continuei lendo sobre a revolução da inteligência artificial e como me tornar um aplicador. Preocupei-me ao ver Ruby pouco referenciada nesse campo em rápida expansão, enquanto Python era mencionado constantemente. Já tinha começado a investir em Ruby, e parecia mais bacana, com sua sintaxe flexível e liberdade criativa, do que Python, com sua indentação rígida e uma “forma certa” de fazer cada coisa. Porém, aprofundando as pesquisas e conversando com um amigo programador, cheguei à conclusão de que, se eu realmente quisesse aprender deep learning, Python era a opção certa. Escolhi Python para mim e para o Natural e não olhei para trás.

Estou plenamente e cada vez mais satisfeito com a minha escolha. Pode ser que uma parte da minha satisfação resulte do viés de confirmação inerente à participação em grupos, mas tenho fortes razões para recomendar Python a outras pessoas com objetivos semelhantes.

Primeiro, conforme aludi, Python é de longe a linguagem mais popular em machine learning, o que significa que é imbatível em termos de bibliotecas, frameworks, suporte e recursos de aprendizado disponíveis para se tornar produtivo nesse campo que está mudando o mundo.

Em segundo lugar, Python é versátil. É frequentemente comparado a R, uma linguagem popular entre os estatísticos, para ciência de dados e para aplicações de aprendizado de máquina. No entanto, R não é uma escolha natural para o desenvolvimento de software, enquanto Python é igualmente adequado para coletar dados, analisá-los, treinar modelos de aprendizado de máquina e depois incluir os modelos em soluções integradas de software e ainda disponibilizá-los online. Com Python é fácil escrever um código rápido no meu laptop para aumentar a produtividade, mas Python também foi usado recentemente por cientistas para gerar a primeira imagem de um buraco negro.

Em terceiro lugar, Python é uma excelente opção para o desenvolvimento back-end de aplicativos web. Embora tenha permitido que dois estagiários (muito espertos) do Natural desenvolvessem e implantassem o primeiro aplicativo web do Instituto em pouco mais de um mês, também sustenta o YouTube, que conta com mais de um milhão de linhas de código Python para alimentar cinco bilhões de vídeos para os usuários todos os dias, e o framework web principal do Instagram (Django) também é construído em Python.

Em quarto lugar, Python, embora incrivelmente poderoso, é fácil de aprender para iniciantes como eu. Essa é uma das razões pelas quais é incluído cada vez mais nos currículos de cursos de ciência da computação e de cursos para não programadores. Essa facilidade de aprendizado decorre, sem dúvida, do fato de que seu precursor, a linguagem de programação ABC que inspirou Python, foi explicitamente projetada para o ensino.

A quinta e última razão pela qual amo Python tem sido uma grande e agradável surpresa para mim. Não tem nada a ver com o motivo original de eu ter escolhido Python, mas pode ter um forte impacto em manter essa opção pelo Python a longo prazo. A linguagem conta com uma comunidade forte, acolhedora e solidária que incorpora o espírito do movimento de código aberto. Os recém-chegados são recebidos de braços abertos e todos parecem dispostos a ajudar. Existem inúmeros programadores que se esforçam para desenvolver uma variedade extremamente ampla de bibliotecas úteis, sem falar dos principais desenvolvedores que mantêm o próprio CPython[2].

Eu sabia muito pouco sobre a comunidade de código aberto antes de começar a aprender a programar em 2018. Cada vez mais me impressiono com o que representa. Embora minha experiência com essa comunidade tenha sido em Python, o movimento é muito mais amplo e inclui muitas linguagens e tecnologias relacionadas. Minha impressão é que o movimento de código aberto não apenas está contribuindo decisivamente para os tremendos avanços que estão acontecendo agora na tecnologia da informação, mas que é uma das forças mais positivas para o progresso humano no mundo, ponto. Isso parece um ótimo assunto para um futuro post ...



[1] O conceito de uma linguagem de programação de alto ou baixo nível é relativo. C era originalmente considerado uma linguagem de alto nível, pois abstraía algumas rotinas e tornava o código mais acessível ao ser humano do que o Assembly. Hoje, no entanto, ele é comparado com linguagens como Ruby, Python ou Java e considerado “baixo nível”.

[2] Como Python é uma linguagem de código aberto, ele pode ter muitas ramificações ou implementações. A principal implementação é o CPython, que é o padrão de fato da linguagem e na maioria das vezes sinônimo de Python.


Essa publicação é a segunda da série De leigo a especialista em aprendizado profundo.

Logo Whatsapp