Carreira

Como funciona uma empresa de desenvolvimento de software?

Olá Web Developer! Muitas pessoas que estão querendo entrar em uma área não sabem como será seu dia a dia. Então é comum que alguém que queira trabalhar com programação se pergunte como é trabalhar em uma empresa de desenvolvimento de software.

Não há um modelo a se seguir, cada empresa tem seu jeito de trabalhar e cargos diferentes. Há lugares em que uma mesma pessoa executa tarefas que em outra empresa seria feita por três ou até mais colaboradores. Aqui vou descrever um modelo mais “geral” de acordo com a minha experiência pelas empresas de diferentes tamanhos onde já trabalhei.

Gerente de Projetos

O gerente de projetos é o profissional que se responsabiliza pelo andamento do projeto, garantindo que os objetivos serão alcançados dentro do prazo definido.

Ele deve entender o produto, conversar com o cliente para estabelecer metas e prazos, conversar com a equipe para deixar os objetivos bem definidos, prever dificuldades para agir previamente, etc.

Já vi equipes com programadores iniciantes terem êxito e equipes com programadores incríveis terem problemas por causa das habilidades de gerentes de projetos. Por isso que é importante esse profissional entender o que está sendo feito, ter uma boa comunicação, conhecer a capacidade de produção da equipe para não prometer ao cliente mais do que pode ser cumprido e também saber quando dizer não.

Não confunda esse profissional com Scrum Master. O scrum master pode ser outra pessoa, até mesmo um programador da equipe. Veja mais neste post sobre Scrum.

Gerenciamento de projetos - Fundamentos
Curso de Gerenciamento de projetos - Fundamentos
CONHEÇA O CURSO

Arquiteto da Informação

Uma das principais tarefas do arquiteto da informação é desenhar como serão as telas do software a serem criadas. Ele que cuida como será a estruturação do conteúdo, visando facilitar a usabilidade e acessibilidade do usuário, garantindo uma melhor experiência.

Um campo de texto deverá salvar automaticamente ou é melhor ter um botão “Salvar”? Esse botão deve ficar em que lugar da tela? É preciso ter um ícone para essa ação? Essas são algumas das coisas que um arquiteto da informação deve pensar.

Com as necessidades do sistema em mente, este profissional irá desenhar o chamado Wireframe, que funciona como se fosse a planta de uma casa.

Wireframes são feitos sem cor, da forma mais simples. Assim as funcionalidades serão o foco do trabalho.

Há ferramentas que possibilitam que desenhemos wireframes interativos. Isso significa que podemos clicar em um botão e ele nos envia para uma outra tela. Assim teremos algo bem parecido com um protótipo, o que facilita apresentar como o sistema deve parecer e funcionar tanto para clientes quanto para a equipe de desenvolvimento.

Em algumas empresas menores esse papel é feito pelo gerente de projeto, designer ou pelos próprios programadores.

Designer

O designer, ao trabalhar no desenvolvimento de sistemas, atuará junto ao arquiteto da informação. Ele receberá o wireframe e irá definir como os componentes da interface deverão ser.

Normalmente é ele quem define uma paleta de cores a serem usadas, a tipografia, espaçamentos, ícones, etc.

Caso a equipe possua pessoal de marketing, o designer também poderá ajudar na criação do layout do site para a publicidade e outros elementos para serem publicados em redes sociais.

Em empresas menores pode ocorrer dessas funções ficarem a cargo dos próprios programadores.

Programador

Os programadores são as pessoas que vão escrever o código dos softwares a serem criados, sejam eles sistemas web, sistemas desktop, aplicativos mobile, etc. Normalmente são divididos em Front-end e Back-end.

Para mais detalhes, veja o nosso post sobre O que é front-end e back-end?

Desenvolvedor Front-end

O desenvolvedor front-end é quem vai dar vida às telas que foram criadas pelo arquiteto da informação e designer. Trabalha com HTML, CSS e JavaScript. Por ter conhecimento com essas tecnologias, pode ser aproveitado para criar sites.

Como o JavaScript está cada vez mais presente em diversas áreas, esse desenvolvedor também pode ser escalado para trabalhar no back-end, criar softwares desktop, aplicativos mobile, etc. Para saber mais, veja nosso post sobre O que se pode fazer com JavaScript hoje em dia?

JavaScript Intermediário
Curso de JavaScript Intermediário
CONHEÇA O CURSO

Desenvolvedor Back-end

O desenvolvedor back-end é quem vai cuidar do código que ficará no servidor. Trabalham com linguagens como C#, Java, PHP, Python, Ruby, etc. Ele vai cuidar da parte da aplicação que lida com as regras de negócio.

Ele é quem fará as conexões com o banco de dados para recuperar informações que o desenvolvedor front-end possa precisar para exibir ao usuário ou salvar as informações que o front-end envia.

Além de front-end e back-end, também há o FullStack, que faz os dois ao mesmo tempo. Para saber mais, veja nosso post sobre Devo começar como Front-End, Back-End ou Full Stack?

Analista de Testes

Também conhecido pela sigla “Q.A.” (Quality Assurance), o analista de testes é responsável por testar o software, verificando se todos os requisitos estão sendo cumpridos.

Mesmo que os programadores precisem testar seu código, é visível a diferença que um profissional dedicado a testes faz em um projeto.

Ele segue/cria métodos de testar um software com mais eficiência, possibilitando encontrar mais problemas com uma menor quantidade de testes. Quando problemas forem encontrados, deve identificar a causa do problema e indicar como deve ser o comportamento para que os programadores corrijam. Portanto, deve entender tão bem das regras de negócio do sistema quanto o gerente de projetos.

Não é obrigatório mas é importante saber um pouco sobre programação, pois isso permite que esse profissional crie testes automatizados.

Administrador de Banco de Dados

Também conhecido como DBA (Database Administrator), esse profissional cuida do banco de dados da aplicação.

Ele fica responsável por cuidar da estrutura do banco, realizar backups, atualizar, garantir a segurança e integridade dos dados, estabilidade ao acesso às informações, melhorar o desempenho do acesso aos dados, etc.

MySQL - Desenvolvedor
Curso de MySQL - Desenvolvedor
CONHEÇA O CURSO

Outros cargos

Os cargos citados acima são os mais comuns de se encontrar nas empresas. Dependendo do tamanho da empresa pode ser que haja alguns cargos a mais ou a menos, e também pode ser que em cada empresa um mesmo cargo seja chamado por nomes levemente diferentes.

Podemos ter também o gerente financeiro, analista de marketing, RH, engenheiro de software, arquiteto de redes, etc.

Na área de T.I. está crescendo muito a demanda por profissionais em áreas que lidam com dados, como Analista de Segurança da Informação, Cientista de dados, Engenheiro de Inteligência Artificial, etc.

Se quer entrar nesse mercado de trabalho ou alavancar a sua carreira, não deixe de conferir nossos cursos e também nossas formações

Como crescer no Front-End?

Olá Web Developers! Hoje trago uma coleção de dicas sobre como crescer na sua carreira no front-end.

Desafie-se e ignore a palavra impossível

Eu rio na cara do perigo

Algo que me ajudou muito no começo, e ainda ajuda, é se desafiar a fazer algo que você nunca fez. Isso vai te obrigar a pesquisar por soluções, o que fará com que você aprenda coisas novas.

