10 articles that every programmer must read

Source: Internet
Author: User
Tags time and date

Technical computer internet reading programmer

Original article: 10 atricle Every programmer must read by javin Paul

As a Java programmer and software developer, I have learned a lot from articles titled "XXX, Every programmer should know, these articles tend to provide a lot of practical, in-depth, and undiscoverable information about a specific topic. I have read many useful articles during my learning process. I will add these articles to my favorites for future reference and further reading. I personally think that all programmers can benefit from these articles, which is also why I post and share these articles about XXX, which every programmer should understand with you.

 

These articles are from my favorites. In this article, you can read the series of articles about XXX, which every programmer should know, topics include memory, Unicode, floating point operations, network, object-oriented design, time, URL encoding, and strings. This article list is very important for beginners who lack practical experience. Because these posts are based on practical experience, Junior and intermediate programmers can learn a lot from them. Learning this knowledge at the early stages of your career can also prevent other programmers and software developers from making mistakes during their growth. It is difficult to grasp all the key points of knowledge only once. You may be confused about the details of floating point numbers or memory, but it is important that you need such a list, when you encounter the situation described in the article, you can query the reference multiple times.

 

Good luck. enjoy reading these articles. By the way, don't forget to share the articles "XXX, which every programmer should know" in this list.

 

About memory, every process member should understand

This is an article in a classic article that describes many aspects of memory, some old things, some newer ones, some known ones, and some unknown ones. Although these are common, not every programmer has enough memory knowledge. If you want to write high-performance applications, the knowledge of memory in contemporary systems is even more important. Hardware designers have designed complex memory and acceleration technologies-such as high-speed cache of CPUs-but they can be optimized only with the help of programmers. I am still reading this article. I have learned a lot about Ram and CPU cache, for example, L1 and L2 high-speed cache, different types of memory, Direct Memory Access, storage controller design and general memory. In short, this is a must-read article for programmers of any level.

 

What every computer scientist should know about floating point operations

Floating point operations are a very subtle topic, and it is generally difficult to master floating point operations. Even many Java programmers do not know what will go wrong when comparing float/Double types with =. Many of us often make mistakes when using float and double types for currency calculation. This article is another excellent article in this series and also an article that must be read by all software developers and programmers. When your experience is gradually enriched, you expect to learn some small aspects of common things. floating point operations are one of them. As a senior Java developer, you must know how to use the float, double, or bigdecimal class to implement currency computing and how to rounding up floating point numbers. Even if you already know the basics of floating point operations, you can still learn something new.

 

What every developer should know about Unicode

Character encoding is another field that binds many programmers. Every software developer must at least know about Unicode and character sets (not for any reason, it is absolutely necessary to know !)" This is to fill in the gaps in this field. It should be noted that, by the way, it is the title of the article. Joel Spolsky wrote this article, one of the founders of statckoverflow.com. Joel wrote this article about 10 years ago in his blog, but this article still applies until today. This article will teach you what Unicode is, what is character encoding, and how to display characters in bytes. The best part of this article is language expressions and flowcharts. Even if you don't understand Unicode, you can easily learn Unicode. In short, it is an article that must be read by all programmers, coders, and software engineers.

 

What Every programmer should know about time

In addition to character encoding, time and date are another field that makes many programmers struggle, including me. Even some senior developers may be confused by GMT, UTC, summer time, and leap second. To be honest, it is not easy to ensure that you do not make mistakes when dealing with the time zone. What's more, it also has to add other effects such as the summer time. If you use the trial and error method, the problem will become more serious, because this will never solve your problem. Many things will make you make mistakes, and there will be an equivalent number of errors. For example, if a date contains a time zone, it will be like a hell of a torment. If you convert a Unix time to another time zone, it will definitely cause you to crash. Forget the clock synchronization and latency. I hope that you can read this classic article to correct many false concepts about time and establish basic concepts about time.

 

What every web developer must know about URL Encoding

This article describes some incorrect concepts about the unified resource locator (URL) encoding, and tries to clarify HTTP encoding before proposing common problems and solutions. This article is not intended for a certain programming language. It provides some java examples and ends the article by explaining how to fix the URL encoding problem of Java and Web applications at multiple levels. You will learn the basics of URL syntax and general URL statements for other protocols such as HTTP. This article also explores some common URL defects, such as character encoding, reserved characters in different parts of the URL, and URL encoding/decoding. If you are a Java programmer, you can also learn how to correctly process URLs in Java applications, how to structure URLs, and how to use the Apache common HTTP client library. At the end of the article, we also put forward the best example or URL Processing Method. For example, you should encode the URL during the architecture to ensure that your URL rewriting filter correctly processes the URL and so on. In short, it is a must-read article for website developers and programmers.

 

What do programmers know about web development?


This is an interesting article in the programmer stack exchange. Before the website is released, Every programmer should consider the issues when implementing technical details of website applications. This includes several important resources from interface design, user experience, security, web page standards, performance, search engine optimization (SEO), related technologies. Today's world relies heavily on the Internet. It is common for programmers to own their own websites and blogs. What I learned from this article will not help you in your professional or private work. But you will learn all the key technologies, for example, HTTP, HTML, XML, CSS, JavaScript, browser compatibility, tips for reducing website loading time, XML website map, W3C specifications, and other key details.

 

What Every programmer should know about Seo

This is another article that is very important to Web developers, programmers, and bloggers. The SEO topic is so big that we cannot ignore it because many programmers are also blog authors, it is very important to learn the basics of SEO to help Google find their articles and present them to other programmers. In today's Internet world, no company can survive without the Internet, So Seo becomes more important. If you create your own company and sell any product, Seo is definitely something you need to pay attention. All programmers, especially web developers, will benefit a lot. Remember, search engine optimization is a huge and dynamic topic, and there are also differences between different search engines, such as Google and Yahoo. So to be proficient in Seo, you need to constantly learn new knowledge.

 

What every c-language programmer should know about undefined Behaviors

C language has the concept of "undefined behavior. Undefined behavior is a very broad question, which contains many nuances. This is why I like Java, with fewer undefined behaviors and fewer confusions, stronger undefined type and more peaceful and peaceful. In C language, many seemingly reasonable things actually have undefined behaviors, which is a common bug source in the program. In addition, any undefined behavior of the C language permits its implementation (compiler and runtime) to generate code that can format the hard disk, do something unexpected, or worse. Read this wonderful article carefully and explore the ocean of "undefined behavior" knowledge.

 

What Every programmer needs to know about the network

The article said: "You are a programmer. Have you ever wondered how many online games run? It seems a miracle to outsiders: Two or more players share the same experience through the Internet, just as they actually exist in this virtual world at the same time. But as a programmer, we know that the underlying running truth is very different from what we see. ." This very interesting article on the Internet, although written to game programmers, I think every programmer and developer can benefit from it.

 

What every Java developer should know about strings

This is an article I wrote about Java. Lang. String. I personally think every Java programmer should know this. String is very important in Java's daily programming work, which is why every Java developer should learn this knowledge. This article covers many important fields of strings, including string pool, string text, comparison =, and equals () to convert bytes into character creations, why strings are immutable, and how strings are correctly connected. Senior programmers may already know this. You can also use this article to review it.

 

What Should every programmer know about security?

This problem was raised by a computer programming student on stackoverflow. We have learned many general programming concepts, such as operating systems, algorithms, data structures, and computer system structures. security issues are also very important. Although security is a very broad topic, it includes encryption/decryption, SSL, Web Security, code obfuscation, authentication, authorization, and so on. A series of programmers must at least know the knowledge. I didn't know much about security when I first started working, but when I started to write Java Web applications based on Servlet/JSP, I began to be exposed to Web security and some security risks, such as SQL injection attacks, DoS attacks, XML injection attacks, and cross-site scripting. As a Java developer, I now follow the secure Java code instances provided by fortify, PMP and other static code analysis providers. This article is a good summary of this topic and link. No matter whether you are coding or not, you will definitely benefit from it.

 

Latency numbers that every programmer should know

This is an additional article, but every programmer must read it. In order to write high-performance applications with the expected language (Java or C ++), you should know some basic knowledge about delayed numbers, for example, how long does it take to read a variable from memory, L1 cache, L2 cache, SSD, and hard disk. How long does it take to lock/unlock mutex and send a data packet from one city to another city or data center. These delayed numbers are independent of programming languages and core knowledge. A developer must write applications with high frequencies and low latency. This link provides comparative analysis of the evolution of these latencies over the years. You can see the status of these latencies on January 1, 2006, and the status of the latencies.

 

These are all the articles in the series that every programmer must read.By reading the titles of these articles-"What Every programmer or developer should know", you can gain some in-depth knowledge about a specific topic. To be honest, for programmers, there are too many things to learn, and learning a programming language, such as Java, is the tip of the iceberg of knowledge. But aren't we all passionate people. Programming is a very challenging job. The only thing that can always help you in your career is the basic knowledge, such as memory, Unicode, floating point number, time, and security. For programmers, is very important. Only part of the content is for a certain programming language, such as my post on Java strings and "What every C programmer should know about undefined behaviors", but for newcomers and developers, it is worth learning.


This article is translated with the permission of the original author and cannot be reproduced without permission

10 articles that every programmer must read

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.