JavaRush /Blogue Java /Random-PT /Uma língua para governar todos eles

Uma língua para governar todos eles

Publicado no grupo Random-PT
Existe uma linguagem subjacente a cada camada de código, em qualquer linguagem de programação. E espera ser descoberto... Tradução e adaptação de um artigo de Eric Girois da comunidade de programação Better no Medium. Um idioma para governar todos eles - 1Quando escrevi este artigo, o número de consultas de pesquisa no estilo “que linguagem de programação aprender” ultrapassou 517 milhões (!). Cada página da lista de resultados de pesquisa fala sobre as vantagens de uma linguagem específica sobre outras e, em 90% dos casos, será recomendada a mesma coisa, como Python, JavaSctipt (ou algo entre as 3 principais classificações oficiais de linguagens de linguagem. O A classificação atual de julho está aqui ;) Deixe-me ser ousado e discordar oficialmente de todos os 517 milhões de resultados e dizer que a primeira linguagem de programação que você deve aprender é a lógica . Não basta apenas saber escrever código. O mercado está superlotado de graduados de diversos cursos, por isso a posição de desenvolvedor júnior basicamente deixou de existir. Para ter sucesso nessas realidades, você não precisa apenas escrever código, mas também ter uma mente lógica.

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

Meu primeiro contato com ciência da computação aconteceu em uma aula optativa na décima série. Cheguei para a aula e tive uma sensação de alegria: tinha um monte de caixas de sorvete e potes de calda na sala de aula. Ao nos sentarmos, a professora anunciou: “Hoje faremos domingos ( uma sobremesa feita com sorvete e caldas - nota do editor ). Mas com uma condição: você precisa anotar as instruções exatas para preparar a sobremesa, e eu as seguirei.” “ Sem dúvida ”, pensei, “ será fácil ”. Em apenas um minuto, anotei as instruções perfeitas: Coloque três bolas de sorvete de framboesa em um copo Despeje duas colheres de sopa de calda de chocolate naquele copo Adicione chantilly ao copo Adicione granulado e uma cereja por cima do domingo Então meu A professora – agindo como o “computador” – seguiu exatamente as instruções, ela realizou o desempenho mais cáustico que já vi. Ela começou a “atacar” furiosamente a caixa de papelão de sorvete, mas a tampa durável permaneceu ilesa. “Tudo bem, primeiro tire a tampa”, eu disse, esperando conseguir a sobremesa rapidamente. “Você não escreveu as instruções corretamente para mim, então infelizmente não pude marcar o próximo domingo para você!”

Avanço rápido para a tentativa nº 2

Abra uma caixa de sorvete de framboesa removendo a tampa Coloque três bolas de sorvete de framboesa em um copo Abra a calda de chocolate e adicione duas colheres de sopa nesse copo Abra o chantilly e adicione um pouco no copo Adicione granulado e uma cereja por cima do domingo eu estava confiante de que tinha acertado em cheio uma vez. A professora tirou a tampa, pegou três bolas de sorvete e colocou em um copo. Finalmente meu domingo está prestes a ficar pronto! Ela então abriu a calda de chocolate e colocou duas colheres de sopa na xícara. Mas não duas colheres de calda - apenas colheres, sem ela! Minhas instruções novamente não foram suficientemente precisas. Quando tudo acabou, recebi uma xícara de sorvete, duas colheres de metal, uma tonelada de chantilly e cerca de 300 bolas de granulado. Parece que naquele momento tudo ficou claro para mim: um computador é uma entidade que se guia pela lógica pura. Ele não entende o contexto e não faz suposições. Ele segue um conjunto estrito de instruções e as segue ao pé da letra. As instruções finais para fazer o domingo foram terrivelmente prolixas, mas foi necessário: Se ainda não tiver aberto, abrir a embalagem de todos os seguintes itens: Sorvete de Framboesa, Calda de Chocolate, Coberturas e Chantilly. na prateleira e coloque-a à sua frente. Pegue uma colher de sorvete e, uma de cada vez, pegue e coloque três bolas de sorvete em um copo. Quando tudo estiver pronto, coloque a colher sobre a mesa. Pegue uma colher de calda de chocolate, se ainda não tiver uma. Em seguida, pegue uma colher de calda de chocolate e despeje em uma xícara. Faça esta ação duas vezes. Coloque a calda de chocolate em uma prateleira quando terminar. Vire a garrafa de chantilly de cabeça para baixo e pressione o botão próximo ao bico da garrafa com o dedo por três segundos, depois retorne a garrafa à sua posição original. Polvilhe 40 grânulos de granulado por cima do sorvete e da calda de chocolate no copo e, em seguida, retorne a coqueteleira à posição original. Retire uma cereja do pote de cerejas e coloque-a com cuidado por cima do domingo. Dê ao aluno o domingo e a colher de sobremesa. O último comando das instruções foi muito importante, pois sem ele a própria professora passou a comer o domingo. Esta é a realidade da programação - você precisa dar instruções mais precisas ao computador. Em essência, todas as linguagens de programação são compostas de instruções.

