Uma língua para governar todos eles

Escondida sob uma camada de código, uma linguagem definha, ansiando por ser aprendida.

Uma língua para governar todos eles

No momento em que este livro foi escrito, a consulta “programar qual linguagem aprender primeiro” retornou 517 milhões de resultados de pesquisa. Cada um desses sites elogiará uma linguagem específica e 90% deles acabarão recomendando Python ou JavaScript.

Sem mais delongas, gostaria de declarar oficialmente que todos esses 517 milhões de sites estão errados e afirmar que a língua que você deve aprender primeiro é lógica fundamental.

Apenas saber codificar não é suficiente. O mercado está tão saturado de egressos de institutos e cursos que a posição júnior praticamente deixou de existir*. Para ter sucesso no mundo de hoje, você deve codificar e ter pensamento lógico fundamental avançado.

*doravante, lembre-se que se trata de uma tradução, e a situação do mercado de trabalho do autor e do seu país pode ser diferente (assim como outras nuances), o que, no entanto, por si só não piora o artigo original - Aproximadamente. tradução

Minha primeira aula de ciência da computação

Minha primeira exposição à ciência da computação foi uma disciplina eletiva que fiz no 10º ano. Logo no primeiro dia, ao entrar na sala de aula, fiquei encantado ao ver à minha frente uma grande quantidade de baldes de sorvete e coberturas diversas. Depois que todos se sentaram, a professora anunciou:

“Hoje vamos provar sorvetes preparados por nós mesmos. Mas com uma condição: você deve fazer uma lista de instruções específicas sobre como preparar a sobremesa, e eu as seguirei.”

“Não tem problema”, pensei, “esta lição não vai demorar”. Em cerca de um minuto eu anotei a receita perfeita para o sorvete dos meus sonhos:

  1. Pegue e coloque três bolas de sorvete de framboesa em uma tigela
  2. Abra a calda de chocolate e adicione duas colheres de sopa na mesma tigela
  3. Adicione chantilly à tigela
  4. Polvilhe tudo com palitos de açúcar e coloque uma cereja por cima

Meu professor – o “computador” naquela metáfora fofa – fez uma atuação mais sarcástica e literal do que eu já tinha visto antes. Ela começou a cutucar zelosamente o balde de sorvete com uma colher, sem sequer tocar na tampa.

“Ok, ok, mas primeiro você precisa abri-lo!” - exclamei, tentando pegar a guloseima o mais rápido possível.

“Você não escreveu isso nas instruções e eu não poderia fazer sorvete para você. PRÓXIMO!"

Vamos avançar para a tentativa nº 2

  1. Abra o sorvete de framboesa removendo a tampa
  2. Pegue e coloque três bolas de sorvete de framboesa em uma tigela
  3. Abra a calda de chocolate e adicione duas colheres de sopa na mesma tigela
  4. Adicione chantilly à tigela
  5. Polvilhe tudo com palitos de açúcar e coloque uma cereja por cima

Bem, agora definitivamente não deve haver problemas. Por precaução, certifiquei-me de que todos os ingredientes para fazer minha obra-prima culinária estivessem abertos.

A professora tirou a tampa, pegou e colocou três bolas de sorvete em uma tigela. “Finalmente, meu lindo sorvete começou a se tornar realidade!” Ela então abriu a calda de chocolate e colocou duas colheres de sopa na tigela. Ela não “adicionou calda de chocolate com duas colheres de sopa” - acho que não - ela, é claro, colocou as próprias colheres na tigela. Nenhum molho neles. Mais uma vez, não me preocupei em escrever tudo exatamente. Feito o resto com o mesmo espírito, recebi uma tigela de sorvete e duas colheres de sopa, quase imperceptíveis sob o mar de chantilly. Em cima havia um par de palitos de açúcar.

Parece que neste momento finalmente me dei conta: um computador é lógica no vácuo. Ele não tem conhecimento das circunstâncias circundantes e não faz suposições. Ele segue apenas instruções claramente formuladas e as segue palavra por palavra.

Meu resultado final foi o resultado de uma longa mas necessária série de tentativas e erros:

  1. Caso ainda não o tenha feito, abra cada um dos seguintes pacotes: sorvete de framboesa, calda de chocolate, chantilly, palitos de açúcar.
  2. Pegue uma tigela e coloque-a na sua frente
  3. Pegue uma colher de sorvete e coloque três bolas de sorvete de framboesa, uma por uma, em uma tigela. Coloque a colher de sorvete de volta no lugar.
  4. Pegue um pote de calda de chocolate, retire a calda e despeje o conteúdo de uma colher de sopa em uma tigela. Repita o processo de colher e despejar mais uma vez. Coloque a colher e o frasco de volta.
  5. Vire o pacote de chantilly de cabeça para baixo e, segurando-o sobre a tigela, despeje sobre o sorvete por 3 segundos, depois coloque o pacote de volta no lugar.
  6. Pegue um pote de palitos de açúcar, coloque cerca de quarenta palitos em uma tigela e coloque o pote de volta.
  7. Pegue uma cereja da tigela de cerejas e coloque-a por cima do sorvete.
  8. Dê ao aluno uma tigela com o sorvete pronto e uma colher.

