Como entrar na área de TI

Kete Martins Rufino
Mulheres de Produto
7 min readMay 16, 2018

Olar.

Este ano percebi que há muitas pessoas, que já tem uma carreira em outra área ou até na área de TI, mas sem trabalhar diretamente com tecnologia, querendo aprender a programar.

A área de TI se divide em muitas sub-áreas, como deve acontecer com muitas outras áreas também, e o que geralmente acontece é escolher uma delas para se aprofundar e trabalhar (pelo menos por um tempo). Na faculdade, temos a oportunidade dar uma pincelada em quase todas essas áreas (faculdade em TI é assunto polêmico, fica para outro post), mas quem já é adulto, tem uma carreira, boletos a pagar e outras responsabilidades, não dá para arcar com todos os custos de pelo menos mais 4 anos de curso superior.

Uma das áreas de TI é o desenvolvimento de software, que envolve linguagens de programação, algoritmos, banco de dados, etc. E a verdade é que nós temos que aprender a programar com alguma linguagem de programação, mas temos que passar o resto da vida estudando as outras 😅. Por outro lado, a lógica de programação é como uma caixinha de ferramentas/peças/legos que você vai combinar para construir algo e/ou resolver um problema. Assim, se você conhecer bem os elementos básicos, mudar de uma linguagem para outra é super simples.

Vou tentar listar aqui as áreas relacionadas a programação que tenho maior familiaridade e explicar como eu acho que deveria ser o início de alguém com o perfil que comentei acima no mundo da programação.

Lógica de Programação

Antes de pensar em aprender Clojure, Java ou C++, acredito que temos que aprender Lógica de Programação pura, simples, raiz mesmo. Mas… nós seres humanos temos que ter feedback visual para saber se estamos no caminho certo ou não. Converse com qualquer programador que aprender lógica de programação na faculdade, com uma saída no terminal preto com letras brancas e dá para perceber que não foi uma experiência agradável.

Por isso achei sensacional a ideia do code.org de ensinar como um joguinho. É igual estudamos na faculdade, mas bonitinho.

imagem do jogo do code studio, da Elsa, com pontos de explicação

Ainda é possível ver o código gerado, na forma como você vai escrever realmente quando aprender uma linguagem de programação.

Nesse joguinho, eu espero aprender esses pontos:

  • Um algoritmo sempre tem um início.
  • Há um conjunto limitado de instruções
  • Existem instruções de repetição de código
  • Existem instruções condicionais.

Ainda tem outras coisas básicas que talvez o jogo não irá mostrar, mas que programando no mundo real, você vai precisar aprender:

  • Temos condicionais de vários tipos: if/else, switch-case, ternário.
  • Também há várias estruturas de repetição: for, while, do-while.
  • Há variáveis e tipos de dados: texto, datas, números, coleções, etc.

Você não precisa do jogo para aprender essas coisas. Pode partir direto para uma linguagem de programação. A questão é que o jogo é divertido e, geralmente, quem está começando, não sabe bem com qual linguagem começar, pois isso depende muito de em qual área você pretende atuar

Áreas e Linguagens de Programação

Geralmente, a idéia de querer começar a programar surge da proximidade com alguém que faz isso diariamente. Por exemplo, na Nubank, quem trabalha próximo aos engenheiros backend, tendem a querer aprender Clojure, enquanto quem está mais próximos aos Bussiness Analysts, procuram saber mais sobre Python. Isso porque existe zilhões de linguagens de programação e, apesar de ter uma base geral, é comum elas se especializarem e resolverem melhor grupos de problemas específicos.

Vou descrever algumas áreas e tecnologias mais usadas.

FrontEnd

Está área está crescendo bastante nos últimos anos. No passado, essa área tratava apenas da parte visual das aplicações web. Ou seja, aquilo que o cliente via no browser do seu desktop ou notebook. Atualmente, as tecnologias utilizadas nos browsers estão amadurecendo muito e ganhando espaço nos celulares, tablets e backend.

As tecnologias básicas usadas aqui são HTML, CSS e JavaScript (JS)

Backend

O frontend é a parte do sistema que roda no ambiente do cliente que está vendo, geralmente no browser. Muitas vezes, há cálculos mais complexos que podem sobrecarregar o equipamento que o cliente está usando, afinal, não podemos confiar que todo mundo tem um celular super moderno ou um computador potente. Além disso, os dados dos sistemas precisam ser bem protegidos e disponibilizados nos diversos dispositivos que os clientes usam. Então, geralmente o banco de dados fica no backend.

