JavaRush /Blog Java /Random-FR /10 articles que tout programmeur devrait lire
Shoggy
Niveau 32
Санкт-Петербург

10 articles que tout programmeur devrait lire

Publié dans le groupe Random-FR
En tant que programmeur Java et développeur de logiciels, j'ai beaucoup appris des nombreux articles intitulés Ce que chaque programmeur devrait savoir sur..... , ils ont tendance à fournir de nombreuses informations utiles et complètes sur un sujet particulier qui serait autrement difficile à comprendre. découvrir. Dans ma quête de connaissances, je suis tombé sur des articles très utiles que j'ai mis en favoris comme informations de référence à relire. L'idée que de nombreux programmeurs pourraient bénéficier de la lecture de cette collection m'a incité à écrire cet article et à partager avec vous tous ces articles « Ce que tout programmeur devrait savoir ». 10 articles que tout programmeur devrait lire - 1Dans cet article, vous vous familiariserez avec l'ensemble classique de connaissances dont tout programmeur a besoin, dans des sujets tels que la mémoire , Unicode , l'arithmétique à virgule flottante , la mise en réseau , la conception orientée objet), le temps , l'encodage d'URL , la chaîne et bien d'autres. Cette liste est très importante pour les débutants et les nouveaux arrivants car ils manquent souvent de connaissances pratiques. Étant donné que la plupart des articles sont basés sur des exemples réels, les programmeurs débutants et intermédiaires peuvent en apprendre beaucoup. De plus, apprendre les bases au début de votre carrière vous aidera à éviter les erreurs que d’autres programmeurs et développeurs de logiciels ont déjà commises au cours de leur parcours d’apprentissage. Malheureusement, toutes les informations contenues dans les articles décrits ne sont pas faciles à digérer dès la première lecture. Il est probable que vous ne compreniez pas immédiatement certains détails concernant les nombres à virgule flottante, ou que vous soyez dérouté par les subtilités de la mémoire, mais il est important de garder cette collection à portée de main et de vous y référer de temps en temps pour obtenir des éclaircissements. Je vous souhaite donc bonne chance et bonne lecture de ces excellents articles. À propos, n'oubliez pas de partager d'autres articles « Ce que tout programmeur devrait savoir » s'ils ne figurent pas déjà sur notre liste.

Ce que tout programmeur devrait savoir sur la mémoire

traduction en russe C'est l'un des articles classiques qui vous guidera à travers les fonctionnalités de la mémoire, dont certaines sont anciennes, d'autres nouvelles, certaines célèbres et d'autres moins. Malgré le rôle managérial et l'omniprésence, tous les programmeurs ne disposent pas d'un niveau de connaissances suffisant sur la mémoire. Il est important de se familiariser avec la mémoire dans les systèmes modernes si vous travaillez à écrire des applications hautes performances. Les concepteurs de matériel proposent des modèles de gestion de la mémoire et des techniques d'accélération plus complexes, telles que les caches CPU, mais ceux-ci ne peuvent pas fonctionner de manière optimale sans l'aide des programmeurs. Je lis toujours cet article et je ne peux pas vous dire tout ce que j'en ai appris sur la RAM, les caches CPU tels que le cache L1 et L2, les différents types de mémoire, l'accès direct à la mémoire, la conception du contrôleur de mémoire et la mémoire en général. . En bref, une lecture incontournable pour les programmeurs de tout niveau.

Ce que tout scientifique devrait savoir sur l'arithmétique à virgule flottante

Le sujet de l’arithmétique à virgule flottante est délicat et difficile à maîtriser. De nombreux programmeurs Java ne savent même pas ce qui peut mal se passer lorsqu'ils comparent des valeurs avec le type float/ doubleOperator ==. Beaucoup d'entre nous commettent souvent des erreurs lors de la mise en œuvre de calculs monétaires de types floatet double. Cet article est un autre joyau de cette série et constitue une lecture incontournable pour tous les développeurs et programmeurs de logiciels. Au fur et à mesure que vous acquérez de l'expérience, vous devriez aborder les subtilités des sujets généraux, et l'arithmétique à virgule flottante en fait partie. En tant que développeur Java senior, vous devez savoir comment effectuer des calculs monétaires, quand utiliser ou floatcomment arrondir des nombres à virgule flottante, et bien plus encore. Même si vous avez de solides connaissances sur ce sujet, après avoir lu l'article, vous découvrirez peut-être quelque chose de nouveau sur les opérations en virgule flottante. doubleBigDecimal

Ce que tout développeur devrait savoir sur Unicode

Le codage des caractères est un autre domaine dans lequel de nombreux programmeurs ont du mal, et « Le minimum absolu que tout développeur de logiciels devrait absolument connaître sur l'Unicode et les jeux de caractères (sans excuses !) » vise à combler cette lacune. Pour mémoire, oui, c'est le titre complet de cet article. Son auteur est Joel Spolsky, l'un des fondateurs de https://stackoverflow.com . Joel a écrit cet article sur son blog il y a près de 10 ans, mais il n'a pas perdu de sa pertinence dans le monde moderne. L'article explique ce qu'est Unicode, ce qu'est un encodage, comment les caractères sont représentés à l'aide d'octets, et bien plus encore. L'une des meilleures choses de cet article est le langage et la méthode de présentation, même si vous ne connaissez rien à Unicode, vous n'aurez aucun problème à le comprendre. En bref, une autre lecture incontournable pour tous les programmeurs, codeurs et ingénieurs logiciels.

