Articles Every Programmer Must Read

http://javarevisited.blogspot.sg/2014/05/10-articles-every-programmer-must-read.html

Being a Java programmer and Software developer, I have learned a lot from
articles titled as What Every Programmer Should Know about ..... ,
they tend to give a lot of useful and in-depth information about a particular
topic, which otherwise is very hard to discover. In my quest of learning I have come across some very useful articles,
which I have bookmarked for reference and multiple reading. I personally think that all programmer
can benefit by reading these articles, which makes me write
this post and share all of these "What Every Programmer Should
Know"
articles with you guys. These are from my personal bookmarks. In
this article, you will see classic what every programmer should know article
from topics like memory, Unicode, floating point
arithmetic
, networking, object oriented design,
time, URL Encoding, String and many more. This list
is very important for beginner and newcomers, as they are the ones, who lacks
practical knowledge. Since most of these post are actually driven by practical
knowledge, beginner and intermediate
programmers can take a lot from it. Also gaining knowledge of fundamentals early
in career helps to avoid mistakes, which has done by other programmers and
software developers on their course of learning. Though it’s not easy to grasp
all knowledge given in these articles in just one reading. You probably won‘t
understand some details about floating
point number or get confused with subtle details of memory, but it’s important
to keep these list handy and refer them time to time with a context. So Good
luck and Enjoy reading these wonderful articles.  By the way, don‘t forget
to share any What Every Programmer Should know article, if it’s not already in
this list.

What Every Programmer Should Know about Memory

This is one of the classic article, which will take you through may lanes of
memory, some old, some new, some known and some unknown. Despite being so conman
and omnipresent, not every programmer have enough knowledge of Memory. Knowledge
of memory in modern system becomes even more important if you are in space of
writing high performance application. Hardware designers have come up with ever
more sophisticated memory handling and acceleration techniques–such as CPU
caches–but these cannot work optimally without some help from the
programmer. I am still reading this article, and I can‘t tell you how much
I have learned from this about RAM, CPU Caches e.g. L1 and L2 cache, different
types of memory, direct memory access, memory controller designs and Memory in
general. In short, a must read for programmers of all level of
experience.

What Every Computer Scientist Should Know About Floating-Point
Arithmetic

Floating point arithmetic is a tricky topic, and it’s
not easy to master. Even many Java programmer doesn‘t know what can go wrong
when comparing float/double
value with == operator. Many
of us often makes mistake of doing monetary calculation in float
and double. This
article is another gem of this series and must read for all software developers
and programmers. As your experience grows, you are expected to know subtle
details of common things, and floating point arithmetic is one of them. As as
senior Java developer, you must know how do perform monetary calculation, when
to use float,
double or
BigDecimal
classes, how to round floating point numbers etc. Even if you know
fundamentals of floating point arithmetic, You will learn something new about
floating point calculation by reading this article.

What Every Developer Should know about Unicode

Character encoding is another area, where many programmer struggle, and "The
Absolute Minimum Every Software Developer Absolutely, Positively Must Know About
Unicode and Character Sets (No Excuses!)"
aims to fill that gap. On side
note, Yes that‘s the full title of that article. It was written by Joel Spolsky,
one of the founder of statckoverflow.com.
Joel has written this post on his blog almost 10 years back, but it is still
relevant in today’s world. This article will teach you about What is
Unicode,
 What is character encoding, how characters are
represented using bytes and many more. One of the best thing about this article
is language and flow, even if you don‘t know anything about Unicode, you can
easily follow. In short, one more must read for all programmers, coders and
software engineers.

What
Every Programmer Should know about Time

Apart from Character
encoding, time and date is another area, where many programmers struggle,
including me. Even senior developers lost between GMT, UTC, day light saving and
between leap seconds. Frankly speaking, It‘s not easy to deal with time zones
without making any mistake, then add day light savings and effect of that.
Problems becomes worse if you using trial and error method, because you will
never able to solve your problem by doing that. There are so many things which
can go wrong and there are equal number of misconceptions. Things like, whether
date contains time-zone or not can confuse you like hell, converting UNIX time
to other time-zone can freak you out, forget about clock synchronization and
delays. I hope many of your misconception about time will go away and you will
build sound fundamental about Time, by reading this classic
article.

What every web developer must know about URL
encoding

