Programação: por onde começar a estudar?

O objetivo deste artigo é tornar a aprendizagem de programação acessível a qualquer pessoa.

 

Perguntas frequentes

Enquanto mentora, sempre me perguntam o seguinte:

 

"Qual linguagem de programação devo aprender se sou novo?"

“Qual linguagem de programação é mais requisitada para trabalhos?”

"Qual é a linguagem de programação mais popular?"

Principais linguagens de programação

Se você está procurando uma classificação oficial das principais linguagens de programação, você pode encontrá-las aqui: Principais linguagens de programação do IEEE Spectrum.

Essa lista é ótima para verificar se uma determinada linguagem de programação está em uso hoje. No entanto, se você é novo em programação, não recomendo escolher um idioma baseado apenas em uma lista.

Como escolher uma linguagem de programação

A ciência da computação é um campo de estudo inteiramente cumulativo. Isso significa que cada tópico sucessivo constrói tópicos anteriores.

Se você já tentou aprender programação (ou qualquer campo STEM) na escola, tentou o seu melhor, mas falhou - você não era o problema. Um bom professor de qualquer assunto cumulativo cuida cuidadosamente do currículo. Desde que cada aluno tenha sido suficientemente preparado e satisfeito os pré-requisitos, as expectativas para o conhecimento prévio dos alunos devem ser claras. Um bom professor entende as expectativas e não assume nenhum conhecimento além desse escopo. Qualquer coisa fora das expectativas deve ser ensinada. Cada tópico do currículo é ordenado sequencialmente, respectivamente para os outros tópicos.

Quando um assunto é cumulativo, uma atenção meticulosa deve ser dada ao projetar um currículo de curso ou caminho de aprendizado. Com isso dito, não escolha um idioma por sua classificação; escolha um idioma para o qual você tenha um caminho de aprendizado completo que não faça suposições sobre conhecimento prévio.

Algumas palavras de conselho

Antes de começar a aprender como codificar, é importante refletir sobre o ponto que fiz acima: tudo na ciência da computação é cumulativo.

Eu gostaria de reiterar isso porque o maior erro que você pode cometer como aspirante a programador é desistir porque você não acha que é esperto o suficiente para aprender programação. Aprender a codificar não tem nada a ver com sua inteligência. Sim, é difícil aprender programação, não por quem você é, mas porque há muitos tópicos para aprender.

Primeira regra, aceite que o seguinte cenário vai acontecer: você é apresentado a um novo tópico que não faz absolutamente nenhum sentido para você.

Esse cenário vai acontecer uma e outra vez. Como você lida com essa situação, toda vez que isso acontece, é o único fator que determinará seu sucesso.

Se o tópico atual que você está aprendendo não faz sentido para você, fique onde está. Não prossiga para o próximo tópico. Para reiterar, os tópicos são cumulativos. Saltar à frente é como tentar prender um telhado a uma casa sem estrutura, paredes e alicerces.

Eu me encontro nesta situação o tempo todo. Muitas vezes tenho que assistir novamente à mesma palestra de um tutorial em vídeo várias vezes para entender o que estou aprendendo. Não desanime se você se encontrar no meu lugar.

Se o tutorial (ou livro) que você está usando não explica suficientemente o tópico, você terá que encontrar outros recursos que funcionem para você. Não há desculpa para desistir só porque a cobertura de um tópico por um tutorial não funcionou para você. Você pode encontrar praticamente tudo que estiver procurando para aprender gratuitamente no YouTube. Descubra o que pesquisar (por exemplo, [o tópico] em [sua linguagem de programação] + outras palavras-chave úteis).

Se você estiver pesquisando no YouTube por tutoriais educacionais, verifique primeiro as estatísticas. Dê uma olhada rápida na classificação e / ou na contagem de visualizações. Se você ainda não tiver certeza se um vídeo vale seu tempo, leia alguns dos comentários para avaliar as opiniões de outras pessoas.

Muitos tópicos não farão sentido na primeira vez. Então, abster-se dos pensamentos negativos.

O objetivo é estar consciente de sua compreensão enquanto você está aprendendo. À medida que você avança no caminho de aprendizado, precisa se refletir. Para cada tópico que você cobre, faça a si mesmo perguntas como:

"Esse tópico faz sentido para mim?"

“Havia alguma nova terminologia? Em caso afirmativo, uma definição formal foi fornecida para cada novo termo? ”

“Houve novas habilidades? Eu entendo como cada nova habilidade é usada na aplicação? Posso demonstrar minha compreensão dessa habilidade resolvendo problemas práticos? ”

“Vou me lembrar do que acabei de aprender amanhã? E no dia seguinte? Se não, como vou deixá-lo na memória?

Um último conselho: nunca subestime o poder da memorização. Memorização é uma abordagem totalmente subutilizada na aprendizagem. Sim, a compreensão de um tópico é o objetivo final. No entanto, a compreensão pode levar tempo. Se você está realmente lutando para entender um tópico, divida o tópico e memorize os termos importantes. Se você não consegue compreender como algo funciona, seu objetivo imediato deve ser a memorização. Se você precisar de dicas sobre como lidar com a memorização, considere o uso da técnica de cartão de estudo.

 

1 - Fundamentos da Ciência da Computação

O primeiro passo é aprender os fundamentos da ciência da computação, que abordarei em meu artigo: Introdução à terminologia da ciência da computação. Este artigo foi escrito especificamente para o meu público - todos. Eu intencionalmente criei isso para que seja fácil de entender para qualquer pessoa sem experiência em computadores.

Os conceitos abordados no artigo são predominantemente de definição. Você pode ler o artigo casualmente, e tudo bem para você. Eu recomendo comprometer esses termos na memória. Aborde cada termo como se você estivesse na escola e você precisasse se lembrar da definição de cada termo para um exame. Você não precisa se comprometer tão completamente se não quiser. No entanto, quanto mais desses conceitos você puder comprometer na memória, mais fácil será compreender os tópicos posteriores.

2 - Lógica Proposicional (opcional)

Não, você não precisa ser forte em matemática para ser um programador. As habilidades matemáticas podem ser úteis, mas não são necessárias.

Se você é inseguro sobre suas habilidades matemáticas, recomendo aprender a lógica proposicional. Os princípios abordados na lógica proposicional são os blocos de construção da programação.

3 - Programação Java

Depois de aprender os conceitos básicos da ciência da computação, você estará pronto para aprender uma linguagem de programação.

Eu tenho pensado e me esforçado muito para criar um caminho que seja adequado para todos, independentemente de sua origem. Eu escolhi o Java para esse caminho de aprendizado porque Java é a língua na qual eu tenho mais experiência.

Java é uma das linguagens de programação mais requisitadas. Ela é classificada como uma linguagem de programação orientada a objetos (você aprenderá o que isso significa mais tarde) e é usada para criar aplicativos para computador, Web e dispositivos móveis.

Se você preferir aprender com um livro, recomendo o seguinte: Head First Java.

Se você estiver procurando por um tutorial em vídeo, recomendo assistir aos vídeos de 1 a 19, 31 a 33, 88 e 93 no tutorial do YouTube sobre Java, de Derek Banas: Tutorial em vídeo sobre Java.

O primeiro vídeo no tutorial do YouTube direcionará você para fazer o download de um programa de computador chamado Eclipse. O Eclipse é um Ambiente de Desenvolvimento Integrado (IDE). Você pode pensar em um IDE como um termo sofisticado para um editor de palavras feito para programadores. É apenas um aplicativo de computador que fornece um editor de texto para programação, juntamente com outras ferramentas para executar seus programas.

4 - Algoritmos e Estruturas de Dados

Um algoritmo é um conjunto de instruções (ou etapas) para executar uma tarefa específica, em que cada etapa deve ser claramente definida, capaz de ser executada e finita (o que significa que ela não continua sendo executada infinitamente).

Uma estrutura de dados é uma maneira de organizar dados na memória.

Algoritmos e estruturas de dados são dois dos tópicos mais desafiadores da programação. Você não precisa aprender algoritmos para a competência básica em programação. No entanto, se você pretende trabalhar como engenheiro de software em uma empresa de tecnologia de renome, espera-se que demonstre a compreensão de algoritmos e estruturas de dados durante as entrevistas.

5 - Desenvolvimento Android

O desenvolvimento do Android é, na minha opinião, uma das aplicações mais divertidas da programação Java. Os aplicativos para Android são predominantemente programados em Java. Assim, quando você aprende o Java, está pronto para aprender o Android.

Se você está disposto a gastar dinheiro com um livro excelente, eu recomendo o seguinte livro: Head First Android Development: Um guia para o cérebro. Este livro fornece explicações detalhadas e recursos visuais úteis para realmente ajudar você a aprender os conceitos subjacentes do Android. Cada capítulo orienta você através de um aplicativo de exemplo. Tudo é explicado minuciosamente, usando palavras e diagramas que qualquer um pode entender.

Recursos Úteis

O Stack Overflow é um site onde os programadores podem obter ajuda gratuita com o código. Se você ficar preso e quiser fazer uma pergunta, procure primeiro. Se você não conseguir encontrar sua pergunta, crie uma conta e poste a pergunta você mesmo!

Há uma tonelada de sites educacionais onde você pode encontrar tutoriais de programação. Alguns dos meus favoritos são Codecademy, Udemy, Udacity, Team Treehouse e Khan Academy.

Mobile Main Menu