Recommended Reading - A list of amazing blog posts, essays and articles


Copying from my post on the old CS101 forums.

Over the years I've come across various great posts on the internet related to programming. A lot of those I consider essential reading for programmers. So I shall be sharing a list of blog posts over here, some essential, some not(but still good reads).

  1. Learning to Code: The Roadmap I Wish I Had Been Given - Just read this one today. More relevant to beginners with no or very little programming background.
  2. How I Became a Programmer - A post in the same vein as the first one.
  3. Why can't Programmers... Program? - On the importance of knowing the little things, by Jeff Atwood, cofounder of StackExchange, the model for the Q&A framework the Udacity Forums uses.
  4. Recursion Explained with the Flood Fill Algorithm (and Zombies and Cats), a very good explanation of Recursion by Al Sweigart, the writer of Invent Your own Computer Games with Python.
  5. Principles of Good Programming
  6. Teach Yourself Programming in 10 Years, by Peter Norvig - MUST READ
  7. Become a Good Programmer in Six Really Hard Steps, a good follow up on the Peter Norvig post MUST READ
  8. How to RTFM - Tips for a life of discovery - Stuck at a problem? Solution - search google(or ask on the forums). No! That's the worst you could do. Read The F---ing Manual! (:P)
  9. Demise of the Low Level Programmer - For people who really want to get into serious programming
  10. 10 Rules of a Zen Programmer
  11. Knuth : Programming as an Art - Yes, it's art
  12. A Visual Guide to Version Control - If you stick to programming for more than a while, then you're eventually going to end up using(if you don't, then you should) Version control. So better learn about it sooner rather than later.
  13. The true Fathers of Computing - A little history lesson.
  14. How to Write Without Writing - Jeff Atwood again, on the importance of writing(having good communication skills) for a programmer
  15. Evolutionary Algorithm : Evolving "Hello, World!" - Probably the one post which is most off topic here, but I just love this it.
  16. Signs that you are a bad Programmer - Catch 'em early, better than finding out later or even worse never finding out, and fix them.
  17. The Jargon File - It's not a blog post, but still an important resource. From Chapter 1 - Introduction : This document is a collection of slang terms used by various subcultures of computer hackers. Though some technical material is included for background and flavor, it is not a technical dictionary; what we describe here is the language hackers use among themselves for fun, social communication, and technical debate. The download page, if you are interested.
  18. How I Learned to Program - I know I've posted quiet a few in the same vein, but this one is a little different than the rest. And I like the authors style.
  19. Before Python - Written by Guido van Rossum, the creator & Benevolent Dictator For Life, of Python about his programming experiences before Python. Also has a link to his other blog, - The History of Python.
  20. Advice from an Old Programmer - Zed Shaw, author of Learn Python the Hard Way gives some excellent advice, and then ends with - You can code. They cannot. That is pretty damn cool. (via @dedos from his post)
  21. Should Competent Programmers be "Mathematically Inclined?" - Jeff Atwood hits it out of the park again! If you aren't good at math, then that doesn't automatically mean you can't become a good programmer.
  22. "How much math do I need to know to program?" Not That Much, Actually - by, Al Sweigart, author of Invent Your Own Computer Games with Python.
  23. Code like a Pythonista - by David Goodger. Python style and Python idioms.
  24. Stop Using Print for Debugging - Al Sweigart, author of Invent Your Own Computer Games With Python, posts a 5 minute quickstart guide to the Python logging module. Debug the right way!
  25. on lisp - Official reddit blog on lisp and why they chose Python.
  26. Turning your code inside out - Every person who's regular on this forum - both the people who usually answered & the ones who usually asked questions, will find this post relevant, specially when it came to a special case of problems that a lot of people had.
  27. Write Code Like You Just Learned How To Code - Humm, this suggest that the people who started coding only during this course or weren't much familiar with coding before this course might have a better chance at winning the contest than the ones who have a much more extensive prior coding experience.
  28. A primer on Python decorators - Python functions as arguments, functions inside functions, functions that modify other functions, recursion, and memoization. It's easier than it sounds.
  29. Lucky to be a Programmer - Why programming is so awesome!
  30. How I created and launched a website from the internet cafe in Zimbabwe, Africa - Guy who has to code at night because of the electricity situation during the day, and without an internet connection makes a website and improves his career prospects.
  31. How To Become A Hacker - Eric S. Raymond on how to become a hacker. Note - It's hacker, not cracker.
  32. Holding Program in Ones Head - Paul Graham of Y Combinator on how important it is the have the idea about the entire program in your head.
  33. Some things I've learnt about Programming - John Graham-Cumming on the things he's learnt about programming in the 30 years he's been coding.
  34. Writing Idiomatic Python - Best practices to follow when there are multiple ways of doing the same thing in Python.
  35. The making of Warcraft - The lead programmer of Blizzards hugely successful game Warcraft, Patrick Wyatt, blogs about the development of Warcraft. You can read the second part and posts on the making of Starcraft on his blog too! This should be inspiring for aspiring game developers here.
  36. What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text - Self descriptive. Knowing these things help.
  37. Python for Humans - Not a blog post but slides from a talk on Python - what is wrong with it and how to go about fixing it.
  38. 7 Python Libraries you should know about - The name says it all. And if you want to give your search engine some serious boost, there are 3 libraries mentioned there that you'd love.
  39. Wat - Video of slides, and audio from a talk. Does not have any mention of Python, but is absolutely hilarious. Do watch.
  40. Extremist Programming - Learn a new thing, start applying it to everything. This way you learn where it works, and where it doesn't.
  41. 14 Ways to Contribute to Open Source without being a Rockstar Programmer - The title is self explanatory. This is something that I think will help a lot of Udacians.
  42. Building A Python-based Search Engine - Presentation slides for building a search engine in Python. Goes into more details that covered in CS101. The code can be found on github.
  43. Transforming code into Beautiful, Idiomatic Python(slides) - A talk given by Raymond Hettinger, Python code developer, on the correct idioms to use when writing Python code. You can watch the video here. <-- Must read, and watch!