O último ponto foi especialmente importante, pois sem ele a penúltima vez a professora simplesmente começou a tomar meu sorvete.

Mas isso é programação. O estresse de criar um conjunto cuidadoso de instruções para um computador. Essencialmente, é a isso que toda linguagem de programação se resume: escrever instruções.

Carreira em programação

A programação atingiu um ponto em que é difícil discuti-la como uma indústria única, assim como é difícil usar a palavra “programador” como descrição de trabalho. Dois desenvolvedores podem ser igualmente requisitados pelo mercado, conhecendo linguagens completamente diferentes, o que significa que a capacidade de desenvolvimento é mais importante do que o conhecimento de uma linguagem específica. Um atributo universal compartilhado por todos os desenvolvedores de sucesso é lógica fundamental.

O melhor programador é aquele que consegue ver o código de um novo ângulo. E isso é de fundamental importância, porque a maioria dos produtos de software é uma coleção de fragmentos não documentados de código incorreto. Eles precisam ser constantemente reunidos, preenchendo as lacunas conforme necessário. As pessoas que não conseguem conectar pontos díspares com uma única linha terão que ficar para sempre à margem.

Tudo isto me leva a outra declaração, desta vez em negrito: o conhecimento fundamental sempre foi e será fundamental para um programador.

As línguas vêm e vão. As estruturas estão se tornando obsoletas e as empresas estão respondendo à demanda alterando a pilha de tecnologia que utilizam. Existe algo que nunca mudará? Sim - conhecimento fundamental, que se chama fundamental porque está na base de tudo!

Como melhorar o conhecimento fundamental

Uma língua para governar todos elesFoto de Christopher Jeschke em Unsplash

Se você está procurando um ponto de partida para melhorar seu pensamento lógico fundamental, tente começar aqui:

Conheça a complexidade do seu programa

Também chamado Big O “complexidade do algoritmo” refere-se à dependência do tempo que leva para executar um programa no tamanho dos seus dados de entrada (n). Manter o controle sobre os algoritmos usados ​​é um passo importante.

Conheça suas estruturas de dados

As estruturas de dados estão no centro de todos os programas modernos. Saber qual estrutura usar em cada caso é uma disciplina por si só. As estruturas de dados estão diretamente relacionadas à complexidade do tempo de execução, e a escolha da estrutura errada pode levar a problemas fundamentais de desempenho. Encontrar um elemento em uma matriz é O (n), o que indica o alto custo do uso de arrays como dados de entrada. Pesquisa de tabela hash - O (1), o que significa que neste caso o tempo de busca de um valor não depende da quantidade de elementos.

As pessoas me procuraram para uma entrevista e alegaram que pesquisar em um array era mais rápido do que pesquisar em uma tabela hash. Este foi o sinal mais seguro de que você não deveria contratá-los – conheça suas estruturas de dados.

Ler / assistir / ouvir

Sites como UdemyPluralsight и CodeAcademy - Uma excelente opção para aprender novas linguagens de programação. Mas para saber o básico, consulte livros sobre princípios, práticas e estilos gerais de codificação. Os livros mais recomendados são “Design Patterns”, “Refactoring. Melhorando o Código Existente", "Código Perfeito", "Código Limpo" e "Programador Pragmático". Finalmente, todo desenvolvedor deve manter uma cópia do "Algoritmos" à mão.

Prática!

Você não pode cozinhar ovos mexidos sem quebrá-los. Sites como Classificação HackerGuerras de CódigoCoderByteName, TopCoder и Código Leet oferece milhares de quebra-cabeças interessantes para testar seu conhecimento sobre estruturas de dados e algoritmos. Tente a sorte resolvendo um problema que você gosta, poste sua solução no Github e veja como outras pessoas a abordaram. O que nos leva ao último ponto:

Leia o código de outras pessoas

O maior erro que você pode cometer ao seguir o caminho do desenvolvimento é seguir sozinho. O desenvolvimento de software é em grande parte um esforço de equipe. Criamos padrões juntos, cometemos erros juntos e, apesar de todas as falhas, nos tornamos melhores juntos. O tempo gasto lendo o código de outras pessoas terá uma boa recompensa. Apenas certifique-se de que seja um bom código.

Bem, o melhor conselho que posso dar é nunca ter vergonha de ainda não saber de algo. Como já foi dito, nossa indústria é enorme e a quantidade de tecnologia é infinita. É preciso muito tempo e esforço para construir uma visão geral, ainda mais para se tornar um profissional em algo específico, e muito mais para aprimorar suas habilidades em sua área. Avisarei você quando eu mesmo conseguir isso.

Fonte: habr.com

Adicionar um comentário