Você está na página 1de 10

https://becode.com.

br/conhecimentos-essenciais-programador/

Os 13 conhecimentos essenciais a um programador de sucesso!


Veja o que é preciso para ser um Desenvolvedor de ponta: do conhecimento mais inicial, até o mais
avançado! Confira a jornada de um Dev!

A área de programação ganhou grande visibilidade nos últimos anos, tanto para pessoas envolvidas no
mercados de TI, quanto para o público em geral, uma vez que com o avanço da programação, também
evoluímos como sociedade.

Graças a evolução da tecnologia, hoje o programador e o desenvolvedor (Dev) estão cada vez mais
valorizados. Claro, ainda não chegamos ao patamar de valorização que obviamente gostaríamos. Contudo, é
inegável que hoje somos essenciais para praticamente todas as organizações. Vamos aos fatos:

 Nos anos 90, uma empresa não possuir uma área de TI/ desenvolvimento, era normal e muito
frequente.
 Hoje, se essa mesma empresa não possui um setor de TI/desenvolvimento, por menor que seja esse
setor, é praticamente um atestado de falência.

Oportunidade x Qualificação

Essa mudança no paradigma organizacional fez com que a área crescesse em oportunidades. Só o website da
Catho, por exemplo, apresenta mais de duas mil vagas em disponível apenas para o termo “programador”,
mostrando oportunidades variadas de carreiras que abrangem todas as faixas de salário.

“Wow, vou aprender a programar e ficar rico!”

Calma lá, não é bem assim! Só porque há abundância de vagas, não quer dizer que as organizações vão sair
contratando profissionais sem nem ao menos verificar a qualificação do indivíduo.

Sim! É preciso muita qualificação e estudo nessa área. E quando falo estudo, estou comentando sobre um
processo contínuo. O que você aprendeu em 2010, talvez já não se aplique em 2016. A tecnologia que você
utiliza em um projeto, pode não ser a mesma utilizada em outro. Resumindo, você precisa estar a todo
momento tentando se reciclar profissionalmente e se adaptando a realidade do mercado. Entendido?

OK, entendido! Mas como começo na área?

Entendido isso, agora você pode relaxar um pouco, pois no seu início de carreira, as coisas não são tão
malucas e mutáveis como falei acima. Em outras palavras, os princípios da programação não irão mudar a
cada nova tecnologia que é lançada. Existe sim uma série de conhecimentos essenciais para todo
programador de sucesso, independente do rumo escolhido para sua carreira: back-end, front-end, mobile,
full-stack, games e outros.

Nesse post, é exatamente sobre isso que iremos falar, os conhecimentos essenciais que todo
programador/desenvolvedor precisa ter para ser bem sucedido na carreira. Para facilitar a sua vida, coloquei
os conhecimentos em ordem crescente, de mais inicial ao mais avançado.

Claro, isso é apenas a minha opinião. Você pode enxergar de forma diferente, principalmente, ao chegarmos
ao final do post. Onde a área de atuação do profissional começa a exercer um papel importante. Portanto, se
você possuir uma opinião divergente, fique à vontade para expressá-la nos comentários.

Sem nos prolongarmos mais, o conhecimento mais essencial para ser um programador é…

1º – Hardware e Software

Óbvio que ter noções básicas de hardware e software seria o primeiro de todos! Resumindo, saber utilizar
um computador, seu sistema operacional, softwares e hardwares que o compõem é extremamente essencial.
O computador será a sua ferramenta de trabalho! Por isso, quanto mais domínio você tiver sobre ele e todas
as partes que o compõem, mais fácil será sua evolução na área de programação. Não estou dizendo que você
precisa saber TUDO sobre software e hardware, isso será mais tarde na sua carreira, mas sim você precisa ter
facilidade com ele. Sabe aquele cara na família que todo mundo vai pedir ajuda com questões relacionadas à
tecnologia? Bem, esse deve ser você!

Como adquirir esse conhecimento?

