Articles software developers should read, at least once

… if not twice.

These days, almost every software developer has a blog – so it’s sh*tloads of content around the Internet. Truth is, the good, accurate, long-lasting contents are hard to be found. Most contents are supposed to be obsolete very soon – and it’s OK, because many contents are for a very specific situation in a very specific time. But can we have a collection of the precious contents that are useful not only today, this week, this month, but ten years from now?

This is supposed to be a definitive collection of great contents that will be helpful for your entire career as a software developer. It’ll be updated frequently, with new link as I found it.

The Log: What every software engineer should know about real-time data’s unifying abstraction (Jay Kreps)

Logging is essential to every serious software system. But it’s not easy – getting it right can be indeed hard, especially in real-time. This article provides a deep knowledge about the concept.

http://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (Joel Spolsky)

It’s been 26 years since Unicode was introduced and still, not all people can get it right. This article gives you – as the tittle suggests – a minimum knowledge about Unicode, and how to not get it wrong.

http://www.joelonsoftware.com/articles/Unicode.html

What Every Programmer Should Know About Memory (PDF) (Ulrich Drepper)

This is a pretty low-level paper, you will learn about how memory works at hardware level. Still interesting and useful. Who knows someday you’ll have to get your hands dirty with some memory stuffs?

http://www.akkadia.org/drepper/cpumemory.pdf

What technical details should a programmer of a web application consider before making the site public?

Web development is hard – if you want to make your website fast, and secure. This is the collection to beat – best practices as a check list before getting your site public.

http://programmers.stackexchange.com/questions/46716/what-technical-details-should-a-programmer-of-a-web-application-consider-before

What Every Programmer Should Know About SEO (kate{mats})

Today, search engines (read, Google Search) are king – you can’t get the traffic you deserve without proper SEO. I still read this article frequently and learn something from it.

http://katemats.com/what-every-programmer-should-know-about-seo/

What every web developer must know about URL encoding (Stéphane Épardaud)

The original link is gone, but here’s a back up:

https://www.talisman.org/~erlkonig/misc/lunatech%5Ewhat-every-webdev-must-know-about-url-encoding/

Needless to say, if you are a web developer, you should read this.

What Every Computer Scientist Should Know About Floating-Point Arithmetic

Highly academic article, however if you are into this kind of stuffs, then it’s a must read – how many times have you heard about issues caused by floating point precision?

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

What every programmer needs to know about game networking

Game development is interesting – game networking is interesting and challenging at the same time. How can you deal with the delay and the lag, especially in multiplayer competitive games? Gafferongames also has some of the best game development articles as well.

http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/

Back to basic: Series on dynamic memory management (Abhinaba Basu)

You can find garbage collection almost everywhere now – Java, .NET, Go, etc. How does it work in a concept level? This series provide a in-depth look into the how garbage collection concepts work, their pros and cons:

https://blogs.msdn.microsoft.com/abhinaba/2009/01/25/back-to-basic-series-on-dynamic-memory-management/

Leave a Reply

Your email address will not be published. Required fields are marked *