Tornar-se um programador é um processo cumulativo de construção de habilidades dia após dia e ano após ano em um campo divertido e gratificante (intelectual, mental e financeiro). Este guia não promete uma maneira mágica de se tornar um programador com facilidade e a sequência de etapas não é sagrada, mas fornece uma visão geral de como se tornar um programador em um dos campos modernos do campo.
Degraus
1.
Faça um curso introdutório em uma (ou todas) das seguintes disciplinas:- Lógica
- Matemática discreta
- Linguagens de programação (preferencialmente C++/ Java/ Python para iniciantes)
DICA DO ESPECIALISTA
Gene Linetsky, MS
Fundador de startups e diretor técnico Gene Linetsky é fundador de startups e desenvolvedor de software na área da baía de São Francisco. Ele trabalha no setor de tecnologia há mais de 30 anos e é diretor técnico da Poynt, uma empresa de tecnologia que cria sistemas de transações inteligentes para empresas.
Gene Linetsky, MS
Fundador de startups e diretor técnico
Não pense que você precisa estudar para se tornar um programador. Pode ser útil fazer cursos em uma linguagem de programação, mas Gene Linetsky, engenheiro de software e fundador de start-ups, diz: "É discutível se uma educação em programação ajuda ou não. Em vez disso, tente pensar em programação como uma espécie de estágio - é tudo uma questão de aprender com seus erros.`
2. Aprenda conceitos de banco de dados, como tabelas, visualizações/consultas e procedimentos. Você pode usar qualquer pacote de banco de dados simples para isso, como:
Acesso MSDB VFox ProParadoxoMySQL é um bom banco de dados para aprender porque é gratuito, amplamente utilizado e frequentemente acessado por meio de consultas SQL3. Decida que tipo de programador você quer ser. Os programadores geralmente se enquadram nas seguintes categorias:
programador webProgramador de aplicativos de desktopProgramador orientado ao sistema operacional (SO) (vinculado a um único sistema operacional ou conjunto de sistemas operacionais)Programador independente de plataformaProgramador de aplicativos distribuídos
Biblioteca/plataforma/framework/programador principalProgramador de sistemaProgramador de kernelProgramador de driversProgramador do compiladorCientista da computação (científico)
4. Aprenda as tecnologias e linguagens de programação relacionadas ao campo de programação de sua escolha. As seções a seguir discutem as tarefas para diferentes tipos de programação.
Método 1 de 6: Programação Web
1.
O que significa programação web. Os aplicativos da Web são componentes de software projetados para funcionar no topo da arquitetura da Internet. Isso significa que os aplicativos podem ser acessados por meio de softwares de navegador como Firefox ou Internet Explorer. Ser construído para o pináculo da arquitetura da internet não significa necessariamente que você precisa de uma conexão ativa com a internet. Isso significa que os aplicativos da Web são criados com base em tecnologias da Web padrão, como:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- Protocolos IIP
- HTML
- XML
- fusão a frio
- ASPI
- JSP
- PHP
- ASPI.SOMENTE
2. Confira vários sites para saber como eles geralmente são. (Clique com o botão direito e clique em View Source ou pressione F12.) Procure diversidade no tipo/conteúdo do site, não no número de sites que você visualiza. Em geral, você precisará verificar pelo menos 1 de cada um dos seguintes tipos de sites:
Sites de presença corporativa (empresas comerciais, empresas/organizações sem fins lucrativos, organizações governamentais)Mecanismos de indexação da Web (mecanismos de pesquisa, sites de meta pesquisa, mecanismos de pesquisa especializados, diretórios)sites de mineração de dadosSites pessoaisPáginas informativas/enciclopédicas (wikis, fichas técnicas, especificações técnicas e manuais, blogs e diários, sites de agências de notícias e notícias, páginas amarelas, etc.).)Mídias sociais (portais sociais, sites de favoritos, sites de anotações)Sites compostos (incluindo outras categorias, como wikis e blogs)3. Aprenda pelo menos uma técnica/método de brainstorming e software usado para implementar esse método. Por exemplo: esquemas de brainstorming e MS Visio.
4. Aprenda a configurar um site. Você criará diagramas conceituais da web, mapas do site e estruturas de navegação.
5. Faça um pequeno curso de design gráfico. Tente aprender pelo menos um programa de edição de imagem (opcional, mas altamente recomendado)
6. Aprenda o básico da infraestrutura de internet. Isso tem a ver, entre outras coisas, com uma ideia global de:
Protocolos de serviços da Web subjacentes (HTTP, FTP, SMTP e POP3 ou IMAP4)Software de servidor Web (de preferência para a plataforma com a qual você costuma trabalhar)software de navegação.Servidor de e-mail e software cliente7. Aprenda HTML e CSS. Também é uma boa ideia aprender a usar um pacote de software de edição de HTML `O que você vê é o que você obtém (WYSIWYG)`.
8. Aprenda tecnologias relacionadas a XML e XML, como XSL e XPath (opcional, mas recomendado).
9. Crie um site estático simples até que você esteja familiarizado e confortável com HTML.
10. Aprenda uma linguagem de script do lado do cliente. A maioria dos usuários aprende JavaScript. Alguns aprendem VBScript, mas isso não é compatível com a maioria dos navegadores.
11. Verifique se você pode trabalhar com a linguagem de script do lado do cliente que aprendeu. Tente alcançar seu potencial apenas com essa linguagem. Só então prossiga para a próxima etapa até que você esteja pelo menos familiarizado com a linguagem de script do lado do cliente.
12. Aprenda pelo menos 1 linguagem de programação do lado do servidor. Se você deseja se limitar a 1 forma de software de servidor, aprenda uma das linguagens de programação suportadas por esse software. Caso contrário, aprenda pelo menos uma linguagem de programação para cada software de servidor.
13. Crie um projeto piloto para você mesmo depois de aprender a linguagem de programação do lado do servidor.
14. Certifique-se de ter seu próprio site e comece a experimentar on-line em sua própria página.
Método 2 de 6: Programando software de desktop
1. Saiba no que você está se metendo quando começa a programar aplicativos de desktop. A maioria desses programadores escreve código para aplicativos de negócios, por isso é aconselhável ter uma ideia do ambiente de negócios, sua estrutura organizacional e financeira para que você possa economizar muito tempo.
2.
Aprenda sobre as diferentes arquiteturas de hardware de computadores. Um curso introdutório em eletrônica digital e outras arquiteturas de computador é útil; mas isso pode ser um pouco demais para começar, então lendo alguns tutoriais introdutórios (como
Este e
Este) primeiro é suficiente. Você pode retornar a esta etapa depois de aprender uma primeira linguagem de programação.
3. Aprenda uma linguagem de programação básica. Não se sinta muito bem em aprender tal língua porque você não é mais uma criança. Um exemplo dessa linguagem de programação é o Scratch. Essas linguagens de programação podem tornar a curva de aprendizado um pouco menos íngreme quando você está apenas começando. Mas esta etapa permanece opcional. Você também pode fazer isso para a etapa anterior.
4. Faça uma introdução à programação procedural, orientada a objetos e funcional.
5. Faça um curso introdutório em umlinguagem de programação processual. Independentemente da linguagem que você escolher em um estágio posterior, isso exigirá algum nível de programação procedural. Além disso, a programação procedural é considerada a mais fácil de começar para entender o que é programação.
6. Aprenda pelo menos uma forma avançada de modelagem, como UML ou ORM.
7. Comece a escrever alguns pequenos consoles ou aplicativos semelhantes a consoles. Você pode usar os exercícios em livros de programação. Use um ambiente de programação adequado para a linguagem de programação de sua escolha.
8. Faça um curso avançado na linguagem de programação escolhida. Certifique-se de entender os conceitos abaixo e de poder aplicá-los com relativa facilidade antes de prosseguir:
Entrada e saída de dados de e para usuários do programa.A lógica e a sequência de operações de programas procedurais.Declarando, atribuindo e comparando variáveis.Construções como If..então..else e selecione/troque..caso.Construções de loop, como While..faça, faça..enquanto/até, Para..Next.A sintaxe da sua linguagem de programação para criar e chamar procedimentos e funções.Tipos de dados e como manipulá-los.Tipos de dados definidos pelo usuário (registros/estruturas/unidades) e como usá-los.Se você usa funções de sobrecarga de linguagem, tente entendê-las.A forma como a sua linguagem de programação endereça a memória (ponteiros, espreitar, etc.).)Se seus operadores de linguagem estão sobrecarregando, tente entender.Se sua linguagem usa delegados/ponteiros de função, entenda como funciona.9. Aplique as técnicas avançadas que você aprendeu.
10. Faça um curso introdutório em pelo menos 1 ou mais linguagens de programação em um paradigma de programação diferente. Recomenda-se aprender 1 linguagem de programação de cada paradigma, e os programadores mais avançados também. Mas geralmente você começa com um idioma, trabalha com isso por um tempo para aplicar e praticar seu conhecimento, depois aprende outro. Tente um dos seguintes tipos de programação:
Programação lógica.Programação funcional.Paradigmas orientados a objetos.11. Tente combinar as duas linguagens de programação a seguir que você aprendeu. Pesar os pontos fortes e fracos uns contra os outros. Normalmente você faz o seguinte:
Pegue exemplos simples de seu trabalho anterior na primeira linguagem de programação e reescreva-o com sua segunda linguagem de programação.Crie um novo projeto e tente implementá-lo nas duas linguagens. Às vezes, dependendo do projeto e do idioma, não será possível executar um projeto!Escreva uma folha de dicas ou tabela de resumo com comparações entre construções semelhantes nos dois idiomas e recursos exclusivos para cada um dos idiomas.Tentando encontrar maneiras de imitar funções exclusivas de um dos dois idiomas usando o outro idioma.12. Aprenda conceitos de programação visual usando qualquer uma das linguagens que você aprendeu. Quase todas as linguagens de programação possuem versões/bibliotecas que suportam programação visual e outras suportam programação de console ou tipo console. Isso pode ser alcançado fazendo o seguinte:
Obtenha uma introdução à programação orientada a eventos. A maioria da programação visual depende em algum grau de eventos e manipulação de eventos (usando a linguagem de programação escolhida).Experimente o máximo de software de desktop possível e aprenda a entender o que o software faz. A maioria das empresas de software oferece versões beta de seus produtos que você pode usar para testar o software. Tente acompanhar o desenvolvimento da interface do usuário.Leia artigos ou tutoriais sobre interfaces gráficas de usuário.13. Comece a aplicar seu conhecimento projetando pequenos projetos de software. Teste sua experiência de programação em problemas que você enfrenta na vida cotidiana. Por exemplo, escrever programas que podem alterar um grande número de nomes de arquivos de uma só vez, comparar arquivos de texto visualmente, copiar os nomes de arquivos em um diretório para a memória ou um arquivo de texto, etc. Mantenha-o simples no início.
14. Crie um `projeto de graduação` virtual. Complete isso até o fim, aplicando as técnicas de programação visual que você aprendeu até agora.
15. Amplia sua compreensão da estrutura/biblioteca/pacote visual que você aprendeu antes de passar para cursos mais avançados, prestando atenção extra aos detalhes e aprendendo mais dicas e truques para sua estrutura a partir de recursos on-line.
16. Pesquise e conheça outros pacotes/bibliotecas de recursos visuais para suas linguagens de programação.
17. Faça um curso de gráficos (não design gráfico). Isso será muito útil para programadores que desejam escrever elementos de interface de usuário atraentes.
18. Torne-se um programador de jogos (opcional). A programação de jogos é considerada, na maioria dos casos, programação de desktop. Se você planeja se tornar um programador de jogos, deve aprender mais sobre programação de jogos depois de seguir estas etapas. Um curso de gráficos é obrigatório para programadores de jogos e a segunda linguagem de escolha nas etapas anteriores deve ser uma linguagem de programação lógica/funcional (de preferência Prolog ou Lisp).
Método 3 de 6: Programando aplicativos distribuídos
1. Entenda o que é programar aplicativos distribuídos. A programação de aplicativos distribuídos é considerada por muitos como a mais difícil de aprender e requer conhecimento de várias tecnologias de computação e comunicação.
2. Faça um curso introdutório rápido em sistemas de telefonia e hardware relacionado. O passo é opcional. Mas é muito útil se você quiser entender as topologias de rede.
3. Familiarize-se com a arquitetura de rede e dispositivos como hubs, switches e roteadores.
4. Faça um curso sobre protocolos de rede e seus fundamentos. Você precisa de um bom entendimento do modelo Open Systems Interconnection (OSI), Ethernet, IP, TCP, UDP e HTTP antes de começar a programar aplicativos distribuídos.
5. Aprenda XML familiarize-se com ele.
6. Comece a aprender uma linguagem de script shell. No Windows, seria qualquer script que funcionasse com o Windows Scripting Host. No Linux, esses são scripts Bash e Perl. JavaScript é altamente recomendado para ambos os sistemas, pelos seguintes motivos:
Ele é suportado por quase qualquer host de script em qualquer sistema operacional (o Windows Scripting Host suporta JavaScript por padrão, a maioria das distribuições Linux tem um pacote para suporte ao console de script JavaScript).É considerado por muitos desenvolvedores como sendo mais fácil de aprender.Possui sintaxe derivada de ALGOL o que facilita a familiarização com outras linguagens de programação quando você escolhe uma segunda linguagem de programação (C, C++, C#, Java e J# são todos derivados da sintaxe ALGOL).Aprender JavaScript fará com que você se familiarize com o script do lado do cliente de páginas da Web, o que é um bônus instantâneo!7. Inicie a programação procedural usando sua linguagem de script preferida. Mais tarde, você pode começar a usar técnicas e paradigmas de programação mais avançados, dependendo da sua linguagem de script e do que ela suporta. Todas as linguagens de script possuem alguns aspectos de programação procedural.
8. Use a linguagem de script que você aprendeu para escrever scripts que realizam comunicação entre máquinas. Saiba o que é preciso para fazer isso. A comunicação simples é suficiente.
9. Mude para scripts de desktop/linguagens de programação. De preferência uma que seja uma linguagem multiparadigma como Python. Siga uma introdução simples a esse segundo idioma. Java é visto pela maioria dos programadores como a linguagem de escolha por muitas razões. Mas, C# está rapidamente ganhando terreno nesta área. Java e C# são preferidos pelos seguintes motivos:
São linguagens de programação orientadas a objetos que protegem programadores em grandes equipes de detalhes de implementação, pois ambos suportam componentes (blocos de código, compilados, que realizam uma determinada tarefa e podem ser usados em outros programas).Eles suportam programação orientada a eventos, além de programação OO e procedural até certo ponto.A estrutura na qual a linguagem é construída é distribuída (no caso de Java).A disponibilidade de muitos pacotes prontos para uso relacionados à rede, bem como código-fonte aberto e pacotes integrados (framework); Isso torna mais fácil para os programadores desenvolverem o trabalho de outros.10. Eles se concentram mais nas funções centrais da linguagem, especialmente aquelas que suportam redes. Menos atenção é dada aos elementos da interface do usuário, como saída, design e técnicas da janela, e os elementos da interface do usuário.
11. Faça um curso sobre design distribuído de aplicativos e plataformas. Isso pode ser feito usando livros, tutoriais online ou cursos acadêmicos. No entanto, é necessário entender a arquitetura de aplicações distribuídas e seus conceitos.
12. Aprenda sobre como construir e manter componentes e serviços usando a linguagem de programação de sua escolha.
13. Aprenda uma ou mais das seguintes tecnologias. Recomenda-se que você faça pelo menos uma introdução a cada um desses. A maioria dos programadores de aplicativos distribuídos não para em uma ou duas linguagens de programação, mas aprende pelo menos uma linguagem de programação para cada sistema operacional. Isso porque se você deseja que seus aplicativos sejam "distribuídos", é preciso oferecer pelo menos uma versão para cada um dos principais sistemas operacionais.
Arquitetura do agente de solicitação de objeto comum (CORBA)Protocolo de Acesso a Objeto Simples (SOAP)JavaScript e XML assíncrono (AJAX)Modelo de Objeto Componente Distribuído (DCOM).NET RemotingServiços Web XML1. O que é programação central. Os programadores principais são principalmente programadores avançados que fizeram a transição de aplicativos de programação para unidades de código de programação que podem ser usadas por outros programadores.
2. Aprenda uma linguagem de programação que permite construir componentes/pacotes reutilizáveis, caso ainda não o tenha feito.
3. Faça um curso avançado em UML e ORM. A maioria dos desenvolvedores de bibliotecas usa um ou ambos.
4. Faça um curso de engenharia de software.
5. Aprenda pelo menos técnicas e conceitos de programação modulares, baseados em componentes, orientados a objetos e orientados a eventos. Quanto mais paradigmas e linguagens de programação você conhece, mais bem-sucedido você será como programador de biblioteca/biblioteca/pacote.
6. Saiba mais sobre os diferentes sistemas operacionais e estruturas compatíveis com esses sistemas operacionais.
7. Concentre seus esforços em frameworks multiplataforma, linguagens de programação e tecnologias.
8. Se as linguagens de programação que você aprendeu estão em conformidade com as versões padrão ANSI/ISO/IEEE/W3C, e tente dominá-las. Tente usar o código padrão sempre que possível.
9. Tentando emular bibliotecas simples e já estabelecidas, especialmente de código aberto. Isso é útil durante os estágios iniciais de se tornar um programador de biblioteca/pacote. Comece com pacotes simples como conversão de unidades e cálculos científicos não muito difíceis. Se você é um estudante, aproveite os cursos de não programação para capturar equações e núcleos de ciências em bibliotecas de programas.
10. Pesquise pacotes de código aberto em seu campo. Primeiro baixe binários/executáveis do pacote. Tente usá-los e encontre os pontos fortes e fracos. Quando terminar, baixe o código-fonte e tente descobrir como ele é feito. Tente copiar essas bibliotecas/bibliotecas, ou partes delas. Faça isso primeiro depois de estudar o código e depois antes de ver o código. Tente novamente mais tarde para melhorar essas bibliotecas.
11. Aprenda as diferentes abordagens usadas para distribuir e implantar componentes para e por programadores.
Normalmente os programadores de bibliotecas/pacotes tendem a pensar recursivamente e/ou iterativamente quando precisam resolver um problema. Tente pensar em cada problema como uma coleção de problemas menores (uma sequência de tarefas mais simples) ou como um processo repetido de reduzir o tamanho do problema a subproblemas menores e depois empilhar esses subproblemas uns sobre os outros.Programadores de bibliotecas/pacotes tendem a generalizar. Ou seja, quando apresentados a um problema específico simples, geralmente começam a pensar em um problema mais geral e tentam resolver esse problema geral, resolvendo automaticamente também o problema menor.Método 5 de 6: Programação do Sistema
1. Entenda o que é programação de sistemas. Os programadores de sistema enfrentam a ciência de programação, não com sua implementação específica. Não se limite a uma plataforma específica.
2. Siga as três primeiras etapas para programadores de desktop.
3. Faça um curso introdutório em álgebra linear.
4. Faça um curso de cálculo.
5. Faça um curso de lógica e/ou matemática discreta.
6. Conheça diferentes sistemas operacionais simples. Você pode fazer isso da seguinte forma:
Saiba como os sistemas operacionais são instalados.Aprenda a instalar vários sistemas operacionais diferentes em 1 PC (opcional, mas recomendado).Instalar mais de um sistema operacional. Não instale todos os utilitários nos sistemas; em vez disso, use a funcionalidade básica fornecida pelo sistema operacional.7. Faça um curso (ou, alternativamente, leia livros) sobre arquitetura de hardware.
8. Desenvolver uma compreensão das outras plataformas de hardware de computador.
9. Tente se familiarizar com a linguagem assembly da plataforma/SO de sua escolha. Mais tarde você aprenderá a montagem de outras plataformas/sistemas.
10. Aprenda ANSI C e C++ junto com os conceitos de programação procedural.
11. Entenda e pratique com as bibliotecas padrão C/C++ na plataforma de sua escolha. Preste atenção especial à Biblioteca de Modelos Padrão (STL) e talvez à Biblioteca de Modelos Ativa (ATL).
12. Pesquise recursos online, livros e cursos para entender a variante C para sua plataforma específica.
13. Pratique escrever código avançado com C e C++.
14. Saiba mais sobre montagem avançada.
15. Faça um curso de programação de sistema operacional.
16. Procure documentação em uma plataforma específica de sua escolha. Isso será mais fácil se você escolher um sistema operacional baseado em Unix. Compreender o sistema com o qual você está trabalhando será útil mais tarde.
17. Pratique seus conhecimentos adquiridos. Crie alguns pequenos utilitários primeiro. Geralmente é útil fazer o seguinte:
Tentando criar pequenas ferramentas que já estão em seu sistema.Tentando converter utilitários disponíveis em sistemas operacionais para o seu.18. Aprenda as linguagens de programação na ordem mais útil. Este é o único campo onde a primeira linguagem de programação é importante. Aprenda ANSI C primeiro e não C++, C# ou Java e não D. Só então aprenda C++.
A limitação para C é porque a programação de sistemas requer que o programador esteja familiarizado com os seguintes conceitos:
Compilação real e completa do código-fonte.Arquivos de saída de objeto de baixo nível.Vinculando binários.Linguagem de máquina de baixo nível/programação de montagem. A linguagem C é considerada por alguns como uma forma de montagem disfarçada ou mais fácil de aprender. Ele também suporta a inserção de código assembler no código C sempre que necessário e é apenas procedural (assim como o assembly).Método 6 de 6: Tornando-se um Cientista da Computação
1. O que os cientistas da computação fazem. Os cientistas da computação são programadores altamente avançados que, em vez de trabalhar em aplicativos, trabalham no projeto de tecnologias de computador, como criptografia, linguagens de programação e algoritmos de mineração de dados. Raramente você consegue chegar a esse nível sem um estudo acadêmico e muita dedicação.
2. Obtenha o conhecimento científico equivalente a um diploma universitário de quatro anos em ciência da computação. Você pode fazer isso através de:
Buscar um diploma universitário (o passo mais óbvio).Obtenha uma visão geral dos estudos universitários e faça os vários cursos por meio de autoestudo ou por meio de cursos separados. Isso é possível em teoria, mas o primeiro caminho é recomendado.3. Escolha uma especialização. Quanto mais específico melhor. Isso depende das suas preferências. Aqui estão alguns dos principais campos da ciência da computação:
Projeto de algoritmos (pesquisa, classificação, criptografia, descriptografia e detecção de erros na comunicação são alguns exemplos)Linguagens de programação/design de compilador/otimizaçãoInteligência artificial (reconhecimento de padrões, reconhecimento de fala, processamento de linguagem natural, redes neurais)robóticaProgramação científicaTrabalhando com supercomputadoresDesenho/modelagem assistida por computador (CAD/CAM)Realidade virtualGráficos de computador (os gráficos de computador geralmente são confundidos erroneamente com design gráfico ou design de interface gráfica do usuário. A computação gráfica é o campo onde você pode usar e manipular imagens em sistemas de computador.)4. Considere obter um diploma universitário. Você também pode fazer um mestrado ou doutorado.
5. Aprenda as tecnologias e linguagens de programação relacionadas ao seu campo como programador.
Pontas
Não importa que tipo de programação você queira experimentar ou em que nível, você sempre pode fazer um curso ou aulas na escola. Não se deixe intimidar por termos como `Ciência da Computação.Qualquer curso que você possa fazer sem conhecimento prévio deve se concentrar nos conceitos básicos de programação, mas verifique com o tutor antes para ter certeza de que é o que você está procurando, pois cursos como `Computer Skills` focam mais no familiar, se envolvem com aplicativos de escritório, etc..
Artigos sobre o tópico "Torne-se um programador"