Este texto é voltado para aqueles que estão iniciando na carreira de desenvolvimento de software que, tem/tiveram muitas dúvidas em que estudar e o que não estudar. Para compartilhar o que aprendi desde quando iniciei aqui vão algumas dicas:
Diploma é a chave?
Por não existir um órgão regulamentador na nossa profissão, um título de graduação não se faz obrigatório, embora muitas empresas exigem em suas entrevistas de emprego. Tive a grande satisfação de ter trabalhado com pessoas que não possuíam graduação e até então as experiências foram muito boas, em nenhum momento tive o direito de me sentir “superior” pelo simples fato de ter um papel timbrado na gaveta, pois para esta área é necessário o desenvolvimento de habilidades autodidata. Algo que me ajudou/ajuda muito a desenvolver uma nova habilidade é trabalhar os conceitos básicos, tais como: lógica de programação, resolução de algoritmos (não decorar algoritmos e sim exercitar a capacidade de resolução de problemas), arquitetura e design de software (não se prenda somente ao mundo da Orientação a Objetos) e entre outras que iremos debater neste e nos demais posts.
Comecei uma graduação, em que seria bom focar?
É comum iniciarmos uma graduação na área de TI e nos perguntarmos se estamos na formação correta. Um dos principais pontos que devemos ter em mente é que assim como em desenvolvimento de software, a graduação é para ser vista como um projeto que possui início, meio e fim, desta forma conseguiremos traçar os objetivos e métricas ao longo do desenvolvimento deste projeto de 4 a 5 anos. Então, assim como em qualquer projeto de software, precisamos enxergar as possibilidades de criação de novos ramos mas que não nos desviem do objetivo principal. Na minha concepção, programação é algo mandatório na formação de um profissional de TI, então foque em aprender os conceitos básicos de programação de forma sólida e escolha ao menos uma linguagem para ter fluência. Porém, antes de escolher uma linguagem como alvo, faça algumas perguntas a sí, seguido de pesquisas do tipo:
– Qual o meu alvo de mercado? Quais empresas atuam na região desejada e quais as linguagens mais requisitadas por elas?
– Pretendo ir para empresas que trabalham com R&D?
– Qual é o histórico/reviews das empresas que atuam na região alvo?
– Como se dá o crescimento profissional nessas empresas?
Essas perguntas podem gerar mais de uma alternativa, o que aumenta ainda mais as chances de sucesso.
Agora que você tem os alvos para seus primeiros passos, é hora de iniciar o projeto! Crie uma rotina de estudos que concilie o que você está vendo na graduação com os seus objetivos, e não espere aprender tudo na graduação, pois assim como em qualquer instituição de ensino você irá se deparar com pessoas de contextos e objetivos diferentes, o que é normal (afinal o meio acadêmico não é lugar para formação de opiniões e sim para debatê-las). Veja seus colegas de sala como potenciais colegas de trabalho e proponha grupos de estudos com aqueles que possuem afinidades compatíveis com os seus objetivos.
Estar inserido no meio acadêmico possui inúmeras vantagens, entre elas destacam-se a capacidade de encontrar pessoas que buscam os mesmos objetivos que você, e a facilidade de usufruir das estruturas físicas da instituição para formar grupos de estudos e debates. A minha dica para se iniciar um grupo de estudos relacionado a casos de uso reais, é o desenvolvimento na área de OpenSource. Existem inúmeros projetos em diversas áreas, escolha uma e contribua para a comunidade, isso te dará enorme visibilidade e conhecimento prático (pois em sua maioria, os projetos OpenSource trabalham com as metodologias/ferramentas utilizadas nas empresas de grande porte).
Siga ídolos que inspiram mais que criticam
O ego elevado faz parte do cotidiano de um profissional de TI, seja vindo de colegas de trabalho ou até mesmo de você. É discrepante com a realidade, que se exista ego no meio acadêmico (onde normalmente a formação do profissional ainda está em desenvolvimento). É comum encontrarmos pessoas que fazem leituras superficiais sobre assuntos complexos quanto à performance de algumas linguagens, um novo framework ou até mesmo uma metodologia e saem por aí espalhando achismos sem nunca ter feito um “Hello world”. Costumo pedir à essas pessoas que fazem críticas destrutivas para elaborar melhor os pontos levantados, para que eu possa me certificar de que aquilo não é apenas um achismo (o que na maioria das vezes é). Pessoas que se sentem ameaçadas por uma nova tecnologia ou metodologia estão sempre criticando de forma negativa tudo o que fujam da sua zona de conforto e costumam dar respostas rápidas e rasas. Tenha em mente de que tudo depende do contexto e que na nossa área a única constante é a mudança!
Certificação, especialização, mestrado?
Uma forma de pensar em qual melhor se aplica para você, é tentando colocar-se no lado do empregador e se perguntar: – Por quê alguém me contrataria com isso? Desconheço empresas que contratam profissionais que possuem diploma de especialização mas não possuem experiência prática, ou que possuem especializações em áreas distintas como se fosse um colecionador de diplomas! O mesmo vale para certificações. Sempre achei bizarro ouvir as pessoas falarem: “Sou um desenvolvedor Java…”, como você pode limitar uma carreira que ainda está no início com apenas uma linguagem? Acredito que o melhor a se dizer é: “Sou um desenvolvedor de software..” e nada mais. Outro ponto que tem que ser encarado com muita seriedade é o mestrado, seja ele acadêmico ou profissional, um mestrado pode lhe dar o direito de lecionar e é aí onde as responsabilidades triplicam, mestrado requer muito tempo, preparo e pode encurtar os caminhos dependendo da área escolhida. Eu escolheria um mestrado em uma área em que me visse por muitos anos nela.
O inglês
Código em Português não, por favor! O Inglês tem sido algo essencial na vida de quem é da área de desenvolvimento de software, muitas vezes nós esperamos estar fluentes para nos aventurarmos a ler um livro ou artigo ou até mesmo participar de reuniões em inglês, mas temos que lembrar que a prática leva à perfeição, e dificilmente as pessoas que estão te ouvindo irão fazer comentários destrutivos a seu respeito por saber que não é a sua língua nativa (podem até te pedir para repetir compassadamente, mas te reprimir, acho difícil), uma ótima dica para aprender, é acostumar o seu cérebro a entender o inglês como sendo uma segunda língua e não um ramo da sua língua nativa, inicialmente nós sempre buscamos traduzir tudo para a nossa língua (o que é normal), mas quando o Inglês se torna comum para o seu cérebro você começa a associar as palavras ao contexto e a fluência vem. O motivo pelo qual eu iniciei este trecho falando sobre código em Português, dá-se pelo fato de não termos muitas linguagens cujo a sintaxe também é em Português, e o código que sempre deve buscar a legibilidade fica parecendo a cabeça de uma criança de 3 anos aprendendo dois idiomas simultaneamente. Outro ponto muito interessante é a quantidade de materiais desenvolvido por empresas do Vale do Silício, que mesmo sendo escritos por pessoas de várias nacionalidades, o inglês é a língua padrão e é comum na cultura dessas empresas ganhar visibilidade através de artigos, tutoriais e entre outros materiais.
Cuidado com as modinhas
Acho que você já deve ter ouvido falar que a cada semana um novo framework é criado e muitas vezes você se vê “obrigado” a aprender como utilizá-lo, costumo dizer que é preciso ter cautela e ficar atento à adequação desses frameworks nas empresas que possuem processos bem definidos. Parece não fazer sentido o que irei dizer, mas acredito que empresas de mercado aberto zelam mais pelas escolhas arquiteturais de seus softwares e por isso acabam fazendo vários estudos antes de iniciar um novo produto com determinadas linguagens/frameworks, e que normalmente utilizam mais de um(a) (mais uma vez, de acordo com cada contexto do software).
Equipe
Um dos maiores dilemas para um profissional que trabalha no ramo de desenvolvimento de software são as a questões éticas e a capacidade de interagir com os demais. Costumo dizer que as máquinas nunca serão capazes de substituir o homem, pois a empatia é algo impossível de transformar em algoritmo.
Por Yrineu Rodrigues, juazeirense, desenvolvedor de software. Atualmente morando em San Jose, CA
*Este texto é de inteira responsabilidade do autor e não reflete, necessariamente, a opinião do Revista Cariri