Doze artigos que todos os programadores devem ler

1. Artigos de memória que os programadores devem conhecer

Este é um artigo muito clássico, ele o levará a todos os aspectos da memória, existem antigos, alguns novos, alguns sabem, alguns não sabem. Embora a memória seja muito comum e ubíqua, nem todo programador a conhece o suficiente. Se você estiver escrevendo aplicativos de alto desempenho, é particularmente importante entender a memória nos sistemas modernos. Os designers de hardware trouxeram tecnologias de aceleração e processamento de memória mais complexas, como caches de CPU, mas não serão capazes de maximizar seu valor sem o programador. Ainda estou lendo este artigo, é difícil dizer o quanto aprendi sobre memória de acesso aleatório (RAM), cache de CPU, incluindo cache de nível 1 e nível 2, diferentes tipos de memória, acesso direto à memória, design de controlador de memória e Conhecimento da memória comum. Resumindo, é um artigo de leitura obrigatória para programadores em todos os níveis.

2. Operações de ponto flutuante que todo cientista da computação deve conhecer

A aritmética de vírgula flutuante é um tópico muito técnico, difícil de dominar. Muitos programadores Java não sabem o que há de errado em usar o operador == para comparar tipos float / double. Muitas pessoas cometem erros ao usar float / double para cálculos de moeda. Este artigo é a essência desta série e todos os desenvolvedores de software devem lê-lo. Conforme sua experiência cresce, você definitivamente deseja se aprofundar nos detalhes de algumas coisas comuns, a aritmética de ponto flutuante é uma delas. Como um desenvolvedor Java sênior, você deve entender como realizar operações monetárias, quando usar float, double ou BigDecimal, como arredondar números de ponto flutuante e assim por diante. Mesmo que você conheça alguns conhecimentos básicos de aritmética de ponto flutuante, com certeza aprenderá algo novo depois de ler este artigo.

3. Artigos Unicode que todo programador deve conhecer

A codificação de caracteres é outra área com a qual muitos programadores lutam. "Todo programador deve definitivamente entender Unicode e conjuntos de caracteres (sem desculpas!)" Para preencher essa lacuna. Marque, sim, este é o título deste artigo. Ele foi escrito por Joel Spolsky, um dos fundadores do stackoverflow.com. Joel publicou este artigo em seu blog há 10 anos, mas ainda se aplica hoje. Este artigo explicará o que é Unicode, o que é codificação de caracteres, como os caracteres são representados por bytes e assim por diante. A melhor coisa sobre este artigo é sua linguagem e escrita.Embora você não saiba o que é Unicode, você pode entendê-lo facilmente. Em uma palavra, este é outro artigo de leitura obrigatória para programadores, criadores de código e engenheiros de software.
Insira a descrição da imagem aqui
Quarto, todo programador deve saber a hora

Além da codificação de caracteres, a hora e a data são outra área em que os programadores costumam cair, inclusive eu. Mesmo os desenvolvedores seniores serão mortos por coisas como Greenwich Mean Time (GMT), Universal Standard Time (UTC), Horário de verão e segundos bissextos. Falando francamente, ao lidar com a questão dos fusos horários, é difícil não pisar em alguns fossos, muito menos adicionar o horário de verão ou algo assim. É ainda pior se você quiser tentativa e erro, porque fazer isso nunca resolverá o seu problema. Existem muitos erros ou mal-entendidos possíveis aqui. Por exemplo, se a data inclui o fuso horário ou não, pode incomodá-lo. Converter o horário do UNIX em outros fusos horários pode causar uma pane. Você deve esquecer a sincronização do relógio e atrasos. Espero que, depois de ler este artigo clássico, muitos de seus mal-entendidos sobre o tempo possam ser eliminados e você possa consolidar algum senso comum básico sobre datas.

Quinto, todo desenvolvedor da web deve conhecer artigos de codificação de URL