Ce que tout programmeur devrait savoir sur le temps

Outre le codage des caractères, l'heure et les dates ( Timeet Date) sont un autre domaine dans lequel de nombreux programmeurs, moi y compris, ont des difficultés. Même les développeurs expérimentés se perdent dans l'heure GMT, UTC, l'heure d'été et les secondes intercalaires. Pour être honnête, il n'est pas facile de gérer les fuseaux horaires sans commettre quelques erreurs, et l'utilisation de l'heure d'été rend la tâche encore plus difficile. Les problèmes s’aggravent si vous faites des essais et des erreurs, car vous ne pourrez jamais résoudre votre problème en procédant ainsi. Il existe un grand nombre de choses qui peuvent mal tourner, et tout autant d’idées fausses. Des choses comme savoir si une date contient ou non un fuseau horaire peuvent vous dérouter, la conversion de l'heure UNIX vers d'autres fuseaux horaires peut vous irriter et vous pouvez facilement oublier la synchronisation des horloges et des retards. J'espère qu'après avoir lu cet article, bon nombre de vos idées fausses sur le temps disparaîtront et que vous développerez une compréhension complète du temps.

Ce que tout développeur Web devrait savoir sur le codage d'URL

Cet article décrit les idées fausses courantes sur le codage URL (Uniform Resource Locator), puis tente de clarifier le codage URL pour HTTP, puis présente les problèmes et solutions courants. Bien que cet article ne soit spécifique à aucun langage de programmation, il illustre des problèmes en Java et se termine par des explications sur la résolution des problèmes de codage d'URL en Java et dans les applications Web à plusieurs niveaux. Vous apprendrez la grammaire URL de base, la syntaxe générale des URL en HTTP et d'autres protocoles. Cet article couvre également les pièges courants des URL tels que le codage des caractères, les caractères spéciaux dans différentes parties d'une URL et les problèmes de codage/décodage d'URL. Si vous êtes un programmeur Java, vous apprendrez également à gérer correctement les URL dans une application Java. Comment créer une URL et utiliser la bibliothèque client HTTP Apache Commons. Enfin, il propose également de bonnes pratiques et des suggestions pour travailler avec des URL, telles que la façon dont vous devez encoder une URL lors de sa création, vous assurer que vos filtres de réécriture d'URL gèrent correctement vos URL, et bien plus encore. En bref, une lecture incontournable pour tout développeur et programmeur Web.

Que sait tout programmeur sur le développement Web ?

Cet article intéressant de programmersStackExchange traite de ce que tout programmeur implémentant les détails techniques d'une application Web devrait prendre en compte avant d'ouvrir un site au public. Il comprend des éléments issus des domaines de la conception d'interface et de l'expérience utilisateur, de la sécurité, des normes Web, des performances, de l'optimisation des moteurs de recherche (SEO), des technologies utilisées et de certaines ressources importantes. Le monde d'aujourd'hui dépend largement d'Internet et il est assez courant qu'un programmeur possède un site Web ou un blog personnel. L'expérience acquise grâce à cet article vous sera utile non seulement dans vos activités professionnelles, mais aussi dans vos propres projets. Vous découvrirez toutes les technologies clés telles que HTTP, HTML, XML, CSS, JavaScript, la compatibilité des navigateurs, des astuces pour réduire le temps de chargement de votre site, les sitemaps XML, les spécifications du W3C et plusieurs autres points clés.

Ce que tout programmeur devrait savoir sur le référencement

Ceci est un autre article qui sera très utile pour les développeurs Web, les programmeurs et les blogueurs. Le référencement est trop important pour être ignoré, et il est important pour de nombreux programmeurs et blogueurs de connaître les bases de l'optimisation des moteurs de recherche pour aider Google à trouver leur contenu et à le montrer à d'autres programmeurs. Puisqu’aucune entreprise ne peut survivre sans une présence sur le Web dans le monde connecté d’aujourd’hui, le référencement devient encore plus important. Si vous avez une startup vendant un produit, le référencement est quelque chose dont vous devez vous occuper. Tous les programmeurs, en particulier les développeurs Web, peuvent grandement bénéficier de cet article. N'oubliez pas que l'optimisation des moteurs de recherche est vaste et très dynamique, et varie selon les différents moteurs de recherche, tels que Google, Yahoo et autres. Ainsi, pour maîtriser ce sujet, vous devez toujours mettre à jour vos connaissances.

Ce que tout programmeur C devrait savoir sur le comportement non défini #1/3

Le langage de programmation C a le concept de « comportement indéfini ». Le comportement indéfini est un vaste sujet avec beaucoup de nuances, et c'est l'une des raisons pour lesquelles j'aime Java : moins de comportements indéfinis, moins de confusion, plus de stabilité et plus de paix. De nombreuses choses apparemment raisonnables en C ont en réalité un comportement indéfini, ce qui constitue une source courante de bugs dans les programmes. De plus, tout comportement non défini en C autorise les implémentations (du compilateur et du runtime) à générer du code qui formate le disque dur, effectuant des choses complètement inattendues, ou pire. Lisez cet excellent article pour une plongée profonde dans la mer des comportements imprévisibles.

Ce que tout programmeur doit savoir sur les réseaux

D'après l'article lui-même "Vous êtes programmeur. Vous êtes-vous déjà demandé comment fonctionnent les jeux multijoueurs ? De l'extérieur, cela semble magique : deux joueurs ou plus partagent une expérience collaborative en ligne, comme s'ils existaient réellement ensemble dans le même monde virtuel. Mais comment "Nous savons la vérité, programmeurs, que ce qui se passe réellement est très différent de ce que vous voyez. Il s'avère que tout cela n'est qu'une illusion." Il s'agit d'un article très intéressant sur les réseaux écrit pour les programmeurs de jeux, mais je pense que chaque programmeur et développeur peut en bénéficier.

Ce que tout développeur Java devrait savoir sur les chaînes

Ceci est mon article java.lang.Stringet personnellement, je pense que tout programmeur Java devrait le savoir. Les chaînes sont très importantes dans la programmation Java quotidienne et c'est pourquoi une bonne connaissance est indispensable pour tout développeur Java. Cet article couvre de nombreux aspects importants de Strings, notamment le pool de chaînes, les littéraux de chaînes, la comparaison de chaînes avec ==vs equals(), la conversion d'octets en chaîne, la raison pour laquelle une chaîne est immuable, la concaténation de chaînes appropriée et bien plus encore. Un programmeur avancé connaît peut-être déjà toutes ces fonctionnalités, mais ce serait quand même une bonne idée de les revoir.

Que devrait savoir tout programmeur sur la sécurité ?

Cette question a été posée par un étudiant programmeur sur StackOverflow. Tout comme nous en savons beaucoup sur les concepts généraux de programmation tels que le système d’exploitation, les algorithmes, les structures de données, l’architecture informatique et bien d’autres choses, il est également important de connaître la sécurité. Bien que le sujet de la sécurité soit assez vaste, couvrant les domaines du cryptage/déchiffrement, du SSL, de la sécurité Web, de l'obscurcissement, de l'authentification, de l'autorisation, etc., un minimum de connaissances de base est requis pour chaque programmeur. Personnellement, au début de ma carrière, je ne connaissais pas grand-chose en sécurité. Lorsque j'ai commencé à écrire des applications Web Java basées sur Servlet/JSP, j'ai découvert la sécurité Web et un certain nombre de menaces de sécurité telles que l'injection SQL, le déni de service, XML. Injection, cross-site scripting et autres. En tant que développeur Java, je suis désormais les pratiques de programmation Java sécurisées fournies par Fortify, PMP et d'autres fournisseurs d'analyseurs de code statique. Cet article contient une très bonne sélection de sujets et de liens sur la sécurité, et que vous codiez ou non, vous bénéficierez certainement de cette ressource.

Numéros de latence que tout programmeur devrait connaître

Cet article est un bonus, mais néanmoins une lecture incontournable pour tout programmeur. Pour écrire une application hautes performances dans n'importe quel langage de programmation, que ce soit Java ou C++, vous devez connaître les valeurs de latence de base, par exemple combien de temps il faudra pour lire une variable depuis la mémoire, depuis le cache L1, depuis le cache L2, pour un lecture aléatoire à partir d'un SSD et d'un disque. Combien de temps faut-il pour verrouiller/déverrouiller un mutex pour envoyer un paquet de données d'une ville à une autre ou pour effectuer un aller-retour au sein d'un centre de données. Ces valeurs de latence sont indépendantes du langage de programmation et font partie des connaissances de base qu'un développeur doit posséder pour écrire des applications à forte charge et à faible latence. Le point positif de ce lien est qu’il propose une analyse comparative de l’évolution de ces valeurs au fil des années. Vous pouvez voir quelles étaient les valeurs en 2006 et ce qu'elles sont aujourd'hui. C'est tout pour cette liste d'articles que tout programmeur devrait lire. En lisant des articles tels que Ce que chaque programmeur ou développeur devrait savoir, vous approfondissez vos connaissances sur un sujet spécifique. Honnêtement, il y a trop de choses à apprendre pour les programmeurs, et l'apprentissage d'un langage de programmation comme Java n'est que la pointe de l'iceberg, mais la plupart d'entre nous n'ont-ils pas une passion pour l'apprentissage. La programmation est un travail qui nécessite un développement constant, et les seules choses qui seront utiles à tout programmeur tout au long de sa carrière sont des connaissances fondamentales sur des éléments tels que la mémoire , Unicode , les nombres à virgule flottante , le temps , la sécurité (sécurité) . Certaines choses sont spécifiques au langage, comme mon article sur String en Java et Ce que tout programmeur C devrait savoir sur le comportement non défini, mais elles sont bonnes à apprendre pour de nombreux débutants et développeurs.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION