POSTS
Como iniciar na carreira de desenvolvedor de software
- 4 minutes read - 819 wordsComo iniciar na carreira de desenvolvedor de software
Ainda vale a pena ser um programador?
A carreira de desenvolvimento de software teve um crescimento gigantesco nos ultimos anos. No final do seculo passado havia somente os processadores de dados e quase todo o foco de desenvolvimento era para aplicações desktop. A internet ainda caminhava a passos lentos e os telefones, além de ligacoes, apenas enviavam SMS.
O advento da internet e dos dispositivos móveis fez crescer de forma vertiginosa as modelos de negócio baseados na web e nas redes sociais (modelo web2.0) e, por consequencia, a necessidade por programadores.
Como mostra o grafico da Ed Research, a quantidade de programadores quase quadruplicou ao longo dos ultimos anos.
Contudo, o que muitos consideravam ser um oceano azul, hoje se mostra como algo não tão certo fruto da possibilidade dos modelos de inteligencia artificial. Levantando a duvida sobre a validade do esforço de entrada na carreira.
O que posso afimar com certeza é que se tonar um programador ainda é um investimento e uma perspectiva de carreira muito válida. Não é uma carreira extramamente fácil, muito menos tão glamurosa como tem sido vendida por alguns “web-influencers”, mas sem sombra de dúvidas é um caminho muito prazeroso a ser seguido por aqueles que se identificam com as ciências exatas, lógica e que adoram passar horas aprendendo sobre computadores.
Como inciar na carreira
Uma dúvida que me surgiu quando ingressei (e que sempre surge naqueles que migram) para a carreira de desenvolvimento de software é qual a melhor forma de conseguir ganhar conhecimento prático e conseguir um emprego.
Mesmo aqueles egressos dos cursos de engenharia ou ciências da computação costumam aprensetar dificuldades em adquirir o conhecimento prático que efetivamente contribui para a aprovação em um processo seletivo para uma vaga de desenvolvedor, programar ou engenheiro de software.
Há cinco fundamentos básicos que precisam ser estudados
- Conhecimento básico de computação
- Processador (nucles, CPUs, vCPUs)
- Memoria
- Sistema operacional
- Threads
- Variáveis de ambiente
- Conhecimento básico sobre redes
- TCP e IP
- DNS
- Pacotes
- Ciclo de vida de uma conexão http
- Conhecimento das principais estruturas de dados
- tipos numericos: bit, byte, int32, int64(long), float, float64(double)
- Coleções: array, listas, sets, mapas
- Conhecimento de estruturas de controle
- if, else, elseif, switch
- for, while
- methods, functions, method overloading
- Conhecimento de orientação a objetos
- Classes
- Métodos
- Herança (inheretance)
- Methods Overriding
Esses conhecimentos são a base ou os blocos iniciais para quem deseja ingressar em qualquer área de desenvolvimento de software.
Não erre buscando frameworks
Um erro muito comum de quem começa em programação nos tempos atuais (com muitas ferramentas e excesso de linguagens) é pular os fundamentos básicos mencionados acima e ir direto para aprender um framework. Na ânsia de entrar no mercado de trabalho e/ou desconhecimento da importância dos principais básicos, muitos partem para tutoriais ou cursos que focam em frameworks específicos. Embora pareça um atalho sagaz, pular os fundamentos é um erro crítico que pode lhe custar muito no médio ou longo prazos.
As tecnologias de topo (linguagens e frameworks) mudam com muita frequencia ao longo do tempo e mesmo entre diferentes empresas ou regiões. Não é incomum que ao longo da vida útil de uma start-up, a stack de tecnologia mude e evolua através de novas linguagens e paradigmas. O grande diferencial que irá ditar a velocidade com que o programador absorverá essa nova stack e a sua produtividade está totalmente relacionado com os fundamentos básicos. Afinal, toda linguagem, por mais moderna que seja, ainda roda atualmente nos mesmos computadores, CPUs e memórias.
Onde buscar conhecimento
O ponto de partida mais
- Livros
- Cursos (presenciais e online)
- Videos/tutoriais
- Artigos na internet
Não há uma forma única e totalmente eficaz de se adquirir todo o conteúdo necessário para cobrir o básico da programação. Mesmo os melhores livros acabarão por ocupar um tempo muito grande com conteúdos desnecessários para este momento (O livro em si pode até ser inteiramente útil, mas normalmente há uma amalgama de conteúdos iniciais com avançados que atrapalha o fluxo de estudo de quem está começando na carreira).
A forma mais eficiente de se montar um plano de estudos é começando por uma lista de todos os tópicos principais (acima) e através desta lista buscar capítulos de livros que abarquem aqueles. Os livros serão a base para a montagem do conhecimento inicial e por serem mais teóricos, eles costumam construir vocabulário e conceitos que serão essenciais na hora de ser colocar em prática. Nem tudo fará sentido à primeira leitura e é neste momento que os cursos online entram em cena. Por possuírem conteúdos mais práticos e focados em exercícios, os cursos são uma ótima opção para complementar e exercitar o que foi aprendido pelos livros. Mesmo após a conclusão dos cursos, ainda haverá diversas lacunas de conhecimentos e dúvidas que são inerentes a cada indivíduo e a melhor opção para preenchê-las é através de artigos escritos e vídeos na internet.
Em breve montarei um plano mais detalhado.