Este artigo apresenta alguns mal-entendidos comuns na codificação Uniform Resource Locator (URL) e, em seguida, tenta esclarecer o que é codificação de URL HTTP e, por fim, lista alguns erros e soluções comuns. Embora o conteúdo deste artigo não seja específico para uma linguagem de programação, ele usa Java para descrever o problema e corrigir o problema na codificação de URL. Você aprenderá a sintaxe básica de URLs, os formatos comuns de URL em HTTP e outros protocolos. Este artigo também apresenta alguns erros comuns em URLs, como codificação de caracteres, caracteres reservados em diferentes partes da URL e problemas de codificação e decodificação de URL. Se você for um desenvolvedor Java, aprenderá como lidar corretamente com URLs em Java, como construir URLs e como usar a biblioteca cliente Apache Common Http. Finalmente, ele também fornece algumas sugestões de práticas recomendadas, como você deve codificar ao construir URLs, certifique-se de que seus filtros de reescrita de URL processem URLs corretamente e assim por diante. Este é um artigo de leitura obrigatória para qualquer desenvolvedor WEB.

6. Desenvolvimento WEB que todo programador deve conhecer

Este é um artigo muito interessante em programmers.stackexchange.com. Ele fala sobre os detalhes técnicos que os programadores precisam implementar antes de lançar o site para o mundo exterior. Isso inclui design de interface e experiência do usuário, segurança, padrões WEB, desempenho, otimização de mecanismo de pesquisa (SEO) e alguns recursos importantes. O mundo de hoje é fortemente dependente da Internet e muitos programadores têm seu próprio site, geralmente um blog. O que você aprendeu neste artigo pode não ser útil para o seu curso, mas certamente o ajudará pessoalmente. Você aprenderá sobre algumas tecnologias importantes, como HTML, HTTP, XML, CSS, JavaScript, compatibilidade de navegador, técnicas para reduzir o tempo de carregamento do site, sitemaps XML, especificações W3C e muitos outros detalhes importantes.
Insira a descrição da imagem aqui
Sete, todo programador deve saber SEO

Este é outro artigo muito importante para desenvolvedores da web, programadores e blogueiros. Como muitos programadores também são blogueiros, você não pode ignorar o SEO. É muito importante aprender os fundamentos da otimização de mecanismos de busca, que pode ajudar o Google a recuperar seu conteúdo e recomendá-lo a outros programadores. Na era atual de interconexão de rede, nenhuma empresa pode existir sem a WEB, o SEO tornou-se particularmente importante. Se você tem uma startup que vende alguns produtos, então você precisa se concentrar em SEO. Todos os programadores, especialmente desenvolvedores WEB, podem se beneficiar muito com este artigo. Lembre-se de que SEO é um assunto em constante mudança. Diferentes mecanismos de pesquisa, como Google, Yahoo, etc., têm diferentes SEO. Portanto, para dominar essa habilidade, você deve atualizar sua base de conhecimento com frequência.

8. Comportamentos indefinidos que os programas C devem conhecer

A linguagem C tem um conceito de comportamento indefinido. Comportamento indefinido é um tópico muito amplo, tem muitas nuances, que é uma das razões pelas quais eu gosto de Java, não há tantos comportamentos indefinidos, não há tanta confusão e é mais estável e suave. Muitas coisas que parecem naturais para as pessoas são, na verdade, comportamento indefinido em C, que também é uma fonte comum de bugs de programa. Além disso, qualquer comportamento indefinido em C é determinado pela implementação específica (compilador e tempo de execução), e o código gerado por eles formatará seu disco rígido, fará coisas inesperadas ou pior. Leia este artigo e nade em um mar de comportamento indefinido.

Nove, os programadores de rede devem saber

Esta passagem foi retirada deste artigo, "Você é um programador. Você pensa em como conseguir um jogo multijogador? Do lado de fora, parece que: dois ou mais jogadores compartilham a mesma experiência através da rede, apenas É como se estivessem no mesmo mundo virtual. Mas, como programadores, sabemos que a verdade abaixo é diferente do que você vê. Na verdade, isso é apenas uma ilusão. " Este é um artigo muito interessante sobre a Web. Ele foi escrito para desenvolvedores de jogos, mas acho que todos os desenvolvedores de programas podem se beneficiar dele.
Insira a descrição da imagem aqui
Dez, os programadores Java devem saber String

Este é meu próprio artigo sobre java.lang.String. Pessoalmente, acho que todo desenvolvedor Java deve saber sobre ele. String é muito importante no desenvolvimento diário de Java, e é por isso que todo programador de Java deve conhecê-la muito bem. Este artigo cobre muitas áreas importantes de String, incluindo String pool, strings constantes, use == e equals para comparar strings, converter matrizes de bytes em Strings, por que strings são imutáveis ​​e como unir strings corretamente ,e muitos mais. Todos os programadores seniores devem saber dessas coisas, mas é bom revisá-las.