This article describes common misconceptions about
Uniform Resource Locator (URL) encoding, then attempts to clarify URL encoding
for HTTP, before presenting frequent problems and their solutions. While this
article is not specific to any programming language, it illustrate the problems
in Java) and finish by explaining how to fix URL encoding problems in Java, and
in a web application at several levels. You will learn basics of URL grammar,
general URL syntax in HTTP and other protocol. This article also explores common
pitfalls of URLs e.g. character encoding, reserved character at different part
of URL, and URL encoding/decoding issues. If you are a Java programmer, then you
will also learn about how to handle URLs in Java application, the right way. How
to construct URL and using Apache commons HTTP client library. Finally it also
suggest best practices or dealing with URLs e.g. you should encode URLs when you
build them, making sure your URL-rewrite filters deal with your URL correctly
and many more. In short, a must read article for any web developer and
programmer.

What should every programmer know about web
development?

This is an interesting article from programmers
stack exchange, about what should every programmer implementing the technical
details of a web application consider before making the site public. This
includes things ranging from Interface design and User
Experience
, Security, Web standards,
Performance, Search Engine Optimization(SEO), Technology
involved, and about several important resources. Since today‘s world is hugely
dependent upon internet and programmer having their personal site, blog is quite
common. Experience learned on this article will not even help in your
professional work but also in your personal work. You will learn about all key
technology e.g. HTTP, HTML, XML, CSS, JavaScript, browsers compatibility, tips
to reduce loading time of your website, XML sitemaps, W3C specifications and
several other key details.

What Every Programmer Should Know About
SEO

This is another article, which is very important for web developers,
programmers and blogger. SEO is too big to ignore, since many programmers are
also blogger, it’s important to learn few basics of Search
Engine Optimization to help Google find their content and present to
other fellow programmers. Since no company can survive without web presence in
today‘s inter-connected world, SEO becomes even more important. If you own
start-up, selling any product, then SEO is something to care about. All
programmers, especially web developers can largely benefit from this article.
Remember, Search Engine Optimization is vast and very dynamic subject, and also
varies between different search engines e.g. Google, Yahoo, and others. So, In
order to master this topic you will always need to update your
knowledge.

What Every C Programmer Should Know About Undefined
Behaviour #1/3

C programming language have the concept of
"undefined behaviour". Undefined behaviour is a broad topic with a lot of
nuances and that‘s one reason of Why I like Java, less number of undefined
behaviour, less confusion, more stability and more peace. Many seemingly
reasonable things in C actually have undefined behaviour, and this is a common
source of bugs in programs. Beyond that, any undefined behaviour in C gives
license to the implementation (the compiler and runtime) to produce code that
formats your hard drive, does completely unexpected things, or worse. Read this
excellent article to deep dive on sea of undefined
behaviour

What Every Programmer Need to know about
networking

From the article itself "You’re a programmer. Have
you ever wondered how multi-player games work? From the outside it seems
magical: two or more players sharing a consistent experience across the network
like they actually exist together in the same virtual world. But as programmers
we know the truth of what is actually going on underneath is quite different
from what you see. It turns out that it’s all an illusion." This is very
interesting article about networking, written for game programmers but I think
every programmer and developer can benefit from this.

What
Every Java Developer Should Know about String

This is my
article on java.lang.String
and what I personally thing every Java programmer should know about it. String
is very important in day to day programming in Java and that‘s why good
knowledge is must for any Java developer. This article touches many important
areas of String including string pool, string literal, comparing String using
== vs equals(),
converting bytes to String, Why String is immutable, properly concatenating
Strings and many more. Advanced programmer may already know all these stuffs but
even then it’s good to revise them.

What should every programmer know about
security?

This question was ask by one computer programming
student in StackOverFlow. Just like we learn a lot about general programming
concepts e.g. operating system, algorithm, data-structure, computer
architecture, and other stuff, its also important to know about security. Though
Security is vast topic ranging from encryption/decryption, SSL, web security,
obfuscation, authentication, authorization etc, a basic minimum knowledge is
must for every programmer. I personally didn‘t know much about Security when I
started my career, its when I start writing Servlet/JSP based Java web
application, I come to know about web security and several security threats like
SQL Injection, Denial of Service, XML Injection,
Cross site scripting and others. As Java developer, now I follow secure
Java coding practices provided by fortify, PMP and other static code analysis
providers.  This article is very good collection of topics and links about
Security and whether you are doing coding or not, you will surely benefit from
this resource.

Latency Numbers Every Programmer Should
Know

This is the bonus article, but must read for every
Programmer. In order to write high performance application in any programming
language e.g. Java or C++, you ought to know fundamental latency numbers e.g.
how much time it take to read a variable from memory, from L1 Cache, from L2
cache, from random read in SSD and from disk. How much time it take to lock
unlock on mutex, to send a data packet from one city to another or doing a
roundtrip on same data centre. These latency numbers are independent of any
programming language and part of core knowledge, a developer must have to write
high frequency low latency applications. Good thing about this link is that it
also provides you comparative analysis of how these latency numbers have evolved
over the years. You can see what these latency numbers were in 2006 and what
they are now.

That‘s all in this list of article every
Programmer must read
. By reading articles titles as What Every
Programmer or Developer Should know
, you gain in-depth knowledge of a
particular topic. Frankly speaking there are too many things to learn for
programmers, learning a programming language like Java is just a tip of iceberg,
but isn‘t it many of us have passion for learning. Programming is a challenging
job, and only things which help you all along your career is fundamental
knowledge e.g. things about Memory, Unicode, floating
point numbers
, time, security is very important for any
programmer. Few things are programming language specific e.g. my post about Java
String and What every C programmer should know about undefined behaviour, but
they are still good to learn for many beginner and
developers.

Read more: http://javarevisited.blogspot.com/2014/05/10-articles-every-programmer-must-read.html#ixzz31qBCFVSk

Articles Every Programmer Must Read,布布扣,bubuko.com

时间: 2024-10-18 19:18:51

Articles Every Programmer Must Read的相关文章

每个程序员都必读的12篇文章

英文原文:10 Articles Every Programmer Must Read 作为一名 Java 程序员和软件开发人员,那些每个程序员都应该知道的 XXX 的文章教会了我不少东西,它们提供了某个特定领域的一些实用的并且有深度的信息,这些东西通常很难找到.在我学习的过程中我读到过许多非常有用的文章,我把它们添加到了书签里,方便以后阅读或者引用.我个人认为所有开发人员都能从这些文章中受益,因此我也写了篇"每个程序员都应该了解的"文章,准备分享给你们.这是我的个人收藏.在这篇文章中

转: 2014技术文章合辑

转自: http://www.xiaoyaochong.net/wordpress/index.php/2015/01/12/2014%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0%E9%9B%86%E9%94%A6/ 分布式系统 理论 A Distributed Systems Reading List 卡内基梅隆大学分布式系统阅读清单 分布式基础 网页公开课 The Space Between Theory and Practice in Distributed S

10 Unit Testing and Automation Tools and Libraries Java Programmers Should Learn

转自:https://javarevisited.blogspot.com/2018/01/10-unit-testing-and-integration-tools-for-java-programmers.html#ixzz60s1lBt5p 一些很不错的测试框架整理 In last a couple of weeks, I have written some articles about what Java developer should learn in 2019 e.g. progr

通过限时写代码,优化代码的方式。 1.containerView

http://baozoumanhua.com/users/11655690/articleshttp://baozoumanhua.com/users/11655696/articleshttp://baozoumanhua.com/users/11655697/articleshttp://baozoumanhua.com/users/11655702/articleshttp://baozoumanhua.com/users/11655949/articleshttp://baozouma

Programmer Competency Matrix

Note that the knowledge for each level is cumulative; being atlevel n implies that you also know everything from thelevels lower than n. Computer Science   2n (Level 0) n2 (Level 1) n (Level 2) log(n) (Level 3) Comments data structures        Doesn’t

DB Query Analyzer 6.04 is distributed, 78 articles concerned have been published

    DB Query Analyzer 6.04 is distributed,78 articles concerned have been published  DB Query Analyzeris presented by Master Genfeng, Ma from Chinese Mainland. It has Englishversion named 'DB Query Analyzer' and Simplified Chinese versionnamed   . DB

How to become a proficient Python programmer - 如何成为Python高手

http://blog.csdn.net/pipisorry/article/details/44801859 How to become a proficient(熟练的) Python programmer如何成为Python高手 Spoiler: This post is primarily gonna be an excerpt(摘录) of my bookmarks collection. That's because more intelligent men than me have

转摘<<On becoming an expert C programmer>>

The following is from an EMail message that I sent to to an individual on 12-Apr-2001. You may find this EMail message useful. The Writer asked: ``I just recently visited your website ... Just wanted to say greetings and ask a simple question: Do you

Oracle 11g Articles

发现一个比较有意思的网站,http://www.oracle-base.com/articles/11g/articles-11g.php Oracle 11g Articles Oracle Database 11g: New Features For Administrators OCP Exam Articles Oracle Database 11g Release 1: Miscellaneous Articles Oracle Database 11g Release 2: Misc