As tecnologias usadas aqui depende do que a empresa avaliar ser a melhor para resolver seu problema. Na Nubank, usamos Clojure. É comum as empresas usarem Java, C#, Python, Ruby on Rails e outras nesse ambiente.

Mobile

Com a popularização dos dispositivos móveis (smartphones, tablets, relógios), o desenvolvimento de aplicativos para esses dispositivos aumentou também. Atualmente, o mercado nessa área de divide em dois grandes fornecedores de aparelhos: Google e Apple, com os sistemas operacionais Android e iOS. Cada um dos fornecedores definiram uma linguagem de programação e um conjunto de ferramentas para que os desenvolvedores criem e publiquem nas lojas aplicativos para a plataforma. O grande problema para os desenvolvedores aqui é que as linguagens e o ambiente são totalmente diferentes. Assim, se você tem um sistema que deve rodar no celular e quer atender todos os públicos, terá que desenvolver dois aplicativos e fazer o cadastro como desenvolver nas duas lojas. Por isso é comum ver aplicativos por aí com "disponível apenas para Android/iOS".

Para desenvolver para Android, você vai precisar aprender a linguagem Kotlin, mas pode se deparar com apps antigos feitos em Java também. Para dispositivos iOS, a linguagem mais moderna é Swift e antes era Objective-C, e vai precisar de um computador Apple, pois as ferramentas de desenvolvimento só funcionam nesses dispositivos.

No entanto, há uma outra linha de desenvolvimento mobile que está crescendo bastante nos últimos anos: Híbridos. Fazer e manter a mesma versão do sistema em duas linguagens sempre foi difícil e custoso para as empresas. A idéia dos apps híbridos é criar uma única versão do sistema e empacotar para todos os tipos de dispositivos. As tecnologias principais aqui são praticamente as mesmas do frontend, HTML, CSS e JS, mas ainda é preciso saber algo sobre Kotlin/Swift para conseguir completar um aplicativo.

Data Science

Este é um mundo que ainda não conheço muito bem, por nunca ter trabalhado com ele, então o que vou dizer aqui é baseado apenas em leituras, conversas e palestras 😄. É uma área que está crescendo muito e que tem o objetivo de extrair informações a partir de conjuntos de dados e, com isso, ajudar na tomada de decisões, análise de situações ou previsão de alguma coisa.

SQL e Python são duas linguagens que são muito utilizadas nessa área. Provavelmente, há outras, mas para extrair dados de banco de dados, certamente você vai precisar de SQL.

Resumão

Se você quer iniciar a vida na programação, precisa saber o básico de lógica de programação. Escolha uma área que quer atuar, pesquise quais tecnologias envolvem essa área, procure a comunidade da tecnologia e participe dos eventos.

Em geral, a galera de TI é muito ligada a comunidade. Como sempre tem muita coisa para estudar, todo mundo se ajuda. Os eventos são muito bons para conhecer gente e ver o que deve ser estudado naquele momento.

Tenha em mente que a linguagem de programação escolhida é só a ponta do iceberg. Por exemplo, para fazer uma aplicação frontend você precisa saber HTML, CSS e JS. Mas o mercado costuma utilizar frameworks/libs que ajudam no desenvolvimento, então, por exemplo, você pode ver sistemas que utilizam React, Redux, GraphQL, Styled Components, etc. Sem saber JS, vai ser difícil aprender essas outras coisas.

Nubank

Na Nubank, usamos estas tecnologias (talvez eu esqueça de alguma):

  • Backend: Clojure, Datomic, Kafka, Redis.
  • FrontEnd: HTML, CSS, JS, React, Styled Components, ClojureScript.
  • Analyst: Python, Scala <vou procurar as outras>
  • Infraestrutura: AWS, Zookeeper
  • Segurança: Ruby, Python, Go, Scala <vou procurar as outras>
  • Ferramentas gerais: GitHub

Mulheres

A gente sabe que as mulheres sempre têm mais dificuldade de entrar no mercado de exatas e na TI não seria diferente, mas como eu comentei, a comunidade se ajuda muito. Há diversos grupos focados em auxiliar e incentivar mulheres a aprender a programar ou atuar em outra área de TI. Infelizmente, nem todas atuam em todos os lugares do país, mas vou listar as que conheço e vou atualizando a lista quando for descobrindo mais.

Links para estudos (alguns grátis outros não)

Conclusão

Aprender a programar não é a coisa mais simples do mundo para muitos, mas tem muita gente disposta a ajudar.

Espero ter ajudado em algo. 😃

--

--

Kete Martins Rufino
Mulheres de Produto

Software Engineer, FrontEnd Developer, Student and a different person every day.