Só há um jeito: fuce em tudo! Formate o seu PC, instale softwares, instale sistemas operacionais, abuse do
next, next, next. Desmonte seu PC, monte seu PC, troque peças. Faça testes e veja os resultados. Não tenha
medo, mas também seja inteligente, busque ajuda na internet, tutoriais, faça backups, não faça downloads de
sites duvidosos, enfim… mãos a obra!

2º – Lógica de Programação

Seguindo a nossa trilha de conhecimentos, temos Lógica de Programação e Algoritmos. O primeiro curso que
você irá ter que fazer na sua trajetória para ser um programador ou desenvolvedor, com certeza será o curso
de Lógica de Programação e Algoritmos.

Porque?

Basicamente, porque esse conhecimento irá te ensinar a programar de uma forma universal. Depois de
aprender Lógica de Programação e Algoritmos, os mesmos conhecimentos serão aplicados para praticamente
todas as linguagens de programação existentes. O que irá mudar serão apenas as regras especificas de cada
linguagem. Contudo, a base será a mesma. Por isso escrevi acima “aprender programação de forma
universal”.

Além disso, esse conhecimento também irá te ensinar sobre como um software pensa, se comporta e quais os
conceitos e técnicas mais fundamentais da área.

Resumindo, é extremamente importante não medir esforços para dominar Lógica de Programação. Pode ser
um pouco chato no início, mas isso pode ser o diferencial entre um programador bom e um programador
mediano. Se você encontra-se nessa etapa da carreira de um programador, dê uma olhada também em nosso
post que falamos sobre a melhor forma de aprender Lógica de Programação.

3º – Orientação a Objetos

Orientação a Objetos é simplesmente o paradigma de programação mais utilizado pelas linguagens mundo a
fora. O que isso significa? Basicamente, que para você desenvolver um software duradouro em termos de
manutenibilidade, com qualidade de software superior, de acordo com as boas práticas de programação,
utilizar o paradigma OO é uma obrigação em 90% dos casos.

“Ahh, mas eu programo somente em C”

OK, realmente, C não é orientado a objetos e, por isso, você não precisa saber OO para programar com C.
Entretanto, você ficará refém dessa linguagem e outras que não se utilizam do paradigma. Em outras palavras,
a sua empregabilidade será menor e, por consequência, a sua valorização profissional também. Portanto, não
arrisque, aprenda Orientação a Objetos, o seu currículo agradece e o seu futuro também!

IMPORTANTE: Só para deixar claro, não estou dizendo que C não é uma linguagem importante, muito pelo
contrário! Entretanto, versatilidade é uma característica muito bem-vinda no mercado de programação.
Portanto, saber mais de uma linguagem de programação é fundamental.

Se você ficou curioso para saber mais sobre OO, em outro post explicamos em mais detalhes o que é
Programação Orientada a Objetos e porque é tão importante para o profissional da área de desenvolvimento,
vale a pena conferir!

4º – Linguagens de programação

Finalmente! Está na hora de aprender e começar a ganhar experiência com pelo menos uma linguagem de
programação de mercado.

Existem diversas, sendo que algumas delas são mais populares e possuem mais visibilidade, enquanto outras
cobrem nichos de mercado e são voltadas a objetivos específicos. A tarefa de escolher por qual linguagem
começar é bem complexa e pode demandar bastante pesquisa, pois a linguagem precisa estar alinhada com o
seu objetivo de carreira.
Se você não sabe bem qual rumo você quer dar para a sua carreira, recomendo que você inicie com alguma
das linguagens mais populares do mercado, entre elas:

 C
 C++
 C#
 Java
 JavaScript
 Python
 Ruby
 PHP
 Swift

Tempo de aprendizagem

Isto irá variar conforme as características e complexidades da linguagem escolhida. Contudo, uma coisa é
certa: no momento que você aprender a sua primeira linguagem de programação, a tendência é que o seu
tempo de aprendizagem seja cada vez menor com as outra. Isto se você estudou Lógica de Programação.
Lembra lá do 2º tópico desse post? Pois é, nesse momento você irá agradecer por ter priorizado o
aprendizado em Lógica de Programação antes de qualquer linguagem de mercado.

