Como posso me tornar um BOM PROGRAMADOR ou PROFISSIONAL DE TI? – Um guia das profissões

Tempo de Leitura: 12 Minutos

Essa pergunta é quase sempre recorrente, tanto entre o pessoal universitário como entre os profissionais mais experientes, e justamente por isso resolvi abordar esse assunto meio que polêmico. Até porque o que é bom para um pode não ser o melhor para outro, e também porque não acho e nunca achei que existe idade para se aprender ou para se começar a fazer as coisas, muito menos para se fazer direito. O resumo de hoje é justamente esse, não existe um tutorial ou receita de bolo para se tornar um bom profissional, mais algumas coisas são importante e é sobre isso que vamos falar.

Primeiro, qualidade não tem nenhum sinônimo com quantidade, dai um bom profissional na área de TI tem que saber se virar nos diversos segmentos da área, desde infra estrutura até codificação, porém, você não tem que ser um especialista em tudo.

De fato a área de TI é conhecida por ter sempre vagas disponíveis e bons salários, e também por se destacar devido a grande complexidade técnica requerida para seus cargos, o que acaba assustando muitos profissionais que escolheram a área ou mesmo profissionais que já estavam ingressados na área e querem se atualizar, e diga-se de passagem a área de TI tem um futuro certo, estudar continuamente e se atualizar a todo o momento.

Ai vem a frase que mais parece um cliché “Mais eu tenho que conhecer tudo isso para atuar na área de TI?” e a resposta óbvia é NÃO, porém, você não pode estar desatento ao mercado, TI e DESENVOLVIMENTO não é diferente de outras áreas do estudo profissional, veja alguns exemplos a carreira de ADVOCACIA ou DIREITO, requer do profissional uma constante atualização com as novas leis, com o idioma na qual ele advoga para poder fazer bons textos seja em petições, contratos claro, mesmo um profissional especialista em direito penal precisa estar atento a mudanças da esfera familiar ou mesmo financeira, porém, deve estar mais atento a mudanças que afetem diretamente o seu segmento.

O mesmo ocorre com por exemplo as ciências da área da saúde, por exemplo um MÉDICO por mais que ele seja especialista em CARDIOLOGIA tem que estar antenado ao surgimento de novas doenças, novas técnicas e tecnologias e deve estar ainda mais focado em novos estudos e descobertas para o segmento do coração e correlatos.

A área de TI, também tem seus diversos perfis de profissionais que compõem o todo, o dia a dia de um programador é muito diferente do de um administrador de redes, porém, como a área está correlacionada é comum que uma alteração de um lado afete o outro. Isso significa que mesmo para um perfil profissional, você precisa estar atento ao mercado como um todo, para evitar que uma mudança de paradigma de um lado afete o outro, e como se manter sempre atualizado.

Como ser um bom programador?