E ignore a palavra “impossível”. Sempre que alguém me pergunta se é possível fazer uma funcionalidade X que funcione Y, eu digo que é totalmente possível e dou um prazo para a minha entrega. Confesso que várias vezes eu nem fazia ideia se realmente era possível e nem por onde começar, pois nunca havia feito ou visto algo parecido. Mas eu nunca deixei de entregar na data combinada.

Não sabendo que era impossível, ele foi lá e fez
– Jean Cocteau

Mas se comprometa. Se disser que fará algo e não conseguir você terá sua imagem manchada.

E claro que devemos manter o bom senso. Não prometa que um monitor comum pode saber onde o usuário tocou com o dedo, espelhar o fundo de uma página e gerar um holograma 😅
(ou será que dá? 🤔)

Aprenda a usar bem as suas ferramentas

Se você for a fundo em todas as funcionalidades que as ferramentas podem te oferecer, o seu desempenho e qualidade de trabalho vão melhorar muito.

Qual editor de código você usa? VS Code? Você realmente sabe quais os melhores plugins para te ajudar no seu trabalho? Você conhece todas as funcionalidades e atalhos ou só usa ele para escrever?

Se você trabalha com front-end deve estar usando o NPM. Você conhece todo o potencial do NPM além de simplesmente npm install e npm start?

Na hora de versionar seu código, você domina o Git além de simplesmente fazer commits?

Além dos nossos cursos de Git, NPM e outros aqui da TreinaWeb, também temos aqui no blog posts sobre dicas e truques de NPM e comandos do git que você precisa conhecer.

Também evite ficar fã de uma única ferramenta. Não tenha medo ou preguiça de experimentar algo novo, mesmo que seja muito diferente do que você está acostumado.

Leia códigos de terceiros

Ver como outras pessoas trabalham é uma ótima forma de aprender técnicas novas e como escrever um código mais limpo. Pode ser que alguém tenha tido uma sacada para resolver um problema que você passou dias quebrando a cabeça. Veja no GitHub como é o código de projetos famosos como React, Angular, Vue, ou qualquer outra ferramenta que você utilize.

Esqueça a W3Schools

Troque W3Schools por Mozilla

Nada contra a W3Schools. Eu comecei meus primeiros estudos de front-end por lá.

Acontece que as pessoas acreditam que por esse nome, ela pertença à W3C, o que passaria confiança e qualidade nas informações ali presentes. A W3Schools não tem nenhuma ligação com a W3C. Ela pertence a uma empresa norueguesa chamada Refsnes Data (informações presentes no próprio rodapé da W3Schools).

Constantemente são encontrados erros e material desatualizado (dito pela própria empresa), sem contar que não há material sobre tudo o que você pode pesquisar sobre HTML, CSS e JavaScript.

Ao invés disso, use a Mozilla (mesma organização por trás do Firefox). Eles mantêm uma documentação bem completa e atualizada (até mesmo com funcionalidades que ainda nem foram implementadas pelos navegadores), junto com exemplos práticos.

Desenvolvedor Front-end Pleno
Formação: Desenvolvedor Front-end Pleno
HTML, CSS e JavaScript são a base de toda a web. Tudo o que você está vendo aqui agora depende deste tripé. Nesta formação vamos conhecer assuntos mais avançados do HTML5, CSS3 e JavaScript, conhecer o NPM, trabalhar com o RxjS (base do framework Angular), testes com Jasmine e uma pequena introdução ao TypeScript.
CONHEÇA A FORMAÇÃO

Experimente coisas novas

O JavaScript está presente em várias áreas. Se você é desenvolvedor front-end pode aproveitar para experimentar coisas novas com a linguagem que já conhece.

Você pode aprender a trabalhar com back-end, criar programas desktop, aplicativos mobile nativos, jogos, trabalhar com Internet das Coisas, Inteligência Artificial, etc.

Veja o nosso post sobre O que se pode fazer com JavaScript hoje em dia? para saber mais (e olha que tem muito mais coisas do que as presentes nesse post).

Siga pessoas, blogs e assista palestras

Seguir pessoas conhecidas na sua área é uma ótima forma de saber o que elas estão estudando. Há pessoas muito interessantes que estão sempre compartilhando conhecimento e participando de grandes projetos.

Você pode conhecer algumas delas nas entrevistas feitas aqui no blog da TreinaWeb. Recebemos convidados como Maujor, Loiane Groner, Diego Eis, Talita Pagani, Caio Ribeiro, etc. As redes sociais dessas pessoas estão nos posts.

Outras pessoas que recomendo seguir são: David Walsh, Lea Verou, Rebecca Murphey, Sara Soueidan.

Siga também blogs que passem informações e novidades, como é o caso do Blog da TreinaWeb. Há vários blogs por aí, mas dois que eu indico são CSS Tricks e Smashing Magazine.

Já conhece o nosso canal no YouTube? Lá postamos várias dicas sobre o mundo da programação.

Palestras também são um ótimo meio de se manter atualizado. Os palestrantes vão com o objetivo de divulgar novas tecnologias, ideias, experiências, etc. É um ótimo modo de aprender coisas novas, se manter atualizado e conhecer pessoas com quem você pode fazer networking.

Invista em você

Você não precisa gastar uma fortuna em certificações, mas aprender cada vez mais coisas novas te diferenciarão dos demais.

Se você acha que educação é cara, experimente a ignorância
– Derek Bok

Mesmo podendo aprender qualquer coisa sozinho e de graça na Internet, gosto de investir em cursos. Isso economiza muito o meu tempo, pois o instrutor já arrumou tudo o que preciso aprender em um único lugar, me poupando o tempo de pesquisar e procurar descobrir o que preciso aprender para executar algo. Sem contar que essas pessoas acabam também passando parte de suas experiências, te tando dicas para não cair em armadilhas que elas já caíram.

Ou seja, pagar por um curso ou livro pode ajudar a acelerar o seu crescimento e fazer com que você diminua problemas aprendendo com os erros das outras pessoas. E aqui na TreinaWeb temos até mesmo a área de Formações, onde indicamos uma lista de cursos que você deve seguir para alcançar seus objetivos. Você pode até pedir para criarmos uma formação personalizada para você.

Tenha boas conexões e relações

Por mais que eu já tenha passado em entrevistas em empresas muito legais, os melhores lugares em que trabalhei eu fui indicado por alguém.

E não estou dizendo apenas de pessoas que eram minhas melhores amigas. Você não é obrigado a gostar de todo mundo, mas é importante respeitar. E mostrando respeito pelos outros, humildade e eficiência em seu trabalho, as pessoas vão lembrar de você quando aparecer alguma oportunidade.

Até hoje, tanto grandes amigos quanto colegas que eu não gostava muito, me mandam mensagem avisando sobre vagas onde estão trabalhando.

Outra importância em ter boas relações é que em alguns lugares o cenário pode ser hostil, com pessoas querendo subir na empresa te ferrando. E se esse tipo de pessoa tiver algo contra você, ela pode acabar com a sua imagem ou até mesmo falar mal de você em outra empresa, o que vai te prejudicar caso você vá fazer entrevista em algum lugar e alguém já ouviu falar de você. Se você se der bem com as pessoas, elas vão acabar espalhando elogios relacionados ao seu nome por aí.

Isso é um assunto que daria para desmembrar em vários tópicos e fazer um post apenas disso. Apenas lembre-se que o mundo dá voltas e é melhor ter mais aliados do que inimigos.

Ensine ou finja ensinar

Uma das melhores maneiras de ter certeza de que entendeu algo é ensinar. Para ensinar algo você precisa ter as ideias bem organizadas e prontas em sua mente.