5º – Banco de Dados

Caso o seu objetivo de carreira seja trabalhar com desenvolvimento, aprender banco de dados é uma
obrigação, principalmente, se você pretende trabalhar com linguagens back-end. Afinal de contas, para a sua
aplicação funcionar, ela precisará de um servidor e um banco de dados.

Tá, mas eu quero front-end, preciso mesmo?

Não! Quer dizer… Sim! Se você for trabalhar com desenvolvimento front-end, “até que dá” para dizer que
saber banco de dados é algo opcional. Contudo, hoje em dia, no mercado de desenvolvimento tudo está
muito interligado e, especialmente em empresas pequenas, onde encontramos um profissional de TI que
acaba sendo responsável por todas as áreas de atuação.

Meio maluco isso, mas é o que acontece. O profissional que cuida da infraestrutura é o mesmo que cuida do
desenvolvimento que, por sua vez, realiza os testes e também otimiza o banco de dados e faz o front-end.
Sendo assim, a minha recomendação é: aprenda o básico de Banco de Dados!
Como funciona um servidor e um SGBD (Sistema de gerenciamento de Banco de Dados), aprenda sobre
modelagem, funcionamento e desenvolvimento de uma base de dados. Para finalizar, conheça os principais
comandos para manipulação dos dados.

Se possível, estude tanto sobre banco de dados relacionais, quanto não relacionais (NoSQL). Se não sobrar
tempo para tudo isso, opte por aquele que mais se adequam ao seu objetivo de carreira. Nesse caso, acredito
que esse post irá ajudar. Nele, você encontra um resumo sobre os top 10 SGBDs do mercado de TI.

E se a empresa possuir um DBA?

É muito possível que você trabalhe em conjunto com um DBA (Database Administrator). Nesse caso, ele será
o responsável por toda a administração e otimização do Banco de Dados. Contudo, mesmo nesses casos, você
precisará conhecer o mínimo sobre banco de dados para que a sua aplicação (desenvolvimento) consiga
conversar da maneira correta com o banco de dados.

Dev x DBA

Até para você se preparar, existe uma certa rixa entre Devs e DBAs. Isso ocorre, pois frequentemente as
aplicações que são desenvolvidas em “desacordo com as boas práticas” (para não falar coisa pior) acabam
consumindo recursos demasiados do banco de dados e isso prejudica o trabalho do DBA, cujo o principal
objetivo é zelar pela integridade, segurança, administração, performance e otimização da base de dados!

6º – Infraestrutura de TI (Linux, Microsoft)

OK, saber infraestrutura não é obrigatório, principalmente se você possui foco na área de front-end. Porém,
se você é do back-end, ter esse conhecimento pode te elevar a um outro patamar na área de
desenvolvimento. A sua valorização profissional será imediata.

Porque isso?

Historicamente, a área de infraestrutura de TI e a área de desenvolvimento de software nunca se deram


muito bem (antes o DBA, agora o cara da infra…). Grosseiramente, o problema consistia no seguinte:

A área de desenvolvimento se preocupava apenas com o desenvolvimento da aplicação. Contudo, no


momento que esta aplicação era entregue para a equipe responsável por colocar o software em produção, o
software apresentava crashs e bugs ao reproduzir a aplicação no ambiente de produção. Em outras palavras,
durante o desenvolvimento, a aplicação funcionava (Dev); no ambiente de produção (Ops), não. Isto ocorre
quando a área de desenvolvimento não cria a aplicação de acordo com a infraestrutura estabelecida naquela
determinada organização. Em outras palavras, nesse caso, a área de infra e a área de desenvolvimento não
são compatíveis e isso é um problema gigantesco!
A partir desse problema comum nas organizações, surgiu o DevOps. Um profissional, uma equipe ou até uma
nova cultura na empresa. responsável por realizar a ligação entre a área de desenvolvimento (DEV) com a
área de infraestrutura (OPS). Evitando, ou minimizando, os problemas citados acima.

Como ser DevOps?

Claro, chegar no nível de expertise suficiente para fazer parte de uma equipe ou empresa que use as boas
práticas DevOps é um desafio e tanto. Você precisará saber muito sobre infraestrutura de TI e sistemas,
como Linux e Microsoft. E, além disso, precisará dominar a área de desenvolvimento. Se você curtiu a ideia.
Tá ai uma sugestão interessante de rumo para dar para a sua carreira. Contudo, você precisa ser paciente e
traçar um plano de longo prazo, pois ninguém vira um DevOps da noite para o dia. Será necessário muito
estudo e prática.

Se você já é da área de desenvolvimento, sugiro que você comece os seus estudos com o Linux
(Programadores/ Desenvolvedores que sabem Linux são mais valorizados, de acordo com o relatório da Linux
Foundation). Caso você seja da área de Infra, faça o caminho contrário, procure estudar sobre
desenvolvimento. Nesse caso, esse post já te proporciona um guia e tanto! Após você ter conhecimentos
avançados sobre ambas as áreas, avance seus estudos! Busque cursos e informações sobre Integração
Contínua, técnicas e ferramentas DevOps.

7º – Visão sistêmica

A visão sistêmica ou pensamento sistêmico é a capacidade de compreender o todo em um objeto de estudo,


entendendo suas ligações e interferências no sistema em que ele habita. Por exemplo: não é possível avaliar
uma empresa, suas dinâmicas e capacidades analisando somente um setor. É preciso compreender que a
conexão entre os setores e as trocas que as pessoas fazem entre eles também influenciam no resultado final
da empresa.

A visão sistêmica ajudará muito no entendimento das linguagens de programação e na construção de


programas, pois ajudará a arquitetar uma solução sob a ótica de uma amplitude maior do sistema, prevendo
problemas que, sem essa visão, seriam deixados de lado. Além disso, ajuda a entender como funciona um
sistema e como os problemas para ele devem ser resolvidos.

Resumindo, quanto mais abrangente for a sua visão com relação a um problema ou necessidade de software,
melhor será o seu software.

Quanto mais abrangente for a sua visão com relação a uma necessidade, melhor será o seu software. Clique
para tuitar

8º – Versionamento e Git

O Git revolucionou a forma como desenvolvemos softwares. Hoje, saber utilizar o Git ou qualquer outro
sistema de versionamento de software, é uma habilidade extremamente bem-vinda no portfólio de qualquer
programador.

O que é versionamento/controle de versão?

Basicamente, controle de versão é um sistema que registra as mudanças realizadas em um arquivo ou


conjunto de arquivos ao longo do tempo. Com isso, você pode recuperar versões específicas de um
determinado arquivo (ou software inteiro) sempre que necessário. Para um desenvolvedor isso é
extremamente útil!
Digamos que você acaba de lançar uma nova versão do seu app, contudo, essa versão não foi bem aceita pelo
seu público ou contém muitos bugs. Simples, você pode retroceder a versão anterior. Claro, esse é apenas um
exemplo do porquê versionamento é algo tão central na vida de um desenvolvedor experiente. Existem
diversas outras situações onde um sistema de controle de versão é fundamental, entre elas, quando você
precisa:

Reverter arquivos específicos; comparar mudanças feitas no decorrer do tempo; ver quem foi o último a
modificar algo que pode estar causando problemas; quem introduziu um bug e quando; criar ramificações de
desenvolvimento em um mesmo software; criar projetos open source.

Com esse conhecimento e a correta utilização das técnicas de versionamento, o processo de manutenção e
atualização de um software é incrivelmente facilitado.

9º – Testes de Software

Sim, nem todo desenvolvedor gosta disso. Contudo, o desenvolvedor é o principal responsável pela qualidade
do seu código. Portanto, aprenda a escrever testes unitários e a validá-los, isso irá facilitar o seu trabalho e o
trabalho do testador. A consequência disso será um software muito melhor e um usuário final muito mais
satisfeito.