Essa é a resposta de 1 milhão de dólares, e que não tem uma resposta exata, o que existem são tendências atuais, que podem mudar a qualquer momento não só pela dinâmica característica do segmento, como também por outros fatores de mercado. Me lembro que em meados da década de 90 (1991 a 1999) a Microsoft via o sistema operacional LINUX como um “trabalho universitário sem valor comercial” naquela época, e em 2018, anunciou através de Brad Smith em seu blog oficial a criação de um sistema baseado no kernel LINUX voltado a internet das coisas (https://blogs.microsoft.com/blog/2018/04/16/using-intelligence-to-advance-security-from-the-edge-to-the-cloud/) essas mudanças de paradigma ocorrem com maior frequência na área de TI porém, não são exclusivos desse segmento.

Então, o primeiro passo para se tornar um bom programador é não apenas dominar, mas entender e ter um bom conhecimento de Lógica de Programação. Porque? Pelo simples fato de que toda e qualquer linguagem de programação escolhida tem em comum a lógica para a execução. Indiferente se você está usando a linguagem A ou B a mensagem a ser transmitida tem que ser a mesma. Para ser um bom programador ou desenvolvedor, você precisa entender o funcionamento do que está sendo desenvolvido.

Em um segundo momento, entenda que a área de desenvolvimento e programação é quase tão ampla como um ramo de estudo, e que você tem que se focar no segmento que melhor tem interesse, seja ele o desenvolvimento de sistemas web, sistemas desktop, aplicações mobile, machine learning (aprendizado de máquina), A.I (artificial intelligence ou inteligência artificial), área de estatísticas, física médica, simulações, entre centenas de outras com perfis muito diferentes. Nesse ponto, além dos conhecimentos técnicos da área de TI, é necessário ter conhecimento do segmento de estudo, por exemplo um desenvolvedor de software para a área médica tem que conhecer a forma como ele será usado.

O estudo de conceitos matemáticos como calculo ajuda muito, grande parte das operações de um computador são baseados em estudos e modelos matemáticos, é a forma natural que os computadores interpretam tudo, seja uma simples função ou todo um sistema, as análises de dados, otimizações, são todos conceitos provenientes de cálculos estatísticos. Mesmo um programador front-end e de interfaces, vai usar conceitos matemáticos para encontrar a melhor disposição dos dados em um aplicativo de acordo com estudos de estatística de área de maior visibilidade. Também vai ajudar a entender o consumo de recursos em escalares para cada ação incluída.

Conhecimento do idioma INGLÊS é um ponto fundamental, juntamente com METODOLOGIAS CIENTÍFICAS são um grande diferencial, pois estas duas faculdades juntas vão te ajudar a encontrar o caminho das pedras. Quase todos os trabalhos da área de tecnologia possuem uma documentação de como utilizar aquela ferramenta e mais de 90% das tecnologias desenvolvidas nativamente em outros idiomas que não o inglês tem uma documentação em inglês, pelo simples fato que este é o idioma universal. Aprender a ler documentação é um diferencial pois vai te permitir estar sempre antenado com as novidades a nível mundial que vão impactar o seu segmento de trabalho mais cedo ou mais tarde. Ah, é através da metodologia cientifica, que você vai aprender a tomar decisões, por exemplo escolhendo o melhor ambiente, ou linguagem para um projeto ou mesmo a abordagem para aprender com os próprios erros e com os erros de outros que já tentaram usar uma solução parecida com a sua.

Tendo o conhecimento dessa tríplice de estudo (lógica e conceitos matemáticos, inglês e métodos científicos de estudo, idioma inglês) aprender qualquer outra coisa será muito mais fácil seja na área de TI ou em qualquer outra área de estudo, e com certeza vai fazer você crescer profissionalmente.

Por onde começar?

O primeiro passo para ingressar na área, é se focar no ponto de interesse, qualquer curso técnico ou superior voltado a área de TI, vai abordar a base teórica para se atuar nesses 3 segmentos que foram citados, se você está trilhando os caminhos por contra própria, uma ótima forma de aprender lógica é estudar uma linguagem de programação como o C que possui os conceitos iniciais e que por ser uma linguagem de propósito genérico vai te abrir inúmeras possibilidades de expansão. Um SPOILER DO PROXIMO TÓPICO muitas outras linguagens são baseadas na estrutura da linguagem C, dentre elas PHP, JAVA, GO, RUST, JavaScript, WebAssembly e umas dezenas de outras.

Você deve escolher um segmento com o qual tenha maior afinidade para atuar, e num segundo momento, se focar em estudos correlatos voltados a esse segmento, ou seja, se você vai para o mercado de software desktop em windows ou multiplataforma pode optar por linguagens como C#, ou outras do pacote VisualStudio da microsoft. Ah escolheu WEB, Python ou PHP são escolhas óbvias, mais outras opções também abrem amplas possibilidades. Ah o seu segmento é enterprise ou mais comercial, JAVA, RUBY são linguagens muito comerciais. Ah escolheu o front-end o mais óbvio é JavaScript ou TypeScript, a escolheu desenvolver ou trabalhar em DevOps o mais óbvio é aprender SHELL SCRIPT e linguagens analíticas de dados como R, RUST ou mesmo Python.

Ou seja, depois de ter aprendido o básico para trabalhar na área de TI que são os conceitos, você começa a aprender os objetivos e ferramentas específicas da sua área de estudo, novamente fazendo uma analogia a outras áreas como medicina no começo você aprende a anatomia humana e o funcionamento das patologias como um todo, depois você escolhe a área de maior interesse e passa a se focar naquele ponto, se especializar nele, por exemplo um cardiologista vai estudar técnicas voltadas ao tratamento de patologias ou cirurgias no coração. Do mesmo modo um bacharel em direito começa seus estudos pelas esferas penais, vai conhecer todo o código penal, legislações, língua portuguesa coloquial e formal e somente depois é que vai se focar na sua área por exemplo direito da família ou direito tributário.

Para onde seguir ou evoluir?

Quando você já tiver bagagem suficiente para poder fazer algo na área escolhida, seja qualquer uma delas, é o momento de você começar a focar seus esforços em ferramentas que possam ser diferenciais e que melhorem sua produtividade individual ou de equipe.

Neste segundo momento, ferramentas como GIT e Design Patterns, padrões de codificação e de melhorias de código, metodologias de desenvolvimento como Ágil, Tdd, Programação Funcional. Ferramentas de Bancos de Dados, estudo de algoritmos e funções matemáticas. Além de estudos voltados especificamente ao seu segmento de atuação, ou de segmentos paralelos ou próximos.

Por exemplo, um profissional de Front End pode começar a atuar em segmento de backend através de ferramentas que tenham o propósito de atenderem aos dois segmentos, como o Node.JS ou começar a estudar ferramentas para programação Desktop como o ElectronJS. Um profissional de mobile pode partir para desenvolvimento de jogos, um desenvolvedor back-end pode ir para desktop ou para devOps e por ai vai. São evoluções naturais e que geralmente ocorrem por determinação do mercado.

Já estudos de ferramentas de aperfeiçoamento como metodologias ágeis, orientação a objeto, TDD (orientação a testes) e outras centenas de ferramentas são um ponto de estudo principalmente para a formação de profissionais com perfil de liderança de times e de equipes de desenvolvimento.

Uma característica dos profissionais de TI, que nem sempre é encontrada em outras áreas é a piramide hierárquica, para os profissionais de TI em geral essa piramide tem mais a aparência de uma ESTRELA do que de um triangulo propriamente. Explico o porque, na maioria das áreas, o tempo de formação e o nível de especialidade estão diretamente ligadas a posições no topo da piramide veja o exemplo de uma empresa de advocacia, os recém formados demandam anos atuando para somente depois irem amadurecendo e ganhando senioridade e assumindo cargos mais altos. Em TI podemos ter um programador sênior com menos anos de experiência do que um SysAdmin Pleno pois são áreas diferentes de conhecimento.

Quais as características diferenciais?

Algumas características são o grande diferencial entre um profissional padrão e um ótimo, por exemplo, para se destacar como programador ou profissional de TI algumas características são essenciais e vamos destaca-las aqui.

A primeira coisa é saber encontrar a solução para um problema, na área de TI principalmente na programação, o objetivo do profissional é desenvolver soluções tecnológicas para um determinado problema e ponto. O diferencial é que muitas pessoas quando não encontram a solução simplesmente param e pedem ajuda para outra pessoa, e travam se não encontram essa ajuda. Um ótimo programador se não encontra a solução vai pesquisar por coisas que possam ajuda-lo a solucionar o problema e adaptar as soluções encontradas para o seu universo, não simplesmente ficar esperando a solução vir de outra pessoa.

Com certeza absoluta perguntar para um amigo é mais rápido do que procurar a resposta, mas você ganha de um lado e perde do outro, apesar de mais rápido, você perde a chance de aprender, nada de real valor passou pela sua cabeça e nada foi gerado.

Um hábito que separa iniciantes de programadores mais experiêntes é a falta de planejamento, um iniciante vê um problema e parte para escrever o código, sem entender exatamente o impacto daquilo. Já em níveis mais experiêntes, o profissional planeja e tenta ver se existe uma maneira melhor ou pior de realizar aquilo, bem como ele pode tornar as coisas simples e eficientes, sem adicionar complexidade. Diga-se de passagem adicionar complexidade é um sinal de evolução para um nível intermediário, a completa evolução vem em fazer as coisas de modo simples, e abrangentes. Uma máxima da área se aplica a este ponto: “Programadores inexperientes escrevem código, programadores experientes refazem o código e programadores ninja apagam código”. Sênior de verdade, é aquele que cria um plano técnico suficiente pra resolver o problema de hoje e também suficiente para garantir modificações no projeto ao longo do tempo, caso necessário.

Controle sobre seu desenvolvimento e seu tempo, parece dificil, mais saber exatamente a hora de parar e partir pra outra tarefa não é coisa simples, se você se programar bem vai conseguir não deixar nada pendente de um dia para outro nem nada parado durante uma pausa sua, isso é um grande diferencial, se você trabalha com TI principalmente em níveis onde existe contato com o usuário não saber fazer essa administração pode ser um grande problema, principalmente porque muitas vagas na área de TI são contratos por demanda, se você não administrar suas fatias de tempo não vai conseguir criar janelas específicas para hora de estudar ou hora de ir a academia ou mesmo a hora da família.

Cada um tem as suas urgências, e de certas coisas não temos como escapar, mas se você está infeliz com a sua rotina, aprenda a entortar o tempo na medida do possível para reservar momentos para estudo, saúde ou o que você achar que pode contribuir para você saia de um certo ciclo vicioso.

Mais do mesmo – Entendendo a sopa de letrinhas

Uma das coisas que mais vejo principalmente em anuncios de vagas de emprego, são os requisitos e o quão limitantes eles podem ser para um novato, porém, a noticia a seguir é no minimo animadora, sabia que a maioria das vagas que pedem 400 coisas como requisitos na verdade nem 10 são usadas com frequencia e mesmo os requisitantes talves não conheçam nem 10% delas.

Isso acontece porque, infelizmente uma grande parte dos profissionais de TI tem medo do novo e cria limitações para novas contratações, projetando nos candidatos algo que eles mesmos desejam ter e que nem de longe são requisitos para as vagas.

Um outro problema que a área de TI possui é a mania de ter mais do mesmo, isso está inerente com a famosa sopa de letrinhas e nomes para coisas que na verdade são só ETIQUETAS novas para coisas que já conhecemos a décadas. Veja a nova onda de vagas para DBA (DataBase Administrator) que agora pode ser chamada de Analista de Dados, Engenheiro de Dados, Cientista de Dados que nada mais é do que o profissional para administrar as bases de dados e otimizar os recursos para tais.

Para finalizar, se você quer seguir carreira na área de TI e em especial na áre de programação, tenha em mente que é realmente uma carreira promissora, cheia de desafios e recompensas, porém o preço dela é que por ser uma área dinâmica e ligada a muitos outros setores dentro de uma empresa, requer do profissional um aperfeiçoamento continuo e estar ligado a novidades por menores que sejam pois da noite pro dia uma nova tecnologia pode surgir e se tornar um novo padrão.

Boa sorte nas suas escolhas e tenha certeza que a área de TI é muito recompensadora, porém para ser bem sucedido nela você não só precisa entender os seus conceitos como gostar e ser apoixonado por ela, pois é uma profissão que além de exigir um comprometimento durante o seu horário de trabalho requer muito estudo e observação.