Se você não consegue explicar algo de forma simples, você não entendeu suficientemente bem.
– Albert Einstein

Mesmo com a minha experiência lecionando em sala de aula, criando vídeos para o YouTube, posts aqui para o blog e cursos para a TreinaWeb, quando fui escrever o meu primeiro livro a editora pediu para eu detalhar melhor alguns tópicos. Me pediram para justificar melhor e de forma bem mais simples algumas coisas.

Na hora de justificar por que fazer “A” ao invés de “B”, percebi que havia coisas que eu fazia no automático simplesmente porque “todo mundo escreve esse código assim”. E então pesquisei mais a fundo e pude entender melhor sobre alguns conceitos e como algumas ferramentas funcionam.

Então, será que você realmente sabe usar uma ferramenta ou será que apenas está seguindo o que os tutoriais da Internet te mandam fazer? Uma forma de averiguar isso é ensinando, pois as pessoas vão te questionar sobre alguns pontos.

Caso você não tenha um blog, canal no YouTube, etc, apenas finja estar explicando algo para alguém leigo no assunto. Será que a pessoa te entenderia?

Soft Skills: por que você precisa delas?

As Soft Skills são competências que estão presentes nas organizações e estão mudando o mercado de trabalho e a gestão de pessoas. Essas competências estão ganhando cada vez mais importância no mercado e os profissionais devem acompanhar isso.

Para um profissional da área de TI, é muito mais fácil exercitar uma competência técnica do que uma competência comportamental, e as empresas estão cada vez mais olhando o comportamento de seus funcionários, onde essas habilidades são as que fazem a diferença em sua carreira.

Conheça as chamadas Soft Skills

As soft skills são competências comportamentais desejáveis pelas empresas nos profissionais, sendo muito procuradas pelos recrutadores, competências que muitas vezes já são percebidas logo no momento da entrevista.

Algumas dessas competências são a criatividade, comunicação (fala e escuta), saber trabalhar em equipe, colaboração, saber se relacionar, saber desenvolver pessoas, ser otimista, ter comportamento proativo e muitas outras. Isso não quer dizer que você precise ter e/ou desenvolver todas essas. Como essas competências podem variar de acordo com o cargo, você pode ver quais delas tem mais ênfase na sua profissão. Por exemplo, em cargos mais de gestão podemos citar a liderança, saber delegar e saber influenciar pessoas, pelo seu comportamento, suas atitudes e sendo amigo de sua equipe.

Essas competências podem vir de acordo com as experiências passadas e até de criação e personalidade de cada pessoa. Há diversos profissionais que se destacam por suas particularidades. Com certeza você conhece ou conheceu alguém que tem espírito de liderança, e isso é da personalidade da pessoa mesmo, onde ela já tem isso desenvolvido e talvez tenha que somente aprimorar.

Se você não “nasceu” com alguma competência que gostaria, você pode desenvolvê-la. Essas competências podem ser desenvolvidas em qualquer momento e qualquer idade. Precisamos nos desenvolver como pessoa em diversas soft skills pois elas nos ajudam em vários quesitos, tanto profissional quanto pessoal.

Hoje em dia o conhecimento técnico (também chamado de hard skills) por si só não são o suficiente para destacar um profissional. Imagine dois programadores excelentes, mas somente um deles consegue fazer boas apresentações de um software para o cliente. Em diversas situações de trabalho, o gestor sempre avalia quem tem um melhor desempenho no geral.

A importância do autoconhecimento

O primeiro passo para identificar as soft skills, tanto as que você já tem e quer aprimorar quanto as que ainda não foram despertadas, é o autoconhecimento. Assim você pode se conhecer melhor, conhecer suas características fortes e estimulá-las e também as fracas para que possamos trabalhar em cima delas.

Mas existem também habilidades que adquirimos somente com o tempo, como por exemplo lidar com diferentes situações e saber vestir o papel adequado para cada uma delas, e isso acaba vindo mais na vivência mesmo, mas a boa notícia é que existem pequenas atitudes que você pode começar hoje, como:

  • ser um colega bacana de se trabalhar
  • ter uma postura positiva
  • ter um comportamento protagonista, não ficar só passivo, esperando alguém solicitar alguma coisa
  • ser aberto a mudanças, como a utilização de novas tecnologias e metodologias

E existem diversas outras que você possa identificar e colocar em prática 🙂

Além de praticarmos o autoconhecimento, você também pode pedir feedback de seus colegas, pessoas que convivem com você, às vezes eles podem citar uma característica sua que você ainda não percebeu. E claro, antes de pensar em colocar em prática tudo isso, você deve estar disposto e comprometido em querer melhorar ou desenvolver alguma soft skills. Também temos um outro artigo que complementa muito esse, sobre as habilidades que as empresas esperam dos profissionais de TI. Te espero lá!

Paralisia por Análise – o bloqueio que te impede de começar

Olá, Web Developers!

Você possui algum projeto ou plano mas nunca inicia ou finaliza por estar sempre pensando demais? Você pode estar com a “Paralisia por Análise”.

O que é Paralisia por Análise?

Paralisia por Análise é quando não conseguimos chegar em nenhum lugar por pensarmos em excesso. Isso pode pode acontecer tanto na vida profissional quanto na pessoal, e está cada vez mais comum em um mundo conectado e que nos oferece várias opções para um mesmo objetivo.

Por que isso acontece?

Há muitos motivos para a Paralisia por Análise. Um dos motivos mais comuns é o excesso de opções. Você fica pensando em qual a melhor escolha, e por querer algo perfeito acaba não escolhendo e gastando todo o seu tempo apenas analisando as opções. Quantas pessoas você conhece que dizem ficar horas tentando escolher um filme ou série na Netflix e acabam não assistindo nada?

Outro motivo também muito comum que pode contribuir para este fenômeno é o medo de algo: de mudanças, do desconhecido, de falhar, de passar vergonha, etc. E então você começa a treinar, pesquisar e fazer várias coisas para poder traçar o plano perfeito. O resultado é que esse plano acaba nunca sendo iniciado ou concluído, pois nunca é o suficiente.

Também podemos citar o perfeccionismo. Muito comum em entrevistas a pessoa falar “meu pior defeito é ser perfeccionista”. Esse candidato normalmente nem faz ideia que realmente ser perfeccionista pode mesmo ser muito prejudicial.

Um motivo que também vejo muitos colegas cometendo é ficar pensando: “e se eu escolher e me arrepender? E se depois eu ficar pensando como poderia ter sido com a outra opção?”.

Exemplos comuns

Opções, muitas opções

Um exemplo muito comum na vida pessoal é o citado acima: a Netflix disponibiliza várias opções de filmes e séries. Se ficarmos pensando muito, gastaremos todo o nosso tempo livre e não aproveitaremos para assistir nada. Antes dos serviços de streaming, ao passar um filme na televisão, tínhamos apenas duas opções: sim ou não.

Em serviços de entrega como ifood também é muito comum as pessoas ficarem muito tempo escolhendo em meio a tantas opções. Antigamente você basicamente telefonaria para a pizzaria que você tivesse o número anotado na agenda.

Então o excesso de opções é algo que vem crescendo com a tecnologia. É óbvio que ter opções é ótimo, mas nem todos estão preparados para tomar decisões rapidamente.

Inclusive, reduzir opções foi uma das estratégias da Apple em uma época em que ela estava quase indo à falência. Basta comparar quantas opções temos de iPhone em relação aos modelos de smartphones de outras marcas.

Medo e insegurança e perfeccionismo

Já na parte dos medos, isso pode se relacionar com o perfeccionismo também. E sabemos que “feito é melhor do que perfeito”. É muito comum vermos projetos que nunca lançam uma versão final do produto. Sempre tem algo a melhorar antes de mostrar para algum potencial cliente.

Também já vi casos de programadores mais novos produzindo mais do que programadores mais experientes em projetos próprios. Isso parece meio estranho, mas veja o motivo:

Programador Iniciante

O programador iniciante ainda não conhece muitas ferramentas. Se ele precisar fazer algo, ele vai tentar fazer com o pouco que sabe com a única linguagem de programação que ele sabe mexer. Ele provavelmente não seguirá boas práticas, o código pode não estar tão bem organizado, muitas coisas podem acabar tendo sido feitas manualmente e haverá várias outras coisas que podem dar problemas no futuro por falta de planejamento e experiência. Porém, ele foi lá com o pouco que sabia e fez, entregando algum resultado.

Programador Experiente

Já alguns programadores mais experientes vão começar analisando o problema para escolher a melhor linguagem de programação a ser usada. Definido isso, qual dos diversos frameworks que ele conhece será o que entregará mais produtividade, robustes e segurança? Será que esse framework possui uma boa comunidade e é simples de atualizar de versão?
E qual será o banco de dados? Onde iremos hospedar? Qual a melhor estrutura para meus dados que me permita escalonar meu sistema sem problemas? Será que os requisitos foram bem capturados e não está faltando nada? Será que a estrutura da minha tela está bonita e entrega a melhor experiência ao usuário de forma intuitiva?

Só essas perguntas podem fazer uma pessoa gastar meses e ainda nem começar a escrever uma única linha de código. Se o desenvolvimento começar, essa pessoa pode aprender coisas novas e pensar em refazer partes de seu sistema por achar que ele pode ser melhor, mesmo que ele ainda nem tenha terminado de entregar o básico que o sistema deve propor. E assim uma ideia basicamente nunca será finalizada.

Obviamente que nestes casos iremos preferir algo feito por um amador, mas que resolva nosso problema, do que algo feito por uma pessoa bem mais experiente mas que ainda só tem o projeto na cabeça dele e ainda não dá para usar.

Desenvolvedor Java Júnior
Formação: Desenvolvedor Java Júnior
A formação Desenvolvedor Java nível Júnior da TreinaWeb tem como objetivo fornecer uma introdução ao desenvolvimento através do Java e todo o ecossistema para desenvolvimento da Oracle. Nesta formação, são abordados tópicos como o desenvolvimento da capacidade analítica, o paradigma orientado a objetos, a preparação do ambiente de desenvolvimento para o Java através do Eclipse e o controle de versão de código através do Git e do GitHub. Além disso, também são abordados aspectos mais essenciais da linguagem e estruturas importantíssimas dentro do ecossistema do Java, como a Stream API, que auxilia a lidar com coleções de dados; a implementação das estruturas de dados mais tradicionais como listas, filas e pilhas; e a API de coleções.
CONHEÇA A FORMAÇÃO

Como se livrar?

Há algumas coisas que podemos fazer para evitar ou pelo menos diminuir a Paralisia por Análise.

Primeiro precisamos sempre lembrar que não há solução e nem momento perfeito. O momento sempre é agora e a solução que você escolher pode ser arrumada no futuro, ela não é uma escolha para o resto da vida.

Limite o número de suas opções para o mínimo possível. Defina um objetivo com um prazo. Se chegar o prazo e você decidir que todas as opções são boas, não fará diferença qual escolher, então jogue um dado ou uma moeda e siga em frente sem questionar!

Algo para treinar tomar decisões rápidas é evitar responder para as pessoas “você que sabe”, “você decide”, “para mim tanto faz”, etc. Se te perguntaram é porque estão te dando permissão para escolher.

É ótimo ser curioso, mas contenha-se para não acabar descobrindo pequenas imperfeições que no final não fazem diferença no resultado de seu objetivo.

Planeje tudo em pequenas metas e dê um passo de cada vez. Tomar muitas decisões também causa um cansaço. Então diminua a quantidade de decisões que você precisa tomar durante o dia (não precisa chegar a ser como Steve Jobs e Mark Zuckerberg que usavam/usam sempre roupas iguais para evitar escolher roupa) e sempre comece pelas decisões mais importantes.

Conclusão

Então, a Paralisia por Análise acaba acontecendo quando o nosso excesso de pensar vai além dos benefícios que teríamos caso tivéssemos feito uma escolha mais rapidamente.
Se você está tendo esse tipo de problema, tente seguir as dicas aqui para se livrar o quanto antes e veja sua vida mudar.

Você tem ou já teve algum bloqueio assim? Compartilhe com a gente nos comentários!

Não trabalho com a tecnologia que tenho domínio, e agora?

Em diversos grupos de desenvolvimento, é comum se deparar com perguntas do tipo: Gosto de programar na linguagem X e estou trabalhando com a linguagem Y. Vale a pena continuar?

Java - Fundamentos
Curso de Java - Fundamentos
CONHEÇA O CURSO

Neste artigo daremos algumas dicas para te auxiliar nesta situação. =)

Comece tentando

Sabemos que nada se inicia antes da tentativa. Desta forma, comece tentando.

Tente se adaptar a esta nova tecnologia e faça com que seu trabalho possa fluir de maneira natural, sem pressão.

Muita das vezes o primeiro contato com determinada tecnologia assusta, mas seja firme e persistente, pois com o passar do tempo, você poderá se adaptar e se descobrir nesta nova experiência.

Se candidate apenas as vagas que se identifica

Sabemos as dificuldades que temos enfrentado em relação ao desemprego nos últimos anos.

Mas, nada adianta se candidatar aquela vaga que não terá haver com o que você espera trabalhar. Analise todos os aspectos: Salário, jornada de trabalho, requisitos básicos, habilidades, benefícios, principais responsabilidades, descrição da empresa, entre outros e se pergunte se aquela vaga atenderá suas expectativas no momento. Se sim, se candidate sem medo. Se não, espere uma outra oportunidade surgir.

Trabalhar com o que gosta é importante

Clichê, porém essencial.

Com o passar do tempo, você irá descobrir que trabalhar com o que você realmente gosta é importante para se tornar um profissional de sucesso.

Não importa qual seja sua profissão, nem se seus gostos são diferentes da maioria, fazer o que gosta te fará levantar toda segunda-feira e não reclamar do quão difícil ela será. \o/

Se conheça

Apenas se conheça.

Saiba o que esperar de você, saiba o que você quer ser e onde quer chegar. Saiba que gostar de programar em Java te deixa mais feliz que simplesmente aprender uma nova linguagem “do momento”. Se aperfeiçoe naquilo que você gosta e siga seu coração. <3

Estabeleça metas

Planos de ação utilizando a ferramenta de gestão 5W2H

Estabelecer metas é super importante para manter seus planos em dia. Saiba escrevê-las ou simplesmente mentalizar todos os dias aquilo que espera em cada coisa que você faz.

Junte dinheiro

Estar com sua vida financeira em dias te ajudará, sem dúvidas, em determinadas tomadas de decisão, pois, caso esteja desempenhando uma atividade que não goste, ter uma reserva financeira te fará procurar por novos caminhos sem se preocupar até encontrar um novo emprego.

