JavaRush /Blogue Java /Random-PT /10 artigos que todo programador deveria ler
Shoggy
Nível 32
Санкт-Петербург

10 artigos que todo programador deveria ler

Publicado no grupo Random-PT
Sendo um programador Java e desenvolvedor de software, aprendi muito com os muitos artigos intitulados What Every Programmer Should Know About..... , eles tendem a fornecer muitas informações úteis e abrangentes sobre um tópico específico que, de outra forma, seria difícil de entender. descobrir. Em minha busca por conhecimento, encontrei alguns artigos muito úteis que marquei como informações de referência para reler. A ideia de que muitos programadores poderiam se beneficiar com a leitura desta coleção me levou a escrever este post e compartilhar com vocês todos estes artigos "O que todo programador deveria saber". 10 artigos que todo programador deveria ler - 1Neste artigo, você se familiarizará com o conjunto clássico de conhecimentos que todo programador precisa, em tópicos como memória , Unicode , aritmética de ponto flutuante , redes , design orientado a objetos), tempo , codificação de URL , String e muitos outros. Esta lista é muito importante para iniciantes e novatos, pois muitas vezes faltam conhecimentos práticos. Como a maioria dos artigos é baseada em exemplos da vida real, os programadores iniciantes e intermediários podem aprender muito com eles. Além disso, aprender o básico no início de sua carreira o ajudará a evitar os erros que outros programadores e desenvolvedores de software já cometeram ao longo de seu caminho de aprendizagem. Infelizmente, nem todas as informações dos artigos descritos são facilmente digeríveis desde a primeira leitura. Provavelmente, você não entenderá imediatamente alguns detalhes sobre números de ponto flutuante ou poderá ficar confuso com as complexidades da memória, mas é importante manter esta coleção à mão e consultá-la de tempos em tempos para esclarecimentos. Portanto, desejo-lhe boa sorte e aproveite a leitura desses ótimos artigos. A propósito, não se esqueça de compartilhar quaisquer outros artigos "O que todo programador deve saber", caso eles ainda não estejam em nossa lista.

O que todo programador deve saber sobre memória

tradução para o russo Este é um dos artigos clássicos que irá guiá-lo através das características da memória, algumas das quais são antigas, outras novas, algumas famosas e outras nem tanto. Apesar do papel gerencial e da onipresença, nem todo programador possui um nível de conhecimento suficiente sobre Memória. A importância de se familiarizar com a memória em sistemas modernos aumenta se você estiver escrevendo aplicativos de alto desempenho. Os designers de hardware estão criando modelos de gerenciamento de memória e técnicas de aceleração mais complexos, como caches de CPU, mas estes não podem funcionar de maneira ideal sem a ajuda dos programadores. Ainda estou lendo este artigo e não posso dizer o quanto aprendi com ele sobre RAM, caches de CPU como cache L1 e L2, diferentes tipos de memória, acesso direto à memória, design de controlador de memória e memória em geral . Resumindo, uma leitura obrigatória para programadores de qualquer nível.

O que todo cientista deve saber sobre aritmética de ponto flutuante

O tópico da aritmética de ponto flutuante é complicado e não é fácil de dominar. Muitos programadores Java nem sabem o que pode dar errado ao comparar valores com tipo float/ doubleoperador ==. Muitos de nós cometemos erros ao implementar cálculos monetários em tipos floate double. Este artigo é outra joia desta série e é uma leitura obrigatória para todos os desenvolvedores e programadores de software. À medida que você ganha experiência, você deve se aprofundar nos meandros dos tópicos gerais, e a aritmética de ponto flutuante é um deles. floatComo desenvolvedor Java sênior , você deve saber como fazer cálculos monetários, quando usar doubleou BigDecimalcomo arredondar números de ponto flutuante e muito mais. Mesmo que você tenha sólidos conhecimentos neste tópico, após ler o artigo poderá descobrir algo novo sobre operações de ponto flutuante.

O que todo desenvolvedor deve saber sobre Unicode

A codificação de caracteres é outra área em que muitos programadores enfrentam dificuldades, e "O mínimo absoluto que todo desenvolvedor de software deve saber absolutamente sobre Unicode e conjuntos de caracteres (sem desculpas!)" visa preencher essa lacuna. Para que conste, sim, esse é o título completo deste artigo. Seu autor é Joel Spolsky, um dos fundadores do https://stackoverflow.com . Joel escreveu este artigo em seu blog há quase 10 anos, mas ele não perdeu relevância no mundo moderno. O artigo explica o que é Unicode, o que é codificação, como os caracteres são representados por meio de bytes e muito mais. Uma das melhores coisas deste artigo é a linguagem e o método de apresentação, mesmo que você não saiba nada sobre Unicode, não terá problemas para entendê-lo. Resumindo, outro livro obrigatório para todos os programadores, codificadores e engenheiros de software.