Happy reading!


  1. xkcd - This is the most important resource in this list, so important that it's a list of it's own. You need to be proficient in your knowledge of xkcd, so proficient that you should be able to link situations you come across life(either Real of Online/Game) to specific xkcd strips wherever possible.
This question is marked "community wiki".

asked 28 Aug '12, 22:59

elssar's gravatar image


accept rate: 52%

wikified 19 Jan, 20:44


I notice the line in your original post: "Don't muck up the order of the posts. Don't try & arrange them in some kind of order. Just post the next link at the bottom of the list."

Is there some hidden significance to the order of this list? Also, sorry for totally reordering and editing your book list without much warning.

(28 Aug '12, 23:12)

Sam the Great ♦

Sam%20the%20Great's gravatar image

Nah, there is no order, just wanted new posts to be at the bottom of the list, that's all. Didn't want the posts to be arranged by how good they are or how important they are. Your edit on the books posts was pretty good actually. Think we can take some relevant blog posts from here, like the one on recursion by Al Sweigart make a blog post section on that post.

(28 Aug '12, 23:17)


elssar's gravatar image

I've actually already included Al Sweigart's recursion article in my draft for the tutorial & problem set on recursion. I'm going to focus on and hopefully finish it tomorrow.

I think it's a good idea to merge some of this list into the "resources" list -- do as you see fit. I'm spending my time right now reading through them all.

(29 Aug '12, 00:22)

Sam the Great ♦

Sam%20the%20Great's gravatar image

The link for #31 was missing for almost a month and a half and no one even noticed!! o.0

(12 Sep '12, 03:56)


elssar's gravatar image

Added #42, the answer to the ultimate question about life, the universe and everything! Better read those slides

(11 Mar '13, 22:52)


elssar's gravatar image

going deeper and deeper into the rabbit hole... ;)

regarding RTFM - for me at least in the beginning it wasn't easy understanding coding manuals. For example I was trying to understand one concept, but it called for understanding three others. These in turn called for three more each, giving now a total of 9 new concepts which is not an easy task to grasp at once. Fortunately, there are now very many tutorials covering at least the major concepts that use common English. It's a great start, and perhaps the term could be used as RTFT(utorial) instead :)

just my 2c

(01 Aug '13, 03:12)

Daniel Tyrkiel

Daniel%20Tyrkiel's gravatar image

Is is just me or is the How to RTFM article no longer up?

(09 Aug '13, 20:32)


Marshall-15's gravatar image

@Marshall-15 nope it's not just you, the article is gone. Lets see whether I can find an archived version to put up.

(11 Aug '13, 00:03)


elssar's gravatar image
(13 Mar '14, 08:06)


Gary-133's gravatar image

@Garry-133 thanks!

(13 Mar '14, 08:17)


elssar's gravatar image

I'm a huge fan of this list. #9 is a dead link, though. Is this the same content(?):

(23 Aug '14, 12:00)


HugoMelo's gravatar image

@HugoMelo yes, that is the same article, thank you. I've marked this topic as a community wiki, so now anyone can edit/add.

(25 Aug '14, 22:40)


elssar's gravatar image

Number 8 seems to be a dead link. is this the one that you meant: ? Btw I'm enjoying the reading, thank you very much for putting an effort to compile this list.

(13 Sep '14, 09:20)

Vladimir Zin...

Vladimir%20Zindovic's gravatar image

@Vladimir Zindovic yes, that is the one. Thanks for finding the correct link

(18 Sep '14, 16:14)


elssar's gravatar image
showing 10 of 14 show 4 more comments

6 Answers:


SPAM! link removed


answered 29 Apr '14, 02:12

Anuj-39's gravatar image


edited 08 May '14, 16:19

elssar's gravatar image





answered 10 Mar '14, 06:01

ahmed-99's gravatar image


edited 12 Mar '14, 23:59

elssar's gravatar image



nice information. thank you for sharing it.



Nice try at sneaking in an advertisement. Next time remember, lots of people have the powers to edit your post, so spam/ad links you post won't have that long of a life, and your karma will take a beating. -elssar


answered 18 Mar '13, 05:34

abhishek-16's gravatar image


edited 20 Mar '13, 22:47

elssar's gravatar image


Since you mentioned Paul Graham, here is another interesting article of his:
Revenge of the Nerds
I found his "look inside the brain of the pointy-haired boss" very insightful, as well as the Appendix on "the relative power of programming languages" which for me, coming from a Java background, changed my outlook on programming languages forever.


answered 12 Mar '13, 16:28

Michael%20H%C3%A4ndel's gravatar image

Michael Händel ♦


That was a great read!

I love reading Paul Grahams essays, but boy are they long. Every time I read one of his essays, I keep switching between multiple tabs and probably read a half a dozen other blog posts by the time I'm done with his.

Having said that, his essays are really influential, at least for me. His views on bottom up design have really influenced my views on the topic.

(12 Mar '13, 23:36)


elssar's gravatar image

that's some reading to do, thanks


answered 12 Nov '12, 14:30

jorgen's gravatar image


edited 02 Dec '12, 10:14

elssar's gravatar image



Indeed, and all of it will be worth it.

(12 Nov '12, 22:18)


elssar's gravatar image

Silly question, maybe, but where did the content of this post go???? I'd love to read the articles.


answered 01 Dec '12, 20:53

Sean%20Rumrill's gravatar image

Sean Rumrill

Good question, I'm wondering the same thing. Looks like the profiles merger screwed things up

(02 Dec '12, 08:03)


elssar's gravatar image

@Sean fixed! Looks like if you make an edit to the post it'll show again.

(02 Dec '12, 10:13)


elssar's gravatar image
Your answer
Question text:

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 28 Aug '12, 22:59

Seen: 5,674 times

Last updated: 19 Jan, 20:44