Considerações iniciais
Amigo(a) leitor(a), vamos começar nossa conversa com uma temática que, particularmente, gosto bastante: programação.
Programar não é tão simples como muitos podem dizer. Sabemos que algumas empresas e startups buscam um profissional, de preferência, com um bom domínio nesta área: “a arte de resolver problemas”. Atingir com excelência tal performance requer muita prática, dedicação e humildade para saber começar pelo básico até chegar a um desempenho que o(a) leve a ter um grau de entendimento elevado para resolver problemas mais complexos na programação.
Antes de mais nada, a primeira observação que tenho a fazer é: toda dica ou informação que eu te apresentar dentro deste post só surtirá efeito se você por em prática, se você aplicar no seu dia a dia. Não é oportuno “juntar” muitos conhecimentos sem testá-los na sua rotina, ver quais se adaptam mais ao seu estilo e usá-los, amigo(a), leitor(a). Então, não busque ser um amontoador de informações. Seja um cumpridor de ações! Por isso vamos apresentar algumas sugestões que, ao meu ver, como programador, poderão surtir um excelente efeito na sua rotina e facilitar sua vida de programador. Vamos nessa ?
Há ferramentas que podem facilitar a minha vida de programador?
Nos últimos anos, muitos programadores tem se destacado no mercado de trabalho por desempenharem “grandes feitos” em um tempo tão reduzido. Tudo isso se reflete nos avanços que este setor tem feito recentemente. É claro que tais ações não são feitas do nada ou repentinamente, mas com o auxílio de muitas ferramentas e frameworks acessíveis para serem usadas a qualquer momento por qualquer pessoa.
Dito isso, existem, sim, ferramentas que podem tornar a vida de um programador “mais fácil”, o que quero dizer com isso é que essas ferramentas e frameworks que irei mencionar poderão potencializar a sua vida de programador. Mas não quer dizer que você não terá que se esforçar para programar, não é isso. Na verdade, essas ferramentas poderão tornar o sua dia a dia mais prático e produtivo. Além disso, se você por em prática, na sua rotina, podem aprimorar suas habilidades como desenvolvedor. Então segue aqui! Vou citar algumas que uso ou que alguns amigos meus gostam também.
Leia também: Mulheres, tecnologia pode ser o próximo passo da sua carreira
Ferramentas ou frameworks que todo programador deve conhecer:
1- Terminator
Tenho certeza que em algum momento você já presenciou uma interface de computador com várias abas ou janelas abertas de terminais e, muitas vezes, desorganizadas na interface do Linux . Imagine que existe um sistema que pode facilitar sua vida neste momento ao programar.
O criador desta ferramenta foi o programador Chris Jones, com uma finalidade simples: possibilitar que os terminais sejam fixados apenas numa só janela. No lugar de estar espalhado pela interface do seu computador, notebook, e embaralhando tudo. Com ela você pode utilizar apenas uma janela com todos os terminais. Além ter outras funcionalidades que não estão disponíveis na tela nativa. Simples e prático. Seu uso é apenas para Linux, mas você pode instalar no windows via WSL.
Quais as suas vantagens ?
- Organiza os terminais em um único local da interface do seu monitor;
- Possui suporte para separadores, atalhos;
- Guarda layouts.
2- Gitlab
Sabia que empresas como a NASA, SpaceX usam tal ferramenta que é multifuncional. Ela é bem simples: você pode guardar seus códigos sem pagar nada; possui suporte a Wiki; rastreamento de erros; Branchs privadas; sistema de CI/CD de forma nativa e gratuita sem ser feita por outros; pode fazer comandos testes e executar o deploy. A ferramenta é uma boa dica para quem quer uma alternativa ao github no versionamento dos seus projetos e ainda é gratuita.
3- GitKraken
É uma ferramenta simples para quem não usa o Git pelo terminal. Essa ferramenta possui um designer bem “confortável” para quem a vê e bem versátil para o versionamento do seu código visual. Ela possui versões para Linux, Mac, Windows, ou seja, muito prática para times que usam diferentes sistemas operacionais entre si, além de ser usada em várias plataformas como as que foram mencionadas. Ajuda também a entender os commits e branches que você usa no momento que programa. Cada commit é editável, o que possibilita ver as mudanças feitas nesse commit; quem a modificou ou fez o push.
Além disso, existe uma opção que, caso você use o botão direito do mouse sobre o commit, é permitido fazer, no exato momento em que clica, um conjunto de ações bem relevantes na linha de comando como:
- Cherry-pick;
- Fazer um Branch por meio de um commit, ou seja, criar um ramo isolado no seu repositório a partir daquele commit;
- Criar tag;
- Reset master e edição da mensagem do commit;
Além disso, é possível que você interaja com a sua conta social Github, o que poderá fazer com que você acesse e clone repositórios remotos ou criar um fork já existente.
Tudo isso poderá ajudar a economizar tempo, ainda mais, se você for colaborador ativo de código aberto. Se o seu foco for OpenSource com a ajuda da comunidade, essa ferramenta é bem proveitosa. Até o momento ele é gratuito.
4- Slack
Imagine uma ferramenta que pode ser usada pelo computador, por celulares, ou seja, é bem versátil e prática. Este programa é usada para pessoas se comunicarem de forma mais prática na sua equipe ou empresa, ou melhor, é de grande valia para o time. É como se você criasse uma versão virtual do seu escritório de forma virtual em que você pode enviar, receber arquivos, conteúdos, elaborar e discutir projetos, adicionar parceiros externos e com a participação de todos você tem um “reunião” on line.
Em outras palavras, reúna toda a sua comunicação corporativa em um só local. Com a pandemia, muitos setores tiveram que trabalhar na forma home office, o que acabou favorecendo para o uso do Slack, já que é uma ferramenta que facilita a comunicação entre os membros da equipe e os Bots.
Antes de mais nada, o que são Bots ?
Vou trazer um resumo: podem ser usados para automatizar processos de comunicação dentro da empresa, ou seja, o usuário (você) escolhe, ou melhor, programa determinadas funcionalidades que serão executadas pelos Bots. Um exemplo simples é quando você acessa um site e de imediato você se depara com uma mini “janelinha” interagindo com você, fazendo perguntas, como se fosse um vendedor. Isso se resume aos Chat Bots. Se você tem acesso à internet, é provável que isso já tenha acontecido com você.
Nessa linha de raciocínio sabemos que uma pessoa programou esse Bots para interagir com você de forma automática e com respostas pré-formadas para suas possíveis dúvidas. De forma básica e simples os Bots teriam essas funcionalidades.
Esse software possui a capacidade de integrar vários serviços, simplificando: possibilita usar ferramentas indispensáveis para a sua rotina de trabalho sem precisar se desconectar da plataforma. Isso ajuda a amenizar o tempo que poderia ser desperdiçado e ao mesmo tempo não diminuir o seu rendimento. Alguns dos Apps que pode sem integrados a este programa são:
- Google drive
- Office 365
- Zoom
- Trello
- Goole Calendar
5- Code Climate
Criado por Bryan Helmkamp, é uma ferramenta que analisa o seu código quando é mandado para o repositório e ele atribui uma nota. É como se você tivesse um parâmetro se o seu código está limpo ou não. Ele faz um review do seu código, mas ele não faz tudo, ele não dita um código ou enumera o melhor a ser feito, apenas ajuda a “dizer” se o seu código está bem organizado, limpo. Para ser mais direto ele identifica os “code smells”. Se forem projetos Opem Source ele é gratuito.
6-VSCode
É uma ótima ferramenta open source, gratuita de edição de texto com diversos plugins para você montar seu próprio ide. Pesa bem menos em termos de uso de memória e economia de dinheiro se associado, por exmeplo, ao Deméritos de PyCharm que também edita códigos, mas nem todos podem adquiri-la pelo preço.
Ela é produzida pela Microsoft, abarca diversas linguagens, que tem uma ferramenta de debug nativo, suporte nativo ao Git, C, C#, python, suporte nativo ao JavaScript e outras características de programação por meio de plugins.
Quais plataformas ele pode ser acessado ? Linux, Windows e Mac. Além disso ajuda a otimizar seu tempo, pois grava espontaneamente o código e possui um marcador de sintaxe para muitas linguagens de programação.
7- Cloud9
É uma plataforma IDE excelente que possibilita: suporte para executar várias linguagens específicas para programar; escrever no AWS Cloud Development Kit (CDK); depurar códigos feitos; compilar software, que poderão ir para nuvem.
Um dos seus diferenciais é usar apenas um navegador para executar todas as ações que foram citadas acima. Várias possibilidades para Codar, ela oferece muitas vantagens no dia a dia de um programador.
8- Rollbar
É uma ferramenta que acompanha o que acontece no seu App por meio de um dashboard e na mesma hora envia um alerta, se algo ocorreu errado e ainda apresenta dados que ajudam a resolver esses problemas. Você é um programador que procura desenvolver códigos mais limpos e lançamos com uma maior velocidade, então, esta ferramenta pode servir de grande ajuda, já que você localizar e corrigir erros bem antes de fazer deploy. Ela está disponível no Windows, Linux, Nuvem.
9- CodeShare
Ótima ferramenta para fazer uma produzir uma sala com vídeo em tempo real, em que você apresenta o seu entendimento sobre alguma aspecto de programação e os integrantes podem visualizar, o que está ocorrendo e interagir com a sala de aula. Você apenas fornece o URL e as pessoas participarão simultaneamente de tudo. O código descrito no editor pode ser visualizado e baixado, mas cada um expira depois de 24 horas. É gratuito.
10-Tableless
É uma boa alternativa para quem busca trocar conhecimento por meio de fóruns que dão um bom feedback de informações de programação. O foco é compartilhar o que já sabe, tirar possíveis dúvidas. Ter esse aprendizado é um forma de aprender também.
11-Tilix
Esse emulador possibilita que você divida uma tela de execução em pormenores, ou seja, em diversas tarefas que dividem essa mesma tela mais outras tarefas na mesma tela. É como se fosse uma ação a ser executada e dentro dela posso subdividir ainda mais em outras tarefas que serão executadas pelo programador na mesma tela. Então fica fácil deduzir que ele tem um “Quake mode” que não tem aquele efeito de dropdown.
Uma dica: os programadores que adotam o GNU/Linux por um período prolongado, acabam preferindo o terminal.
Deixo claro que ele é um emulador de terminal igual o terminator, ou seja, você, amigo(a) programador(a), consegue executar todos os comando de texto por meio dele. Entre os vários emuladores que ajudam a potencializar o nosso desempenho nessas tarefas, o Tilix é um opção prática e simples.
12- ZSH + oh my zsh
É natural na rotina de um desenvolvedor recorrer a um terminal em sua vida profissional. Para quem não sabe, é com a ajuda deles que fazemos comandos para executar uma específica ação, tarefa, por exemplo, em uma aplicação. Vamos dizer que tem uma boa “reputação” que é o oh my zsh. Essa ferramenta ajuda muito a vida de quem programa.
Esses interpretadores de comando, ou shell (como são chamados), são bastantes utilizados para executar o que foi solicitado pelos programadores. Podemos deduzir que um programador precisa de uma interface mais dinâmica, atrativa e “limpa” (podemos assim dizer), ou seja, que ajude na execução dos comandos.
O software oh my zsh é justamente a ferramenta que vai possibilitar essa “facilidade”, já que ele possibilita fazer uma customização do terminal. Isso facilita muito, quando estamos desenvolvendo. Ele ajuda para se ter uma melhor interface, visualização dos nossos comandos e dos retornos do terminal.
Em outros prompts de comando não existe a possibilidade de usar cores para enfatizar algo que você considere como relevante, como resultado, isso acarreta perca de tempo na execução das atividades no terminal. Por isso ele acaba se tornando prático no dia a dia de um programador.
13- Grafana
Quem é programador sabe que precisa gerenciar vários dados, fontes de dados. Imagine ficar buscando por vários programas, acessando, por vários lugares, diversos programas que talvez ajudem a armazenar dados. Uma bagunça! Agora, se existisse um programa que ajuda-se a reunir essas informações em um único ambiente. Existe e se chama Grafana.
Ele foi feito para que o usuário possa consultar várias fontes de dados, trazer essas informações a fim de o programador possa dominar, ter controle dessas informações. Exemplo, você consegue manipular: visualizações, dashboard para potencializar seus gráficos; da para visualizar a quantidade de usuários on line; o estado da CPU em tempo real. É como se fosse um painel de controle que você define quais serão esses dados que você deseja acompanhar.
Sabia que você pode criar também alarmes no seu computador para ajudar a entender como anda a sua aplicação. Por exemplo, se o seu pc estiver sobrecarregado por estar muito tempo em uso, o grafana vai enviar uma mensagem para o seu celular avisando isso. Em outras palavras, esse programa resgata as informações colocadas por meio dos nosso dashboard e esse alarme dispara. É uma ferramenta relevante para seu uso como programador.
14- Sonarqube
Sabia que existe uma ferramenta que verifica, aliás, é como se fosse uma inspeção sem interrupções sobre a qualidade do código, que deteca bugs, códigos cheirosos, fáceis de serem quebrados, ou seja, vulneráveis em termo de segurança, além de ter suporte para várias linguagens de programação, oferece relatórios de códigos, padrões de codificação, complexidade de código e entre outras ações que muitos programadores podem ficar exaustos de fazer. Existe e se chama Sonarqube.
15- Kibana
É gratuito, trabalha com Elastic Stack, já que produz recursos de dados indexados no Elasticsearch. Mais conhecida como ferramenta que elabora gráficos para o Elastic Stack. Tem uma interface bem atrativa que gerencia, monitora e protege um cluster do Elastc Stack, além de possuir o hub centralizado que ajuda a integrar soluções ao criar barras, gráficos de pizza, tabelas, histogramas e mapas. Tudo isso pode ser integrado a Apps como Canvas ou o Maps e outros. Permite visualizar pelo programador ao mesmo tempo os volumes de dados de suporte, tudo isso via interface web, Além de poder fazer modificações nas interfaces, dados e segmentos específicos.
16- Docker e Docker Compose
Docker: Este software está a quase uma década no setor. O Docker de forma simples e concisa: é uma maneira de se “containerizar” aplicações. Você sabia que cada container possui seu IP. Essa ferramenta projeta de uma forma completa uma imagem de todas as suas dependências em sua aplicação que podem ser internas ou pela Web.
Em outras palavras, ao usar esta ferramenta, sua empresa terá uma notável agilidade e escalabilidade. Só mais uma dica: cada container deve executar apenas uma aplicação por vez, é justamente por fazer isso, que ele garante “suavidade” na ação dos processos.
Docker Compose: Ele vai reger, ou melhor, comandar os containers da Docker. Fazendo uma analogia com a música, o maestro rege a música e no Docker Compose nós somos os regentes, os maestros que irão comandar aquela partitura, que neste caso será os códigos de programação. Ele se “compõe”, ou melhor, você configura todas as dependências do seu projeto em containers através de um arquivo e consegue executar tudo com um so comando, sem perder horas instalando e configurando aplicativos como banco de dados, redis ou outros, isso facilita a vida de qualquer programador e com isso podemos entender melhor a função de um Compose.
17- DBeaver
Muitos consideram produzir dados algo complexo e cansativo, mas existem ferramentas que pode te ajudar a gerir bases de dados de forma mais prática e uma delas é a DBeaver. Além de ser gratuita ela é multiplataforma. Ela consegue dar suporte a uma quantidade bem relevante de sistemas de gestão de bases de dados que são :
- SQL Server
- Sybase
- MS Access
- Oracle
- DB2
- Teradata
- Firebird
- Derby
- MySQL
- PostgreSQL
- MariaDB
- SQLite
Existem outras. Estas foram só para ter uma noção. Para quem é programador.
Considerações finais
Amigo(a)leitor(a), fizemos um pequeno levantamento de alguns softwares que podem agilizar suas tarefas diárias neste setor tecnológico, bem como facilitar a vida de muitos programadores. Mas deixamos claro que são apenas dicas, sugestões para que você possa incrementar no seu dia a dia. É perceptível que existem outros programas ou Apps que podem ajudar também.
Para não deixar a postagem tão estendida, optamos por alguns. Todos eles podem contribuir de alguma forma para potencializar suas habilidades ou melhor gerir o seu dia. Tudo vai depender de sua prática constante em usá-los e gosto por eles.
Esperamos que estas dicas contribuam de alguma forma na sua carreira de programador.
Aproveito a oportunidade para convidá-lo(a)s para integrar a nossa comunidade; conhecer cada vez mais esse fascinante universo.
Mas, para isso, gostaria que você se inscrevesse na nossa newsletter que estará repleta de conteúdos como o que foi abordado. Contamos com a “presença” de vocês. Fiquem por dentro e nos acompanhem.
Referências:
https://tableless.com.br/trabalhe-ao-lado-de-gente-boa-e-seja-a-gente-boa/
https://www.elaborata.com.br/blog/2018/08/23/20-ferramentas-que-todo-programador-precisa-conhecer/#:~:text=CodeShare
https://www.capterra.com.br/software/158230/rollbar
https://docs.aws.amazon.com/pt_br/cloud9/latest/user-guide/welcome.html
https://programadoresbrasil.com.br/2021/05/pycharm-ou-vscode-pros-e-contras/#:~:text=Méritos
https://www.devmedia.com.br/visual-studio-code-o-que-achamos/37978
https://www.akitaonrails.com/2014/01/30/codeclimate-qualidade-de-codigo-e-os-rubistas-sadicos
https://pt.stackoverflow.com/questions/224304/diferenças-e-vantagens-entre-github-e-gitlab
https://imasters.com.br/desenvolvimento/conheca-melhor-o-gitkraken-um-cliente-grafico-multiplataforma-para-git#:~:text=Como
https://medium.com/@leandroembu/produtividade-com-tilix-no-gnu-linux-35912366e8a9#:~:text=Tilix .
https://pt.linuxteaching.com/article/zsh_pretty_what_else_is_great_about_it#:~:text=Zsh
https://www.treinaweb.com.br/blog/hyper-ohmyzsh-o-melhor-terminal-para-desenvolvedores
https://blog.impulso.network/analise-qualitativa-de-codigo-com-sonarqube/#:~:text=O
https://www.elastic.co/pt/what-is/kibana
https://imasters.com.br/banco-de-dados/docker-compose-o-que-e-para-que-serve-o-que-come
https://pplware.sapo.pt/software/dbeaver-nunca-tao-facil-gerir-bases-dados/