Carreiras em Desenvolvimento de Software

O desenvolvimento de software está em um estágio de desenvolvimento em que falar sobre ele como uma indústria separada parece muito genérico. E a posição “desenvolvedor de software” parece vaga diante disso. Dois desenvolvedores com conjuntos de habilidades diferentes podem ser igualmente procurados no mercado de trabalho, o que sugere que uma carreira de sucesso em desenvolvimento requer mais do que apenas habilidades de programação. Desenvolvedores experientes têm uma característica comum que é separada da lógica de programação . Os melhores desenvolvedores são fortes no pensamento crítico. Isso é significativo porque a maioria dos projetos de desenvolvimento de software são pesadelos mal documentados. Será necessário alguém com pensamento crítico para coletar todos os dados e preencher as lacunas. Portanto, aqueles especialistas que não conseguem unir os fatos em um único todo ficam para trás. Tudo isto leva a outra afirmação muito importante: os fundamentos da ciência da computação – tanto agora como no futuro – são fundamentais. Eles são mais importantes do que a capacidade de escrever código. As línguas populares vêm e vão. As estruturas estão se tornando obsoletas e as empresas estão respondendo às mudanças nas demandas do mercado, combinando a pilha de tecnologias utilizadas. O que permanece inalterado? Noções básicas do básico.

Como desenvolver o pensamento lógico

A lógica e o pensamento crítico podem e devem ser desenvolvidos. Aconselho você a prestar atenção ao seguinte:

1. Estude a eficácia dos algoritmos em ambientes de execução

Conhecida como notação Big-O, é usada para descrever a complexidade dos algoritmos. Se você for capaz de avaliar seu código em termos do Big O e analisar o número de etapas executadas em relação ao tempo gasto, considere que deu o primeiro passo na direção certa.

2. Aprenda estruturas de dados

A estrutura de dados é a base de todo programa complexo. Saber qual tipo é melhor usar em cada caso é uma habilidade importante. As estruturas de dados estão diretamente relacionadas à complexidade dos algoritmos, pois escolher a estrutura errada pode matar o programa.

3. Ler/assistir/ouvir

Bem, para entender o básico, leia livros sobre conceitos de design, práticas recomendadas e estilo de codificação. Aqueles que estão aprendendo programação são altamente recomendados a ler:
  • “Técnicas de design orientado a objetos. Padrões de Design” (E. Gamma R. Helm R. Johnson J. Vlissides),
  • "Reestruturação. Melhorando o código existente” (M. Fowler),
  • “Código Perfeito” (S. McConnell)
  • “Código Limpo” (B. Martin)
  • “Programador pragmático” (E. Hunt)
  • “Algoritmos: construção e análise” (T. Cormen, C. Leiserson, R. Rivest e K. Stein)

4. Pratique!

Você não pode se tornar um bom violoncelista sem centenas de horas de prática. A prática diária é a chave para o sucesso da programação. Hoje existem muitas plataformas online onde você pode encontrar milhares de tarefas que requerem uma compreensão de estruturas de dados e algoritmos (HackerRank, LeetCode, CodeWars e outros).
Problemas de programação Java, do simples ao complexo, estão disponíveis no JavaRush. São mais de 1200 no curso, além de miniprojetos e jogos-tarefas .
Para mim, a maneira mais eficaz de trabalhar com essas plataformas é pensar em uma abordagem única para o problema e postar sua solução no Github. Em seguida, observe as principais soluções para um problema semelhante e analise as abordagens de outros programadores. Isso nos leva à nossa dica final:

5. Analise o código de outras pessoas

O principal erro no aprendizado da programação e nos estágios iniciais do trabalho é o auto-isolamento. O desenvolvimento de software é um campo que depende muito do trabalho em equipe. Criamos padrões juntos, cometemos erros e, com o tempo (novamente, por tentativa e erro), descobrimos o que funciona melhor. Reservar um tempo para ler o código de desenvolvedores experientes valerá a pena. Apenas certifique-se de que o código seja realmente bom.

Conclusão

Conselho pessoal: nunca tenha vergonha do que você (ainda) não sabe. Como dito acima, esta indústria é enorme, a quantidade de idiomas é incrível e há um mar de informações. É preciso muito tempo e esforço para formar pelo menos uma ideia geral de programação, ainda mais para ganhar experiência e muitas vezes mais para se tornar um verdadeiro profissional. Quando finalmente conseguir, te aviso :)
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION