Um idioma para governar tudo

Escondido sob uma camada de código, definha um idioma ansioso para ser aprendido.



No momento da redação deste artigo, a consulta "programar qual idioma aprender primeiro" produz 517 milhões de resultados de pesquisa. Cada um desses sites elogiará um idioma específico e 90% deles eventualmente recomendam Python ou JavaScript.


Sem longos prelúdios, eu gostaria de declarar oficialmente que todos esses 517 milhões de sites estão errados e afirmar que a linguagem que precisa ser estudada primeiro é a lógica fundamental .


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


* a seguir, lembre-se de que se trata de uma tradução e a situação no mercado de trabalho para o autor e em seu país pode ser diferente (como outras nuances), o que, no entanto, não piora o artigo original - aprox. perev.


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


Meu primeiro conhecimento com ciência da computação foi uma eletiva, que eu fiz na 10ª série. No primeiro dia, indo para a platéia, fiquei encantada ao ver um grande número de baldes de sorvete e várias coberturas na minha frente. Depois que todos estavam sentados, o professor proclamou:


“Hoje provaremos o sorvete auto-preparado. Mas com uma condição: você deve fazer uma lista de instruções específicas sobre como preparar uma sobremesa, e eu as seguirei. ”


Não tem problema, pensei, esta lição não será longa. Cerca de um minuto depois, esbocei uma ótima receita para o sorvete dos meus sonhos:


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

Meu professor, o “computador” nessa bela metáfora, teve uma performance literal mais sarcástica do que eu já havia visto antes. Começou a cutucar zelosamente um balde de sorvete com uma colher de bolas, sem sequer tocar na tampa.


"Bom, bom, mas primeiro você precisa abri-lo!" - exclamei, tentando tratar o mais rápido possível.


“Você não escreveu isso nas instruções, mas eu não poderia fazer um sorvete. PRÓXIMO! ”


Ignoramos o tempo antes da 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 o molho de chocolate e adicione duas colheres de sopa à mesma tigela.
  4. Adicione o creme batido em uma tigela
  5. Polvilhe tudo com palitos de açúcar e polvilhe a cereja por cima

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


A professora retirou a tampa, pegou e colocou três bolas de sorvete em uma tigela. "Finalmente, meu lindo sorvete começou a ser incorporado na realidade!" Então ela abriu o molho de chocolate e adicionou duas colheres de sopa à tigela. Você não "adicionou molho de chocolate de duas colheres de sopa" - você não acha - ela, é claro, colocou as colheres em uma tigela. Sem molho neles. Mais uma vez, não me preocupei em pintar tudo com certeza. Depois que o resto foi feito no mesmo espírito, peguei uma tigela com sorvete e duas colheres de sopa, quase imperceptíveis sob o mar de chantilly. No topo havia um par de palitos de açúcar.


Parece que neste momento eu finalmente percebi: o computador é lógico no vácuo. Ele não conhece as 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. Abra, se ainda não estiver pronto, cada um dos seguintes pacotes: sorvete de framboesa, calda de chocolate, chantilly, palitos de açúcar.
  2. Retire a tigela e coloque-a na sua frente
  3. Pegue uma colher de sorvete e, uma a uma, coloque três bolas de sorvete de framboesa em uma tigela. Coloque a colher de sorvete no lugar.
  4. Pegue um pote de calda de chocolate, pegue o molho e despeje o conteúdo de uma colher de sopa em uma tigela. Repita com a colher e despeje o molho mais uma vez. Coloque a colher e a jarra no lugar.
  5. Pegue e vire o pacote de chantilly de cabeça para baixo e, segurando-o sobre a tigela, despeje o sorvete sobre eles por 3 segundos e, em seguida, retorne o pacote ao seu lugar.
  6. Pegue uma lata de palitos de açúcar, polvilhe cerca de quarenta palitos em uma tigela e coloque a lata no lugar.
  7. Pegue uma cereja em uma tigela de cerejas e coloque-a em cima do sorvete.
  8. Dê ao aluno uma tigela com sorvete preparado e uma colher.

O último ponto foi especialmente importante, pois sem ele, no penúltimo momento, a professora simplesmente começou a comer meu sorvete.


