Há algum tempo, publicamos um material escrito pelo nosso estimadíssimo CEO explicando como começar uma carreira na tecnologia sem saber programar. Além de responder algumas perguntas importantes, como “Para quem é a carreira em tech?”, “Onde fica o ‘início’?” e (não menos importante) “Programar dá dinheiro?”, também demos uma palhinha sobre algumas áreas de atuação com maior potencial para novos profissionais.
Vamos olhar novamente para as áreas que apresentamos no artigo acima e aprender mais sobre o que é esperado do programador em cada uma delas.
Para manter o foco no mercado de programação, vamos abordar conceitos de forma sucinta ao longo do texto. Ainda, trazemos algumas menções honrosas e recursos que você pode colocar no seu radar para continuar o seu aprendizado.
Sites da Internet
O que é?
Programação para Sites da Internet envolve a produção de sites para empresas, comércios, eventos, etc. É uma área bem abundante, já que toda empresa tem (ou deveria ter) um site, por mais tecnologia avançada que ela produza. Além de um pouco de programação, envolve também aprender noções de desenho (aqui chamado de web design), e muitas vezes noções de marketing, já que a ideia de um site é justamente ser uma vitrine virtual. O nível de complexidade é mais baixo e as habilidades adquiridas aqui servem como base para conhecimentos mais profundos, e por esses motivos é um ótimo ponto de partida para quem está começando.
Qual o papel do programador?
Trabalhar com programação de sites exige estudos sobre web design, incluindo princípios de design como um todo e comportamento do usuário. Essa área tem ganhado destaque com a popularização do conceito de Design UX/UI. Idealmente, a programação de sites é um trabalho conjunto entre o designer e o programador. Espera-se, então, que o designer tenha noções básicas de programação a fim de entender as possibilidades e limitações do programador.
Tá, e o programador? Como a maioria das tecnologias nessa lista, sites contam com front end – a interface, o que o usuário vê – e back end – os “bastidores”, onde moram os códigos. Ambas exigem trabalho de programação, mas de formas um pouco diferentes. Essencialmente, o programador de sites vai dar vida ao layout criado pelo profissional de UX/UI, usando seus conhecimentos em HTML, CSS, Javascript, Bancos de Dados e muito mais.
Vale reforçar que, embora você possa se especializar em front end ou back end, não é incomum ver profissionais que se capacitam em ambos (o famoso Severino Full Stack). Só depende do seu interesse e aptidão.
Sistemas Web
O que é?
Sistemas Web – também conhecidos como Web Apps, ou Aplicações Web – são aplicações que rodam no seu navegador, programas que podemos acessar de qualquer lugar, sem necessidade de instalação. O Gmail é, talvez, o exemplo mais conhecido que podemos falar. Mas sistemas como o iFood, Uber, ou o seu Internet Banking, até mesmo as redes sociais e a busca do Google são sistemas complexos que existem para uma finalidade de negócios. O mercado aqui é gigantesco, e é onde a grande maioria dos programadores costuma trabalhar e encontrar vagas em abundância.
Por se tratarem de sistemas que rodam no navegador, os conhecimentos técnicos exigidos são bastante semelhantes aos de programação para sites. Mas não se engane! Todo sistema web funciona através de um site, mas nem todo site é um sistema web.
Enquanto um site essencialmente serve como uma vitrine virtual de conteúdos e de interação limitada, as web apps cumprem propósitos específicos que contam com a interação do usuário, além de possuírem outros recursos de segurança e troca de dados. Um exemplo cotidiano é o site de algum serviço por assinatura (Conta Azul, Evernote, entre muitos outros), que pode ser acessado através do navegador no celular ou tablet (versão mobile), mas possui também uma versão para desktop.
Qual o papel do programador?
Nesse universo, já começam a aparecer diferentes nichos de mercado, relacionados a escalabilidade, linguagens de programação e áreas de atuação. Claro, aqui ainda existe o front end e o back end, mas o tipo e o nível de conhecimento exigidos são bem maiores.
Quando falamos em Sistemas Web estamos falando de sistemas integrados entre si, bancos de dados com suporte a grandes montantes de informações, muitas vezes milhares de acessos simultâneos, e assim por diante. Fazer um sistema que se comunique com bancos de dados, com o usuário e até com outros sistemas é – de forma super simplificada – a essência do trabalho do profissional dessa área.
Você já parou para pensar no caminho que o seu e-mail percorre para chegar ao destinatário? Ou o que acontece por trás de uma tela de login? O programador já.
Aqui já costuma ser necessário ao menos um curso técnico ou estar cursando uma faculdade de tecnologia: Ciência da Computação, Sistemas de Informação, Análise e Desenvolvimento de Sistemas, etc. No entanto, uma faculdade aqui não é obrigatória! Existem várias escolas de tecnologia que ensinam toda a trilha necessária para introduzir as pessoas nesse ramo, com duração aproximada de 1 ano de estudos. Aqui mesmo, na Code Sense, ter curso superior nunca foi um pré-requisito para nenhuma vaga, mas sim, o conhecimento necessário para executar o trabalho!
Sistemas Desktop
O que é?
Sistemas Desktop são aplicações instaladas no seu computador e rodam localmente, ou seja, não necessariamente precisam da internet para funcionar. Aqui entram os programas que você usa no dia-a-dia, como o Word, Excel e PowerPoint, ou aquele programa de edição de fotos. O nível de complexidade e de conhecimentos exigidos para trabalhar com a programação destes sistemas é bastante semelhante aos do tópico anterior, porém são vagas bem mais restritas, já que hoje a maioria dos sistemas é feito mesmo para funcionar na internet.
Hoje em dia, já é possível ver a migração destes sistemas para a nuvem, onde o processamento não depende da máquina do usuário. Por exemplo, a Adobe está gradualmente testando funcionalidades como renderização 3D na nuvem. Sistemas Desktop ainda estão longe de ser considerados obsoletos, e profissionais que conseguem se adaptar às mudanças têm vantagem competitiva nesse meio.
Qual o papel do programador?
Por se tratar de sistemas que solucionam problemas mais complexos, o mercado de Sistemas Desktop é bastante exigente. Manter-se atualizado sobre as tecnologias disponíveis e a evolução dos hardwares (os componentes físicos dos computadores) é imprescindível. Precisa-se garantir que todas as funcionalidades do sistema sejam compatíveis com as tecnologias disponíveis dentro de uma margem razoável (por isso que vemos programas com Requisitos Mínimos e Recomendados).
No que diz respeito às linguagens de programação, as mais comuns são Java, C++, e C#, mas se tratando de Sistemas Desktop, é importante ter em mente o sistema operacional também. Aliás, arrisco dizer que conhecer o sistema para o qual está programando é o primeiro passo, pois é ele que geralmente limita quais linguagens podem ser empregadas.
Assim como os Sistemas Web, costuma ser necessário ao menos um curso formal em tecnologia, uma vez que os conhecimentos demandados são de cunho mais técnico e exigentes. Não obstante, é possível aprender e se aprofundar sem um diploma.
Dispositivos Móveis
O que é?
Quando falamos em Programação para Dispositivos Móveis nos referimos a aplicativos de celular e tablet, desses que você baixa na App Store ou na Google Play. É aqui que entram os exemplos do iFood, Uber, Instagram, TikTok e assim por diante. Programar para dispositivos móveis é uma carreira em ascensão, e apesar de possuir bem mais oportunidades que a programação para Desktop, há menos vagas do que para Sistemas Web.
Mesmo assim, a maioria das grandes empresas de serviços possuem aplicativos, fazendo delas grandes empregadoras de times de desenvolvedores mobile, como costumam ser chamados os que trabalham com essa área.
Qual o papel do programador?
O nível de conhecimento para um desenvolvedor mobile é semelhante aos dois casos anteriores. Embora esses sistemas solucionem problemas inicialmente menos complexos e menos exigentes de processamento que os seus pares em desktop, as possibilidades aqui são muitas. Esses sistemas podem recorrer a recursos dos dispositivos, como câmera, GPS, giroscópio, etc. e exigem uma lógica própria. Isto é, pensar em como o usuário interage com um dispositivo móvel, como otimizar essas interações, e pensar no aparelho como parte do sistema e não só como uma plataforma.
Programar para mobile tem suas particularidades, por isso sugerimos que interessados em adentrar nesse meio busquem primeiramente entender as características e limitações do sistema operacional para o qual está programando. Hoje em dia, a maioria do mercado mobile utiliza Android (baseado em Linux) ou iOS (baseado em Unix). Além das tecnologias e linguagens de programação citadas anteriormente, busque também conhecer Flutter, React Native, Ionic, Swift e Kotlin.
Ainda, vale reforçar aqui o quão importante é o Design UX/UI para o desenvolvimento de softwares para mobile. O usuário interage com o sistema diretamente através da tela, que possui um espaço físico limitado e deixa muito mais evidente a falta de planejamento. Um programador front end com conhecimento em UX/UI é um baita diferencial, mas trabalhar em equipes multidisciplinares torna o trabalho mais fluido, produtivo e primoroso.
Sistemas Embarcados
O que é?
De forma superficial, Sistemas Embarcados são pequenos computadores de baixo custo e baixo consumo de energia incorporados em outros sistemas mecânicos ou elétricos para executar uma tarefa específica. São eles que fazem com que um aparelho de Blu Ray, uma cafeteira digital, ou seu micro-ondas entendam seus comandos e funcionem como esperado.
Pode ser um pouco confuso de entender no primeiro momento, mas pense comigo: quais eletrodomésticos você tem na sua casa? Talvez tenha uma lava-louças, um ar condicionado, uma máquina de lavar roupas, controles remotos. Enquanto o seu computador pode executar múltiplas funções e rodar uma variedade de programas, estes sistemas cumprem uma única função a vida toda. E quem programa essas funções? Bingo.
Qual o papel do programador?
Essa área é super nichada, e possivelmente exige um pouco mais de conhecimentos do programador do que apenas linguagens de programação, uma vez que o programa sendo escrito irá interagir com um equipamento específico e será necessário entender sobre aquele ramo também. Afinal, programar sistemas embarcados para máquinas de automação industrial e robótica é diferente de programá-los para um caixa eletrônico ou um aparelho de som.
Aqui, normalmente, uma formação acadêmica costuma ser exigida, para garantir que outros conhecimentos além da programação também estejam presentes na formação do profissional, como cálculo matemático e até mesmo conceitos de eletrônica e engenharia. Há muito o que desempacotar se tratando de Sistemas Embarcados, por isso deve-se manter em mente que a estrutura e linguagem utilizadas dependerão da finalidade e características do projeto.
Menções Honrosas
Como falamos lá no início, o multiverso da tecnologia está sempre expandindo e evoluindo. São tantas as áreas e especializações que podem ser estudadas, tantos ramos em que podemos atuar. Muito além dos exemplos que trouxemos, novas áreas estão sempre surgindo. E, afinal, quem disse que você tem que fazer a mesma coisa a vida toda? Você não é um sistema embarcado. 😉
Jogos eletrônicos 🎮
Podemos dizer com convicção (e zero pesquisa) que todo nerd gamer já quis trabalhar no desenvolvimento de Jogos Eletrônicos. Se você não está nesse meio, começamos por dizer que esse ramo bilionário (sim, com “b”) está em constante crescimento e as suas equipes estão entre as mais multidisciplinares do setor de tecnologia: designers, animadores, roteiristas, programadores, editores de som e vídeo, técnicos em 3D e atores trabalham juntos por anos para desenvolver um único jogo.
Essa sem dúvida não é uma área para iniciantes, mas se é algo que te interessa, busque inspiração no trabalho de quem já está lá e trabalhe as habilidades que te levarão ao mesmo nível (e além!).
Inteligência Artificial 🧠
Não poderíamos deixar de mencionar ela: a Inteligência Artificial! De forma simples, a IA consiste em simular o intelecto humano por meio de programas de computador. Sem entrar em conspirações distópicas sobre o futuro da IA, podemos dizer que essa tecnologia vem avançando em um ritmo surpreendente e está presente em muito mais produtos e serviços que você usa do que você imagina.
Os tais algoritmos das redes sociais são um exemplo cotidiano de como um programa pode aprender sobre o uso de um sistema e adaptar-se. Você interage com algum conteúdo e logo é apresentado uma pletora de publicações semelhantes. Isso é (um exemplo de) Inteligência Artificial. E as sugestões da Netflix ou do Spotify? É, também.
Onde buscar esse conhecimento?
- Academia Dev: Que tal aprender a programar com a gente? SIM! Nossa empresa-irmã oferece um curso completo para você aprender a programar do zero. Do zero MESMO. Independente do ramo que você escolher (ou que escolher você), queremos te ensinar a pensar como um programador e construir juntos uma base forte para seu futuro profissional.
- Cursos Online: Plataformas como Udemy e Rocketseat possuem um verdadeiro arsenal de cursos super acessíveis para todos os níveis de conhecimento. Faça as aulas no seu ritmo, de onde estiver. Com direito a certificado para você pendurar na sua sala e mostrar que você manja dos paranauê!
-
- CS50: Cursos e programas sobre ciência da computação da Universidade de Harvard. Oferecem cursos gratuitos, como “Introdução à programação com Python” e “Desenvolvimento de Mobile Apps com React Native”. Só tenha em mente que são em inglês, então bora tirar a poeira desse Duolingo aí!
- YouTube: Quem disse que precisa pagar para ter acesso a informação? O YT tem uma infinidade de aulas e tutoriais sobre absolutamente tudo que você possa imaginar. Com poucos cliques, você tem acesso a conteúdos gratuitos de gente com muito conhecimento a compartilhar. A Academia Dev também tem um canal, estamos trabalhando em novos materiais, mas permanecemos abertos para ouvir feedback e sugestões de conteúdo!
- TREINE! Essa é a mais valiosa dica que podemos dar. De nada adianta encher a cabeça de informações e não colocá-las em prática. O cérebro é um músculo também, e precisa de treino para se manter em forma.
Se quiser “botar o pé na água” e ainda fazer parte da equipe mais legal do mundo, cadastre seu currículo no nosso Banco de Talentos. 😉
For the reason that the admin of this site is working, no uncertainty very quickly it will be renowned, due to its quality contents.
I just like the helpful information you provide in your articles