Você está na página 1de 35

Traduzido do Inglês para o Português - www.onlinedoctranslator.

com

APRENDER A
CÓDIGO
12 Regras para
Aprenda a codificar

Dra. Angela Yu
Instrutor líder de desenvolvimento de iOS,
WatchOS e Web na The App Brewery

www.appbrewery.co
Conteúdo

1. Engane seu cérebro com a regra dos 20 minutos

2. Código para um propósito. tem um projeto

3. Não existe uma “língua perfeita para aprender”

4. Entenda o que você está escrevendo

5. Tudo bem não saber

6. Seja um imitador

7. Prestar contas a alguém. Mostre seu trabalho

8. Continue aprendendo

9. Jogue pebolim

10. Obtenha um mentor - Experimente a Programação em Pares

11. Adquira o hábito de fragmentar

12. Quebre o código de outra pessoa

l direitos reservados © The App Brewery


www.appbrewery.co
1
1
Engane seu cérebro com
a regra dos 20 minutos

Aprender a codificar é um pouco como ir à academia. Mesmo se você maximizar e

passou um fim de semana inteiro na academia, você não verá uma diferença visível

seu corpo. Quanto mais regularmente você aprender a codificar, mais provável será que

você começará a ver seus músculos de codificação rasgados. (A ironia não passa despercebida

mim).

Mas o problema é onde você encontra o tempo? Entre trabalhar o seu


emprego em tempo integral, passando tempo com sua família e administração 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,


1 hora de deslocamento e aproximadamente 2 horas em manutenção geral de vida

coisas, como comer. Então isso me deixou com apenas 9 horas restantes no meu dia.

Teoricamente, 2 horas poderiam ser alocadas para a prática de codificação e 7 horas para

dorme. Mas não há nada mais difícil do que tentar convencer seu
cérebro saturado de trabalho para sentar e aprender quando você poderia estar assistindo

Game of Thrones com um pote de sorvete.

Mas então eu encontrei um truque.

Como humanos, temos muita inércia. Isso pode ser ruim para nós - estou olhando
você, conjunto de caixas “24”. No entanto, também podemos usar isso a nosso favor. eu encontrei

l direitos reservados © The App Brewery


www.appbrewery.co
2
que assim que comecei a codificar e fazer coisas, fiquei tão absorto no
projeto, que não me importava mais com TV, comida ou sono. Houve bastante
alguns fins de semana em que codifiquei até o nascer do sol.

Então, como tiramos vantagem dessa inércia? Primeiro, você deve entender
que a troca de tarefas é muito difícil. Requer muita motivação. se assim que
ao chegar em casa, você se joga no sofá e liga a TV, você
já perdeu naquela noite. Isso ocorre porque a quantidade de motivação necessária
para mudar de tarefa 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 pela porta e muda para um novo

ambiente é o momento mais crucial. Se neste momento você disser a si mesmo


que você fará apenas 20 minutos de prática de codificação, você provavelmente
provavelmente terá sucesso e usará 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 durante um mês. Eu tenho

usou este próximo truque para muitas coisas diferentes, desde o exercício até a codificação,

invariavelmente funciona como um encanto. Para começar este truque, quero que você imagine um

parede com cinco pinturas penduradas, quatro das quais perfeitamente alinhadas,

perfeitamente horizontal, mas um é torto. Agora realmente imagine isso, há uma parte

de vocês que quer consertar isso?

Agora vamos imaginar um calendário mensal com caixas que representam


dias. Se você cultivou esse novo hábito em um determinado dia, então você faz uma

linha até aquele dia. Se você continuou sua seqüência no dia seguinte, então você

estender essa linha e assim por diante. Há algo sobre não


quebrando uma linha contínua que motiva a maioria das pessoas a continuar a

l direitos reservados © The App Brewery


www.appbrewery.co
3
desenvolver um hábito. Por mais estranho que pareça, há muitas vezes em que eu
desistiram, mas obrigados a continuar por causa de uma fila longa e contínua.

Experimente com um calendário imprimível sobreaqui .

l direitos reservados © The App Brewery