O que todo programador deve saber sobre o tempo

Além da codificação de caracteres, hora e datas ( Timee Date) são outra área em que muitos programadores, inclusive eu, têm dificuldade. Até mesmo os desenvolvedores seniores se perdem em GMT, UTC, horário de verão e segundos bissextos. Para ser honesto, não é fácil lidar com fusos horários sem cometer alguns erros, e usar o horário de verão torna isso ainda mais difícil. Os problemas pioram se você usar tentativa e erro, porque você nunca será capaz de resolver seu problema fazendo isso. Há um grande número de coisas que podem dar errado e um número igual de equívocos. Coisas como se uma data contém um fuso horário ou não podem confundi-lo, converter o horário UNIX para outros fusos horários pode irritá-lo e você pode facilmente esquecer a sincronização de relógios e atrasos. Espero que depois de ler este artigo, muitos de seus equívocos sobre o tempo desapareçam e você desenvolva uma compreensão completa do tempo.

O que todo desenvolvedor web deve saber sobre codificação de URL

Este artigo descreve equívocos comuns sobre a codificação do Uniform Resource Locator (URL), tenta esclarecer a codificação de URL para HTTP e, em seguida, demonstra problemas e soluções comuns. Embora este artigo não seja específico para nenhuma linguagem de programação, ele ilustra problemas em Java e termina com explicações para corrigir problemas de codificação de URL em Java e em aplicações web em vários níveis. Você aprenderá gramática básica de URL, sintaxe geral de URL em HTTP e outros protocolos. Este artigo também aborda armadilhas comuns de URL, como codificação de caracteres, caracteres especiais em diferentes partes de um URL e problemas de codificação/decodificação de URL. Se você for um programador Java, também aprenderá como gerenciar URLs adequadamente em um aplicativo Java. Como construir uma URL e usar a biblioteca cliente HTTP Apache Commons. Por fim, ele também oferece práticas recomendadas e sugestões para trabalhar com URLs, como como você deve codificar um URL ao criá-lo, certificando-se de que seus filtros de reescrita de URL manuseiem seus URLs corretamente e muito mais. Resumindo, uma leitura obrigatória para qualquer desenvolvedor e programador web.

O que todo programador sabe sobre desenvolvimento web?

Este artigo interessante dos programadoresStackExchange é sobre o que todo programador que implementa os detalhes técnicos de uma aplicação web deve considerar antes de abrir um site ao público. Inclui itens das áreas de design de interface e experiência do usuário, segurança, padrões da Web, desempenho, otimização de mecanismos de pesquisa (SEO), tecnologias utilizadas e alguns recursos importantes. O mundo de hoje depende muito da Internet e é bastante comum um programador ter um site ou blog pessoal. A experiência adquirida com este artigo será útil não só nas suas atividades profissionais, mas também nos seus próprios projetos. Você aprenderá sobre todas as principais tecnologias como HTTP, HTML, XML, CSS, JavaScript, compatibilidade de navegadores, dicas para reduzir o tempo de carregamento do seu site, sitemaps XML, especificações W3C e vários outros pontos-chave.

O que todo programador deve saber sobre SEO

Este é outro artigo que será bastante útil para desenvolvedores web, programadores e blogueiros. SEO é grande demais para ser ignorado e, para muitos programadores e blogueiros, é importante conhecer os fundamentos da otimização de mecanismos de pesquisa para ajudar o Google a encontrar seu conteúdo e mostrá-lo a outros programadores. Como nenhuma empresa pode sobreviver sem presença na web no mundo conectado de hoje, o SEO torna-se ainda mais importante. Se você tem uma startup que vende algum produto, então SEO é algo que você deve cuidar. Todos os programadores, especialmente os desenvolvedores web, podem se beneficiar muito com este artigo. Lembre-se de que a otimização de mecanismos de pesquisa é ampla e muito dinâmica e varia entre diferentes mecanismos de pesquisa, como Google, Yahoo e outros. Então, para dominar esse tema você deve sempre atualizar seus conhecimentos.

O que todo programador C deve saber sobre comportamento indefinido nº 1/3

A linguagem de programação C possui o conceito de "comportamento indefinido". Comportamento indefinido é um tópico amplo com muitas nuances e é uma das razões pelas quais adoro Java: menos comportamento indefinido, menos confusão, mais estabilidade e mais paz. Muitas coisas aparentemente razoáveis ​​em C, na verdade, têm comportamento indefinido, e esta é uma fonte comum de bugs em programas. Além disso, qualquer comportamento indefinido em C dá permissão às implementações (do compilador e do tempo de execução) para gerar código que formate o disco rígido, fazendo coisas completamente inesperadas, ou pior. Leia este excelente artigo para mergulhar fundo no mar de comportamentos imprevisíveis.

O que todo programador precisa saber sobre redes

Do próprio artigo "Você é um programador. Você já se perguntou como funcionam os jogos multiplayer? Visto de fora, parece mágico: dois ou mais jogadores compartilham uma experiência colaborativa online, como se realmente existissem juntos no mesmo mundo virtual. Mas como "Sabemos a verdade, programadores, que o que realmente está acontecendo é bem diferente do que vocês veem. Acontece que é tudo uma ilusão." Este é um artigo muito interessante sobre redes escrito para programadores de jogos, mas acho que todo programador e desenvolvedor pode se beneficiar dele.

O que todo desenvolvedor Java deve saber sobre strings

Este é o meu artigo java.lang.Stringe, pessoalmente, acho que todo programador Java deveria saber sobre isso. Strings são muito importantes no dia a dia da programação Java e é por isso que um bom conhecimento é obrigatório para qualquer desenvolvedor Java. Este artigo cobre muitos aspectos importantes de Strings, incluindo o pool de strings, literais de strings, comparação de strings com ==vs equals(), conversão de bytes em uma string, por que uma string é imutável, concatenação adequada de strings e muito mais. Um programador avançado pode já conhecer todos esses recursos, mas mesmo assim seria uma boa ideia revisar.

O que todo programador deve saber sobre segurança?

Esta pergunta foi feita por um estudante programador do StackOverflow. Assim como sabemos muito sobre conceitos gerais de programação, como sistema operacional, algoritmos, estruturas de dados, arquitetura de computadores e outras coisas, também é importante saber sobre segurança. Embora o tema Segurança seja bastante amplo, abrangendo as áreas de criptografia/descriptografia, SSL, segurança web, ofuscação, autenticação, autorização, etc., existe um mínimo básico de conhecimento necessário para todo programador. Pessoalmente, no início da minha carreira eu não sabia muito sobre segurança, quando comecei a escrever aplicações web Java baseadas em Servlet/JSP, aprendi sobre segurança web e uma série de ameaças à segurança, como SQL Injection, Denial of Service, XML Injeção, cross-site scripting e outros. Como desenvolvedor Java, agora sigo práticas seguras de programação Java fornecidas pelo Fortify, PMP e outros fornecedores de analisadores de código estático. Este artigo contém uma seleção muito boa de tópicos e links de segurança e, quer você codifique ou não, certamente se beneficiará deste recurso.

Números de latência que todo programador deve saber

Este artigo é um bônus, mas, mesmo assim, uma leitura obrigatória para qualquer programador. Para escrever uma aplicação de alto desempenho em qualquer linguagem de programação, seja ela Java ou C++, você deve conhecer valores básicos de latência, por exemplo, quanto tempo levará para ler uma variável da memória, do cache L1, do cache L2, por um leitura aleatória de um SSD e do disco. Quanto tempo leva para bloquear/desbloquear um mutex para enviar um pacote de dados de uma cidade para outra ou para fazer uma viagem de ida e volta dentro de um data center. Esses valores de latência são independentes da linguagem de programação e fazem parte do conhecimento básico que um desenvolvedor deve ter para escrever aplicativos de alta carga e baixa latência. O lado positivo deste link é que ele fornece uma análise comparativa de como esses valores evoluíram ao longo dos anos. Você pode ver quais eram os valores em 2006 e como são agora. Isso é tudo nesta lista de artigos que todo programador deveria ler. Ao ler artigos como O que todo programador ou desenvolvedor deve saber, você aprofunda seu conhecimento sobre um tópico específico. Honestamente, há muitas coisas para os programadores aprenderem, e aprender uma linguagem de programação como Java é apenas a ponta do iceberg, mas a maioria de nós não tem paixão por aprender. Programar é um trabalho que exige desenvolvimento constante, e as únicas coisas que serão úteis para qualquer programador ao longo de sua carreira são conhecimentos fundamentais de coisas como memória , Unicode , números de ponto flutuante , tempo , segurança (segurança) . Algumas coisas são específicas da linguagem, como minha postagem sobre String em Java e O que todo programador C deve saber sobre comportamento indefinido, mas são boas de aprender para muitos iniciantes e desenvolvedores.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION