Sei sulla pagina 1di 19

APRENDER A

CÓDIGO
Página 2

Regras para Aprender a


Codificar
Dra. Angela Yu
iOS, WatchOS e desenvolvedor Web
Instrutor Líder na The App Brewery
www.appbrewery.co

Page 3

Conteúdo
1. Truque seu cérebro com a regra dos 20min
2. Código para um Propósito. Tenha um projeto
3. Não há "linguagem perfeita para aprender"
4. Entenda o que você está escrevendo
5. Não há problema em não saber
6. Seja um imitador
7. Seja responsável perante alguém. Mostre seu trabalho
8. Continue aprendendo
9. Jogar pebolim
10. Obtenha um mentor - Experimente a programação em pares
11. Adquira o Hábito de Chunking
12. Quebre o código de outra pessoa
Todos os direitos reservados © The App Brewery
www.appbrewery.co

TRADUÇÃO: DIOGO MAMEDIO


Engane seu cérebro com
A regra dos 20 minutos
Aprender a codificar é um pouco como ir à academia. Mesmo se
você atingir o máximo passou um fim de semana inteiro na
academia, você não verá uma diferença visível seu corpo.
Quanto mais você aprende a codificar regularmente, maior a
probabilidade de você começará a ver seus músculos de
codificação rasgados. (A ironia não se perde em mim).
Mas o problema é onde você encontra tempo? Entre trabalhar
seu trabalho em tempo integral, passando tempo com sua
família e administrador da vida, quando você está deveria sentar
e praticar essa "codificação diária"?
Enquanto trabalhava como médico, passei cerca de 12 horas no
hospital, Deslocamento de 1 hora e aproximadamente 2 horas
em manutenção da vida em geral coisas, como comer. Então isso
me deixou com apenas 9 horas restantes no meu dia.
Teoricamente, 2 horas poderiam ser alocadas à prática de
codificação e 7 horas dormir. Mas não há nada mais difícil do que
tentar convencer seu cérebro saturado de trabalho para se
sentar e aprender quando você poderia estar assistindo Game of
Thrones com um balde de sorvete.
Mas então eu encontrei um truque.
Como seres humanos, temos muita inércia. Isso pode ser ruim
para nós - estou olhando você, conjunto de caixas "24". No
entanto, também podemos transformá-lo em nossa vantagem.
eu descobri que uma vez comecei a codificar e a criar coisas,
fiquei tão absorvido pelo projeto, que não me importava mais
com TV, comida ou sono. Houve alguns fins de semana que eu
codifiquei até o nascer do sol.
Então, como podemos tirar proveito dessa inércia? Primeiro, você
deve entender essa troca de tarefas é muito difícil. Isso requer
muita motivação. Se assim que quando você chega em casa, você
se afunda no sofá e liga a TV, você já perdeu naquela noite. Isso
ocorre porque a quantidade de motivação necessária alternar
tarefas e fazer algo não impulsionado pela evolução, como comer
ou dormir é uma tarefa hercúlea.
É por isso que no momento em que você entra na porta e muda
para um novo ambiente é o momento mais crucial. Se neste
momento você diz a si mesmo que você só vai fazer 20 minutos
de prática de codificação, você provavelmente terá sucesso e use
sua própria inércia para acabar aprendendo por uma hora ou
Mais. Nenhum cérebro perceberá uma tarefa de 20 minutos como
muito esforço e você termina enganando seu cérebro para
aproveitar sua noite.
O próximo passo é desenvolver um hábito. A pesquisa sugere
que, para desenvolver um novo hábito, você deve realizar a tarefa
diariamente por um mês. Eu tenho usado esse próximo truque
para várias coisas diferentes, do exercício à codificação,
invariavelmente funciona como um encanto. Para prefaciar esse
truque, quero que você imagine uma parede com cinco pinturas
penduradas, quatro das quais estão perfeitamente alinhadas,
perfeitamente horizontal, mas um está torto. Agora imagine
mesmo, existe uma parte de você que quer consertar isso?
Agora vamos imaginar um calendário mensal com caixas que
representam dias. Se você nutriu esse novo hábito em um dia
específico, faz uma linha através desse dia. Se você continuou sua
série no dia seguinte, então você estender essa linha e assim por
diante. Há algo sobre não quebrar uma linha contínua que motiva
a maioria das pessoas a continuar a desenvolver um hábito. Por
mais estranho que pareça, há muitas ocasiões em que eu
Pensei e desistir, mas continuei por causa de uma longa e
contínua linha.
Código para uma finalidade
Quando comecei a aprender a codificar, havia inúmeras vezes que
eu pensava em desistir, de novo e de novo. Esta é uma história
comum entre codificadores autodidatas. Olhando para trás, depois
de ensinar tantos alunos, eu finalmente percebi o que está
acontecendo. Muitos iniciantes começam a aprender a codificar
escolhendo uma linguagem arbitrária e siga vários tutoriais.
Copiando código, linha por linha, às vezes escrevendo código
para calcular números primos, vezes para encontrar todos os
números pares. Mas você sabe o que? Eu posso encontrar nobre
números muito mais rápido pesquisando no Google e escolhendo
números pares é realmente não é tão interessante.
Aqui está a verdade. Se você está aprendendo a codificar para
aprender a codificar, será muito difícil para você ficar bom nisso.
Habilidades que exigem muito tempo para aprimorar, como a
programação, vão consumir sua piscina de motivação. Algo
interno que faz você esquecer de comer e dormir. Eu posso dizer
honestamente que a codificação em meus próprios projetos é uma
das mais coisas agradáveis que faço. Combina o pensamento
lógico com a criatividade e, no final, você terá feito algo. Na
maioria dos casos, algo que o mundo nunca viu. Algo que poderia
tornar sua vida mais fácil ou mais agradável. Algo que poderia
facilitar muito a vida das pessoas e mais agradável. É como fazer
uma moto personalizada louca e bonita em sua garagem, sem
precisar da garagem ou gastar um centavo nos componentes.
É isso que motiva a maioria das pessoas. A parte de criação. A
parte de fazer. Então estimamos você a começar a aprender a
codificar seguindo um tutorial que faz alguma coisa, qualquer
coisa. Claro, é improvável que no começo você esteja capaz de
codificar Clash of Clans ou League of Legends. Mas você poderá
fazer algo interessante. Pode ser um jogo de dados ou um
aplicativo de cartão de memória flash. Mas desde que no final do
tutorial, você tenha criado algo que possa usar e brincar, então
você estará muito mais motivado para codificar até o fim.
Durante todos os nossos cursos, sempre instruímos nossos alunos
a pensar em um aplicativo que eles querem fazer. Algo que usa as
habilidades que eles aprenderam durante o curso, mas também os
alongará um pouco, porque eles precisam descobrir como incluir
algumas novas funcionalidades.
Tivemos um aluno que criou um aplicativo que os acorda um
minuto antes todos os dias para facilitar a transição para um
horário de vigília anterior.
Há um aluno que criou um aplicativo de apresentação de slides
personalizado como presente dia das mães. Outra pessoa criou um
aplicativo que é um cronômetro para aperfeiçoar bifes com base
em seu peso e espessura.
Não há limites para sua imaginação. Será difícil quando você
começar trabalhando em seu próprio aplicativo, porque não há
instruções passo a passo, mas também trará a maior melhoria em
sua capacidade de codificação