11. Segurança que os programadores devem conhecer

Um estudante de ciência da computação fez esta pergunta no StackOverFlow. Assim como aprendemos sobre alguns conceitos comuns de programação, como sistemas operacionais, algoritmos, estruturas de dados, arquitetura de computador e outras coisas, entender a segurança é igualmente importante. Segurança é um grande tópico, incluindo criptografia e descriptografia, SSL, segurança WEB, confusão, autenticação, autorização, etc. É o conhecimento básico que todo programador deve conhecer. Quando entrei neste negócio, pessoalmente não sabia muito sobre segurança. Nessa época, comecei a escrever alguns programas Java WEB baseados em Servlet / JSP. Mais tarde, aprendi sobre segurança EWB e algumas ameaças de segurança, como injeção de SQL. Negação de serviço, injeção de XML, script entre sites, etc. Como desenvolvedor Java, agora sigo os padrões de codificação seguros Java fornecidos pelo fortify, PMP e outros analisadores de código estático para codificação. Este artigo é uma boa coleção sobre o tópico de segurança. Quer você escreva código ou não, esses recursos são muito úteis para você.

12. Tempo de atraso que os programadores devem conhecer

Este artigo é um bônus adicional, mas também é algo que todo programador deve ler. Não importa a linguagem que você está usando, Java ou C ++ é bom. Para escrever aplicativos de alto desempenho, você precisa entender os fundamentos da latência, como quanto tempo leva para ler uma variável da memória e do cache de primeiro nível Quanto tempo leva? E quanto ao cache secundário, quanto tempo leva para ler aleatoriamente do disco rígido SSD e se for lido do disco? Quanto tempo leva para bloquear e desbloquear o mutex, quanto tempo leva para enviar um pacote de dados de uma cidade para outra e quanto tempo leva para estar no mesmo data center? Esses números de atraso são independentes de qualquer linguagem de programação. Os desenvolvedores devem querer escrever aplicativos de alta frequência e baixa latência. Eles fazem parte da base de conhecimento principal. A boa notícia sobre este artigo é que ele contará como esses atrasos mudaram ao longo dos anos. Você pode ver qual foi o tempo de atraso em 2006 e quanto é agora.

Esta é a lista de artigos de leitura obrigatória para todos os programadores. Vendo os títulos desses artigos, XXX que todo programador deve conhecer, você poderá aprender alguns conhecimentos aprofundados sobre um determinado tópico. Falando francamente, os programadores têm muito a aprender. Aprender a linguagem Java é apenas a ponta do iceberg, mas nem todo mundo tem entusiasmo para aprender. Escrever programas é um trabalho muito desafiador. Em sua carreira, são esses conhecimentos básicos que podem ajudá-lo, como memória, Unicode, números de ponto flutuante, tempo e segurança. São muito importantes para qualquer programador. importante. Alguns artigos são relacionados à linguagem, como meu próprio artigo sobre String, e comportamento indefinido que todo programador de C deveria conhecer, mas é bom para muitos iniciantes aprenderem.

Mais artigos de alta qualidade para compartilhar:

O papel dos testadores em equipes ágeis

Um artigo muito útil para jovens programadores

Como fazer um bom trabalho em testes automatizados, revelar o caminho da prática de automação em camadas do Alibaba

Você precisa entender antes de fazer testes automatizados

Sobre o teste de software! Tudo o que você quer saber está aqui, Xiaobai deve ver!

10 anos de experiência em testes automatizados

Em comparação! Existe uma diferença tão grande entre teste de software e compensação de desenvolvimento de teste?

10 anos de percepções de engenheiros de teste de software - para amigos que ainda estão confusos

É verdade que o teste de software não pode ser feito após 35?

Finalmente: aqui eu recomendo um grupo de intercâmbio de aprendizagem de arquitetura. Grupo de botões de aprendizagem do Exchange: 313782132 compartilhará algumas gravações de vídeo gravadas por arquitetos sênior: Spring, MyBatis, análise de código-fonte Netty, princípios de alta simultaneidade, alto desempenho, distribuído, arquitetura de microsserviço, otimização de desempenho JVM, arquitetura distribuída Espere que eles se tornem o sistema de conhecimento necessário para os arquitetos.

Acho que você gosta

Origin blog.csdn.net/weixin_50271247/article/details/108534497
Recomendado
Clasificación