image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Thiago Henrique
Thiago Henrique20/01/2023 19:09
Compartilhe

Conhecimentos que todo desenvolvedor iniciante deve ter (e onde obtê-los)

    Antes de começar, friso que esse post é mais focado para quem tem interesse em começar a carreira na área de desenvolvimento web. Apesar disso, boa parte dos pontos abordados se aplicam a qualquer um que queira trabalhar com software comercialmente.

    Inglês

    image

    O que há poucos anos era "um plus" nos currículos, hoje em dia é fundamental para desenvolvedores. Não só por consumirmos conteúdo técnico em grandes porções, mas também por um motivo essencial: clientes podem ser de qualquer lugar do mundo.

    Empresas de desenvolvimento modernas não estão mais restritas a clientes da região (ou país). Elas demandam então mão de obra com qualificação para se comunicar diretamente com clientes internacionais, e não só por texto.

    Porém, não ache que você precisa ter um inglês impecável (em termos de pronúncia e gramática) para se comunicar em inglês. Os aspectos mais importantes para uma boa comunicação com clientes é: boa capacidade de manter uma linha de diálogo contínua e fluída, boa argumentação e bom entendimento do que é falado pelos outros.

    Explico: Não adianta ter pronúncia e gramática perfeitas se suas frases são desconexas ou não tem relação com o assunto. Qual das duas respostas para a pergunta "Você gosta de maçã?" soa mais fluída?

    — Maçã é gostosa. Gosto muito disso. Laranja também.

    ou

    — Gosto bastante! Ah, eu também gostar muito de laranja.

    A segunda resposta, apesar de ter o erro leve ("também gostar"), soa mais como algo que as pessoas dizem no dia-a-dia. A primeira resposta, apesar de gramaticalmente correta, soa como o Tarzan se alfabetizando.

    Como melhorar esse aspecto? Praticando. Consumir conteúdo em inglês é fundamental. Irá melhorar seu "ouvido", além de, aos poucos, pegar trejeitos de entonação e fala.

    Só ouvir, porém, não é o suficiente. Conversação é essencial pra esse tipo de prática. Procure amigos interessados e tentem estabelecer algum diálogo. Fale sozinho em inglês quando não tiver ninguém por perto (é sério, haha). Muitas universidades também possuem grupos de conversação gratuitos (geralmente com organizadores que falam inglês nativamente). O que não vale é ter vergonha de soltar o verbo.

    Muitos gringos (principalmente na nossa área) estão acostumados a sotaques de todo o mundo, então não se intimide :)

    git

    Git, para quem não conhece, é uma ferramenta de controle de versão. O que é controle de versão? Vou explicar de maneira bem simplista e grosseira já que explicações mais detalhadas podem ser encontradas aqui , aqui e aqui .

    A maioria do software de hoje em dia não se faz sozinho. Um sistema de controle de versão permite que alterações no código sejam compartilhadas entre desenvolvedores de maneira automatizada e sem dor de cabeça.

    Baseada nessa funcionalidade, fica claro a razão pela qual uma ferramenta desse tipo é essencial pro nosso dia-a-dia.

    Mas por que Git? Ela simplesmente é a mais popular e amplamente adotada pelas equipes de desenvolvimento atuais por ser mais rápido e ter funcionamento descentralizado.

    Você pode começar a usar Git mesmo sem estar em uma equipe. Gerencie projetos pessoais utilizando ele e pare de ter infinitos arquivos chamados projeto_versao_final_final_2.zip .

    Linguagens/tecnologias com boas oportunidades

    Atualmente, existem oportunidades para maioria das linguagens e para desenvolvedores com diferentes níveis de competência. Porém, o decisivo mesmo é o conhecimento do desenvolvedor nos fundamentos e práticas de bom desenvolvimento de software. A intenção desse tópico é apenas dar uma breve visão de algumas tecnologias que estão mais em uso atualmente (lembro mais uma vez que este post trata de carreiras na área de web).

    Ruby, Javascript e Java são linguagens com boas oportunidades no mercado . É importante também ter conhecimentos dos principais frameworks da linguagem de sua escolha. Ruby on Rails e Sinatra para Ruby, Nodejs e Express para Javascript e Spring para Java são alguns exemplos.

    Em todos os casos, é fundamental que um desenvolvedor web, mesmo que iniciante, tenha boas noções de HTML, CSS e Javascript. É esperado que ele seja capaz de pegar um layout simples de uma página feito no photoshop e consiga "transformá-lo" em código a ser renderizado em um navegador.

    É importante que todo desenvolvedor tenha mínima noção de back-end e front-end , sendo capaz de se virar em qualquer um dos contextos quando necessário. Pode até haver a especialização em um dos lados, mas conhecimento do funcionamento básico de cada parte é fundamental.

    Para aprender essas linguagens e tecnologias existem várias fontes. Em geral cada linguagem e framework possuem sua documentação online e com acesso irrestrito. O Rails , por exemplo, possui uma documentação bastante completa e bem descrita juntamente com um guia de como aprender o funcionamento do framework.

    É importante para um desenvolvedor não se apegar tão firmemente a uma tecnologia específica . Friso novamente: boas empresas procuram muito mais desenvolvedores com bons conhecimentos dos fundamentos de desenvolvimento de software do que com expertise em uma só linguagem/framework .

    E é justamente sobre isso que é o próximo tópico.

    Bons fundamentos de programação (principalmente Orientação a Objetos)

    Esse é o ponto mais difícil de ser trabalhado e também o que muitas vezes é decisivo numa contratação. As fontes para esse assunto são as mais variadas, então vou apenas descrever alguns conceitos que todo programador deve ter na ponta da língua e deixo a parte de correr atrás do assunto para os interessados :P

    O básico de algoritmos é fundamental. Todo desenvolvedor deve saber pegar um problema e fragmentar em etapas executáveis pelo computador, independente de linguagem. Este outro post tem várias boas dicas de material interessante para aprender os algoritmos mais "populares".

    Porém, resolver problemas não é o suficiente se você não é capaz de fazer uma boa organização da sua solução. Nesse ponto, é importante ter uma boa noção de arquitetura de código, boas práticas de programação e orientação a objetos. Um livro amplamente recomendado é Practical Object-Oriented Design , de Sandi Metz.

    Toda leitura e estudo não é suficiente se esse conhecimento não for colocado em prática. Procure outros desenvolvedores mais experientes e peça feedback sobre seu código . Essa é uma das melhores formas de validar o aprendizado além de aprender ainda mais.

    Boa comunicação escrita e "falta de vergonha"

    Como mencionei anteriormente, boa parte dos desenvolvedores hoje em dia mantém contato direto com seus clientes. Boa parte desse contato é feito via chats escritos como Slack ou Google Hangouts.

    Também é comum que desenvolvedores trabalharem "distribuídos", ou seja, com nem toda a equipe dividindo o mesmo espaço físico. Assim, a comunicação da equipe se dá também via chat.

    Fica claro então que um desenvolvedor deve ser no mínimo um comunicador competente através de texto. Ninguém (seja cliente ou colega de equipe) deve ter trabalho pra entender o que é dito nem ter margem para um entendimento errado do que foi comunicado (isso é impossível de evitar, mas deve ser minimizado o quanto for possível). Além disso, capacidade de interpretação de texto é fundamental.

    Ainda na área de comunicação, é importante que todo desenvolvedor atual (e principalmente o iniciante) saiba a hora certa de dizer: "não consigo fazer tal coisa. Preciso de ajuda".

    Acredite: pedir ajuda ou perguntar algo é mil vezes melhor do que ficar travado por um bom tempo algo (eventualmente não mostrando progresso) ou então seguir por um caminho errado e causar prejuízos maiores para o projeto .

    Na equipe certamente haverão pessoas mais experientes capazes de ajudar a esclarecer qualquer problema que surja e essas pessoas farão isso com prazer.

    Tudo o que foi comentado aqui é apenas a ponta do iceberg. Ser um bom desenvolvedor envolve constante auto-aperfeicoamento e busca por novidades. Conhecimentos básicos devem estar sempre bem consolidados ao Mediummesmo tempo e o aprendizado constante nunca pode parar.

    Fonte: Medium

    Link: Clique aqui

    Compartilhe
    Recomendados para você
    Microsoft 50 Anos - Prompts Inteligentes
    Microsoft 50 Anos - GitHub Copilot
    Microsoft 50 Anos - Computação em Nuvem com Azure
    Comentários (3)
    Valdemar Taborda
    Valdemar Taborda - 21/01/2023 05:57

    Obrigado pelas Dicas

    Vamberto
    Vamberto - 20/01/2023 21:17

    Muito Obrigado pelas dicas.

    Arthur Felipe
    Arthur Felipe - 20/01/2023 19:46

    Dicas valiosas!