Programador - Programmer

Programador de computador
Duas mulheres operando ENIAC (resolução completa) .jpg
Betty Jennings e Fran Bilas , parte da primeira equipe de programação do ENIAC
Ocupação
Nomes Programador de computador
Tipo de ocupação
Profissão
Setores de atividade
Tecnologia da informação , indústria de software
Descrição
Competências Escrever e depurar código de computador, tarefas de documentação. Algum trabalho de design e desenvolvimento é freqüentemente executado.
Educação necessária
Varia de aprendizagem a bacharelado em áreas relacionadas

Um programador de computador , às vezes chamado de desenvolvedor de software , programador ou, mais recentemente, codificador (especialmente em contextos mais informais), é uma pessoa que cria software de computador . O termo programador de computador pode se referir a um especialista em uma área de computadores ou a um generalista que escreve código para muitos tipos de software.

A linguagem de computador mais usada por um programador (por exemplo, Assembly , COBOL , C , C ++ , C # , JavaScript , Lisp , Python , Java ) pode ser prefixada ao termo programador . Alguns que trabalham com linguagens de programação web também prefixam seus títulos com web .

Terminologia

Não existe uma terminologia padrão para todo o setor, portanto, "programador" e " engenheiro de software " podem se referir à mesma função em empresas diferentes. Normalmente, alguém com um cargo de "programador" ou "desenvolvedor de software" pode se concentrar na implementação de uma especificação detalhada em código de computador, corrigir bugs e realizar revisões de código. Eles podem ter um diploma em ciência da computação , um diploma de associado , ou podem ser autodidatas ou participar de um treinamento de programação . Espera-se que alguém com o título de " engenheiro de software " compreenda os princípios da engenharia de software , matemática mais avançada e o método científico , e pode ser necessário ter um diploma em engenharia de software, engenharia da computação ou ciência da computação . Alguns países exigem legalmente que um diploma de engenheiro real seja chamado de engenheiro. Em empresas que fazem uma distinção, os engenheiros de software podem ter responsabilidades mais amplas e de nível superior, como projetar ou "arquitetar" novos programas, recursos e plataformas; gerenciamento do ciclo de vida de desenvolvimento de software, incluindo design, implementação, teste e implantação; liderando uma equipe de programadores; comunicar-se com clientes empresariais, programadores e outros engenheiros; considerando a estabilidade e qualidade do sistema; e explorar metodologias de desenvolvimento de software .

Um arquiteto de sistemas é um cargo relacionado, que pode envolver a produção de projetos técnicos, deixando a programação real para outros.

História

Ada Lovelace é considerada por muitos como a primeira programadora de computador.

Britânico condessa e matemático Ada Lovelace é muitas vezes considerado o primeiro programador de computador, como ela foi o primeiro a publicar parte de um programa (especificamente um algoritmo ) destina-se a implementação de Charles Babbage 's motor analítico em outubro de 1842. O algoritmo foi utilizado para calcular os números de Bernoulli . Como a máquina de Babbage nunca foi concluída como um padrão de funcionamento na época de Lovelace, ela nunca teve a oportunidade de ver o algoritmo em ação.

A primeira pessoa a executar um programa em um computador eletrônico moderno e funcional foi o cientista da computação Konrad Zuse em 1941.

A equipe de programação do ENIAC , consistindo de Kay McNulty , Betty Jennings , Betty Snyder , Marlyn Wescoff , Fran Bilas e Ruth Lichterman , foram creditados como os primeiros programadores regulares de computador.

A indústria de software

A primeira empresa fundada especificamente para fornecer produtos e serviços de software foi a Computer Usage Company em 1955. Antes disso, os computadores eram programados por clientes ou pelos poucos fabricantes comerciais de computadores da época, como Sperry Rand e IBM .

A indústria de software se expandiu no início dos anos 1960, quase imediatamente depois que os computadores foram vendidos pela primeira vez em quantidades produzidas em massa. Universidades, governos e empresas criaram uma demanda por software. Muitos desses programas foram escritos internamente por programadores de equipe em tempo integral; alguns foram distribuídos entre usuários de uma determinada máquina sem nenhum custo, enquanto outros foram vendidos em uma base comercial. Outras empresas, como a Computer Sciences Corporation (fundada em 1959), também começaram a crescer. Os fabricantes de computadores logo começaram a agrupar sistemas operacionais , software de sistema e ambientes de programação com suas máquinas; o IBM 1620 veio com o 1620 Symbolic Programming System e FORTRAN .

A indústria se expandiu muito com o surgimento do computador pessoal (PC) em meados da década de 1970, que trouxe a computação para o trabalhador médio de escritório. Nos anos seguintes, o PC também ajudou a criar um mercado em constante crescimento para jogos, aplicativos e softwares utilitários. Isso resultou no aumento da demanda por desenvolvedores de software naquele período de tempo.

Nos primeiros anos do século 21, outro modelo de negócios de sucesso surgiu para software hospedado, chamado software-as-a-service , ou SaaS. Do ponto de vista dos produtores de alguns softwares proprietários , o SaaS reduz a preocupação com a cópia não autorizada , uma vez que só pode ser acessado pela Web e, por definição, nenhum software cliente é carregado no PC do usuário final. O SaaS normalmente é executado fora da nuvem .

Natureza do trabalho

Os programadores de computador escrevem, testam, depuram e mantêm as instruções detalhadas, chamadas programas de computador , que os computadores devem seguir para executar suas funções. Os programadores também concebem, projetam e testam estruturas lógicas para resolver problemas por computador. Muitas inovações técnicas em programação - tecnologias de computação avançadas e novas linguagens e ferramentas de programação sofisticadas - redefiniram o papel de um programador e elevaram muito do trabalho de programação feito hoje. Os títulos e as descrições dos cargos podem variar, dependendo da organização.

Os programadores trabalham em muitos ambientes, incluindo departamentos corporativos de tecnologia da informação (TI), grandes empresas de software , pequenas empresas de serviços e entidades governamentais de todos os tamanhos. Muitos programadores profissionais também trabalham para empresas de consultoria em sites de clientes como contratados . Normalmente, o licenciamento não é necessário para trabalhar como programador, embora as certificações profissionais sejam comumente detidas por programadores. A programação é amplamente considerada uma profissão (embora algumas autoridades discordem, alegando que apenas carreiras com requisitos legais de licenciamento contam como profissão).

O trabalho dos programadores varia muito, dependendo do tipo de negócio para o qual estão escrevendo programas. Por exemplo, as instruções envolvidas na atualização dos registros financeiros são muito diferentes daquelas exigidas para duplicar as condições em uma aeronave para o treinamento de pilotos em um simulador de vôo . Programas simples podem ser escritos em poucas horas. Os mais complexos podem exigir mais de um ano de trabalho, enquanto outros nunca são considerados 'completos', mas são continuamente melhorados enquanto permanecem em uso. Na maioria dos casos, vários programadores trabalham juntos como uma equipe sob a supervisão de um programador sênior.

Os programadores escrevem programas de acordo com as especificações determinadas principalmente por programadores ou analistas de sistemas mais experientes . Após a conclusão do processo de design, é tarefa do programador converter esse design em uma série lógica de instruções que o computador possa seguir. O programador codifica essas instruções em uma das muitas linguagens de programação. Diferentes linguagens de programação são usadas dependendo da finalidade do programa. COBOL , por exemplo, é comumente usado para aplicativos de negócios que normalmente são executados em computadores mainframe e de médio porte , enquanto o Fortran é usado em ciência e engenharia. C ++ e Python são amplamente usados ​​para aplicativos científicos e comerciais. Java , C # , JavaScript e PHP são linguagens de programação populares para aplicativos da Web e de negócios. Os programadores geralmente conhecem mais de uma linguagem de programação e, como muitas linguagens são semelhantes, eles geralmente podem aprender novas linguagens com relativa facilidade. Na prática, os programadores muitas vezes são referidos pela linguagem que conhecem, por exemplo, como programadores Java , ou pelo tipo de função que desempenham ou o ambiente em que trabalham: por exemplo, programadores de banco de dados , programadores de mainframe ou desenvolvedores da web .

Ao fazer alterações no código-fonte que define o programa, os programadores precisam alertar outros programadores sobre a tarefa que a rotina deve realizar. Eles fazem isso escrevendo a documentação do software e inserindo comentários no código-fonte para que outras pessoas possam entender o programa mais facilmente. Para economizar tempo, os programadores costumam usar bibliotecas de código básico que podem ser modificadas ou personalizadas para um aplicativo específico. Essa abordagem produz programas mais confiáveis ​​e consistentes e aumenta a produtividade dos programadores, eliminando algumas etapas de rotina.

Teste e depuração

Os programadores testam um programa executando-o e procurando por bugs (erros). À medida que são identificados, o programador geralmente faz as correções apropriadas e, em seguida, verifica novamente o programa até que permaneçam um nível aceitavelmente baixo e a gravidade dos bugs. Este processo é chamado de teste e depuração . Essas são partes importantes do trabalho de todo programador. Os programadores podem continuar a corrigir esses problemas durante a vida útil de um programa. Atualizar, reparar, modificar e expandir programas existentes às vezes é chamado de programação de manutenção . Os programadores podem contribuir com guias do usuário e ajuda online , ou podem trabalhar com redatores técnicos para fazer esse trabalho.

Aplicativo versus programação do sistema

Os programadores de computador geralmente são agrupados em dois grandes tipos: programadores de aplicativos e programadores de sistema. Os programadores de aplicativos escrevem programas para lidar com uma tarefa específica, como um programa para rastrear o estoque dentro de uma organização. Eles também podem revisar o software empacotado existente ou personalizar aplicativos genéricos que são frequentemente adquiridos de fornecedores de software independentes . Os programadores de sistema, por outro lado, escrevem programas para manter e controlar o software do sistema de computador, como sistemas operacionais e sistemas de gerenciamento de banco de dados . Esses funcionários fazem alterações nas instruções que determinam como a rede, as estações de trabalho e a CPU do sistema lidam com as várias tarefas que receberam e como se comunicam com equipamentos periféricos, como impressoras e unidades de disco .

Qualificações e habilidades

Um programador precisa ter conhecimento técnico com certos aspectos da computação. Alguns cargos exigirão um diploma em um campo relevante, como ciência da computação, tecnologia da informação, engenharia, programação ou outros estudos relacionados.

Tipos de software

Os programadores podem trabalhar diretamente com especialistas de diferentes áreas para criar software - sejam programas projetados para clientes específicos ou software empacotado para uso geral - variando de videogames a software educacional e programas para editoração eletrônica ou aplicativos financeiros. A programação de pacotes de software constitui um dos segmentos de crescimento mais rápido da indústria de serviços de informática. Algumas empresas ou organizações - mesmo as pequenas - montaram sua própria equipe de TI para garantir o design e desenvolvimento de software interno para atender às necessidades muito específicas de seus usuários finais internos, especialmente quando o software existente não é adequado ou muito caro . É o caso, por exemplo, dos laboratórios de pesquisa .

Em algumas organizações, especialmente as pequenas, pessoas comumente conhecidas como analistas programadores são responsáveis ​​pela análise de sistemas e pelo trabalho de programação real. A transição de um ambiente de mainframe para outro baseado principalmente em computadores pessoais (PCs) turvou a outrora rígida distinção entre o programador e o usuário. Cada vez mais, usuários finais adeptos estão assumindo muitas das tarefas anteriormente executadas por programadores. Por exemplo, o uso crescente de pacotes de software, como planilhas e pacotes de software de gerenciamento de banco de dados, permite que os usuários escrevam programas simples para acessar dados e realizar cálculos.

Além disso, o surgimento da Internet tornou o desenvolvimento web uma grande parte do campo da programação. Atualmente, muitos aplicativos de software são aplicativos da web que podem ser usados ​​por qualquer pessoa com um navegador da web . Exemplos de tais aplicativos incluem o serviço de pesquisa do Google , o serviço de e-mail Outlook.com e o serviço de compartilhamento de fotos Flickr .

Editores de programação, também conhecidos como editores de código-fonte , são editores de texto projetados especificamente para que programadores ou desenvolvedores escrevam o código-fonte de um aplicativo ou programa. A maioria desses editores inclui recursos úteis para programadores, que podem incluir realce de sintaxe de cor , recuo automático, preenchimento automático , correspondência de colchetes, verificação de sintaxe e permite plug-ins . Esses recursos auxiliam os usuários durante a codificação, depuração e teste.

Globalização

Mudanças de mercado no Reino Unido

De acordo com a BBC News , 17% dos estudantes de ciência da computação não conseguiram encontrar trabalho em sua área 6 meses após a formatura em 2009, que foi a taxa mais alta das disciplinas universitárias pesquisadas, enquanto 0% dos estudantes de medicina estavam desempregados na mesma pesquisa.

Mudanças de mercado nos EUA

Após o crash da bolha das pontocom (1999–2001) e a Grande Recessão (2008), muitos programadores americanos ficaram sem trabalho ou com salários mais baixos. Além disso, as matrículas em cursos relacionados à informática e outros cursos STEM (atrito STEM) nos EUA vêm caindo há anos, especialmente para as mulheres, o que, de acordo com Beaubouef e Mason, pode ser atribuído à falta de interesse geral em ciências e matemática e também por um medo aparente de que a programação estará sujeita às mesmas pressões que as carreiras na indústria e na agricultura. Para os programadores, a Perspectiva Ocupacional do Bureau of Labor Statistics (BLS) dos EUA prevê um declínio de 7 por cento de 2016 a 2026, um declínio adicional de 9 por cento de 2019 a 2029 e um declínio de 10 por cento de 2020 a 2030. desde a programação de computadores pode ser feito de qualquer lugar do mundo, então as empresas às vezes contratam programadores em países onde os salários são mais baixos. No entanto, para os projetos de BLS de desenvolvedores de software de 2019 a 2029, um aumento de 22% no emprego, de 1.469.200 para 1.785.200 empregos com um salário-base médio de $ 110.000 por ano. Essa previsão é menor do que o aumento previsto no início de 2010 a 2020 de 30% para desenvolvedores de software. Embora a distinção seja um tanto ambígua, os desenvolvedores de software se envolvem em uma ampla gama de aspectos do desenvolvimento de aplicativos e geralmente são mais qualificados do que os programadores, tornando a terceirização menos arriscada. Outra razão para o declínio dos programadores é que suas habilidades estão sendo mescladas com outras profissões, como desenvolvedores, à medida que os empregadores aumentam os requisitos para uma posição com o tempo.

Veja também

Referências

Leitura adicional

  • Weinberg, Gerald M. , The Psychology of Computer Programming , Nova York: Van Nostrand Reinhold, 1971
  • Um estudo experimental da natureza do trabalho de programação: Lucas, Rob. "Dreaming in Code" New Left Review 62, março-abril de 2010, pp. 125-132.
  • Thompson, Clive (2019). Codificadores: a formação de uma nova tribo e a reconstrução do mundo . Penguin Press. ISBN 978-0735220560.

links externos