10 Articles that every programmer must read

Source: Internet
Author: User

As a Java programmer and software developer, the articles that every programmer should know about XXX teach me a lot of things, and they provide some practical and in-depth information about a particular field that is often difficult to find. In the course of my study I read a lot of very useful articles, I add them to the bookmark, easy to read or reference later. I personally think all developers can benefit from these articles, so I've also written a "What every programmer should know" article, ready to share with you. This is my personal collection. In this article, you'll see some classic articles that each programmer should know about, including topics such as memory, Unicode, floating point, Network, object-oriented design, time, URL encoding, string, and so on. This list is very important for beginners and novices, because what they are missing is the actual combat experience. And these articles are just about practice, and they can learn a lot from it. At the beginning of a career, getting to know some basic knowledge earlier can help avoid making mistakes in the future, and these pits have been trampled by other programmers and software developers in their learning process. You may not be able to understand some of the details of the floating point, or be confused by the details of the memory, but it is necessary to keep the list handy, which you can refer to occasionally at the appropriate time. Good luck and hope you enjoy these articles. Incidentally, if any of the programmers must read a series of articles that are not in this list, don't forget to share them.

    1. The programmer must know the memory piece

This is a very classic article, it will lead you into all aspects of memory, there are old, there are new, know, there is not know. Although memory is common and ubiquitous, not every programmer knows it well enough. If you are writing high-performance applications, it is especially important to understand the memory in modern systems. Hardware designers have brought more sophisticated memory processing and acceleration techniques, such as CPU caching, but they have not been able to get the most value out of the programmer. I'm still reading this article and it's hard to know how much I've learned about random access memory (RAM), CPU cache, including Level 1, Level 2 cache, different types of memory, direct memory access, memory controller design, and general memory knowledge. In short, it is a must-read article for all levels of programmers.

    1. The floating-point arithmetic that every computer science must know

Floating-point arithmetic is a very technical topic, not easy to grasp. Many Java programmers are not sure what is wrong with the = = operator when comparing float/double types. Many people often make mistakes when using float/double for currency calculations. This article is the essence of this series, and all software developers should read it. As your experience grows, you definitely want to get to know the details of some common things, and floating-point arithmetic is one of them. As a senior Java developer, you have to know how to do currency arithmetic, when to use float,double or bigdecimal, how to round up floating-point numbers, and so on. Even if you know some basics of floating-point arithmetic, read this article and you'll definitely learn something new.

    1. Each programmer must know the Unicode chapter

Character encoding is another area that many programmers struggle with, "every programmer should absolutely understand Unicode and character sets (no excuses!) ) "Fills this void. Mark it, yes, that's the title of the article. It was written by one of Stackoverflow.com's founders, Joel Spolsky. Joel10 published this article on his blog a few years ago, but it still works for now. This article will show you what Unicode is, what character encodings are, how characters are represented by bytes, and so on. One of the best things about this article is its language and wording, even though you don't know what Unicode is, you can easily read it. In a word, this is also a programmer, code farmers, software engineers must read the article.

    1. Every programmer must know the time article

In addition to character encoding, time and date are another area that programmers often fell, including myself. Even high-level developers will be killed by Greenwich Mean Time (GMT), World Standard Time (UTC), daylight saving, and leap seconds. Frankly speaking, it's hard not to step on a few pits when dealing with time zones, let alone add daylight savings. It's even worse if you want to try the wrong thing, because it's never going to solve your problem. There are many places where mistakes or misunderstandings can occur. For example, if a date includes a time zone, it may bother you, converting Unix time to other time zones may cause you to crash, or forget clock synchronization and delay. I hope that after reading this classic article, many of your misunderstandings about time can be eliminated and you can consolidate some basic knowledge about dates.

    1. URL encodings that every web developer must know

This article describes some common misconceptions in uniform Resource Locator (URL) encoding, and then tries to clarify what the URL encoding of HTTP is, and finally lists some common errors and solutions. Although the content of this article is not specific to a programming language, it is a description of the problem in Java and fixes the problem in URL encoding. You will learn the basic syntax of URLs, HTTP and other common URL formats in the protocol. This article also describes some common errors in URLs, such as character encodings, reserved characters in different parts of the URL, and URL codec problems. If you're a Java developer, you'll learn how to handle URLs correctly in Java, how to construct URLs, and how to use the Apache Common Http client library. Finally, it provides some best practice suggestions, such as you should encode the URL when you build it, make sure that the filter for your rewrite URL correctly handles the URL, and so on. This is a must-read article for any web developer.

    1. Web development that every programmer must know