Mas isso é programação. Estressante, criando um conjunto completo de instruções para o computador. Essencialmente, é isso que toda linguagem de programação se resume a - instruções de escrita.




Programação de Carreira


A programação chegou a um ponto em que é difícil discuti-la como um único setor, assim como é difícil usar uma única palavra "programador" como descrição do trabalho. Dois desenvolvedores podem ser igualmente exigidos pelo mercado, conhecendo idiomas completamente diferentes, o que significa que a capacidade de desenvolver é mais importante do que o conhecimento de um idioma específico. Um atributo universal comum a todos os desenvolvedores de sucesso é a lógica fundamental .


O melhor programador é capaz de analisar o código de um novo ângulo. E isso é de fundamental importância, porque a maioria dos produtos de software é uma coleção de partes não documentadas de códigos incorretos. Eles precisam constantemente ser reunidos, fechando as lacunas conforme necessário. As pessoas que não são capazes de conectar pontos dispersos em uma única linha terão que ficar para sempre à margem.


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


Os idiomas vêm e vão. As estruturas se tornam obsoletas e as empresas respondem à demanda alterando a pilha de tecnologias usadas. Existe algo que nunca vai mudar? Sim - conhecimento fundamental, razão pela qual é chamado fundamental, subjacente a tudo!




Como melhorar o conhecimento fundamental


Foto de Christopher Yeshke 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 de Big O, "complexidade do algoritmo" refere-se à dependência do tempo necessário para executar um programa no tamanho de seus dados de entrada (n) . Manter-se a par dos algoritmos utilizados é um passo importante.


Conheça suas estruturas de dados


As estruturas de dados estão no centro de qualquer programa moderno. Saber qual estrutura usar, nesse caso, é uma disciplina independente. As estruturas de dados estão diretamente relacionadas à complexidade do tempo de execução e a escolha da estrutura incorreta pode levar a problemas fundamentais de desempenho. A procura de um elemento em uma matriz é O (n) , que indica o alto custo do uso de matrizes como entrada. A pesquisa na tabela de hash é O (1) , o que significa que, nesse caso, o tempo de pesquisa do valor não depende do número de elementos.


As pessoas vieram até mim para uma entrevista que alegava que era mais rápido pesquisar por matriz do que por tabela de hash. Era o sinal mais seguro de que você não deveria contratá-los - conheça suas estruturas de dados.


Leia / Assista / Ouça


Sites como Udemy , Pluralsight e CodeAcademy são ótimas opções para aprender novas linguagens de programação. Mas, para o básico, confira os livros sobre princípios gerais, práticas e estilos de codificação. Os livros mais recomendados são Padrões de design, Refatoração. Melhorando o Código Existente ”,“ Código Perfeito ”,“ Código Limpo ”e“ Pragmatista do Programador ”. Por fim, cada desenvolvedor deve manter uma cópia dos " Algoritmos " à mão.


Prática!


Você não poderá cozinhar ovos fritos sem quebrar os ovos. Sites como HackerRank , CodeWars , CoderByte , TopCoder e LeetCode oferecem milhares de tarefas interessantes para testar seu conhecimento de estruturas e algoritmos de dados. Tente sua sorte em resolver o problema que você gosta, poste sua versão no Github e veja como outras pessoas abordaram a questão. O que nos leva ao último ponto:


Leia o código de outra pessoa


O maior erro que só pode ser cometido seguindo o caminho de desenvolvimento é fazer esse caminho sozinho. O desenvolvimento de software é basicamente trabalho em equipe. Juntos, criamos padrões, cometemos erros juntos e, apesar de todas as falhas, nos tornamos melhores juntos. O tempo gasto lendo o código de outra pessoa será recompensador. Apenas verifique se esse é um bom código.




Bem, o melhor conselho que posso dar é nunca ter vergonha de você ainda não saber algo. Como já mencionado, nossa indústria é enorme e o número de tecnologias é imenso. É preciso muito tempo e esforço para construir uma imagem geral, ainda mais para se tornar um profissional em algo específico, e uma ordem de magnitude mais para aprimorar as habilidades em seu campo. Avisarei quando eu conseguir isso.

Source: https://habr.com/ru/post/pt456342/


All Articles