Quais são algumas das melhores maneiras de aprender a programar?

Melhor resposta

Muitas pessoas me perguntam como para aprender a programar do zero. Com essa resposta, você aprenderá como fazer. Estou programando há 20 anos. Estou compartilhando minhas experiências e de pessoas que ajudei neste desenvolvimento de carreira.

A resposta foi originalmente escrita em meu blog e recebeu 30 000 visualizações e 1 000 votos no Wykop – site semelhante ao reddit polonês. Divirta-se!

Muitas pessoas me perguntam como aprender a programar do zero. Todos os dias leio comentários desse tipo. Por exemplo, alguém está trabalhando em uma área diferente e quer se tornar um testador de software. Ou ele trabalha com TI, mas deseja saltar para um novo nível e começar a programar. Todas essas pessoas têm uma coisa em comum. Eles querem iniciar a jornada de programação. Mas essa área é tão ampla que eles não sabem por onde começar. E todo mundo diz outras coisas sobre como fazer isso.

Com essa resposta, você aprenderá como começar a programar do zero. Você também receberá alguns conselhos que o ajudarão no progresso. Então, vamos começar:

Para aprender como codificar, você precisa seguir estas etapas:

1. Olhe ao redor

Atualmente, a programação é uma área muito ampla. Portanto, é bom olhar ao redor e ver em quais direções você pode ir. Porque se você conhece os caminhos possíveis, pode escolher o certo para você. Também ajuda a escolher tecnologias que você deve aprender.

Para começar, posso falar sobre programadores de sites . São pessoas que usam, por exemplo, WordPress, ou outro sistema de gerenciamento de conteúdo (CMS) e com a ajuda de suas habilidades, ajustam o site para que funcione como o cliente espera. Para fazer isso, essas pessoas precisam saber principalmente JavaScript, HTML e CSS.

Desenvolvedor de sites – esta é provavelmente a interpretação mais popular de um “programador” no mundo.

Mas programação não se trata apenas de sites WordPress. É muito mais. A programação é dividida em vários reais. Primeiro, darei três exemplos de domínios de front-end. A programação de front-end é a programação de algo que o usuário / cliente vê. Uma interface. Resumindo:

Programação de aplicativos da Web – construção de aplicativos de negócios online (como seu aplicativo de banco ou aplicativo de comparação de filmes). São aplicativos específicos que atendem às necessidades de grupos específicos de usuários. Eles não servem para gerenciar conteúdo (como o WordPress), mas para gerenciar processos (ou seja: para que as pessoas possam, em poucas palavras, concluir algumas tarefas). Além de JavaScript, os programadores de HTML e CSS precisam conhecer algumas tecnologias adicionais para programação de webapp. Depende de um projeto, por exemplo: SCSS, TypeScript e qualquer um dos seguintes frameworks: Ember, Angular, Vue ou React. (Framework é o esqueleto de um aplicativo com recursos de compilação).

Programação de aplicativos de desktop – como acima, mas se trata de aplicativos de programação que você pode instalar, por exemplo, em um sistema Windows. Este grupo difere do anterior. Ele usa outras tecnologias. Por exemplo, a programação para Windows pode usar a linguagem C # e .NET Framework.

Programação de aplicativos móveis – trata-se de escrever aplicativos instalados em dispositivos móveis . Principalmente em dispositivos com sistemas operacionais Android e iOS. A programação para Android usa principalmente a linguagem de programação Java e para iOS: linguagem Swift. Para cada sistema, existem diferentes estruturas. Existem também frameworks para ambos os sistemas.

Estes foram exemplos de front-end reais. Agora vamos passar para os reinos de back-end. Backend é, mais ou menos, programar algo que cliente / usuário não vê, mas é fundamental para o sistema funcionar:

Programação de banco de dados – bancos de dados como MySQL e MSSQL. Banco de dados é, mais ou menos, uma planilha avançada. O banco de dados armazena, portanto, mais dados e permite manipulá-los de maneira programática. Adicione dados, remova-os, mude. Além disso, permite configurar diferentes formas de tratamento de dados. Por exemplo, rejeite dados incompletos ou reúna dados de tabelas diferentes. Os sistemas de banco de dados usam suas variações da linguagem SQL (por exemplo, T-SQL para MSSQL). A linguagem permite codificar várias operações nos dados. Também existem bancos de dados que não usam a linguagem SQL. Eles usam um nome místico: NoSQL.