Inclusive, existe uma metodologia de desenvolvimento chamada Test Driven Development – TDD
(Desenvolvimento Orientado a Testes, em Português). Esta metodologia coloca o teste de software no foco do
desenvolvimento, o que resulta em aplicações com qualidade de software superior.

Resumindo, aprender sobre Testes de Software tem sido fundamental e à medida que você cresce na carreira
e, por consequência, busca se destacar na área, testes será cada vez mais essencial. Isso é válido tanto para
front-end, quanto para back-end.

10º – UX design, UI e SEO

O usuário está cada vez mais exigente. Portanto, principalmente se você pretende trabalhar com front-end
development, estudar sobre User Experience – UX (Experiência do Usuário) e User Interface – UI (Interface
do Usuário) será determinante para seu sucesso como profissional. Vivemos em uma época em que a beleza
das páginas web conta muito menos do que a experiência que a aplicação irá proporcionar ao usuário.

Imagine um ecommerce em que todas as telas são maravilhosas. Porém, você precisa trocar de tela mais de
5x para finalizar a sua compra e, no final do processo, a página de checkout não funciona. Este ecommerce
pode ser lindo e os produtos podem ser demais, contudo, não cumprem com o seu objetivo, “compra/venda”.
Em termos de UX e UI, nesse caso:

 A UI é terrível, pois a disposição dos elementos na interface não é prática e objetiva;


 A UX é péssima, pois mesmo passando por todos os processos, o usuário ainda não consegue realizar o
seu objetivo que é simplesmente ‘comprar’.

Isso já aconteceu comigo, na Playstation Store, imagine a minha frustração após tentar comprar um jogo, por
mais de 5x, tentando com 3 cartões de crédito diferente e nada! Pois é, nível de frustração master!

Mas enfim, voltando ao nosso tópico. Claro que isso é o resumo do resumo do que é UX e UI. Essa área do
conhecimento é muito ampla e é utilizada em diversos segmentos do mercado, sendo a TI, uma delas.

E SEO, por que preciso aprender?

SEO significa “Search Engine Optimization”. Em português, otimização para mecanismos de busca, vulgo
Google e Bing. Se for trabalhar com a Web, é muito provável que você lide com SEO. Sendo esse o caso, você
precisará estudar as principais práticas e técnicas da área, tendo como objetivo principal: fazer com que a sua
aplicação web ou site atinja os melhores posicionamentos no ranking dos mecanismos de busca.

Já adianto que uma dessas ‘técnicas’ é garantir uma excelente experiência de usuário. Sendo assim, podemos
dizer que UX e SEO são duas coisas extremamente interligadas. No mais, você precisará saber SEO para
conseguir organizar a estrutura do seu site, de acordo com as regras do Google.

Você, como desenvolvedor, possuirá um papel secundário nessa estruturação. Contudo, como é algo que irá
acabar respingando na sua área, sempre é bom se adiantar e conhecer pelo menos o mínimo sobre o assunto.
Assim você conseguirá se relacionar com as outras áreas envolvidas: Design, Marketing, Negócios e outras!

11º – Gestão de Projetos e Agile

Projetos! Como todo bom desenvolvedor, é muito provável que você vá trabalhar por projetos. Inicialmente
como um recurso, posteriormente, como líder de equipe e gestor.

O fato é: você precisa, com o passar do tempo, ir se acostumando com os conceitos, termos e práticas de
gerenciamento de projetos, tanto o modelo tradicional, ditado pelo Project Management Institute – PMI ou o
modelo de Métodos Ágeis, cultura agilista. À medida que você for aderindo a estas práticas, você verá que a
sua produtividade, ou a da sua equipe, irá crescer exponencialmente.
12º – Relacionamento Interpessoal

“Ahh, mas eu escolhi programação justamente porque odeio falar com outras pessoas, meu negócio é
máquinas…”