Sabemos que é algo bastante difícil para grande maioria, mas aprender a administrar seu dinheiro também é uma forma de manter o foco onde você quer chegar.

Dê um tempo para si

Não tenha vergonha de precisar de um tempo.

Caso perceba que seu trabalho não te faz feliz, saiba quando encerrar um ciclo sem medo de iniciar um outro.

Dê um tempo para si caso precise, faça algo que te faz bem e depois volte com tudo. Estude o inglês que foi deixado de lado durante tantas vezes, se arrisque em viajar ou comece estudar algo novo.

Só não tenha medo de se arriscar e descobrir novos horizontes.

Concluindo:

Espero que estas dicas possam te ajudar em sua decisão e que você consiga escolher sempre o melhor caminho!
Até mais!
=)

Gerenciamento de projetos: essa carreira é para você?

A área de TI possui muitas vertentes. Não é só porque você não gosta de programar por exemplo, que você não tem vez na TI, pois existem muitas carreiras que você pode seguir, incluindo as que vão mais para a área de gestão. Uma delas é o gerenciamento de projetos. Esse cargo pode ser assumido por profissionais de várias áreas, inclusive por um profissional de TI.

O gerente de projetos vem sendo muito requisitado e visto com muita importância já que cada vez mais as empresas estão voltadas a ter um melhor gerenciamento de seus projetos, a fim de atingir suas metas e planejamentos. Vamos abordar alguns pontos para que você conheça um pouco mais dessa profissão.

O que é gerenciamento de projetos?

Antes de tudo precisamos saber o que realmente vem a ser um gerenciamento de projetos, mas antes ainda precisamos definir o que é um projeto. Um projeto é um conjunto de atividades que são realizadas em grupo e tem como objetivo final a produção de um produto ou serviço. O Gerenciamento de Projetos vem a ser a aplicação de técnicas, habilidades e conhecimentos para a execução de projetos, buscando concluí-los de forma eficaz. Neste gerenciamento, os resultados dos projetos devem estar alinhados aos objetivos do negócio. O gerenciamento de projetos aplica-se não somente a projetos de TI, mas a todos os ramos de atividades.

Gerenciamento de projetos - Fundamentos
Curso de Gerenciamento de projetos - Fundamentos
CONHEÇA O CURSO

O que faz um gerente de projetos?

Começando pela parte mais técnica, um gerente de projetos exerce algumas atividades como o planejamento de cada etapa com todos os envolvidos do projeto, gerenciamento e acompanhamento das atividades que estão sendo feitas, verificação dos resultados de cada etapa, estar atendo às mudanças quando necessário etc.

Além de desempenhar tarefas técnicas relacionadas ao gerenciamento de projetos, esse profissional deve ter habilidades interpessoais, para liderar sua equipe, motivar, corrigir e principalmente fazer com que a comunicação flua da melhor maneira possível. Deve-se ter um equilíbrio entre seu conhecimento técnico com essas habilidades interpessoais, pois é um cargo que envolve muita responsabilidade e maturidade, ainda mais que estamos lidando com prazos, custos e pessoas.

Talvez você já deva ter ouvido falar sobre o Guia PMBOK, onde existem dez áreas de conhecimento em gerenciamento de projetos que você deve conhecer. Não iremos adentrar nelas aqui, pois temos um outro artigo explicando tudo sobre este guia, que você pode estar conferindo neste link.

Como posso me tornar um gerente de projetos?

Se você nunca trabalhou com gerenciamento de projetos, é legal começar por algum curso da área, seja presencial ou online. Deve-se começar pela base – os fundamentos – e depois começar a se aprofundar sobre as técnicas e softwares. Além disso, livros desse segmento também te agregarão bastante conhecimento. A prática sempre é mais legal, mas não se esqueça de que os conceitos são muito importantes. Se você realmente se interessar pela área, você pode partir para uma pós-graduação ou MBA, já que existem vários que são específicos para o gerenciamento de projetos. Lá você terá uma estrutura ainda melhor de conhecimento.

Apesar do estudo ser muito importante, apenas ele não é o suficiente, é imprescindível em algum momento colocar tudo em prática. Você pode tentar aplicar alguns conceitos na própria empresa em que trabalha, tomando a liberdade de ser proativo e até tentar administrar uma equipe. Com esses pequenos passos você já terá uma pequena noção de como é o profissional dessa área na realidade e até tentar esse tipo de vaga em sua própria empresa.

Agora, para dar um peso maior ao currículo – e também de conhecimento – temos as certificações. Sim, nessa área também existem as certificações. Elas dão um upgrade na construção de sua carreira, porém um ponto muito importante: se estiver iniciando você deve ficar atento pois para algumas dessas certificações, o profissional já tem que ter certa experiência, pois são exigidos alguns pré-requisitos, como por exemplo uma quantidade mínima de anos de experiência em gerenciamento de projetos e por aí vai…

Gerenciamento de Projetos - Avançado
Curso de Gerenciamento de Projetos - Avançado
CONHEÇA O CURSO

Para exemplificar podemos citar algumas das certificações mais importantes. O PMI oferece uma gama de certificações, como a certificação PMP (Project Management Professional) que é uma das principais e é reconhecida no mundo todo. Também temos a CAPM (Certified Associate in Project Management). Essa é focada em profissionais que não tem um diploma universitário ou para aqueles que querem tirar a certificação PMP em etapas.

Já a certificação CSM (Certified ScrumMaster) aborda o Scrum, super interessante já que as metodologias ágeis estão em alta e é muito importante um gerente de projetos – ainda mais na área de TI – saber utilizá-la. Enfim, existem muitas outras, mas de início você pode fazer cursos/pós/MBA na área e depois que estiver mais adentro da área tirar algumas certificações.

Scrum - Planejamento e Desenvolvimento Ágeis
Curso de Scrum - Planejamento e Desenvolvimento Ágeis
CONHEÇA O CURSO

Aqui na TreinaWeb temos cursos que vão te ajudar a iniciar nessa área, como cursos mais conceituais abordando tudo sobre o gerenciamento de projetos, a ferramenta Microsoft Project, Scrum e ITIL, assim você pode dar os primeiros passos iniciais nessa jornada. E aí, será que a carreira de gerenciamento de projetos é para você?

Até a próxima!

Como quintuplicar a produtividade no desenvolvimento de software?

Desenvolvimento de software é algo complexo, mesmo para quem está desenvolvendo. É algo que, durante o processo de encontrar sua melhor maneira de ser produtivo, você acaba se debatendo com suas próprias escolhas.

Existem muitas maneiras de se definir o que é um software, mas particularmente eu gosto dessa: um software é uma sequência de instruções escritas por um programador, para executar uma ou mais funções, otimizando assim algo que previamente era manual ou não existia.

Veja, se grande parte do meu trabalho como desenvolvedor é otimizar processos, a minha rotina de trabalho também costuma ser como um protótipo de software.

Isso se transforma em uma rotina estruturada, ou, ao menos, uma maneira estruturada de como resolver um problema. Vou contar um pouco do meu processo de construção de software/trabalho e como desenvolvi hacks para ser mais produtivo ao longo do tempo.

Vou contar um pouco da minha experiência para tentar ajudá-lo(a) a otimizar a sua. Vamos lá!

Python - Fundamentos
Curso de Python - Fundamentos
CONHEÇA O CURSO

Comece de maneira gradual

Dificilmente consigo acordar e codar alguma coisa. Normalmente eu preciso que meu cérebro ligue os motores de maneira processual, um passo de cada vez.