Programação de back-end – o desenvolvedor de back-end processa dados entre o banco de dados e o front-end ou entre diferentes sistemas que precisam colaborar. Quase todas as linguagens de programação podem ser usadas para fins de back-end. Mas como o back-end tem casos de uso específicos, as pessoas tendem a usar linguagens diferentes do front-end. Por exemplo: PHP, Ruby, Python, Java, mas também JavaScipt.

A maioria dos programadores se divide em desenvolvedores front-end e back-end. Mas também existem desenvolvedores fullstack.O desenvolvedor Fullstack é uma pessoa que conhece tecnologias de front-end e back-end. Ele / ela pode cuidar de tudo para configurar um aplicativo: banco de dados, back-end e interface do usuário.

Mas nem todos são domínios. E na maioria dessas visões gerais, outros domínios são omitidos. Temos cada vez mais dispositivos avançados, sensores, que fornecem dados aos sistemas de informação. Eles também precisam ser programados. Isso é chamado de programação incorporada. A programação embutida é feita principalmente em linguagens C e C ++, porque essas linguagens fornecem ao programador acesso à abstração de baixo nível. Ele economiza recursos desses pequenos dispositivos.

Outro reino próspero da programação é a análise de dados. Os desenvolvedores de análise de dados usam grandes conjuntos de dados nas empresas e preparam os resultados para as conclusões de negócios a serem tiradas deles. Esses programadores usam diferentes conjuntos de linguagens, incluindo Python e R (sim, este é o nome de uma linguagem de programação, apenas uma letra R. Onde o mundo está ficando certo?).

Outro domínio é o legado programação. Desenvolvedores legados conhecem tecnologias que foram usadas para construir sistemas, mas não são mais populares. Eles suportam sistemas legados, que precisam funcionar, mas foram construídos anos atrás.

Existem muitos outros programas reais. Não vou escrever sobre tudo isso aqui. Mas é possível encontrá-los.

Este é o fim deste ponto. Por que é tão importante? Se você sabe em que área está interessado, você pode escolher tecnologias, você deve aprender. E é mais fácil aprender algumas tecnologias do que 200 delas.

Vamos supor que você já saiba em que área está interessado, certo? O que vem a seguir?

2. Escolha as tecnologias

Para ir além, você precisa tomar uma decisão informada sobre as tecnologias que você deve aprender. Mas, honestamente, é difícil obter um bom conselho sobre isso. Você pode perguntar a alguém, ou ir para estudos ou um bootcamp. Mas de qualquer forma, você acabará aprendendo: a) o que é popular b) o que é conhecido de quem lhe ensina c) o que usa quem responde. E muitas vezes não é uma boa escolha. Mas eu tenho boas notícias. Você pode fazer melhor e fazer bem.

Leia sobre quais tecnologias são usadas por empresas que atuam na área de seu interesse. Pesquise ofertas de emprego, veja quais tecnologias voltam a ocorrer. Não perca o entusiasmo porque existem 20 tecnologias. É uma ficção. As pessoas escrevem coisas que não são exigidas posteriormente para o trabalho.

Muitas vezes, eu li que as pessoas sabem um pouco disso, um pouco daquilo. E eles ainda não sabem como se tornar um programador. Eles estão perdidos. É totalmente verdade. A programação é uma área muito ampla, e você não pode aprender tudo. Você precisa escolher a direção e segui-la. Dessa forma, você aumenta sua chance de sucesso.

3. Escolha o método de aprendizagem

Este ponto é muito importante e vou escrever o porquê. Todos têm sua opinião sobre como um desenvolvedor deve aprender. Se você estava procurando a resposta online, encontrará muitas idéias do que é certo. Um vai aconselhar o uso de vídeos do YouTube. Outros dirão que o livro é o caminho a percorrer. Outra pessoa dirá que um bootcamp é o melhor. O desenvolvedor de software aprende com a documentação! Alguns desenvolvedores também dizem que a educação universitária é inútil. Estou triste com essas declarações.