This is a very interesting article on programmers.stackexchange.com, which is about the technical details that programmers need to implement before they can publish the site to the outside world. This includes interface design and user experience, security, web standards, performance, search engine optimization (SEO), and some important resources. Today's world is heavily reliant on the internet, and many programmers have their own websites, often a blog. What you learn in this article may not help your profession, but it will certainly help you in your personal affairs. You'll learn about key technologies such as html,http,xml,css,javascript, browser compatibility, tips for reducing site load times, XML sitemap, the specification, and many other key details.

    1. Every programmer must know the SEO

This is a very important article for Web developers, programmers and bloggers. Since many programmers are also bloggers, you can't ignore SEO, learning a basic knowledge of SEO is very important, this can help Google to retrieve your content and recommend to other programmers. In today's era of Internet interconnection, no company can be separated from the Web, SEO becomes particularly important. If you have a startup that sells some products, then SEO is the thing to focus on. All programmers, especially web developers, can benefit a lot from this article. Remember, SEO is a very wide variety of topics, different search engines, such as Google,yahoo, their SEO are different. Therefore, to master this skill you have to update your knowledge base frequently.

    1. C Program-aware undefined behavior

The C language has a concept of undefined behavior. Undefined behavior is a very broad topic, it has a lot of subtle differences, which is why I like Java a reason, not so many undefined behavior, not so much confusion, more stable and more quiet. A lot of people seem to be natural things in C are actually undefined behavior, which is also a common source of program bugs. In addition, any undefined behavior in C is determined by the implementation (compiler and runtime), and the code they generate will format your hard drive, do something unexpected, or worse. Read this article and swim in the ocean of undefined behavior.

    1. Programmers must know the network

This passage is excerpted from this article, "You are a programmer." Do you have any thought about how the game is implemented by too many players? From the outside it looks like it is: two or more players share the same experience over the network as if they were in the same virtual world. But as programmers, we know that the truth underneath is different from what you see. In fact, it's all just an illusion. " This is a very interesting article about the web, it is written for game developers, but I think every program developer can benefit from it.

    1. Java programmer must know the string

This is my own article about java.lang.String, and I personally think that every Java developer should be aware of it. String is very important in everyday Java development, which is why every Java programmer should know it well. This article covers many important areas of string, including string pools, strings constants, using = = and equals to compare strings, converting byte arrays to string, why strings are immutable, how to correctly stitch strings, and so on. Advanced programmers should know about these things, but it's good to look back.

    1. The programmer must be aware of the security

A student of computer science asked the question on the StackOverflow. Just as we've learned about common programming concepts like operating systems, algorithms, data structures, computer architectures, and everything else, it's just as important to understand security. Security is a big topic, including encryption and decryption, ssl,web security, obfuscation, authentication, authorization, and so on, which is the basic knowledge that every programmer should know. When I first entered this line, I personally did not know much about security, and I started to write some Java Web programs based on servlet/jsp, and later I learned about EWB security and some security threats such as SQL injection, denial of service, XML injection, cross-site scripting, and so on. As a Java developer, I now encode the Java Security coding specifications provided by Fortify, PMP, and some other static code analyzers. This article is a good collection of security topics that are useful to you, whether you're writing code or not.

    1. Programmer must know the delay time

This article is an extra benefit, but it should be read by every programmer. Regardless of the language, Java or C + + is good, to write high-performance applications, you have to understand the basic knowledge of the delay time, such as how long it takes to read a variable from memory, how long it takes to read from the primary cache, the level two cache, the SSD hard disk to read random and how long, And what if I read it from disk? How long does it take for the locking of a mutex to be unlocked, how long does it take to send one packet from one city to another, and how long does it take to be in the same data center? The numbers for these delays are independent of any programming language, and developers have to write high-frequency, low-latency applications that are part of the core Knowledge base. The good news in this article is that it tells you how these delays have changed over the years. You can see what the 2006-year delay is, and how much is now.

This is a list of all the programmer's must-read articles. See the title of these articles, each programmer should know the XXX, you can learn about a topic some more depth of knowledge. Frankly, programmers have so much to learn, like learning the Java language, which is just the tip of the iceberg, but not everyone has the passion to learn. Writing a program is a challenging job, and in your career, the basics that can help you, such as memory, Unicode, floating point, time, and security, are important to any programmer. Some articles are language-related, such as my own article on string and undefined behavior that every C programmer should know, but it's also good for many beginners to learn.

I think there is a must-read, that is, counting, there are altogether 12 articles. There are a few inaccessible, I also moved to my own blog.

Original article reproduced please specify the source: Every programmer must read 10 articles

Http://it.deepinmind.com/%E5%85%B6%E5%AE%83/2014/05/15/10-articles-every-programmer-must-read.html

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.