www.appbrewery.co
4
2
Código para um propósito

Quando comecei a aprender a codificar, houve inúmeras vezes em que


pegou e desistiu, de novo e de novo. Esta é uma história comum entre
codificadores autodidatas. Olhando para trás, depois de ensinar tantos alunos, finalmente

perceber o que está acontecendo. Muitos iniciantes começam a aprender a codificar escolhendo

uma linguagem arbitrária e siga junto com um monte de tutoriais. copiando


código, linha por linha, às vezes escrevendo código para descobrir números primos, outras

vezes para encontrar todos os números pares. Mas você sabe o que? eu posso encontrar primo

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 por aprender a codificar,
será muito difícil para você ficar bom nisso. Habilidades que exigem muito
tempo para aprimorar, como programação, vai comer em seu pool de
motivação. Algo interior que faz você esquecer de comer e dormir. EU
posso dizer honestamente que codificar em meus próprios projetos é uma das atividades mais

coisas agradáveis que faço. Combina pensamento lógico com criatividade e, ao mesmo tempo,

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 a vida de muita gente e
mais agradável. É como fazer uma linda moto customizada em seu
garagem, sem precisar da garagem nem gastar um centavo com os componentes.

Isso é o que motiva a maioria das pessoas. A parte criadora. A parte de fazer. Então eu

exorto você a começar a aprender a codificar seguindo um tutorial que torna

l direitos reservados © The App Brewery


www.appbrewery.co
5
alguma coisa qualquer coisa. Claro, é improvável que no começo você seja
capaz de codificar Clash of Clans ou League of Legends. Mas você será capaz de
fazer algo interessante. Pode ser um jogo de dados ou um aplicativo de cartão flash. Mas

contanto que no final do tutorial você tenha feito algo que possa usar
e brincar, você ficará muito mais motivado para codificar até o fim.

Durante todos os nossos cursos, sempre pedimos aos nossos alunos que pensem em uma simples

aplicativo que eles querem fazer. Algo que usa as habilidades que eles têm
aprenderam durante o curso, mas também vão alongá-los um pouco porque eles têm

para descobrir como incluir algumas novas funcionalidades.

Tivemos um aluno que passou a fazer um aplicativo que os acordava


minuto mais cedo todos os dias para facilitar a transição para um horário de vigília mais cedo.

Tem aluna que fez um aplicativo de slideshow personalizado como presente de dia das mães

presente. Alguém criou um aplicativo que é um cronômetro para tornar perfeito

bifes com base em seu peso e espessura.

Não há limites para a sua imaginação. Vai 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.

l direitos reservados © The App Brewery


www.appbrewery.co
6
3
Não existe “Perfeito
Língua para Aprender”

Sempre que faço grandes palestras, sempre haverá uma pessoa que me pergunta

“qual linguagem de programação devo começar a aprender primeiro”? existe isso

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 nenhum outro

ferramenta em sua caixa de hardware. Se você quer martelar um prego, você deve ser

usando um martelo. Se você deseja consertar seus canos de água, provavelmente precisará de um

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 dirá que sua ferramenta favorita é um martelo e


o encanador dirá que é a chave inglesa, mas ainda não a torna a “melhor
ferramenta para consertar as coisas”.

Um desenvolvedor web lhe dirá que JavaScript é a melhor linguagem para aprender
Um iniciante. Um estatístico irá aconselhá-lo que você estará melhor servido com o R
linguagem de programação. 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ê quiser criar sites, precisará de JavaScript. Mas o bom


novidades são os principais conceitos de programação: loops, condicionais, funções, etc.

eles são todos iguais. A diferença é principalmente sintática. Em inglês, nós


têm lobisomens, em alemão eles têm Werwölfe. ainda é o mesmo

l direitos reservados © The App Brewery


www.appbrewery.co
7
mamífero rasgador de camisa que sai durante a lua cheia, é apenas soletrado
diferentemente.

Imprimindo no console em Swift:

print(“Olá Lobisomens”)

Imprimindo no console em Java:

println(“Olá Werwölfe”)

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