Você não sabe o que é melhor. E é completamente natural. Todo mundo diz coisas diferentes. Pessoalmente, eu poderia recomendar ebooks e tutoriais em vídeo, porque gosto deles. Mas essa não seria uma resposta adequada nem útil.

Na realidade, não importa como você aprende. Contanto que você aprenda. E você se lembra de como você aprendeu na escola? Como ficou? Um professor pediu para você aprender um pouco disso, um pouco daquilo. Coisas que não têm conexão entre elas? Não. E na escola você aprende coisas complicadas. Coisas que não importavam para você. Mas todos se lembraram um pouco disso.

É porque o aprendizado nas escolas é sistemático e metódico. Passo após passo. O sistema foi desenvolvido ao longo de centenas de anos de experiência. Se você acha que não é bom o suficiente: pergunte-se: como fazer uma bateria de batata? Este sistema é muito bom!

Você está interessado em aprender programação. A melhor coisa que você pode fazer por si mesmo é escolher um método metódico e sistemático. Então, vamos responder a nós mesmos, qual é o método de aprendizagem mais metódico e sistemático? Obviamente, é um ensino médio. O corpo docente do ensino médio conhece muito bem a educação metódica e sistemática. Será difícil, mas você aprenderá programação.

Outra maneira de aprender são livros e livros. Com um pouco de cuidado você encontrará um livro que ensina passo a passo. De coisas fáceis a difíceis. De A a Z. Mas você precisa gostar de ler.

Tutoriais em vídeo e cursos online – eles podem ser ótimos se o autor os preparou metodicamente – eles irão ajudá-lo no aprendizado. Principalmente se você gosta de assistir e aprender.

Bootcamp – um treinamento intensivo de programação. Você também pode se beneficiar com isso. É uma boa solução se você gosta de trabalhar com pessoas em um grupo.

A única coisa que quero alertá-lo é que não use formas não metódicas, não sistemáticas e incompletas de aprender programação. Imagine que você aprendeu 50\% de um tópico em um curso de vídeo do YouTube (porque é gratuito). Mas não há última parte. Você procura outro curso. Mas, em outro curso, há coisas que você não sabe. Além disso, algumas coisas que você sabe. E o tópico é explicado de maneira totalmente diferente. É tão desanimado! Então, para começar: conteúdo que cobre tópicos de A a Z.

Chegando logo ao final deste ponto, eu também gostaria de observar uma questão que é extremamente importante. Eu li que pessoas aconselham iniciantes a usar conteúdo em inglês para aprender. Essas pessoas não sabem o que estão fazendo. Quando você é um iniciante – não torne sua vida difícil. Se você tem conteúdo em seu idioma nativo – use-o. Por que você deve aprender programação em língua estrangeira? É um lixo absoluto. Você também pode aprender espanhol com um livro alemão falando inglês ou polonês com um livro canadense enquanto fala japonês. É possível? Sim. Mas por quê?

4. Defina uma meta

A definição de metas geralmente é omitida no planejamento de uma carreira profissional. As pessoas começam a aprender um curso, depois param e vão para um bootcamp enquanto o tempo inevitavelmente passa. Depois de vários meses, você não se lembra do que aprendeu antes. Parece que você aprendeu algo, mas o que exatamente você realizou?

Para tornar o aprendizado mais fácil, é uma boa ideia definir uma meta. Por exemplo, você pode jurar que lerá um livro de 800 páginas em um mês. Ou você vai terminar os estudos de pós-graduação ou encontrar um emprego de desenvolvedor júnior em 6 meses.

Tudo vai melhor, se você definir uma meta. É algo sobre a nossa natureza que os objetivos tornam a vida mais fácil. Aprender não é fácil. Programar não é fácil. Aprender a programar está fora dos padrões. É por isso que uma meta é tão importante. E a satisfação de alcançá-lo dá motivação para trabalho futuro.

5. Aprenda sistematicamente

Quando você já tem uma meta, o próximo passo é fazer um cronograma de aprendizado. Todos os dias uma hora. Mas todos os dias, sempre uma hora. E não para fazer outro tutorial em vídeo ou ler um artigo, mas para aprender algo significativo.