Não existe "Linguagem


Perfeita para Aprender ”
Sempre que faço grandes conversas, sempre haverá uma pessoa
que me pergunta “Qual linguagem de programação devo começar
a aprender primeiro”? Existe uma percepção comum de que em
algum lugar existe uma linguagem perfeita para programadores
iniciantes. Alguns argumentam que é Python, outros dizem que é
Swift. Mas eu digo que eles estão todos errados.
Uma linguagem de programação é simplesmente uma ferramenta.
Não é diferente de qualquer outra ferramenta na sua caixa de
hardware. Se você quiser martelar um prego, deve usar um
martelo. Se você quiser consertar seus canos de água,
provavelmente precisará de uma chave inglesa. Sim, é possível
martelar um prego usando a lateral da chave e a mesma
linguagem de programação pode ser usada para resolver
diferentes tipos de problemas. O carpinteiro lhe dirá que sua
ferramenta favorita é um martelo e o encanador dirá que é a chave
de boca, mas ainda não a torna a “melhor ferramenta para
consertar as coisas ”.
Um desenvolvedor da Web informará que o JavaScript é a melhor
linguagem para um iniciante aprender. Um estatístico informará
que você será melhor atendido com a linguagem de programação
R. Mas no final das contas, tudo o que importa é o que você está
tentando fazer com sua ferramenta. Se você deseja criar
aplicativos para iOS, aprenda rápido. Se você deseja criar sites,
precisará de JavaScript. Mas a boa notícia são os principais
conceitos de programação: loops, condicionais, funções, etc. são
todos iguais. A diferença é principalmente sintática. Em inglês,
nós temos werewolves (lobisomens), em alemão eles têm
Werwölfe. Ainda é o mesmo mamífero que rasga a camisa que sai
durante a lua cheia, é soletrado diferentemente.

Imprimindo no console no Swift:


print ("Olá werewolves”)
Imprimindo no console em Java:
println ("Olá Werwölfe")

Portanto, decida a tarefa que você está tentando realizar e escolha


a melhor ferramenta para essa tarefa.

Entenda o que você esta


Escrevendo
Eu tenho um problema com a maneira como a maioria dos
tutoriais de programação é escrita. Existem muitos tutoriais nos
quais você vê: “é assim que você desenha uma
Coruja” fenomenal. É quase como se o programador tivesse boas
intenções e começasse por mostrando como fazer tudo, passo a
passo. Mas então, em algum momento, ele percebe que embarcou
em uma tarefa dificil e desiste. Eu tenho visto tutoriais em que o
autor começa com um nível de detalhe excruciante depois, no
meio do caminho, ele volta para "agora você simplesmente
configura um banco de dados na nuvem". Lembre-se de que este é
um tutorial voltado para iniciantes! Isso leva a uma série de
problemas. O problema mais comum é um aluno que apenas
copia o código no tutorial e não tem idéia do que ele faz.
Por que ele adicionou essa linha extra depois de analisar o JSON?
Por que ele está fazendo este dicionário de forma diferente do
último?
É muito fácil ficar de joelhos em um desses tipos de tutoriais,
porque promete ensiná-lo a construir "Flappy Bird" ou "Candy
Crush". Mas dois terços do caminho, nenhuma das coisas que
você está digitando faz sentido e você começa a ver vermelho em
toda a tela. Bugs. Cargas. Por quê? Nenhuma ideia. Nada roda. As
últimas 3 horas foram gastas copiando código e você aprendeu
nada além de talvez essa codificação seja péssima. Não caia nessa
armadilha. Se você vir um tutorial com saltos do iniciante ao
avançado após a linha 3 ou usa a palavra "simplesmente" muito
liberalmente ou não explicando o código deles, então pare. Deixe
esse tutorial. Há muitos peixes no mar. Outras vezes, o autor tenta
explicar o que está fazendo. Mas você ainda não entende o que
eles estão dizendo, então você está em um estágio avançado
tutorial que não vai melhorar sua programação. Pode ser tentador
construir grandes coisas, especialmente quando o blog promete
que qualquer um pode fazê-lo.
Mas se você não consegue entender o que está acontecendo, será
melhor atendido por construindo uma base melhor.

A chave para aprender a codificar é tudo sobre rampa. Você quer


ser esticado repetidamente e para que o conhecimento seja
construído sobre o conhecimento anterior. E se essa rampa é
muito íngreme, você vai se perder. Se essa rampa for muito rasa,
você terá entediado. O gradiente certo é diferente para todos. É
por isso que incentivamos os alunos a usar a funcionalidade de
alteração de velocidade liberalmente em nossos tutoriais. Dessa
forma, você pode ouvir em velocidade dupla se estiver
confortável com os conceitos e diminua para metade da
velocidade, se for algo desconhecido e você precisar de tempo
para entender e absorver.

Não há problema em não saber


Engenheiros de software são supostamente a profissão que tem a
maior população de pessoas com Síndrome do Impostor. A
síndrome do impostor é um fenômeno psicológico em que as
pessoas se sentem fraudulentas e massivamente subestimam suas
próprias habilidades.
Os programadores tendem a ser autocríticos e constantemente
sentem que todo mundo está melhor na programação do que eles.
Se você já se sentiu assim, não está sozinho, como estudos
mostram que uma massa de 70 por cento das pessoas têm
síndrome impostor.

Eu vi recentemente um post sobre o Q&A site Quora, onde


alguém perguntou: “Será que serei demitido do Google (ou de
outra grande empresa de tecnologia) se for pego usando
StackOverflow como referência? ”
Ele recebeu várias ótimas respostas de engenheiros que trabalham
no Google, Amazon e outras grandes empresas de tecnologia.
Quem já trabalhou como engenheiro de software lhe dirá que não
olhar para as referências é muito mais desaprovado. Na verdade,
eu desafio você a encontrar um único programador do Google que
não usou o StackOverflow. (Se você não estiver familiarizado, o
StackOverflow é um site colaborativo de perguntas e respostas
para programadores).
Muitos programadores novos temem que, verificando referências
e perguntando as pessoas a se mostrarem uma fraude e que não
sabem programar. Ninguém pode guardar todas as informações
relevantes em sua cabeça. Para exemplo, este é o nome de um
método iOS:
- (id)initWithBitmapDataPlanes:(unsigned char **)planes
pixelsWide:(NSInteger)width pixelsHigh:(NSInteger)height
bitsPerSample:(NSInteger)bps samplesPerPixel:(NSInteger)spp
hasAlpha:(BOOL)alpha isPlanar:(BOOL)isPlanar
colorSpaceName:(NSString *)colorSpaceName
bitmapFormat:(NSBitmapFormat)bitmapFormat
bytesPerRow:(NSInteger)rowBytes
bitsPerPixel:(NSInteger)pixelBits;

São quase 400 caracteres!


Na programação do iOS, existem mais de 800 classes, 9000
métodos e crescendo. No desenvolvimento web, há uma nova
estrutura toda semana. Ninguém esperará que você consiga se
lembrar do código. Esta é a razão precisa por que somos
programadores, podemos fazer o computador fazer coisas chatas
para nós. Por exemplo, o código para gravar áudio é apenas uma
breve maneira de pesquisa, por que você precisaria memorizá-lo?

A habilidade que a maioria dos empregadores procura ao recrutar


é a capacidade de pensar. O conhecimento é valorizado em um
mundo em que é difícil obter informações. Em 1800, apenas os
ricos tinham acesso a bons livros e bons professores. Agora,
todo mundo tem todas as informações que tinha e mais ao clique
de um mouse.
A informação está perdendo valor, a capacidade de pensar é o
estoque a comprar. Então não tenha medo de pesquisar, perguntar
no StackOverflow ou encontrar recursos para ajudá-lo resolver
seus problemas. Os melhores programadores fazem isso.
A habilidade que você precisa aprimorar é fazer boas perguntas e
entender as respostas. Não há nenhum código de copiar e colar
perfeito de uma resposta StackOverflow se você não tem ideia de
como isso funciona. Como o StackOverflow funciona em um
Sistema de reputação, é do interesse deles ser o mais claro
possível ao responder para ser marcado como correto e coletar
upvotes (pontos).
Na maioria dos casos, não faz sentido começar a pesquisar o
StackOverflow sempre que você ficar preso. A primeira opção
deve sempre estar em tentar descobrir você mesmo. Portanto, seu
programa não faz o que você esperava, mas antes que eu digitasse
as últimas 3 linhas de código, estava funcionando bem. Então,
vamos descobrir o que nessas últimas 3 linhas que quebrou meu
aplicativo?

Se você realmente não consegue descobrir, comece com o


Google. Procure sua consulta ou se você tem um bug, cole os
códigos de erro e a mensagem de erro. As chances são
que, como iniciante, seus problemas de programação serão muito
comuns e alguém pode até ter tido tempo para escrever uma
descrição clara e concisa como um tutorial para ajudá-lo a
entender seu erro. À medida que você se torna mais hábil em
programação, os problemas que você encontrará ficam cada vez
mais obscuros, mas, esperançosamente, se você seguiu as outras
11 regras, também será um programador mais capaz de descobrir
por si mesmo ou saber exatamente onde conseguir socorro.
A outra razão pela qual você deve começar com o Google é que o
algoritmo de busca do StackOverflow organiza perguntas e
respostas por tempo recente e não popularidade. Muitos dos
problemas que você encontrará ao iniciar o processo foram
perguntados e respondidos anos atrás, mas ainda são muito
populares.
Portanto, pergunte com sabedoria e você colherá os benefícios da
comunidade. Um dia quando você se tornar um mestre de código,
estará voltando a mesma comunidade e ajudando a próxima
geração de programadores.

Seja um imitador
No início da minha jornada de codificação, pensei que aprender a
codificar era ler um monte de livros. Comprei livros em C ++, C
#, Java e muito mais. O que você falasse, eu tinha. Mas eles não
fizeram muito além de me deixando confuso.
Eu li. Eu destaquei. Eu esqueci. Adormeci.
Os livros são bons como referências. Se você quiser mergulhar
fundo nos “delegates and protocols”, leia o capítulo sobre isso.
Mas se você quer aprender, fazer algo.
Mas o que você faz? Na falta de ideias? Seja um imitador. Faça o
seu próprio bloco de notas, faça o seu próprio MSPaint, faça seu
próprio piano. Se você gosta de jogos, faça o caça-minas, faça
Tetris, faça Flappy Bird. Eles não apenas serão úteis, mas eles
também serão a oportunidade perfeita para você descobrir como
fazer as coisas e obter experiência em encontrar ajuda. Algo novo
no mundo como projeções holográficas para smartphones,
ninguém poderá ajudá-lo com isso. Mas ao criar aplicativos ou
programas copiados, você estará seguindo o caminho
que muitos andaram antes de você. Dessa forma, você maximiza
as chances de que alguém poderá oferecer ajuda e conselhos
quando você ficar preso.
Ser responsável
Seja responsável perante alguém. Mostre seu trabalho.
O maior problema com os cursos de codificação on-line é a falta
de responsabilidade. Sem dúvida, existem muitos excelentes
cursos intensivos on-line e gratuitos (MOOCs), como Coursera,
Udacity, Udemy, Skillshare. Mas quais são as consequências de
não fazer sua lição de casa ou perder o valor de um mês de
palestras? Nada. Ninguém se importa. Vamos ser sinceros, a
motivação interna não é forte em nenhum de nós. Sempre
podemos encontrar uma razão pela qual merece a “Netflix e
chill”. Eu não posso nem contar como muitos cursos on-line nos
quais me inscrevi e, posteriormente, não ouvi única palestra ou
completou uma única parte do curso.
Você precisa de responsabilidade e compromisso com o
aprendizado. Pense de volta aos seus dias da universidade, teria se
incomodado em terminar esse ensaio às 3 da manhã, se nada
dependia disso? Você teria ido a alguma das palestras se não o
fizesse? Se preocupa em passar ou falhar?
É por isso que tentamos introduzir responsabilidade em nossos
cursos. Nós temos percebido que combinar alunos com um
amigo, ajuda. Outra pessoa que é iniciante, no mesmo nível que
você, que às vezes ajuda você e outras vezes precisa de sua ajuda.
Mas à medida que as taxas de aprendizado das pessoas divergem
ou se você está emparelhado com um bugger preguiçoso, você
pode trocá-lo e obter um novo camarada. Como esse sistema é
totalmente voluntário, existe um certo grau de auto-seleção para
pessoas que trabalhem bem em equipe e são motivadas por outras.
Assim como você vá à academia com seu parceiro, é mais
provável que você aprenda se tiver um amigo de codificação.
Portanto, se você não estiver no nosso curso, encontre o seu. Há
uma abundância de Grupos do Facebook dedicados àqueles que
estão aprendendo a codificar. Há uma todo o subreddit (r /
programador aprendiz) dedicado a isso, tenho certeza que você
encontrará pessoas afins em algum lugar online ou offline.
A próxima coisa que vou lhe dizer será controversa. Acreditamos
que as pessoas não valorizam coisas que não têm valor. Esta é a
razão pela qual o Coursera está realizando um grande número de
cursos gratuitos. Eles viram que milhões de pessoas estavam se
inscrevendo, mas ninguém estava usando nenhuma das salas e
muito menos concluindo qualquer um dos projetos. Na verdade,
foi prejudicial para aprendizagem dos alunos ao oferecermos
curso gratuito. Todos nós temos um grau de acumulação
tendências e é muito fácil se inscrever para um monte de coisas
que o futuro, você pode sofrer. Sempre há amanhã, ela diz.
Portanto, se você é movido mais por motivação externa do que
interna, tente usar um pouco de motivação financeira para
impulsionar seu aprendizado. Pense em quanto uma habilidade de
vida vale a pena para você e coloque seu dinheiro onde estão suas
intenções.
Veja se você está se envolvendo com o conteúdo do curso mais
com ou sem o compromisso financeiro. Existem muitos lugares
onde você pode pagar algo acessível para motivar-se a começar
um hábito de aprendizado regular.
A parte final desta regra é tentar encontrar maneiras de ser
avaliado. OK então sendo avaliado é lá em cima com morte e
impostos em termos de como muita gente gosta disso. Mas ao
aprender qualquer coisa, é sempre importante obter feedback.
Você receberá uma avaliação objetiva do seu nível de habilidade
atual, em vez de se sentir um impostor ou cheio de falsa
confiança.
O Coursera possui um sistema em que os alunos marcam o
trabalho um do outro. No App Brewery, usamos a educação do
Github para testar seu código e procurar bugs e problemas com o
seu código. Mas se você estiver em um curso de codificação que
não tiver um sistema como esse, então valerá a pena encontrar um
mentor de código quem pode revisar seu código e fornecer
feedback. Somente o que é medido pode ser melhorado.
Continue aprendendo
Ser um bom programador é como ser Madonna. Não acabe e
compre seus sutiãs em forma de cone ainda. O que eu quero dizer
é a programação continuará evoluindo. Para permanecer
relevante, você deve manter se reinventando.
Sempre há novas tendências, novas tecnologias e novos idiomas.
Ótimo programadores gostam de aprender coisas novas, mesmo
que isso signifique que elas se tornam um iniciante novamente.
O mundo continuará se movendo, se você ficar em um só lugar,
acabará ficando atrás. Conheço programadores que nunca
aprenderam mais nada além de Fortran. Conheço programadores
de Objective-C que não conseguem se convencer a dar o salto e
aprender Swift, mesmo que a Apple esteja dizendo aos
desenvolvedores que o objetivo-C será eliminado gradualmente.
Todos sabemos que a Apple nunca faz ameaças que eles não
realizam, basta olhar para a unidade óptica (e logo a plug do fone
de ouvido?). Não seja a unidade óptica. Ou melhor, não seja o
laptop que ainda está tentando reproduzir CDs. Se suas
necessidades mudarem, aprenda a usar uma nova ferramenta.
Continue aprendendo, fique relevante.
Você é um desenvolvedor da web que sempre quis entrar no
mundo móvel desenvolvimento? Escolha uma plataforma e
aprenda iOS ou Android. Você é um front-end desenvolvedor que
é tentado pelo full-stack? Escolha o desenvolvimento da Web
com NODE. Se você já entende os principais conceitos de
programação, escolha mais algumas linguagens serão muito mais
fáceis do que começar do zero.
"Aprender x em y minutos" é um ótimo recurso para os
programadores existentes aprenderem novas linguagens de
programação. Confira seus recursos aqui: learnxinyminutes.com

Jogar pebolim
Quando você vê filmes de Hollywood sobre programadores, eles
geralmente ficam frente de um laptop, esmagando o teclado como
se estivessem em algum tipo de situação de alto risco.
Quando você vê reais programadores trabalhando. Eles tendem a
ficar assim na frente do monitor: “Sim, está certo”. Sem digitação.
Apenas olhando. Olhando muito. Em uma empresa, as pessoas
tendem a reclamar que os programadores estão sempre jogando
pebolim ou fazendo outra coisa que não parece trabalho. Pessoas
podem não ser capaz de dizer, mas eles estão realmente
trabalhando. Quando você os vê curtindo o jogo de pebolim, rindo
e brincando, eles provavelmente estão sofrendo por dentro. Pois
há um erro, sempre há um erro. Ou há algo misterioso no código
deles que eles não conseguem descobrir.
Talvez o código esteja funcionando perfeitamente, mas
inesperadamente (os programadores não como qualquer coisa
inesperada). Como se eles digitassem mil linhas de uma só vez, e
de forma inesperada não há erros. Outras pessoas podem não
entender, mas nessas situações, quase sempre vale a pena se
afastar do seu código e dar-lhe algum tempo e distância.
Você tem um bug no seu código que não consegue resolver?
Durma, brinque, pebolim, dê um passeio. Em 9 de 10 casos, a
solução se tornará aparente. Nos restantes 1 em cada 10 casos,
você está ferrado. Isso pode parecer pouco intuitivo, mas meu
conselho é sempre codificar menos, pense mais. Depois que o
código mal elaborado é escrito e trazido para o mundo, você
inevitavelmente precisará voltar e vasculhar seu código, linha por
linha, refatorando e excluindo itens. Isso é sempre uma
experiência dolorosa.
Então lembre-se, o código mais fácil de se livrar é o código que
nunca foi escrito.

Obter um Mentor
Quando eu estava aprendendo francês, me deparei com um
método que resultava no maior salto em minhas habilidades de
falar. Isso foi ter trocas de idiomas pelo Skype. Gostaria de parear
com um falante nativo de francês que queria aprender inglês.
Passávamos meia hora falando francês e meia hora falando inglês.
Nós dois dedicaríamos uma hora por semana para ir melhorando o
idioma que estávamos tentando aprender. Enquanto
conversávamos em francês, ele corrigia minha
Pronúncia ou gramática e sugeria as maneiras pelas quais eu
poderia construir frases para soar mais nativas.
A programação em pares é uma técnica de desenvolvimento de
software ágil, baseada em princípios muito semelhantes. Por
exemplo, um aluno e um mentor sentariam na mesma estação de
trabalho e resolva um problema. O aluno está em encarregado de
escrever o código e o mentor analisa o código linha por linha
conforme são escritos. Pode ser desconfortável no começo porque
é um pouco embaraçoso cometer erros e tê-los apontado para
você. Mas se você tem um mentor que é um bom professor, então
eles oferecem décadas de sabedoria acumulada isso pode levar a
melhorias maciças em sua própria capacidade, tudo dentro de
algumas horas.

Você poderá acessar alguém que teve tempo de aprimorar suas


habilidades, encontrar maneiras eficientes de fazer as coisas e
mostrar como eles programam e abordam problemas.
Bons mentores não resolvem seus problemas, eles praticam o
Socrático método de fazer boas perguntas para você pensar por si
mesmo. Se vocês me perguntassem como escrever uma chamada
em rede, é claro, eu posso simplesmente digitar tudo e você copia.
Mas isso não ajuda. Em vez disso, se você me mostrar como você
aborda o problema e eu mostro como eu abordo o problema, então
você pode aprender muito mais do que apenas seguir uma receita.
Na próxima vez que encontrar um problema diferente, você
poderá aplicar a mesma abordagem e começar a resolvê-lo você
mesmo. Lembre-se sempre de que as informações são o barato.
Há um século, se eu quisesse aprender sobre as causas da doença,
provavelmente tinha que ser um aristocrata, ou cortar madeira e
levar água para um mestre e se tornar seu aprendiz. Hoje em dia
eu posso pesquisar no Google e obter minha resposta em alguns
segundos.
Portanto, não se prenda à informação. Aprenda a pensar ao invés
disso em como abordar um problema. Como resolver o problema.
Como enquadrar o problema. Essas habilidades o levarão muito
além da simples memorização e regurgitação.
Mas onde você encontra um mentor?
Existem Meetups relacionados à programação que estão em quase
todas as cidades do mundo. Ir para www.meetup.com e encontrar
um relacionado a linguagem que você está tentando aprender.
Participe dos encontros, conheça pessoas. Troque seus
conhecimentos para os seus conhecimentos. Talvez alguém
precise de um contador, talvez alguém precisa de aconselhamento
jurídico. Troque seu tempo pelo tempo deles. Não diga para
alguém, "você será meu mentor?". Ninguém quer jogar fora o seu
livre com algum estranho. Em vez disso, ofereça sua ajuda em
troca da ajuda deles e você conseguirá encontrar um mentor 95%
do tempo.

Adquira o habito de jogar


Então você tem uma ideia incrível de aplicativo. Mas é
complicado demais para o seu nível de habilidade atual. O que
você faz? Você se junta ao Chunking Express. Não, eu não estou
falando sobre o filme da casa de arte. Estou falando de quebrar
abaixo seu problema de programação.
Digamos que você esteja tentando criar um robô capaz de torrar
manteiga. (Se alguém está trabalhando em uma delas, eu ficaria
feliz em financiar seu Kickstarter!) O robô não sabe nada sobre
torradas, manteiga ou facas. Acredite ou não, na verdade, leva
circuitos bastante sofisticados em nossos cérebros para poder
conseguir algo tão simples como untar uma fatia de torrada. (Isso
é provavelmente por que não consigo fazê-lo sem café).
Portanto, criar um robô que faça tudo isso de forma autônoma é
realmente complicado e difícil. Mas como somos bons
programadores, podemos fazer algumas tarefas quebrar o
problema.
O robô realmente não precisa saber o que é torrada e o que é
manteiga, não estamos fazendo Skynet aqui, então vamos nos ater
às coisas práticas. Tem três coisas que precisamos que o robô
faça:
1. Pegue e organize o pedaço de torrada na posição ideal de
manteiga.
2. Pegue uma porção de manteiga.
3. Coloque a manteiga na torrada com uma cobertura decente
(esta é a parte que acho mais difícil).
Em seguida, você divide cada módulo ainda mais. No processo,
você pode pensar em maneiras alternativas de resolver o
problema. Por exemplo, o robô precisa "espalhar" a manteiga? Ou
pode apenas derreter a manteiga na torrada? Precisa aprender a
pegar uma faca? Ou pode ter algum tipo de braço de faca
embutido, como algum tipo de pirata na prisão?
Quanto mais você quebra os problemas e definir o problema que
está tentando resolver, mais fácil é empacotar seu código em
pedaços pequenos.
Quanto mais simples o pedaço, mais fácil é enfrentar.
Então, da próxima vez que você tentar fazer esse "cruzamento
entre o Snapchat e Evernote ”, lembre-se de dividir o problema
em partes solucionáveis.

Quebrar códigos de outra pessoa


Um dos passos mais importantes a serem seguidos para fazer o
salto de codificador aprendiz para um programador pleno direito é
entender como obter Socorro. Todo mundo precisa de ajuda.
Todos, incluindo os chamados "Nível de deus Programadores ”.
Mas o que você faz com a ajuda determina a rapidez com que
você progride como codificador. Em um site como o
StackOverflow, pode ser muito tentador copiar e cole o código
que alguém forneceu. Seu programa funcionará exatamente como
você esperava que isso acontecesse e você seguiria suas alegres
maneiras de programação. Este exercício não ensinou nada além
de confiar no código. Porque da próxima vez que encontrar o
mesmo problema, mas em uma situação diferente, essa mesmo
trecho de código fornecido por alguém pode não funcionar mais.
Então o que você faz? Você está preso.
É por isso que existe uma regra na programação que diz “nunca
copypaste code que você não entende ”. Então, o que você deve
fazer quando for confrontado com um bloco de código que
resolve seu problema, mas você não tem ideia de como funciona?
Quebre isso.
Etapa 1 - Copie e cole o código no seu programa. (Sim, sim, eu
sei que acabei de dizer para não fazer isso, paciência, paciência).
Etapa 2 - Verifique se o seu programa ou aplicativo está
funcionando como esperado. Ou seja, confirmo que o bloco de
código realmente resolveu o seu problema.
Etapa 3 - Exclua a cópia e o bloco colado do código linha por
linha.
Etapa 4 - Sempre que você excluir uma linha, verifique o que foi
quebrado. Faz o aplicativo ainda funciona? Quais são os códigos
de erro? O que está excluindo essa linha de código feito para o
seu programa?
Etapa 5 - Mesmo que você pense que sabe o que uma linha de
código faz, exclua-a de qualquer forma. A tarefa mais importante
como programador é sempre testar suas suposições contra o
resultado. Para a sensação mais agradável como um programador
é para o mundo real validar suas suposições. Você sabe como é
bom quando seu namorado / namorada / marido / esposa diz que
três palavras mágicas?
"Você estava certo". É assim, mas melhor.
Etapa 6 - Troque algumas das linhas. A mesma funcionalidade
pode ser alcançada com uma ordem diferente de linhas? Por que
eles foram escritos na ordem eles foram escritos?
Ao quebrar o código da solução, linha por linha, você aprenderá e
entenderá o que cada linha faz e por que foi escrita. Esta é uma
maneira muito melhor de usar código de outras pessoas do que
apenas colar e esperar o melhor. Depois que você entender por
que cada uma dessas linhas era necessária, na próxima vez que
você encontrar um problema semelhante, você será capaz de
resolver o problema e resolva você mesmo.
Depois de dominar a quebra de código do StackOverflow, o
próximo recurso o alvo é o GitHub. É uma ferramenta usada pelos
programadores para colaboração, mas é também um dos maiores
repositórios de código-fonte aberto.
Então, como você pode usá-lo para se tornar um programador
melhor? Digamos que você quer fazer um clone do Instagram.
Infelizmente, você não sabe como fazer isso. Então, vá para o
github.com e pesquise "Instagram" ou " aplicativo de foto".
Inevitavelmente, haverá algo escrito em Swift / Objective-C /
Java que você pode baixar e dar uma olhada.
Pense na estrutura do programa deles. Dê uma olhada em todas as
classes, as constantes, as interação. Faça algumas modificações no
código. Verifique se ainda funciona ou você quebrou? Por que
você quebrou? Existe um link que você não se identificou? Faça a
si mesmo um monte de perguntas, aprenda com o método
socrático. Derrube o projeto e entenda como ele foi construído.
Quando você começa a ficar realmente bom nisso, a próxima
coisa que você pode tentar é Engenharia reversa. Encontre um
pequeno projeto no GitHub feito por um conceituado
programador, baixe o aplicativo. Execute-o e veja todas as suas
funcionalidades. Toque por aí com isso. Em seguida, construa-o
do zero e, quando terminar, compare seu código com o código.
Existem ganhos de eficiência que você poderia ter obtido?
Existem soluções para coisas que você não conseguiu descobrir?
Agora você está realmente entrando nas grandes ligas.

Isso é tudo por agora pessoal. O que você ainda está esperando? A
noite ainda é uma criança! Codifique algo, faça algo, aprenda algo
hoje! Acesse www.appbrewery.co para saltar iniciar a sua viagem
codificação!

www.appberwery.co
Todos os direitos reservados © The App Brewer

Potrebbero piacerti anche