No entanto, penso que isso não pode ser um processo que leva várias horas, então eu tomo um caminho gradual, mas rápido, para que esse processo ocorra.

Ao abrir minha máquina para programar eu começo geralmente pela leitura dos meus cards do Trello, nosso reservatório de tasks infinito onde sempre pode se tirar algo da cartola. Eu uso Trello, mas essa dinâmica aplica-se a qualquer ferramenta de gestão de projetos.

A leitura me ajuda a pensar nas tasks que vão ser executadas no dia. É um processo rápido. Ao ler rapidamente os títulos dos cards eu já sei o que devo fazer, quando fazer e como fazer, em sua grande maioria.

Após isso eu começo pelas tasks mais simples, coisas que são rápidas, mas me farão emergir no processo de pensar em software.

Um exemplo disso é executar alguns scripts para transferir dados de usuários, dar update em alguma informação no banco, ou refatorar algum trecho simples de código.

Leitura recomendada:
Por que a comunicação em TI é um negócio tão importante?

Coding Hard

É hora de codar. Mas como saber no que eu começo primeiro?

Para executar as tasks mais complexas, eu as separo em 2 tipos:

  1. As que são relativamente rápidas e as que são de longo prazo. As tasks complexas são aquelas que envolvem mais de uma parte do sistema, que têm alto impacto, em que é preciso prever muitas coisas antes de se começar a executar;

  2. Normalmente minha prioridade começa com as tasks que posso fazer em 1-2 horas. Elas permitem imprimir ritmo no desenvolvimento e fazem com que minha cabeça entre no modo foco.

Durante esse período normalmente não respondo e-mails, não olho o Slack, não faço nada que me faça perder a linha de pensamento. O porquê disso é simples, vamos imaginar a seguinte situação:

2.1 Usuário vai entrar na tela de login e nesse momento informo ao banco que ele está ativo
2.2 O banco guarda essa informação e ativa uma trigger para que daqui a 30 minutos um alerta seja enviado a esse usuário
2.3 Se o usuário entrou na tela 1 o alerta será x. Se entrou na tela 2 o alerta será Y, mas apenas depois de 30 minutos
2.4 Caso o usuário entre na tela 3 o tempo de alerta deve ser reduzido para 15 minutos

Pronto.

Imagine que pensei nas linhas gerais de como a task vai ser feita e, quando estou no meio da segunda instrução, paro para responder e-mails ou fazer outras coisas. O que ocorre?

Posso simplesmente esquecer que já fiz algo ou deixei de fazer algo. Por isso manter uma linha única de pensamento é importante quando estamos codando.

É preciso se ter em mente o tempo todo os passos que foram ou não executados. Caso você esqueça onde estava, todo o ciclo recomeça. “Será que setei o tempo certo na tela 1? Fiz o tempo de maneira diferente para a tela 3?” E então começa um processo de revisão da sua linha de pensamento.

Para se produzir as tasks de longo prazo é necessário quebrá-las em pequenas etapas, dificilmente é possível ficar 8 horas ininterruptas desenvolvendo. Bugs surgem, pessoas falam com você, outras tasks são priorizadas e por aí vai.

Por isso é um processo que exige a quebra. Exige que você determine quando cada etapa será executada para que diariamente você progrida dentro da task.

Leitura recomendada:
Como se destacar na carreira de TI?

Java - Fundamentos
Curso de Java - Fundamentos
CONHEÇA O CURSO

As pausa são importantes para a produtividade

Algo que já vi ser bem comum entre programadores — talvez seja para outras áreas também — é o tempo necessário para “resetar” o cérebro.

Ao finalizar tasks complexas, onde você levou sua mente a pensar na otimização de um processo específico, normalmente você precisa “não pensar” durante algum tempo.

O que quero dizer com isso? Se pensei na otimização de um processo de candidatos dificilmente é possível, no instante seguinte, pensar em um código para empresas.

Isso porque a mente está “contaminada”, pensando ainda em otimizações e melhorias do processo que você acabou de criar.

É preciso esvaziar a mente antes de colocar outra idéia no forno para iniciar um novo processo de desenvolvimento, por isto as pausas entre uma task e outra são importantes.

Leitura recomendada:
As certificações para programadores mais importantes do mercado.

Afinal, como ser produtivo(a) no Desenvolvimento de Software?

E quando acaba essa sequência “colocar” coisas na caixa, “tirar” da caixa, “descansar”, “colocar” outro no lugar? Para a maioria dos Desenvolvedores que conheço a resposta é nunca.

Ao se deparar com problemas, normalmente eles são jogados em processos de background na sua mente e ficam produzindo idéias de maneira passiva.

Acredito que muitos Desenvolvedores — senão todos — já se depararam com uma idéia no meio da noite, acordaram e escreveram um trecho de código.

Ou já teve uma elucubração no meio da mesa do jantar, ou enquanto estava vendo sua série da Netflix.

Acredito que esse processo de nunca parar de pensar sobre os problemas técnicos ou sobre software em longo prazo é danos.

Talvez fique aqui a minha hipótese do porquê tantos Desenvolvedores curtem tanto fazer algo fora do serviço que atraia 100% do foco.

Como jogar algo ou estar imerso dentro de uma série.

Esse tipo de atividade simplesmente força sua mente a se desligar do mundo do software e é essencial para resetar sua mente e dar tempo para você ter novas idéias de maneira fresca e descansada.

Esse era um pouco do meu ciclo enquanto era 100% Desenvolvedor dentro da GeekHunter.

Hoje, assumindo a área de gestão, esse fluxo mudou um pouco, porém a essência ainda é a mesma.

Cada Desenvolvedor tem sua particularidade na hora de programar, mas acredito que existam muitas similaridades entre todos quando se trata do nível de foco necessário para desenvolver.

Espero ter ajudado. Até a próxima!

JavaScript Básico
Curso de JavaScript Básico
CONHEÇA O CURSO

Esse post foi desenvolvido pela GeekHunter

Como melhorar seu perfil online de desenvolvedor

A busca por um novo emprego é um dos principais dilemas na atualidade. Muitos buscam novas formas de ingressar no mercado de trabalho e as dificuldades vem surgindo dia após dia.

Não tem sido fácil a procura por novas vagas. Conseguir o primeiro emprego ou até mesmo a recolocação no mercado tem se tornado uma das principais barreiras para todos, independente de sua área de atuação.

Muitas empresas têm investido na busca pelo profissional ideal através do seu perfil online, o que não é diferente para a área de desenvolvimento.

Mas como posso melhorar meu perfil online de desenvolvedor para alcançar aquela tão sonhada vaga?

Neste artigo daremos algumas dicas de como melhorar este perfil online e aumentar suas chances de conseguir o “emprego dos sonhos”.

GitHub, GitLab e BitBucket

A maioria das empresas analisam a contribuição dos seus candidatos através de plataformas que armazenam código-fonte.

Aqui no blog, lançamos um artigo sobre as principais delas: o GitHub, GitLab e o BitBucket, que poderá ser acessado através do link:

https://www.treinaweb.com.br/blog/as-principais-plataformas-para-armazenamento-de-codigo-fonte/

Esta análise tem a ver com a forma com que são realizadas suas contribuições em projetos públicos e como são desenvolvidos seus projetos particulares.

É válido sempre lembrar que qualquer projeto conta. Independente do tamanho da aplicação, muitos recrutadores buscam saber da qualidade do seu código, independente do tamanho do projeto. Sendo assim, qualquer aplicação pode (e deve) ser hospedada em plataformas de armazenamento de código-fonte para incrementar seu perfil na ferramenta.

Git e GitHub - Controle de versão
Curso de Git e GitHub - Controle de versão
CONHEÇA O CURSO

Linkedin

O Linkedin tem sido uma das principais formas de manter atualizado e disponível todos os dados do candidato e sua experiência profissional. Mas é sempre importante ficar atento a “como manter este perfil sempre em dia.”

A dica mais valiosa em torno do linkedin é, sem dúvida, a atualização constante do seu perfil profissional. Manter seu perfil atualizado e em ordem te dá, sem dúvidas, pontos extras na hora de tentar conquistar uma vaga.

Deve atentar-se também às suas conexões. Buscar sempre pessoas relacionadas a sua área de atuação, facilita a forma de expandir sua busca em vagas que são compatíveis a seu perfil.

Atentar-se também as suas declarações de escolaridade, cursos de idiomas, certificações e competências. Tudo que está escrito ali, deverá ser aquilo que você de fato domina e possui habilidade e comprovação.

Há, e seguir aquelas empresas que lançam vagas para sua área, também é uma excelente escolha, pois te deixa por dentro de novas oportunidades e mais próximo do objetivo que você espera.

Stack Overflow

Assim como citamos a importância de manter-se ativo em projetos postados em plataformas de código-fonte, o Stack Overflow também te auxilia a estar sempre em evidência. O website funciona de forma simples, onde você poderá lançar perguntas e responder dúvidas de outros usuários, tudo relacionado a área de programação, o que facilita para que novos desenvolvedores ativos na comunidade possam ser descobertos.

Para cada dúvida respondida, é gerado um “like”, utilizado para determinar os usuários mais ativos na plataforma. É com esta informação que as empresas filtram os perfis mais ativos no Stack Overflow, já que é gerado um ranking com todos esses usuários.

Artigos

Escrever sobre aquilo que você domina, também tem sido uma ótima forma de estar em evidência na web. Hoje em dia, diversos são os sites onde você poderá colaborar com seus artigos e escritos de forma que possa ajudar outras pessoas com informações válidas e úteis.

Mas busco vaga de desenvolvedor, isso conta?

Sim, e muito. Escrever sempre é muito importante, e aprimorar sua escrita será sempre uma opção válida na busca do emprego dos sonhos.

Participação em grupos de desenvolvimento

Vários grupos de desenvolvimento têm ganhado força em variados aplicativos como telegram, slack, entre outros. Desta forma, você poderá trocar informações com vários desenvolvedores, seja para tirar dúvidas ou prover uma solução, sendo mais uma ferramenta para se manter ativo na comunidade.

Além disso, diversas empresas estão constantemente publicando novas vagas de emprego nestes grupos, tornando-os ainda mais atrativos.

JavaScript Básico
Curso de JavaScript Básico
CONHEÇA O CURSO

Conclusão:

Possuir um bom perfil online como desenvolvedor é a porta de entrada para conseguir o emprego dos sonhos. Desta forma, é possível utilizar a internet ao seu favor e aumentar suas chances de se destacar como um potencial candidato. Vimos neste artigo algumas dicas preciosas, esperamos que elas te ajudem em sua busca e que você consiga ingressar no mercado de trabalho o mais rápido possível. =)

5 dicas para avançar em sua carreira

Não precisamos estar no fim ou no começo do ano para elaborar nossas metas. Em termos de carreira, sempre é necessário fazermos uma análise do que estamos fazendo certo ou errado, onde neste último caso, precisamos analisar com ainda mais cautela o que precisamos melhorar/mudar para que possamos estar satisfeitos com nossa vida profissional, aliás ela ocupa e ocupará boa parte de nossas vidas.

A seguir vamos elencar cinco dicas para que você possa progredir cada vez mais.

1. Faça uma autoanálise

Primeiro você deve analisar a si mesmo: o que deseja para sua carreira, onde quer chegar, fazer metas de curto prazo, alguma habilidade que deseja melhorar, algo novo que deseja aprender, o que quer deixar de fazer e tudo mais o que julgar necessário. Se quiser escrevê-las em algum lugar é melhor ainda, assim sempre que quiser revisá-las elas estarão lá =)

Desenvolvedor PHP Júnior
Formação: Desenvolvedor PHP Júnior
Nesta formação você aprenderá todos os fundamentos necessário para iniciar do modo correto com a linguagem PHP, uma das mais utilizadas no mercado. Além dos conceitos de base, você também conhecerá as características e a sintaxe da linguagem de forma prática.
CONHEÇA A FORMAÇÃO

2. Invista em sua carreira

Pode até parecer clichê falar isso, mas provavelmente você conhece alguém que fez uma faculdade e parou por aí… Apesar de sempre enfatizarmos que a área de TI é uma área de estudo constante, muitas pessoas esquecem de se atualizar fazendo alguma especialização ou algum curso.

Outras pessoas ficam presas a apenas uma linguagem por exemplo, não se abrem para o novo… Para garantir boas oportunidades precisamos estar atentos as novidades e o que estão utilizando por aí. Ficar preso a somente uma linguagem ou tecnologia te limitará as vagas.

Não querendo dizer que você deve estudar tudo o que sair de todas as áreas, mas que você busque se especializar sempre em sua área, nem que seja estudando por conta própria.

3. Saia do comum

Além dos conhecimentos técnicos que você tem e irá ter, precisamos trabalhar em outros aspectos também, como saber liderar um projeto/equipe caso precise, mediar conflitos, enfim lidar com pessoas.

4. Certificações

As certificações são muito bem vistas em seu currículo. Além do conhecimento adquirido, você mostra para a empresa que realmente tem um bom nível de conhecimento naquele assunto. Existem diversas certificações nas áreas de desenvolvimento, banco de dados, cloud, redes, gestão, etc.

Com uma simples pesquisa você verá quais são as mais importantes do seu eixo de trabalho.

ITIL - Fundamentos - Parte 1
Curso de ITIL - Fundamentos - Parte 1
CONHEÇA O CURSO

5. Seja persistente

Último e não menos importante. Se tudo isso que você planejou não deu certo, devemos voltar para o primeiro tópico e fazer a análise novamente, para que possamos elaborar novas estratégias e principalmente aprender com esses erros.

Até mais!

Devo começar como Front-End, Back-End ou Full Stack?

Olá, Web Developers!

Muitos programadores no começo de suas carreiras acabam encontrando os termos Front-End, Back-End e Full Stack quando vão se candidatar a vagas de emprego. Então surgem as seguintes dúvidas: “o que devo seguir?”, “qual a mais difícil e qual a mais fácil?”, “qual paga melhor?”, etc.

Todos possuem vantagens e desvantagens. Vamos ver os pontos base sobre cada um.

Front-End

Desenvolvimento Front-End

Necessidades

O desenvolvedor Front-End terá que desenvolver as telas da aplicação que foram projetadas pelo Arquiteto e Designer, normalmente com HTML, CSS e JavaScript.

Este desenvolvedor também terá que saber analisar o trabalho do designer para poder seguir o que ele projetou, portanto também pode ser necessário saber o básico de softwares como PhotoShop, Illustrator, Adobe XD e Sketch.

Você não precisa saber sobre experiência de usuário e design, mas há empresas em que o próprio desenvolvedor Front-End precisa desempenhar os papéis de arquiteto e designer, tornando esses conhecimentos um diferencial deste profissional.

Há empresas que também vão querer um desenvolvedor Front-End para criar um site/blog feito com WordPress, então também pode ser interessante saber um pouco de PHP.

Desvantagens

O código feito por um Front-End é executado no cliente. Porém, não sabemos se o usuário está em um smartphone, tablet, notebook ou desktop. Será que o usuário está usando um bom Wi-Fi ou está com uma Internet móvel bem lenta?

Também não sabemos o sistema operacional, qual navegador, versão, etc. Um desenvolvedor Front-End precisa desenvolver um código que possibilite que a maioria dos usuários possam utilizar a aplicação sem problemas. Portanto, é necessário muitos testes em diversos ambientes.

Como estará em contato direto com o usuário, deverá entregar uma boa experiência, e isso se inicia no tempo de carregamento da aplicação. Portanto, também é preciso se preocupar com a otimização dos arquivos HTML, CSS, JS, imagens, etc.

Vantagens

Um Front-End tem como principal linguagem de programação o JavaScript, que está crescendo muito. Você pode ver mais no post O que se pode fazer com JavaScript hoje em dia?.

Além da web, este profissional pode aprender facilmente a criar aplicações desktop e mobile, desenvolver jogos e começar a trabalhar com Back-End utilizando apenas JavaScript.

Ele também não precisa se preocupar com performance do processamento feito no servidor e nem com o Banco de Dados.

Todas as empresas precisam de um Front-End, permitindo que você envie currículo para qualquer empresa.

Outro ponto é que o resultado do seu trabalho pode ser visto em ação (sistemas, aplicativos, sites, etc), permitindo deixar o seu currículo mais interessante.

Como normalmente as regras de negócio ficam no servidor, o Front-End pode ser um pouco mais amigável para quem não tem tanta lógica de programação (isso não significa que lógica é dispensável).

Hoje em dia as empresas estão valorizando cada vez mais o JavaScript, fazendo a demanda e o salário oferecido aumentarem, já que ainda há poucos Front-Ends de qualidade se comparar com a quantidade de desenvolvedores Back-End.

Back-End

Desenvolvimento Back-End

Necessidades

O desenvolvedor Back-End é aquele que responderá às requisições do cliente. Ele precisa saber alguma linguagem de programação, ter uma boa lógica para programar as regras de negócio do sistema, se conectar ao banco de dados para recuperar ou gravar dados, etc.

O banco de dados pode ser de responsabilidade de um profissional especializado, mas muitas vezes ele fica por conta do próprio desenvolvedor Back-End, fazendo da otimização de banco de dados algo interessante de se saber. Independente disso, o Back-End precisa saber mexer com banco de dados.

Além disso, este desenvolvedor também precisará saber publicar a aplicação, podendo ser necessário conhecimento em serviços como AWS ou Azure e a criação de contêineres como o Docker.
Para saber mais sobre o que é Docker, veja nosso post: No final das contas: o que é o Docker e como ele funciona?

Hoje em dia, dependendo do sistema, pode ser necessário que este profissional saiba lidar com Internet das Coisas (IoT), Aprendizado de Máquina (Machine Learning), Mineração de Dados (Data Mining), etc. Algumas destas habilidades será um grande diferencial deste profissional.

Desvantagens

Normalmente desenvolvedores Back-End tem mais familiaridade apenas com uma linguagem de programação, o que ilmita os lugares para onde podem enviar currículos. Então entra a questão: “devo estudar outra linguagem ou me especializar no que já sei?”

Se um Front-End pode enviar currículo para qualquer lugar, um desenvolvedor Back-End especializado em Java dificilmente será chamado por uma empresa que só trabalhar com Python, por exemplo.

Como lidam diretamente com a regra de negócio, precisam ser os mais atentos a cada detalhe, inclusive os dados enviados pelo Front-End, pois o cliente pode dar um jeito de burlar as regras do Front.

Devem estar atentos a vários casos de teste e lidar com a segurança do servidor para evitar ataques aos dados. Um pequeno problema aos dados e toda a empresa pode ter sérios problemas. Front e Back precisam estar atentos, mas erros no servidor podem ser muito mais graves.

Outro ponto é que a velocidade do Front-End muitas vezes vai depender das respostas do servidor, então também devem saber otimizar o banco e o código. Todos os usuários estarão acessando o seu servidor, então é preciso saber como escalar a sua aplicação para que ela não caia em um momento de grande quantidade de acessos.

Vantagens

O Back-End não precisa se preocupar com o dispositivo ou versão do navegador do cliente, pois seu código estará rodando em apenas uma única máquina a qual você mesmo pode configurar.

Um Front-End precisa saber logo de início HTML, CSS, JavaScript, deixar as telas funcionando em todos os tamanhos de dispositivos, etc, enquanto o Back-End precisará de uma linguagem de programação e um banco de dados, podendo o Back-End ser um pouco mais amigável para alguns iniciantes, principalmente os que tem boa lógica de programação e/ou aqueles que não se dão muito bem com as partes mais visuais de um sistema.

Além disso, hoje em dia ainda é muito comum que empresas paguem salários maiores para desenvolvedores Back-End, principalmente por sua alta responsabilidade com os dados da aplicação.

Full Stack

Pessoa Trabalhando

Necessidades

O NINJA! O Full Stack é o desenvolvedor que faz tanto Front quanto Back. Então tudo o que foi dito aqui são necessidades para que alguém seja considerado um verdadeiro Full Stack.

Mas deve-se tomar cuidado! Há desenvolvedores Back-End que só por saberem se virar com JavaScript e um pouco de CSS se consideram Full Stack (precisa mais que isso para ser Front), do mesmo jeito que muitos Front-Ends, por saberem como fazer uma API e salvar algo no Banco de Dados (precisa mais que isso para ser back), já se consideram Full Stack também.

Um verdadeiro Full Stack deve estar bem familiarizado com ambos os lados. Por esses motivos, muitos acreditam que um verdadeiro Full Stack é algo que não existe, como um ser mitológico. Porém, isto não te impede de ser Full Stack.

Há empresas que apenas esperam que uma mesma pessoa pegue dados do banco e exiba em uma tela, e depois pegue os dados da tela e salve no banco. Conseguir fazer o fluxo completo com qualidade já pode qualificar este profissional como Full Stack, mas é preciso se dedicar muito para fazer tudo isso com qualidade.

Você pode aprender mais sobre isso com o nosso curso MEAN 2 – JavaScript FullStack

MEAN 2 - JavaScript Full Stack
Curso de MEAN 2 - JavaScript Full Stack
CONHEÇA O CURSO

Desvantagens

As tecnologias estão sempre evoluindo, e é muito difícil se manter atualizado em várias coisas ao mesmo tempo, o que seria o ideal para quem quer se manter como Front e Back ao mesmo tempo.

Não confunda Full Stack (sabe bem Front e Back) com um generalista (sabe um pouco de tudo).

Vantagens

Possibilidade de enviar currículos para mais lugares e poder encontrar empresas que ofereçam salários maiores. Além disso, pode se oferecer para trabalhar apenas como Back ou apenas como Front.

Conclusão

Cada caminho possui vantagens e desvantagens. O melhor é analisar sua realidade, necessidade e objetivos para fazer a melhor escolha. E não se preocupe em ter que escolher certo de primeira, pois se não gostar da sua escoha sempre haverá tempo de recomeçar com algo diferente.

Confira também nosso Post sobre Ser especialista em algo ou saber um pouco de tudo?