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". Neste 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 tipofloat
/ double
operador ==
. Muitos de nós cometemos erros ao implementar cálculos monetários em tipos float
e 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. float
Como desenvolvedor Java sênior , você deve saber como fazer cálculos monetários, quando usar double
ou BigDecimal
como 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 (Time
e 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 artigojava.lang.String
e, 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.
GO TO FULL VERSION