O que você precisa fazer para pensar como um programador
- Por que isso é importante?
- Encontre o padrão
- 1. Entenda ela
- 2. Planejar
- 3. Divida o problema em pequenos sub-problemas.
- 4. Preso?
- Prática
- Nomeado as 5 linguagens de programação mais populares de acordo com o HackerRank
- Como se tornar um programador, se você realmente quiser, mas não há experiência
O que pensar como um programador significa? Na verdade, tudo está de maneira mais eficiente para resolver problemas. O blogueiro e desenvolvedor de aplicativos móveis Richard Rees deu algumas dicas sobre como desenvolver um modo de pensar computacional.
Por que isso é importante?
A resolução de problemas é metanavyk. Como lidamos com eles? Muito aleatório. Se você não tem um sistema, você provavelmente irá “resolver” problemas desta maneira:
Experimente a solução.
Se falhar, tente outro.
Repita o passo dois até ter sorte.
Então não faça isso. Isso é uma enorme perda de tempo. Você precisa de a) encontrar um padrão eb) praticar.
“Quase todos os empregadores olham primeiro como os empregados resolvem os problemas. Essa habilidade é mais importante para eles do que o conhecimento de linguagens de programação, depuração e design de sistemas. O pensamento computacional e a capacidade de lidar com problemas grandes e complexos são valorizados da mesma forma que as habilidades técnicas básicas exigidas para o trabalho ”, HackerRank (Developer Skills Report 2018).
Encontre o padrão
“Os programadores novatos geralmente se concentram na sintaxe, não na resolução de problemas. E esse é o maior erro. ” V. Anton Sproul .
O que você deve fazer quando enfrenta um novo problema?
1. Entenda ela
Você precisa saber o que é exigido de você. As tarefas parecem complicadas porque você não as entende. Como você sabe se entende o problema ou não? Tente explicar em linguagem simples.
Foto: Unsplash
Isso acontece com bastante frequência: você fica preso em uma tarefa, começa a explicá-la e, de repente, percebe deficiências lógicas? A maioria dos programadores está familiarizada com esse sentimento. Anote seu problema no papel ou conte a alguém sobre isso.
2. Planejar
Não prossiga imediatamente para resolver um problema sem um plano. Nada vai ajudá-lo se você não escrever os passos exatos. Dê tempo ao cérebro para analisar o problema e processar as informações. Para fazer um bom plano, responda a esta pergunta:
"Suponha que haja um X na entrada. Quais são os passos necessários para obter Y na saída?"
Os programadores têm uma ótima ferramenta para isso ... Comentários!
3. Divida o problema em pequenos sub-problemas.
Este é o passo mais importante. Não tente imediatamente resolver um grande problema. Em vez disso, divida-o em pequenos quebra-cabeças e resolva-os gradualmente. Comece com o mais simples - isto é, aquele para o qual você já sabe a resposta. Assim que você lidar com tudo, conecte os pontos. Então você pode resolver o problema original.
“Sempre aconselho os programadores iniciantes a simplificar o problema. Vamos imaginar que você precise escrever um programa que leia dez números e determine qual deles será o terceiro maior. Para iniciantes, essa tarefa pode parecer muito difícil, apesar do fato de que sua solução requer conhecimento da sintaxe básica. Se você ficar preso, tente simplificar o problema. Em vez do terceiro maior número, tente encontrar apenas o maior de todos. Ainda é difícil? Encontre o maior número de três dados. Ou dois. Simplifique o problema até entender como resolvê-lo. Em seguida, gradualmente complique a tarefa e reescreva a solução ”, - V. Anton Sprol.
4. Preso?
Agora você provavelmente pensa: “Bem, sim, é claro que é ótimo, mas e se eu estiver preso e não puder resolver nem um pequeno problema?”
Foto: Unsplash
Não se preocupe. Isso acontece com todos. A diferença é que os programadores não ficam zangados quando se deparam com isso. Pelo contrário, eles estão interessados em encontrar uma solução. Aqui estão três maneiras de fazer isso:
Classifique novamente . Olhe para o problema do outro lado. Existe algo que possa ser apresentado de maneira mais simples?
“Às vezes nos perdemos nos detalhes e perdemos os princípios gerais que ajudariam a resolver o problema mais rapidamente. O exemplo clássico é a soma de números consecutivos - 1 + 2 + 3 + ... + n. Karl Friedrich Gauss apresentou isso na forma da expressão n (n + 1) / 2, e ele não precisou fazer cálculos desnecessários ”.
Há outra opção - reescrever completamente o código. Apague tudo e comece de novo.
Explorar . Não importa qual problema você esteja tentando resolver agora. Alguém já fez isso antes de você. Você só precisa pesquisar. Faça isso mesmo se você tiver resolvido o problema.
Prática
Não pense que em uma semana você se tornará um mestre neste campo. Se você quer resolver bem os problemas, faça-o regularmente. Prática Xadrez, problemas de matemática, sudoku, go, monopólio, videogames, criptocóticas - tudo isso irá ajudá-lo a aperfeiçoar suas habilidades de resolução de problemas. Pessoas famosas fazem isso também. Por exemplo, Peter Thiel joga xadrez e Ilon Musk - em videogames .
"Ilon Musk, Reed Hoffman, Mark Zuckerberg e outros argumentam que os jogos lançaram as bases para o seu sucesso" - Mary Meeker .
Isso significa que você deveria apenas jogar videogames? Não realmente. Claro, você ainda precisa aprender. Encontre algo em que você possa praticar suas habilidades.
Materiais sobre o tema:
Nomeado as 5 linguagens de programação mais populares de acordo com o HackerRank
12 sinais de um mau programador - identificamos um leigo
Como se tornar um programador, se você realmente quiser, mas não há experiência
Como eu saí do meu trabalho como designer gráfico e me tornei um desenvolvedor frontend em cinco meses
Encontrou um erro de digitação? Realce o texto e pressione Ctrl + Enter
Por que isso é importante?4. Preso?
Por que isso é importante?
Como lidamos com eles?
O que você deve fazer quando enfrenta um novo problema?
Como você sabe se entende o problema ou não?
Quais são os passos necessários para obter Y na saída?
Ainda é difícil?
4. Preso?
Agora você provavelmente pensa: “Bem, sim, é claro que é ótimo, mas e se eu estiver preso e não puder resolver nem um pequeno problema?