Existe uma maneira de tornar isso mais fácil? O foco da mente é necessário para aprender a programar. Muito foco mental. Experimente isso. Anuncie a todos: às 18h vou aprender programação por uma hora e por favor, não me perturbe. Desligue o telefone e saia do Facebook. Dê os filhos aos sogros. Dê um cachorro para um vizinho.

Observe o quanto você vai aprender! Você precisa se desligar do mundo, para realmente entender o entendimento da programação.

6. Codifique-se

Estou seguindo um desenvolvedor de software iniciante incrível no LinkedIn. Ela encontrou uma ótima maneira de praticar programação. Todos os dias ela estabelece uma meta para codificar algo. Por exemplo: um dia: calculadora simples. No dia seguinte: página simples com capas de filmes. Ela cria um GIF animado com o que ela fez e o coloca no LinkedIn. Ela escreve o que aprendeu durante o dia. Eu amo segui-la. Ela cria alguns mini-projetos brilhantes. Acima disso, nos primeiros dias também fiz o que ela faz. O que todo bom desenvolvedor de software que conheço fez. Elaboração de tarefas e programação. É assim que você se torna um desenvolvedor de software.

Obviamente, é mais fácil quando você está estudando, trabalhando ou ingressando em um bootcamp, ou tendo um livro com tarefas de exemplo. Porque você não precisa descobrir as tarefas sozinho. Este também é um bom método. Mas às vezes essas tarefas são chatas, não o force a sair da sua zona de conforto. E se você descobrir uma tarefa sozinho? Então você encontrará alguns obstáculos, que irão apontar o que você deve aprender para ir mais longe com sua prática.

7. Peça ajuda

Já que estamos falando de problemas. É difícil articular com o que você tem problemas nos primeiros dias de programação. Por exemplo, quando ocorre um bug em um aplicativo. Como traduzir o problema em palavras? Como pedir isso? Às vezes é tão difícil que as pessoas não sabem que frase colocar em uma pesquisa DuckDuckGo. Anos atrás, era mais fácil. Havia StackOverflow e grupos de suporte, onde você podia fazer qualquer pergunta. Você poderia contar com a ajuda de outras pessoas.

Hoje você pode enfrentar respostas como “pesquise na internet”, ou “isso foi perguntado antes” ou “de novo”. Isso é frustrante. Infelizmente. A Internet está cheia de respostas. O que os desenvolvedores de software avançados não compreendem é que é difícil nomear um problema se você for um programador iniciante. Mesmo se eles tivessem exatamente o mesmo problema! Posso assegurar-lhe isso!

Portanto, recomendo fortemente que você faça perguntas. Encontre um bom lugar na Internet para desenvolvedores de software ou encontre um mentor. E pergunte, pergunte, pergunte.Às vezes, você tropeçará em uma hesitação. Mas isso não o derrubará. E se for o caso, encontre outro lugar que seja melhor.

Quanto mais você perguntar, mais fácil se tornará articular o que você tem problema. Enquanto o tempo vai passando, suas perguntas ficarão cada vez melhores, as respostas aparecerão cada vez mais rápido. E mais tarde, você descobrirá, alguns problemas podem ser resolvidos apenas pelo ato de formular uma pergunta adequada.

8. Encontre trabalho rápido

Costumo ler que as pessoas adiam a procura de um emprego até aprenderem algo mais. E meio ano passa. O desenvolvimento de software é uma área onde você precisa renovar seus conhecimentos o tempo todo. Digamos que você aprendeu de 3 a 4 tecnologias de que precisa. Você começa a procurar emprego e se mete em problemas. Você pode procurar um emprego por vários meses! E, ao fazer isso, você esquecerá metade das coisas que aprendeu.

Portanto, meu conselho é que você deve começar a procurar um emprego mais ou menos na metade do caminho de aprendizagem. Por várias boas razões. Em primeiro lugar, se você aceitar uma posição de estagiário ou trabalho júnior, seu empregador presume que você não sabe quase nada. Em segundo lugar, o processo de recrutamento leva tempo. Antes de ajustar seu currículo, antes de aprender as questões pré-fabricadas, disponíveis online, o tempo vai passar. Vai passar enquanto você afia sua conversa de recrutamento sem nervosismo. Encontrar um emprego também é algo que você precisa aprender.

