100 termos de programação para você entender de forma objetiva e sem rodeios.
A área de tecnologia é repleta de termos de programação, sejam eles técnicos
ou siglas, que podem confundir muitos usuários – novos ou experientes. Até
mesmo profissionais com anos de trabalho às vezes acabam se confundindo, o que
é completamente normal visto que realmente
são muitos termos para dar conta
.
Segue aqui um guia com 100 dos termos técnicos de programação mais
utilizados atualmente.
Essas são siglas e termos essenciais para qualquer programador começar e
desenvolver seus projetos. Confira!
Algoritmo
: é basicamente um conjunto de passos para certa tarefa.
Linguagem
: conjunto de definições (sintáticas e semânticas) usadas para fazer um
texto que o computador é capaz de entender, ou seja, um programa de
computador.
Código
: conjunto de palavras ou símbolos contendo instruções para o computador.
Código Fonte
: código de um programa. O computador o usa para gerar uma versão do
programa que é capaz de processar.
Código de Máquina
: código que a máquina consegue entender e executar.
Código Binário
: Código feito por apenas 0 e 1 que tem como função codificar algo. É a base
de toda a lógica do computador. Tudo vira, no fim das contas, código
binário.
Bug
: problema no código que faz com que ele não execute sua função
corretamente.
Refatoração
: processo de alterar um programa para melhorar sua estrutura interna sem
alterar o seu funcionamento. Essas melhorias podem ser de performance ou
para facilitar trabalhos futuros neste código, por exemplo.
Frameworks
: são como coleções de ferramentas, componentes e soluções que você pode
encontrar em um mesmo pacote (o framework) que facilitam a criação de
aplicações complexas.
Queries
: pedido de informação e/ou dados para banco de dados.
Front-End
: é a parte de uma aplicação web que a pessoa que utiliza, vê e interage. É
executada pelo browser.
Back-end
: o que o usuário não vê num software, como servidores e banco de dados. É o
processamento “por trás dos panos”.
SSL (Secure Sockets Layer)
: é um tipo de segurança padrão para garantir que todos os dados sejam
criptografados no trânsito entre um site e um navegador, por exemplo.
SOLID (Single-responsibility, Open-closed, Liskov substitution, Interface
segregation e Dependency Inversion principles)
: esses princípios, quando combinados, são tidos como boas práticas para
facilitar a quem programa desenvolver softwares que são mais fáceis de se
manter e expandir.
Backdoor
: porta criada por algum aplicativo malicioso com a finalidade de
estabelecer um canal de comunicação do nosso dispositivo para um ponto no
qual os nossos dados ou ações possam ser manipulados.
Backup
: cópia de arquivos em um outro dispositivo com objetivo de guardar
informações.
Bandwidth
– largura de banda, em tradução livre. Diz-se do quanto é possível trafegar
em uma rede.
Benchmarking
: ferramenta utilizada para medir e comparar o desempenho de uma máquina.
Big Data
: armazenamento de grande quantidade de dados.
BIOS (Basic Input Output System)
: sistema utilizado para listar os dispositivos padrão de entrada (input) e
saída (output) de um computador, isto é, o sistema consegue identificar o
que está ligado a uma máquina como, por exemplo, teclado, mouse, monitor,
HD, etc.
Bit
: abreviação de binary digit, ou seja, representa somente um valor binário
(ou zero ou um).
BitCoin:
criptomoeda criada para estabelecer uma forma de pagamento virtual em
diversos serviços digitais.
Blockchain:
protocolo de comunicação descentralizado utilizado, principalmente, para
controlar as transações com criptomoedas. O controle do protocolo é feito
por máquinas distribuídas em uma rede, sendo que estas criam um elo (daí o
nome chain – corrente) entre os pacotes e seus destinatários.
Boot
: processo de inicialização de um sistema onde são verificadas se as peças e
configurações mínimas necessárias estão todas funcionais.
Botnet
: rede de computadores interconectados que executam uma ou mais tarefas para
as quais foram programados. Geralmente essa rede fica associada ao uso de
programas maliciosos para ataques em massa ou também para envio de spam.
Byte
: união de 8 bits
Mixin
: o termo mixin refere-se a uma classe que se estende de 2 ou mais classes,
ou seja, sendo B e C classes, A herda ao mesmo tempo de B e C. Porém, para
ser considerado um mixin e não uma herança múltipla, B e C não podem ter
função inicializadora, do contrário não temos um mixin e sim a simples
utilização da herança múltipla.
Qualificação de nomes:
qualificação de Nome é utilizado nas linguagens de programação para se
referir a nomes que poderão ser acessados através de outro nome.
BLOB (binary large object)
: o seu objetivo quando relacionado a Banco de Dados é sempre o
armazenamento de grandes quantidade de dados no formato de bytes.
Tipado
: significa uma variável ou algum valor que possui um tipo pré-determinado.
Recursividade
: recursividade ou Função Recursiva significa a invocação de si mesmo. Ou
seja, é uma função que após executar o seu bloco de instrução invoca a si
mesma novamente.
Olá, mundo:
o termo “Olá, mundo” se refere ao trecho de código mínimo para a impressão
na tela da frase “Olá, mundo” com determinada tecnologia. O principal
objetivo desses códigos é demonstrar o mínimo necessário para o
desenvolvimento de uma aplicação com determinada tecnologia.
Shell
: janela, normalmente preta, para a manipulação do sistema operacional
através da linha de comando. Sistemas Operacionais Unix sempre
disponibilizam uma janela para a interação com o sistema operacional através
da linha de comando.
Console
: janela, normalmente preta, em que é possível trabalhar na linha de
comando.
Paradigma de programação
: modelo de estrutura utilizado pela linguagem de programação. Há vários
paradigmas existentes e cada linguagem utiliza um ou vários paradigmas.
Iteração
: iteração é o nome das estruturas que repetem um mesmo bloco de código por
uma quantidade de vezes finita, ou pelo tempo em que uma condição for
verdadeira. Pode-se dizer que todas as linguagens de programação para
computadores possuem, no mínimo, uma estrutura de iteração.
Classe
: projeto de todo objeto.
Instância
: a execução de uma classe.
Objeto
: a execução de uma classe.
Herança
: capacidade de herdar as características de outra classe
Polimorfismo
: capacidade de ter funções com mesmo nome e assinatura, porém, com
comportamentos diferentes.
Membro de Classe
: pode ser uma função, ou então, uma propriedade (variável).
Propriedade
: característica do objeto e na programação, é representado por uma
variável.
SuperClasse
: a classe pai; classe que está sendo estendida.
SubClasse
: a classe filha; a classe que inicia a partir da implementação de outra.
Classe-Pai
: sinônimo de SuperClasse; classe utilizada como base para a criação de
outras.
A partir daqui já é possível ter uma boa noção da linguagem usada pelos
programadores no dia a dia.
Termos de ferramentas de programação
Sistema operacional
: sistema que faz comunicação entre o hardware, gerenciando e distribuindo
seus recursos, e os demais softwares e cria uma plataforma comum a todos os
programas utilizados. Exemplo: Windows 10, Ubuntu.
Terminal
: é uma Interface de Linha de Comando, isto é, uma interface (meio) para a
pessoa enviar comandos ao computador.
Editor de Texto
: um editor de texto é um aplicativo para edição de arquivos de texto. Isso
inclui códigos de todos os tipos, que também são textos escritos num formato
que o computador é capaz de entender.
Compilador
: transforma o código de uma linguagem de programação para uma linguagem de
máquina (ou alguma de nível mais baixo, ou seja, mais próxima do código
binário que o hardware processa) que é lida pelo processador.
Linguagem de máquina
: linguagem de mais baixo nível de entendimento para o ser humano, e a única
entendida pelo processador (CPU).
Interpretador
: programas de computador que leem um código-fonte de uma linguagem de
programação interpretada, ou seja, convertida em código binário uma linha
por vez (ao invés de grandes blocos de linhas de cada vez) e transformada em
código executável.
Browser ou Navegador
: programa desenvolvido para permitir a navegação pela web e visualização de
suas páginas.
Plugin
: uma extensão de código que pode ser adicionada a um código em que você
está trabalhando. O plugin é uma extensão intrínseca ao contexto, por
exemplo, um plugin de um navegador que não funcionará em outro navegador.
Além disso, ele funciona consumindo código ou APIs da aplicação principal.
C# (C sharp)
: linguagem de programação orientada a objetos desenvolvida pela Microsoft e
que faz parte da plataforma .NET. Pode ser utilizada para diversas
plataformas, isto é, web, desktop ou mobile.
C++ (C plus plus ou C mais mais)
: linguagem de programação utilizada em paradigma orientada a objetos ou
como estrutural. Foi montada com base na linguagem C e apresentava evolução
de muitos conceitos.
Termos de desenvolvimento front-end
Biblioteca
: pedaços de códigos (como funções, por exemplo) já programados e que podem
ser usados em outros códigos. A biblioteca é uma extensão de fora do
contexto, ou seja, ela pode ser usada e desplugada de um contexto para
outro. As bibliotecas são consumidas pela aplicação principal.
React
: biblioteca JavaScript para criar o Front-End de aplicações.
React Native
: framework de programação de aplicativos baseado na biblioteca React.
HTML (Linguagem de Marcação de Hipertexto)
: linguagem de marcação que é utilizada como estrutura do Front-End de um
site.
CSS (Folhas de Estilo em Cascata)
: linguagem de estilo que define a aparência de documento web HTML. Exemplo:
manipulação da posição dos elementos, cores, fontes, fundos, etc.
JavaScript
: linguagem que viabiliza a criação de páginas interativas, ou seja, que são
modificáveis de acordo com a interação de quem usa e que conectam o
Front-End ao Back-End.
AJAX (Asynchronous JavaScript And XML)
: técnica para acessar servidores web a partir, por exemplo, do Front-End ou
de outros Back-Ends.
jQuery
: biblioteca de funções em JavaScript que interagem com o HTML de uma
maneira muito mais rápida e simples do que apenas pelo JavaScript.
Bootstrap
: framework CSS.
UI Design (Design da Interface do Usuário)
: é o desenho e execução de uma interface para o usuário. Exemplo: como
garantir que um botão vai ser visto e apertado.
UX Design (Design da Experiência do Usuário)
: é o desenho e execução de uma experiência para o usuário. Exemplo:
desenhar as ações que farão com ele se sinta bem ao entrar numa página, ou
engajado, etc.
Responsive design
: o design que assegura que o site será visto de uma forma diferente para
variados tamanhos de tela.
Adaptive design
: uma maneira de se construir um mesmo site que se adapta (muda) para cada
dispositivo.
Fluid Design
: design que acompanha o tamanho da tela do dispositivo que você está usando
sem mudar a estrutura da página.
Progressive Web App
: metodologia que busca fazer com que sites web e app tenham características
de aplicativos nativos de dispositivos mobile, ou seja, feitos primariamente
para eles.
Termos de desenvolvimento back-end
Servidor
: máquina onde roda o Back-End de um site, por exemplo, ou um Back-End
acessível a outras aplicações diversas.
Node.js (node)
: interpretador para JavaScript.
NPM (Node Package Manager)
: Gerenciador de Pacotes (módulos) do Node.js.
Middleware
: software que se encontra entre o sistema operacional e os aplicativos nele
executados. Ou seja, é um software que permite a interação entre sistemas
isolados e funções. Exemplo: site com uma opção de pagamento. O que conecta
os dois é um middleware.
Express.js
: framework para Node.js que ajuda na criação de rotas, middlewares e muitas
outras funções para o desenvolvimento tanto de APIs quanto SPAs (Aplicações
de Uma Página).
Banco de Dados
: agrupamento (em formato de tabelas, documentos, colunas, etc.) de
informações que se relacionam e tratam de um mesmo assunto.
Banco de Dados Relacional (SQL)
: bancos de dados onde os mesmos são guardados em tabelas que possuem
“relações” entre si. Por exemplo, uma tabela de produtos e de compras. A
tabela de compras pode ter vários produtos e um produto pode estar
relacionado a várias tabelas.
Banco de Dados não Relacional (NoSQL)
: quando o banco de dados não guarda os dados em tabelas, e sim em
chave-valor, colunas, etc.
SQL (Linguagem de Consulta Estruturada)
: linguagem de banco de dados relacional.
Sistema de Gerenciamento de Banco de Dados (SGBD)
: responsável por gerenciar o acesso, a persistência, a manipulação e a
organização dos dados.
MySQL
: o MySQL é um SGBD que utiliza a linguagem SQL.
API (Applied Programming Interface)
: interface que conecta dois programas, realizando tanto a comunicação entre
eles e especificando quanto definindo como devem interagir.
Serviço Web
: solução utilizada na integração de sistemas e na comunicação entre
aplicações diferentes (é um programa web de Back-End, um tipo de API que
precisa de uma rede para se comunicar).
Webhook
: é uma forma de recebimento de informações quando um evento (enviar um
email, por exemplo) acontece. Por isso o webhook é, na prática, uma forma
passiva de transmissão de informações entre dois sistemas, pulando o passo
de request (requerimento) que uma API faz. Basicamente: um sistema
disponibiliza um canal para receber informações (o webhook) e outros enviam
para esse sistema informações através dele.
HTTP (HyperText Transfer Protocol)
: protocolo que especifica como clientes e servidores se comunicam entre si.
REST (REpresentational State Transfer)
: estilo de arquitetura de serviços web que padroniza algumas
características tidas como boas práticas.
Restful
: é uma aplicação web que realiza a implementação do padrão REST.
CRUD (Create, Read, Update and Delete)
: quatro operações básicas de interação com uma base de dados (criação,
consulta, atualização e destruição de dados).
Termos de Metodologias
Os termos de metodologias podem ser divididos em práticas e papéis. Conheça
mais sobre os dois abaixo:
Práticas
Confira alguns dos principais termos de metodologias práticas abaixo e saiba
quando utilizá-los:
Pair programming
: técnica do desenvolvimento ágil de software onde duas pessoas utilizam um
mesmo computador para programar alguma tarefa.
Sprint
: ciclo de tempo dentro do qual se realiza um conjunto de atividades.
Kanban
: sistema simples e visual para organizar as tarefas e o fluxo de trabalho.
Ágil
: conjunto de métodos e princípios que consiste na ideia de desenvolvimento
iterativo (isto é, onde requisitos e soluções são identificados e cumpridos
de maneira cíclica) a partir da colaboração de times auto-gerenciáveis e
multifuncionais.
Scrum
: framework para gestão e planejamento de produtos e projetos.
MVP (Produto Mínimo Viável)
: maneira de se testar modelos de negócios e conceitos diretamente com o
cliente, a partir do lançamento de uma versão mínima viável do produto.
Exemplo: em vez de fazer um site como o que a Airbnb possui, os fundadores
fizeram um site simples com poucas funcionalidades.
Papéis
Além dos termos práticos de metodologia, existem também os papéis executados.
Conheça alguns dos principais abaixo:
Product Owner (PO)
: pessoa responsável por definir quais as prioridades do product backlog e
registrar de todos os requisitos, regras de negócio e prioridades das
entregas de um produto.
Regras de Negócio
: requisitos de como uma determinada funcionalidade ou produto deveria se
comportar dado um determinado critério.
Scrum Master
: é a pessoa responsável por garantir que todos estejam aderentes ao
processo de desenvolvimento, que sigam suas cerimônias e que garantam a
organização e realização dos seus artefatos.
Dev. Team
: time de desenvolvimento (pessoas que colaboram com o projeto).