Esquece! Você terá que lidar com pessoas a todo momento. Como falei no início do post, ultimamente, a TI
ocupa um papel central nas organizações. Portanto, os profissionais dessa área são cada vez mais
importantes e, por isso, participam das decisões. Decisões que são tomadas por pessoas, em conjunto!

Portanto, prepare-se para participar de reuniões, falar com colegas de trabalho e, principalmente, trabalhar
em equipe. Não há como evitar. Se necessário, procure treinamento na área. O que é muito comum, existem
diversos cursos e workshops que focam literalmente nisso: relacionamento interpessoal, dicção,
apresentação, marketing pessoal, etc. E, se você for uma pessoa muito ansiosa e com extrema dificuldade de
se relacionar, um psicólogo também é uma alternativa extremamente válida.

Eu acredito que todos deveriam ir a um psicólogo, isso não significa que sejamos loucos, muito pelo contrário!

13º – Inglês

Saber falar inglês é uma habilidade que será útil desde o início de sua carreira. Ela aparece apenas no final da
nossa lista por um único motivo: o aprendizado em inglês acaba acontecendo naturalmente com o passar do
tempo. Quanto mais você pratica programação, mais vezes você irá se deparar com termos em inglês e textos
que você terá que colocar no Google tradutor. Sem contar as explicações que não existem no bom e velho
português e, por isso, você terá que recorrer a documentação oficial da tecnologia. Enfim, é um processo
natural.

Portanto, não se desespere! Encare isso como um bônus:

“Vou aprender a programar e, na passada, já aprendo inglês!”

Para acelerar o processo de aprendizado, sim, você pode fazer um curso presencial ou online. Ou ainda, mais
barato e mais divertido, jogue videogame e veja filmes com legenda em inglês. Pronto, o seu processo de
aprendizado será muito mais rápido, só cuidado para não ficar viciado!

Acabou? e agora?

Primeiro de tudo, não se desespere! Para tudo há seu tempo, você não precisa se matricular em 20 novos
cursos e querer aprender tudo até ontem. Até porque o nosso corpo humano não é capaz de fazer isso.

Vá com calma, identifique qual é o seu estágio inicial e, a partir disso, trace um plano de carreira e procure
estudar estes conhecimentos conforme a sua necessidade, estágio profissional e disponibilidade de tempo e
financeira.
Para facilitar a sua vida, nesse post, coloquei os conhecimentos mais essenciais no inicio do texto. Portanto, se
você está iniciando nessa área, comece por eles. Entretanto, lembre sempre que na TI tudo é relativo e
dependente da especialização que você desejar seguir dentro da área de desenvolvimento: Front-end, Back-
end, Mobile, Full-stack, DevOps, Games e entre outros.

Uma vez decidida a área de atuação, criar um plano de carreira em função desse segmento é algo
extremamente útil e válido, mesmo que seja algo documentado apenas na sua cabeça. Nesse post, damos
algumas dicas para você montar um plano de carreira vencedor para a área de TI.

No mais, não é uma tarefa fácil, sei disso. Contudo, tenho certeza que se você conseguir atingir todas as
habilidades listadas acima, será um profissional extremamente valorizado e preparado para o mercado de
trabalho e suas oportunidades. Boa sorte nessa trajetória!

Espero que você tenha gostado do post! Qualquer sugestão, comentário ou crítica, iremos adorar ouvir a sua
opinião nos comentários abaixo, abraços e até a próxima!

Por que devo aprender Ruby on Rails? Veja 9 razões!

A trajetória de um Desenvolvedor Mobile: tudo que você precisa saber!

Erick Scudero

Especialista em Marketing Digital e apaixonado por tudo que envolve o universo de tecnologia e comunicação.
Durante sua jornada na terra dos cangurus (Austrália), atuou em diversos projetos prestando consultoria em
questões de UX, SEO, Marketing Digital e modelos de negócio com foco em startups. É cofundador da Becode,
da M2up e instrutor de cursos presenciais na TargetTrust

Você também pode gostar