Portanto, na metade do caminho de aprendizagem, comece a procurar um emprego. Envie currículos, agende reuniões, acostume-se. Então a sua prontidão técnica se unirá com a prontidão de recrutamento e não haverá atrasos.

9. Peça tarefas mais complicadas

Agora você tem uma posição de trabalho. Mas a maior armadilha da programação está à sua frente. Já que você tem um emprego, pode colocar livros nas prateleiras e apenas fazer o que lhe é pedido.

Não é assim! Esteja ciente de que muitas vezes os estagiários / juniores não são solicitados a fazer tarefas complicadas, mas muito fáceis. Você perceberá logo, que levam cada vez menos tempo para serem concluídas e começam a se tornar entediantes. Se você não fizer nada a respeito, você perde tempo. Você pode aprender coisas novas. Não ande em círculos.

Acima disso, seu empregador vê quando o estagiário / júnior fica parado. Eu sou o patrão, é tão claro quanto o céu. E ninguém quer ter internet / júnior atemporal.

Então, quando você vir que está melhorando, peça ao seu supervisor para tarefas mais complicadas. Ele / ela deve saber para lhe dar mais complementos. Isso é importante para continuar aprendendo e se desenvolvendo no trabalho.

Como estagiário / júnior, você precisa aprender muito, muito mais. Tenho 100\% de certeza que você não quer se tornar um desses caras na internet que dizem que a posição de estagiário / júnior não deu nada a eles, não aprendeu nada. Eles não aprenderam, porque não queriam ir mais longe. Eles perdem o tempo deles e do empregador.

10. Domine novas tecnologias

Programação é um campo incrível, mas muda o tempo todo. O que você aprendeu hoje ficará desatualizado em um ano. E obsoleto no 5. Quando você encontrar um emprego e se sentir confortável com ele, domine algo novo. Expanda suas habilidades. Não fique parado com seu desenvolvimento profissional. Se você parar de estudar, talvez valha a pena voltar. Participe de um bootcamp, leia um livro, participe de um curso online. O que quer que seja, permitirá que você esteja atualizado com as tecnologias.

Atualização: se você quiser memorizar métodos de programação, procure o projeto Summon The JSON. Atualmente existe um deck para programadores de JavaScript. Você pode aprender mais aqui: Invoque o JSON: JS Deck

É tudo que você precisa aprender para começar a programar do zero. Este foi um artigo muito longo, e estou realmente surpreso que você tenha chegado ao final dele. Tenho certeza de que 99\% das pessoas não fizeram isso. Parece que você se preocupa em se tornar um desenvolvedor de software. Cuidar é 99\% de um sucesso. Desejo a você toda a sorte. Programar é incrível e dá muita satisfação profissional. Não perca seu coração por isso. Continue. Passo a passo.

Inglês não é minha língua nativa. Se você encontrar algum erro na resposta, corrija-o. Você será mencionado na resposta. Obrigado!

Resposta

Um bom começo é descobrir como amar a programação. Para citar um novo programador a quem eu estava ajudando:

GASP IT WORKED IT WORKED IT FUNCIONOU COMO VOCÊ SE ENCARAU COM ESSE SENTIMENTO

Ela havia passado a hora anterior tentando um objeto em seu jogo muda de cor e sua cor acaba de mudar.

Escrever código é como falar palavras mágicas que realmente fazem algo . É envolvente e talvez um pouco viciante.Também é difícil; encontrar esses pequenos momentos de motivação é muito útil nos momentos em que você precisa aprender algo difícil; a memória do que é possível pode ajudá-lo a superar o que é chato.

Mesmo assim, se você pretende chegar lá, precisa ter algumas experiências divertidas e criativas com programação. Aqui estão algumas idéias:

  1. Pegue o editor de níveis StarCraft (1 ou 2) e descubra como usar os gatilhos. Passei muitas horas felizes hackeando mapas do StarCraft, e você pode escrever alguns jogos dentro do jogo incrivelmente envolventes usando-o.
  2. Descubra toda a mecânica de redstone no MineCraft e construa um máquina ridícula. Fazer mods que adicionam novos recursos ao MineCraft também é popular, mas aprenda algumas noções básicas antes de experimentá-lo; seus tutoriais ( Modding básico – Minecraft Forge ) são muito mais fáceis de entender se você já conhece um pouco de Java.
  3. Descubra como construir algo incrível no Factorio (aviso: o vídeo abaixo é ridículo; não espere fazer isso imediatamente). Factorio também tem uma API de modding bastante completa suportada pelo desenvolvedor ( Tutorial de modding ), embora você possa querer aprender mais alguns fundamentos antes de tentar isso.
  1. Faça download do Scratch e faça alguns jogos simples com ele (esse artigo também menciona várias outras linguagens de programação educacional na parte inferior). Scratch trata a programação como peças de um quebra-cabeça que você junta para construir comportamentos, e é simples o suficiente para que crianças mais novas possam criar programas de trabalho com pouco esforço. É como programar com rodinhas.

Crédito da imagem: Por Lifelong Kindergarten Group em o MIT Media Lab.

  1. Encontre um desses livros “aprenda X em 21 dias” e avance com ele. Não é espalhafatoso nem minucioso, mas pode fornecer base suficiente para que algumas dessas outras ideias se tornem possíveis.
  2. Faça uma aula. OK, booooring, mas descobri que a pressão de ganhar uma nota me incentivou a trabalhar com os conceitos difíceis. Eu só recomendo isso se você já tiver certeza de que deseja aprender programação; as aulas são ótimas para colocar informações em seu cérebro, mas são muito ruins em motivá-lo. A melhor parte de fazer uma aula é que eles vão te ensinar coisas que você nunca imaginaria que existissem; você não pode autoaprender um conceito que você não sabe que existe.
  3. Você gostaria que seus programas afetassem o mundo real? Considere fazer alguns projetos usando um microcontrolador, algo como estes: Os 10 principais projetos Kickass Arduino . Se o Arduino for muito intimidante, você pode experimentar o LEGO Mindstorms primeiro.

Sistema de segurança? Robôs? Luzes de Natal estúpidas e impressionantes? Este é o seu dispositivo. Imagem do Arduino .

  1. Game Maker ( Yoyo Games ) é um ambiente de desenvolvimento muito bom para videogames simples; é mais avançado do que o Scratch e mais profundo do que os editores de gatilho no editor de mapas de StarCraft. É possível fazer uma variedade de videogames 2D com ele, e é possível fazer algo bom o suficiente para ser vendido comercialmente.
  2. Se você deseja mudar para 3D, Unity ( Unity – Game Engine ) é um motor de jogo 3D de qualidade decente. Você precisará de um pouco mais de habilidade de programação do que o Game Maker e de alguma forma de criar ativos, mas ele é poderoso o suficiente para fazer jogos de ponta.
  3. Seu desktop ou laptop já inclui um ambiente de desenvolvimento decente: seu navegador da web. Se você criar uma página da web no seu próprio disco rígido, poderá abri-la com o navegador da web. Se essa página da web contiver JavaScript, o navegador a executará. Você pode começar a aprender sem a necessidade de baixar ou instalar qualquer outra coisa. Tutorial do jogo HTML5 – Faça um jogo de cobra usando tela HTML5 e Jquery é um guia divertido de como fazer um jogo básico.
  4. Aprenda a jogar o jogo de quebra-cabeça on-line RoboZZle . De todos os jogos de programação que já joguei, este é sem dúvida o mais profundo. A maioria dos jogos vai te ensinar muito sobre variáveis ​​e objetos, mas este vai te ensinar a pensar profundamente sobre recursão. O cálculo lambda deve ser vagamente familiar se você já superou alguns quebra-cabeças Robozzle de médio a difícil.
  5. Baixe a versão da comunidade do Visual Studio . Esta é uma ferramenta de nível profissional e é difícil colocar seu primeiro programa em execução. No entanto, depois de conhecê-la bem o suficiente, você pode fazer qualquer coisa.Se você estiver em um Mac, o equivalente é XCode .

Esperamos que algumas dessas ideias o ajudem a se mexer. Eventualmente, se você quiser se tornar bom nisso, você vai precisar quebrar os livros e fazer alguns estudos formais, mas acho que funciona melhor se você descobrir por que primeiro.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *