标签:des style blog class c code
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
Articles Every Programmer Must Read
标签:des style blog class c code
原文地址:http://www.cnblogs.com/WCFGROUP/p/3731553.html