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).
- 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.
- How I Became a Programmer - A post in the same vein as the first one.
- 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.
- 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.
- Principles of Good Programming
- Teach Yourself Programming in 10 Years, by Peter Norvig - MUST READ
- Become a Good Programmer in Six Really Hard Steps, a good follow up on the Peter Norvig post MUST READ
- 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)
- Demise of the Low Level Programmer - For people who really want to get into serious programming
- 10 Rules of a Zen Programmer
- Knuth : Programming as an Art - Yes, it's art
- 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.
- The true Fathers of Computing - A little history lesson.
- How to Write Without Writing - Jeff Atwood again, on the importance of writing(having good communication skills) for a programmer
- Evolutionary Algorithm : Evolving "Hello, World!" - Probably the one post which is most off topic here, but I just love this it.
- Signs that you are a bad Programmer - Catch 'em early, better than finding out later or even worse never finding out, and fix them.
- 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.
- 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.
- 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.
- 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)
- 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.
- "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.
- Code like a Pythonista - by David Goodger. Python style and Python idioms.
- 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!
- on lisp - Official reddit blog on lisp and why they chose Python.
- 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.
- 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.
- 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.
- Lucky to be a Programmer - Why programming is so awesome!
- 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.
- How To Become A Hacker - Eric S. Raymond on how to become a hacker. Note - It's hacker, not cracker.
- 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.
- 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.
- Writing Idiomatic Python - Best practices to follow when there are multiple ways of doing the same thing in Python.
- 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.
- What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text - Self descriptive. Knowing these things help.
- 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.
- 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.
- Wat - Video of slides, and audio from a talk. Does not have any mention of Python, but is absolutely hilarious. Do watch.
- Extremist Programming - Learn a new thing, start applying it to everything. This way you learn where it works, and where it doesn't.
- 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.
- 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.
THE DON'T JUST READ IT, MEMORIZE IT LIST
- 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.
28 Aug '12, 22:59