Adaptabilidade necessária para ser um profissional de Software

Adaptabilidade necessária para ser um profissional de Software

Acredito que a primeira barreira que qualquer pessoa encontra nos estudos para se tornar um profissional de software não seja a famosa lógica de programação ou algoritmos, mas sim o propósito de cada tecnologia.

Para melhor exemplificar o meu pensamento:

Você acabou de entrar em um curso técnico ou faculdade e está interessado em ser um desenvolvedor de software por diversos motivos... Mercado ascendente, salário razoável e etc. Provavelmente no primeiro semestre da faculdade se deparará com matérias como lógica de programação ou algoritmos que será lecionada através de Java ou C, web que envolverá HTML5, CSS3 e Javascript. 

Nesse momento já começará a surgir uma série de dúvidas e o desespero começará a crescer, já vi até mesmo pessoas correndo da aula de web e trancarem o curso!

Então começará a pesquisar tudo na internet através de fóruns vídeos e tutoriais... Então verá discussões em diversos fóruns, como:

  • Frameworks reativos de javascript (React, Angular e VUE).
  • Bibliotecas CSS para agilizar o desenvolvimento (Bootstrap, Materialize e Foundation).
  • Os famosos javeiros exaltando que o Java é multiplataforma, mesmo que hoje em dia quase todas as linguagens já façam o mesmo.
  • Programadores node.js dizendo o quanto o mecanismo de Event-Loop/Single-thread é super performático, mesmo que o C# já incluiu o async/await e ainda supera sua performance com o .NET CORE.
  • Programadores C#, que sempre irão reclamar do web forms e falar o quanto o MVC é ótimo!

Mesmo confuso sobre tantas tecnologias você desenvolveu seu primeiro projeto. Agora quer realizar o deploy em algum ambiente para mostrar aos colegas ou adicionar em seu portfólio. Lerá sobre os ambientes de cloud computing(Azure, Amazon, Google Cloud ou IBM Cloud) e seus modelos (SaaS, PaaS e IasS).

Um amigo pediu para poder contribuir em um projeto e pediu o link do repositório do GitHub. Git? GitHub? O que é isso?! Mais tecnologia para aprender.

Após entrar em contato com programadores mais experientes começará a aprender sobre Design Patterns, boas práticas, TDD, DDD, Docker, Kubernetes, DevOps e Scrum. Acho que já deu para entender o que estou querendo dizer, afinal somente estamos falando de software... Constantemente poderá entrar em contato com pessoas da área de redes, segurança cibernética, B.I ou negócios. Somente crescendo cada vez mais a quantidade de conhecimento a se absorver.

Diante de todas estas siglas, todas estas metodologias e todas estas tecnologias surge a pergunta:

"Por onde um iniciante deve começar ?"

Não sei se sou a pessoa adequada para responder mas acredito que a maioria das pessoas iriam dar a seguinte resposta:

"Depende!"

Digo isto por quê sempre existirá tecnologias emergentes no mercado e é impossível se tornar especialista em todas. Desta maneira, qual tecnologia você tem que estudar? Depende!

Dentre todas as possibilidades, acredito que há um conjunto de fatores comuns que pode ajudar a maioria dos leitores, estes são:

  1. Comece com algo que seu curso ou faculdade leciona ou algo de que você goste, tudo que você precisa é de um ponto inicial em sua jornada.
  2. Concentre-se nos conceitos e fundamentos, deixe os frameworks para depois.
  3. Construa seu portfólio, mostre o que consegue construir!
  4. Consiga um estágio, verá que o mercado é mais exigente que qualquer faculdade ou curso!
  5. Estude a tecnologia que irá pagar o seu salário, assim aumentando sua produtividade e será muito mais fácil ser efetivado.

Através desses passos, você já alcançou um bom nível na tecnologia em que escolheu e sabe se localizar em meio ao emaranhado de tecnologias neste imenso ecossistema do mercado de software. Porém, isto é só começo!

Ao chegar neste nível, você se lembrará das aulas de filosofia do ensino médio:

"Só sei que de nada sei" -Sócrates

Para os profissionais de software, o estudo não se trata de uma jornada. Mas sim de uma infinita busca pela excelência!

Parabéns pelo artigo Igor Carlos Almeida, muito didático! Só quem passou pela experiência de ficar perdido no meio de tantas tecnologias e nomenclaturas diferentes sabe o quanto isso pode ser relevante pra quem ta chegando.

Gabriel Gomes

Software engineer | Tech Leader at IONIC Health

5 a

Muito bom!

Entre para ver ou adicionar um comentário

Outras pessoas também visualizaram

Conferir tópicos