ferramenta para essa tarefa.

l direitos reservados © The App Brewery


www.appbrewery.co
8
4
Entenda o que você é
Escrevendo

Eu tenho um problema com a maneira como a maioria dos tutoriais de programação são escritos.

Existem muitos tutoriais onde você vê o “é assim que você desenha um


fenômeno da coruja.

l direitos reservados © The App Brewery


www.appbrewery.co
9
É 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 de Sísifo e desiste. Eu tenho
vi tutoriais onde o autor começa com um nível excruciante de detalhes
então, no meio do caminho, reverte para “agora você simplesmente configura um banco de dados em nuvem”. Consequência

em mente 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 do tutorial e não tem ideia do que ele faz.
Por que ele adicionou essa linha extra depois de analisar o JSON? Por que ele está fazendo

este dicionário diferentemente do anterior?

É muito fácil ficar de joelhos em um desses tipos de tutoriais porque


promete ensinar como 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. Insetos. Muitos deles. Porque? Nenhuma idéia.

Nada corre. As últimas 3 horas foram gastas copiando código e você aprendeu
nada além de talvez essa codificação seja uma merda.

Não caia nesta armadilha. Se você vir um tutorial que salta do iniciante para o
avançado após a linha 3 ou usa a palavra "simplesmente" com muita liberalidade ou não

explicar qualquer um dos seus códigos, então pare. Deixe esse tutorial.

Tem muito peixe no mar.

Outras vezes, o autor tenta explicar o que está fazendo. Mas você ainda
não entende nada do que eles estão dizendo, então você está em um nível avançado

tutorial que não vai melhorar sua programação. Pode ser tentador construir
coisas grandiosas, especialmente quando o blog promete que qualquer um pode fazer.

Mas se você não consegue descobrir o que está acontecendo, você será melhor atendido por

construindo uma base melhor.

l direitos reservados © The App Brewery


www.appbrewery.co
10
A chave para aprender a codificar está na rampa. Você quer ser esticado
uma e outra vez e para que o conhecimento seja construído sobre o conhecimento anterior. 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 encorajamos
alunos usem a funcionalidade de mudança de velocidade liberalmente em nossos tutoriais. Esta

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

compreender e absorver.

l direitos reservados © The App Brewery


www.appbrewery.co
11
5

Tudo bem não saber

Os engenheiros de software são supostamente a profissão que tem o maior


população de portadores da Síndrome do Impostor. A Síndrome do Impostor é uma

fenômeno psicológico onde as pessoas se sentem como fraudes e massivamente

subestimar suas próprias habilidades e habilidades.

Os programadores tendem a ser autocríticos e constantemente sentem que todo mundo está

melhor em programação do que eles. Se você já se sentiu assim, você não é


sozinho, pois estudos mostram que uma enorme70 por cento das pessoas têm impostor

síndrome .

l direitos reservados © The App Brewery


www.appbrewery.co
12
Recentemente, vi uma postagem no site de perguntas e respostas Quora em que alguém perguntou:"Gostaria

Sou demitido do Google (ou de outra grande empresa de tecnologia se for pego usando

StackOverflow como referência?”

Ele recebeu várias respostas ótimas de engenheiros que trabalham no Google,


Amazon e outras grandes empresas de tecnologia. Qualquer pessoa que tenha trabalhado como

engenheiro de software irá dizer-lhe quenão olhar as referências é muito mais


desaprovado. Na verdade, eu desafio você a encontrar um único programador do Google

que não usou Stack Overflow. (Se você não estiver familiarizado, StackOverflow é um

site colaborativo de perguntas e respostas para programadores).

Muitos novos programadores temem que, ao verificar as referências e perguntar


pessoas por ajuda, eles se apresentarão como uma fraude que não sabe
programa. Ninguém pode manter todas as informações relevantes em sua cabeça. Para

exemplo, este é o nome de um método iOS:

- (id)initWithBitmapDataPlanes:( não assinado char**)planos pixelsWide:( NSI inteiro)largura


pixelsAlto:( NSI inteiro)height bitsPerSample:( NSI inteiro)bps
samplesPerPixel:( NSI inteiro)spp hasAlpha:(BOOL)alpha isPlanar:(BOOL)isPlanar
colorSpaceName:( NSString*) colorSpaceName
bitmapFormato:( NSBitmapFormat )bitmapFormat bytesPerRow:( NSI inteiro)rowBytes
bitsPorPixel:( NSI inteiro)pixelBits;

São quase 400 caracteres!

Na programação iOS, são mais de 800 classes, 9000 métodos e


crescente. No desenvolvimento web, há uma nova estrutura toda semana. Ninguém
espera que você consiga se lembrar do código. Esta é a razão exata
por que somos programadores, podemos fazer com que o computador faça as coisas chatas

l direitos reservados © The App Brewery


www.appbrewery.co
13
para nós. Por exemplo, o código para gravar som é apenas uma pesquisa curta
embora, por que você precisa memorizá-lo?

A habilidade que a maioria dos empregadores procura ao recrutar é a capacidade de pensar.

O conhecimento é valorizado em um mundo onde a informação é difícil de encontrar. No

1800, apenas os ricos tinham acesso a bons livros e bons professores. Agora,
todos têm todas as informações que tinham e muito mais com o toque de um mouse.

A informação está perdendo valor, a capacidade de pensar é a ação a ser comprada. 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 o


responder. Não há como copiar e colar o código de uma resposta do StackOverflow se

você não tem ideia de como funciona. Como o StackOverflow funciona em um

sistema de reputação, é de seu interesse ser o mais claro possível em suas


responda para ser marcado como correto e coletar votos positivos.

Na maioria dos casos, não faz sentido começar a pesquisar no StackOverflow


sempre que você ficar preso. A primeira opção deve ser sempre tentar descobrir
fora de si mesmo. Portanto, seu programa não faz o que você esperava, mas antes
Digitei as últimas 3 linhas de código, estava funcionando bem. Então vamos descobrir o que

nessas últimas 3 linhas quebrou meu aplicativo?

Se você realmente não consegue descobrir, comece com o Google. Pesquise 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 se dado ao trabalho de escrever um texto claro e conciso
tutorial para ajudá-lo a entender o seu bug. À medida que você se torna mais habilidoso em

programação, os problemas que você encontrará ficam cada vez mais obscuros,
mas espero que, se você seguiu as outras 11 regras, você também será um

l direitos reservados © The App Brewery


www.appbrewery.co
14
programador capaz e descubra você mesmo ou saiba exatamente onde obter
ajuda.

A outra razão pela qual você deve começar com o Google é que o StackOverflow
algoritmo de busca organiza perguntas e respostas por atualidade e não
popularidade. Muitos dos problemas que você encontrará ao começar serão
foram feitas e respondidas 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ê mesmo se tornar um mestre do código, estará devolvendo a esse mesmo

comunidade e ajudando a próxima geração de programadores.

l direitos reservados © The App Brewery


www.appbrewery.co
15
6
Seja um imitador

No início da minha jornada de codificação, pensei na maneira de aprender a codificar

era ler um monte de livros. Comprei livros sobre C++, C#, Java e
carrega mais. Você escolhe, eu tinha. Mas eles não fizeram muito além de
me deixando confuso.

Eu li. Eu destaquei. Eu esqueci. Adormeci.

Livros são bons como referências. Se você quiser se aprofundar nos delegados e
protocolos, leia o capítulo sobre isso. Mas se você quer aprender,fazer
algo .

Mas o que você faz?

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 caça-minas,
fazer Tetris, fazer 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 que é novo para o mundo


como projeções holográficas de smartphones, ninguém poderá ajudá-lo
com. Ao criar aplicativos ou programas imitadores, você estará trilhando o caminho

que muitos caminharam antes de você. Assim você maximiza as chances de


alguém poderá oferecer ajuda e conselhos quando você ficar preso.

l direitos reservados © The App Brewery


www.appbrewery.co
16
7
Ser responsável

Prestar contas a alguém. Mostre seu trabalho.

O maior problema com os cursos de codificação online é a falta de responsabilidade.

Sem dúvida, existem muitos cursos on-line abertos massivos (MOOCs),


como Coursera, Udacity, Udemy, Skillshare. Mas quais são os
consequências de não fazer sua lição de casa ou perder um mês de
palestras? Nenhuma coisa. Ninguém se importa.

Vamos enfrentá-lo, a motivação interna não é forte em nenhum de nós. Nós sempre podemos

encontrar uma razão pela qual nósmerecepara “Netflix e relaxar”. Eu não posso nem contar como

muitos cursos online em que me inscrevi e posteriormente não ouvi um


única palestra ou concluiu um único trabalho de curso.

Você precisa de responsabilidade e compromisso com o aprendizado. Pense de volta ao seu

dias de universidade, teria se incomodado em terminar aquela redação às 3 da manhã se nada

dependia disso? Você teria ido a alguma das palestras se não tivesse
se importa em passar ou reprovar?

É por isso que tentamos introduzir responsabilidade em nossos cursos. nós temos

percebi que combinar os alunos com um amigo ajuda. Outra pessoa que está
um iniciante, no mesmo nível que você que às vezes ajuda você e outros
vezes precisa de sua ajuda. Às vezes, conforme as taxas de aprendizagem 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 trabalham bem em equipe e são motivadas por

l direitos reservados © The App Brewery


www.appbrewery.co
17
outras. Assim como é mais provável que você vá à academia se se inscrever com seu

parceiro, é mais provável que você aprenda se tiver um amigo de codificação.

Portanto, se você não está em nosso curso, encontre o seu. Há muito


Grupos do Facebook dedicados a quem está aprendendo a programar. Há uma
subreddit inteiro (r/learnprogramming) dedicado a isso, tenho certeza que você encontrará

pessoas afins em algum lugar online ou offline.

A próxima coisa que vou contar será controversa. nós acreditamos que
as pessoas não valorizam coisas que não têm valor. Esta é a razão pela qual
O Coursera está removendo um grande número de seus cursos gratuitos. Eles viram isso

milhões de pessoas estavam se inscrevendo para isso, mas ninguém estava pegando nenhum dos

aulas e muito menos concluir qualquer um dos projetos. Na verdade, foi prejudicial para

aprendizagem dos alunos para oferecer um 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. Há sempre amanhã, diz ela.

Portanto, se você é movido mais por motivações externas do que internas, tente usar um

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 mais com o conteúdo do curso com ou sem o
compromisso financeiro. Há muitos lugares onde você pode pagar
algo acessível para se motivar a iniciar um hábito regular de aprendizado.

A parte final desta regra é tentar encontrar maneiras de ser avaliado. OK então
ser avaliado está ao lado de morte e impostos em termos de como
muita gente gosta. 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 tem um sistema onde os alunos marcam os trabalhos uns dos outros. No

App Brewery, usamos a educação do Github para testar seu código e procurar por bugs

l direitos reservados © The App Brewery


www.appbrewery.co
18
e problemas com seu código. Mas se você estiver em um curso de codificação que não

tem um sistema como este, então valerá a pena encontrar um mentor de código
que podem revisar seu código e fornecer feedback. Só o que é medido pode
ser melhorado.

l direitos reservados © The App Brewery


www.appbrewery.co
19
8
Continue aprendendo

Ser um bom programador é um pouco como ser a Madonna.

Não corra e compre seus sutiãs em forma de cone ainda. O que eu quero dizer é

a programação continuará evoluindo. Para se manter relevante, você deve manter


se reinventando.

Sempre há novas tendências, novas tecnologias e novas linguagens. Excelente


programadores gostam de aprender coisas novas, mesmo que isso signifique que eles se tornem um

iniciante novamente.

O mundo vai continuar se movendo, se você ficar em um lugar, você acabará sendo deixado

atras do. Conheço programadores que nunca aprenderam 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

Objective-C será descontinuado. Todos sabemos que a Apple nunca faz ameaças
que eles não realizam, basta olhar para a unidade óptica (e logo o
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? Pegue o desenvolvimento web com

l direitos reservados © The App Brewery


www.appbrewery.co
20
Nó. Se você já entende os principais conceitos de programação, aprender
mais alguns idiomas será muito mais fácil do que começar do zero.

“Aprenda x em y minutos” é um ótimo recurso para os programadores existentes aprenderem

novas linguagens de programação. Confira seus recursos aqui:


learnxinyminutes.com

l direitos reservados © The App Brewery


www.appbrewery.co
21
9
jogar pebolim

Quando você vê filmes de Hollywood sobre programadores, eles geralmente estão sentados em

frente de um laptop, esmagando o teclado como se estivessem em algum tipo de

jogo de alto risco “esmagar a toupeira”.

Quando você vêreal programadores trabalhando. Eles tendem a se parecer com isso:

Sim, isso mesmo. Sem digitação. Apenas olhando. Muito olhar.

Em uma empresa, as pessoas tendem a reclamar que os programadores estão sempre

jogando pebolim ou fazendo outra coisa que não pareça trabalho. Pessoas
pode não ser capaz de dizer, mas eles estão de fato funcionando.

l direitos reservados © The App Brewery


www.appbrewery.co
22
Quando você os vê curtindo seu jogo de pebolim, rindo e brincando,
eles provavelmente estão sofrendo por dentro. Pois tem bug, sempre tem bug. Ou
há algo de misterioso no código deles que eles não conseguem decifrar.
Talvez o código esteja funcionando perfeitamente, mas inesperadamente (os programadores não

como qualquer coisa inesperada por sinal). Como se eles apenas digitassem mil
linhas de uma só vez,einesperadamentenão há erros.

Outras pessoas podem não entender, mas nessas situações é quase


sempre vale a pena afastar-se do seu código e dar-lhe algum tempo e
distância.

l direitos reservados © The App Brewery


www.appbrewery.co
23
Você tem um bug em seu código que não consegue resolver? Durma nisso, jogue
pebolim, vá dar uma volta. Em 9 de 10 casos, a solução se tornará
aparente. Nos restantes 1 de 10 casos, você está ferrado.

Isso pode parecer pouco intuitivo, mas meu conselho é sempre codificar menos, pense

mais. Uma vez que o código mal pensado é escrito e trazido para o
mundo, você inevitavelmente terá que voltar e vasculhar seu código,
linha por linha, refatorando e excluindo coisas. Isso é sempre doloroso
experiência.

Então lembre-se, o código mais fácil de se livrar é o código que nunca foi
escrito.

l direitos reservados © The App Brewery


www.appbrewery.co
24
10
Obtenha um Mentor

Quando estava aprendendo francês, me deparei com um método que resultava na

maior salto em minhas habilidades de fala. Isso foi ter trocas de idiomas
pelo Skype. Eu faria dupla com um falante nativo de francês que quisesse
aprender inglês. Passávamos meia hora falando francês e meia
hora falando inglês. Nós dois dedicávamos uma hora por semana para
melhorando a linguagem que estávamos tentando aprender.

Enquanto conversávamos em francês, ele corrigia minha


pronúncia ou gramática e sugerir as maneiras que eu poderia construir meu
frases para soar mais nativas.

A programação em pares é uma técnica ágil de desenvolvimento de software baseada em

em princípios muito semelhantes. Por exemplo, um aluno e um mentor se sentariam

na mesma estação de trabalho e trabalhar em um problema. O aluno está em


encarregado de escrever o código e o mentor revisa o código linha por linha à medida que

são escritos.

Pode ser desconfortável no começo porque é um pouco embaraçoso fazer


erros e tê-los apontados para você. Mas se você tem um mentor que
é um bom professor, então eles vão te oferecer décadas de sabedoria acumulada
que pode levar a grandes melhorias em sua própria habilidade, tudo dentro de alguns

horas.

l direitos reservados © The App Brewery


www.appbrewery.co
25
Você poderá entrar em contato com alguém que teve tempo para aprimorar suas habilidades, encontrar

maneiras eficientes de fazer as coisas e mostrar como elas programam e abordam


problemas.

Bons mentores não resolvem seus problemas, mas praticam o socrático


método de fazer boas perguntas que o levem a pensar por si mesmo. Se você
pergunte-me como escrever uma chamada de rede, é claro, posso simplesmente digitar tudo

e levá-lo a copiá-lo. Mas isso não ajuda você. 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ê pode aplicar o mesmo

abordagem e comece a resolvê-lo sozinho. Lembre-se sempre que a informação é


barato. Um século atrás, se eu quisesse aprender sobre as causas das doenças, eu

provavelmente tinha que ser um aristocrata, ou cortar lenha e carregar água para um mestre

e tornar-se seu aprendiz. Hoje em dia eu posso pesquisar no Google e obter o meu

responda em alguns segundos.

Portanto, não se prenda a informações. Aprenda a pensar em vez disso. Como

abordar um problema. Como decompor 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 acontecendo em quase todas as cidades do

o mundo. Ir parawww.meetup.com e encontre um relacionado a um idioma que você

tentando aprender. Participe dos encontros, conheça pessoas. Troque seu


experiência por sua especialidade. Talvez alguém precise de um contador, talvez
alguém precisa de aconselhamento jurídico. Troque o seu tempo pelo tempo deles. não diga a

alguém, “quer ser meu mentor?”. Ninguém quer jogar fora seu livre

l direitos reservados © The App Brewery


www.appbrewery.co
26
tempo para algum estranho. Em vez disso, ofereça sua ajuda em troca da ajuda deles e

você terá sucesso em encontrar um mentor 95% das vezes.

l direitos reservados © The App Brewery


www.appbrewery.co
27
11
Adquira o hábito de
fragmentação

Então você tem uma ideia incrível de aplicativo. Mas é muito complicado
para o seu nível de habilidade atual. O que você faz? Você se junta ao Chunking Express.

Não, não estou falando sobre o filme de arte. eu estou falando sobre quebrar
para baixo o seu problema de programação.

Digamos que você esteja tentando fazer um robô que passe manteiga em torradas. (Se alguém

está trabalhando em um desses Eu ficaria feliz em financiar seu Kickstarter!) O robô

não sabe nada sobre torradas, manteiga ou facas. Acredite ou não, é


realmente requer circuitos bastante sofisticados em nossos cérebros para ser capaz de

conseguir algo tão simples quanto passar manteiga em uma torrada. (Isso é provavelmente

por que não consigo fazer isso sem café).

Então criar um robô que faça tudo isso de forma autônoma é muito complicado
e difícil. Mas como somos bons programadores, podemos dividir e
quebrar o problema.

O robô não precisa saber o que é torrada e o que é manteiga, nós


não fazendo a Skynet aqui, então vamos nos ater às coisas práticas. Há
três coisas que precisamos que o robô faça:

1. Pegue e arrume a torrada na posição ideal para passar a manteiga.


2. Pegue uma porção de manteiga.

l direitos reservados © The App Brewery


www.appbrewery.co
28
3. Coloque manteiga em torradas com cobertura decente (essa é a parte que eu acho mais

difícil).

Em seguida, você divide cada módulo ainda mais. No processo, você pode
pense em maneiras alternativas de resolver o problema. Por exemplo, será que o
robô precisa “passar” a manteiga? Ou pode apenas derreter a manteiga no
torrada? Precisa aprender a pegar uma faca? Ou pode ter algum tipo de
braço de faca embutido, como uma espécie de pirata de prisão?

Quanto mais você decompõe os problemas e define o problema que está


tentando resolver, mais fácil será empacotar seu código em pedaços pequenos.
Quanto mais simples o pedaço, mais fácil é lidar com ele.

Então, da próxima vez que você estiver tentando fazer aquele “cruzamento entre Snapchat

e Evernote”, lembre-se de dividir o problema em partes solucionáveis.

l direitos reservados © The App Brewery


www.appbrewery.co
29
12
Quebre o de outra pessoa
código

Uma das etapas mais importantes a serem seguidas para passar de programador
aprendiz a programador completo é entender como obter ajuda. Todos precisam de
ajuda. Todos, incluindo os chamados “programadores de nível divino”.

Mas o que você fizer com a ajuda determinará a rapidez com que progredirá como
codificador. Em um site como o StackOverflow, pode ser muito tentador apenas copiar
e colar o código que alguém forneceu. Seu programa funciona exatamente como você
esperava e você segue seus alegres caminhos de programação. Este exercício não
ensinou nada além de confiança no código. Porque da próxima vez que você encontrar
o mesmo problema, mas em uma situação diferente, o mesmo trecho de código que
alguém forneceu 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 copie e cole código
que você não entende”. Então, o que você deve fazer quando se depara com um bloco
de código que resolve seu problema, mas não tem ideia de como ele funciona?
Quebre isso.

Passo 1 - Copie e cole o código em seu programa. (sim, sim, eu sei que acabei de dizer
para não fazer isso, paciência, paciência).

Etapa 2 - Certifique-se de que seu programa ou aplicativo esteja funcionando conforme o


esperado. Ou seja, confirme se o bloco de código realmente resolveu seu problema.

Etapa 3 - Exclua o bloco de código copiado e colado linha por linha.

l direitos reservados © The App Brewery


www.appbrewery.co
30
Etapa 4 - Cada vez que você excluir uma linha, verifique o que foi quebrado. O
aplicativo ainda roda? Quais são os códigos de erro? O que a exclusão dessa linha de
código fez em seu programa?

Etapa 5 - Mesmo que você ache que sabe o que uma linha de código faz, exclua-a de
qualquer maneira. A tarefa mais importante como programador é sempre testar
suas suposições em relação ao resultado. Pois a sensação mais agradável de um
programador é ver o mundo real validar suas suposições. Você sabe como é bom
quando seu namorado/namorada/marido/esposa diz aquelas três palavras
mágicas?

“Você estava certo”.

É assim, mas melhor.

Passo 6 - Troque algumas das linhas ao redor. A mesma funcionalidade pode ser
alcançada com uma ordem diferente de linhas? Por que eles foram escritos na ordem em
que 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 o código
de outras pessoas do que apenas colá-lo e esperar o melhor. Depois de entender por
que cada uma dessas linhas foi necessária, na próxima vez que encontrar um problema
semelhante, você poderá desvendá-lo e resolvê-lo sozinho.

Depois de dominar a quebra de código do StackOverflow, o próximo recurso a ser


direcionado é o GitHub. É uma ferramenta usada por 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ê queira fazer um clone do Instagram. Mas, infelizmente, você não sabe como fazer
isso. Então você vai até github.com e pesquisa “Instagram” ou “aplicativo de fotos”.

Inevitavelmente, haverá algo escrito em Swift/Objective-C/Java que você pode


baixar e dar uma olhada.

l direitos reservados © The App Brewery


www.appbrewery.co
31
Pense na estrutura do programa deles. Dê uma olhada em todas as classes, as
constantes, a interação. Faça algumas modificações no código. Ainda funciona ou
quebrou? Por que você quebrou? Tem algum link que você não identificou? Faça a si
mesmo um monte de perguntas, aprenda através do método socrático. Desmonte o
projeto e entenda como ele foi construído.

Quando você começa a ficar realmente bom nisso, a próxima coisa que pode tentar é a
engenharia reversa. Encontre um pequeno projeto no GitHub feito por um programador
respeitável, baixe o aplicativo. Execute-o e veja todas as suas funcionalidades. Brinque com
isso.

Em seguida, crie-o do zero e, quando terminar, compare seu código com o código deles.
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.

l direitos reservados © The App Brewery


www.appbrewery.co
32
Por enquanto é só pessoal. O que você ainda está esperando? A noite ainda é uma
criança! Codifique algo, faça algo, aprenda algo hoje! De cabeça para baixo
parawww.appbrewery.co para iniciar sua jornada de codificação!

www.appberwery.co

l direitos reservados © The App Brewery


www.appbrewery.co
33

Você também pode gostar