Transcrições
1. Introudaction: Você ficou preso no ciclo
interminável de tutoriais? Depois do tutorial, estamos tentando
aprender a programar, mas não estamos fazendo nenhum progresso
real. Eu, por exemplo, estive lá. Comecei a aprender a
programar há mais de dez anos. Passei anos experimentando
cursos on-line e assistindo vídeos
do YouTube que não estavam
fazendo nenhum progresso real. Se você quer
aprender a programar, saiba que não
precisa ser assim. Então, neste vídeo, vou
compartilhar como eu
aprenderia a programar se pudesse
fazer tudo de novo. Então, primeiro passo, precisamos definir
metas e expectativas. Por que você está
tentando aprender a programar? Você quer criar um site
para sua empresa familiar? Você quer desenvolver algum aplicativo? Você sempre
pensou em onde você quer conseguir um emprego como engenheiro
de software? Não se preocupe muito se essas
metas mudarem com o tempo. Mas acho que é
importante começar
decidindo o
que você realmente quer. Além disso, tentei estabelecer expectativas
razoáveis
para si mesmo. Você não vai
deixar de escrever sua primeira linha de código para conseguir um
emprego de engenharia de software e, em apenas um mês, isso simplesmente não acontecerá dessa forma. Talvez você consiga criar um site ou um
aplicativo e dessa vez. Mas, assim como qualquer
outra habilidade, dominar o desenvolvimento de
software exigirá
muito esforço. A maioria dos desenvolvedores ou
frequentou o campo de treinamento, que leva cerca de três
meses de estudo em tempo integral, ou eles têm diplomas universitários em ciência da
computação, o
que, obviamente, leva
anos para competir de
forma realista com essas pessoas no mercado de trabalho Você provavelmente precisará de
uma quantidade semelhante de experiência e tempo
gasto aprendendo.
2. Codificação e ciência da computação: Etapa para entender
o que realmente é codificação. Eu sei que parece
clichê, mas me escute. A maior parte do meu tempo perdido
quando tentei aprender foi gasto tentando
entender a sintaxe de codificação. Eu pesquisava coisas
como Javascript, tutorial e depois tentava
acompanhar e aprender JavaScript. Isso parece bastante simples e, até certo ponto, eu
aprendi um pouco de JavaScript. Mas o que eu poderia fazer
com esse JavaScript? Absolutamente nada. Eu nem sabia qual era
o JavaScript quatro. E este é um ponto tão
esquecido, mas fundamental. O revestimento é apenas um
meio para atingir um fim. É uma ferramenta usada por desenvolvedores para desenvolver software
como uma analogia Se você quiser construir
uma casa, você quer. Procure tutoriais e saiba como
usar ferramentas como britadeiras. Você precisaria
primeiro entender os fundamentos do
projeto de uma casa. E, no futuro, você precisará
aprender a usar essas ferramentas. A analogia não é perfeita, mas espero que transmita
a ideia. Codificar é apenas o processo de dizer ao
computador o que fazer. Mas o desenvolvimento de software é um processo maior de
criação de software. O principal componente
desse processo
será a codificação, mas há
muitos outros
componentes importantes nesse processo. Mas você não aprenderá se tudo o que
fizer for aprender a programar. Etapa três:
aprenda os fundamentos. Sempre me perguntam: qual linguagem de programação
devo começar? Não se preocupe, chegaremos
lá em um momento. Mas a realidade é que todas as
linguagens de programação surgiram dessas mesmas ideias básicas e
devemos começar
aprendendo essas ideias. Um ótimo lugar para começar
aqui será o CS5, que é o primeiro curso de
ciência da computação oferecido em Harvard. Este é um recurso incrível
porque, na verdade é
totalmente gratuito on-line
e tem excelente qualidade. Este curso fornecerá uma visão geral fundamental dos princípios da ciência da
computação. Você aprenderá tudo
nesta aula, desde notação binária até
codificação, C e Python até a criação de aplicativos
web completos com HTML, CSS e JavaScript. Obviamente, você não deixará esta aula como especialista
em praticamente nada. No entanto, você sairá com uma compreensão do
contexto da codificação e de como ela se encaixa nesse panorama mais amplo da etapa
de desenvolvimento de software e ciência da
computação para mergulhar
profundamente em uma única linguagem de
programação. Neste momento, você
foi apresentado a uma variedade de idiomas
diferentes. E uma coisa que você
notará é que, na realidade, eles são todos muito
parecidos entre si. Eles podem ter uma sintaxe um pouco
diferente. Mas uma coisa que você aprenderá
é que, depois de aprender um, você poderá
aprender mais idiomas com facilidade. Portanto, se você não tiver certeza de
qual linguagem retrata, observe que isso
realmente não importa muito,
mas eu normalmente
diria que o padrão Python, Java
ou JavaScript. Python é uma ótima linguagem de
programação versátil com uma sintaxe
incrivelmente simples. É particularmente bom para ciência de
dados e aprendizado
de máquina, mas também é usado em
muitos outros lugares,
como desenvolvimento web de back-end. Java é outra linguagem de programação de
propósito geral que pode ser usada
em qualquer lugar. Um de seus grandes benefícios é que ele vem com tipagem estática, o que significa que você
precisa definir explicitamente os tipos de cada
variável criada. Isso é ótimo, especialmente
para aprender, pois força você a realmente
pensar no código que você escreve. Dito isso, também é importante
notar que a sintaxe Java é
muito mais detalhada do que a sintaxe do Python, então pode ser um
pouco mais difícil de seguir em frente. Por outro lado, o JavaScript é a principal linguagem
de programação do front-end
da Internet. E, na minha opinião,
isso a torna uma
das linguagens
mais fáceis
de aprender, pois o código que você escreve geralmente
é mais fácil de ver e entender, pois você
pode interagir com
a saída e com um navegador da web
em vez de um terminal. Dito isso, se você
optar por seguir esse caminho, também precisará
aprender HTML e CSS, que são as
linguagens de marcação usadas para descrever o conteúdo
e o estilo das páginas da web. Depois de escolher um idioma, você também precisa encontrar um lugar
para realmente aprendê-lo. Existem muitos
cursos incríveis por aí, mas aqui estão alguns que
eu recomendaria. primeiro no lado gratuito é Free Code Camp,
bem como a Code Academy. Ambos têm cursos gratuitos
que tendem a ser de altíssima qualidade, e você pode
complementá-los com vídeos no YouTube se achar que
faltam cursos em alguma área.
Se você estiver interessado
em cursos pagos,
adorei Se você estiver interessado
em cursos pagos, muito o especialista em
programação. É claro que preciso
abordar meu preconceito e o fato de ter trabalhado
para a Algo Expert, a empresa que criou a
Programming Expert. Mas não se preocupe muito. Não tenho nenhum incentivo financeiro para você comprar
o produto acabado. Isso não é patrocinado
por eles de forma alguma. Eu realmente acho que é
um produto de alta qualidade, especialmente se você
quer aprender Python. Também existem
muitos cursos na Udemy e no Coursera. No entanto, eu ainda não os
examinei, então não posso recomendar
um específico, mas tenho certeza de que alguns
deles são muito bons apenas para assistir primeiro
ao conteúdo gratuito, para ter uma ideia e talvez ler as resenhas, bem como
a menor parte aqui Você também deve reservar
algum tempo para escolher um editor de código
neste momento e se familiarizar com seus recursos. Os editores mais populares momento são o
Visual Studio Code. Então esse é provavelmente um
bom lugar para começar, mas qual deles você escolhe
não é muito importante. No entanto, o importante
é me acostumar a editar código em seu
computador local em um editor de código Lembro-me de ter aprendido a maior parte do meu aprendizado com tutoriais
on-line e me senti perdida quando tentei levar o
que aprendi on-line
para esse editor local para evitar essa confusão.
Basta me que aprendi on-line
para esse editor local para evitar essa confusão acostumar a usar
um editor local desde o início e isso
tornará tudo um muito mais fácil.
3. Habilidades de codificação e preparação para entrevista: Passo cinco, aprenda, pratique, repita enquanto você está aprendendo, certifique-se de que você está
realmente praticando. Tudo isso volta à ideia
inicial de contexto. Se você só quer aprender
a sintaxe da codificação, está aprendendo
qualquer coisa útil à medida que aprende mais e tenta criar
alguns projetos simples. Não exagere com
nada muito complicado, mas tente se certificar de que
está aplicando seu conhecimento além de fazer exatamente o que
um tutorial diz para fazer. Essa é realmente a única maneira de confirmar que você está
realmente aprendendo. Ao fazer isso, você
se verá pesquisando
coisas no Google o tempo todo. E isso está perfeitamente bem. Na verdade, mais de dez anos depois, eu ainda pesquiso algo no Google
quase toda vez que eu codifico. No entanto, certifique-se de
que você não está apenas copiando e colando soluções. Seu objetivo é aprender. Portanto, certifique-se de que você realmente entendeu qualquer código
que você copiou. Uma boa maneira de fazer isso é
encontrar a solução e depois voltar depois algum tempo e
reimplementá-la você mesmo. Dessa forma, você confirma que realmente entendeu o que
precisava pesquisar. Etapa seis, aprenda habilidades de desenvolvimento de
software sem codificação. Como eu disse,
engenharia de software não é apenas codificação. Há muitas
outras coisas para aprender, muitas das quais serão extremamente importantes para a maioria dos trabalhos de
desenvolvedor. Em primeiro lugar, você
precisa se acostumar a usar um terminal,
se ainda não o fez. Você não precisa ser
um especialista em Bash, mas deve ser
capaz de
navegar rapidamente pelos
diretórios e editar arquivos. Além disso, conheça o sistema de controle de
versão do Git. É assim que
os engenheiros de software e a
indústria acompanham
seu trabalho. Você pode pensar nisso como a história
do Google Docs. Mas, para código, ambos os
acessos ao terminal em geral são , na verdade, muito
fáceis de aprender. Então, se outro curso que você
usou ensina isso, ótimo. Basta acompanhar isso. Caso contrário, você provavelmente poderá aprender isso por meio de alguns vídeos do YouTube. E, claro, apenas
praticando sozinho. A partir daqui, tente
começar a desenvolver um conhecimento básico de diferentes aspectos da engenharia de
software. Você não precisa ser
um especialista neles, mas pode ser útil entender um pouco
de como
a nuvem
funciona e, potencialmente até mesmo como usar um provedor de
nuvem como AWS ou o Google Cloud Platform. Outra área a ser explorada seria design
de redes e sistemas. Isso essencialmente
responde a perguntas
como : como a Internet
realmente funciona e como projetamos aplicativos
de grande escala? Você também pode começar a explorar mais
algumas áreas de nicho, como desenvolvimento de
jogos, desenvolvimento
móvel, diferentes estruturas de front-end
ou aprendizado de máquina, mas a escolha, se
houver, dependerá de seus
interesses e objetivos. Passo sete, aprenda a codificação
mais avançada. Há alguns aspectos
da codificação que valem a pena explorar além da
sintaxe de uma linguagem. Primeiro, eu aprenderia as
diferentes estruturas de dados. Particularmente, eu me
concentraria em matrizes, conjuntos ,
mapas, pilhas,
filas, árvores e gráficos. Isso pode parecer muito, mas você provavelmente
encontrará a maioria
dessas coisas enquanto
aprende linguagem de
programação
escolhida. De qualquer forma, além disso,
você desejará aprender alguns
algoritmos que são essencialmente apenas programas
altamente eficientes conhecidos para tarefas específicas. Então, em particular,
você quer conhecer alguns algoritmos de classificação
, como merge sort. Você quer aprender alguns algoritmos de
pesquisa , como pesquisa binária. E você quer conhecer alguns algoritmos de passagem de
grafos , como BFS e DFS. Além disso, eu
também recomendaria que você
aprendesse a escrever código em
C ou C plus, plus. Essas linguagens não são tão fáceis de usar quanto
linguagens como Python, então elas não são ótimas para
primeiras linguagens de programação. No entanto, eles oferecem
muito mais controle direto sobre a memória do seu computador. Isso é algo que
geralmente é
abstraído de você com linguagens
mais modernas. Mas acho que entender como tudo funciona e apenas para
torná-lo um programador
geral melhor,
passo oito, prepare-se para entrevistas
técnicas. Supondo que você queira conseguir um
emprego como engenheiro de software, é bem provável
que você precise passar por algumas entrevistas
técnicas. Obrigado por assistir e nos
vemos no próximo vídeo.