Coding Horror

Coding Horror is a great read written by Jeff Atwood, the co-founder of Stack Overflow. I’ve organized interesting posts into loose categories such as Dev (ie. software engineering), UX, security and other topics.

Submit your code regularly in small doses.
Testing with real user data.
“I could code that in a week.”
Deleting unnecessary code is good.
Dogfooding – developers might not be the target audience.
Guide to Rubber duck debugging.
Code minimalism.
Managed code performs well.
Writing reusable code is difficult.
You can’t design everything up front.
Workspace quality matters.
About trust in software development.
It would be cool to have tools that show the effect of changes as you type.
List of funny dev terms.
Implicitly typed local variables in C#.
Databases need version control.
Simple algorithms might be not only inefficient but also biased.
Hashtables and collisions explained.
Do you like your team members?
When was the last time you met your users?
Pair programming = synchronous real-time code review with a short feedback loop.
Garbage collector beats manual (de)allocation.
A diff based updated.
Killing instances on purpose to make system more resilient.
Visual changes vs changes under the hood.
Buying software supports programmers.
Throw faster hardware at your performance problem first.
Naive swearword filters aka Clbuttic.
How long does it take for a new developer to start working on a project?
Bloating software and hunger for features.
Design-the-(product)-box activity to clearly explain the product.
Phil was A/B testing his date with Rita.
Development is craftsmanship, not engineering.
Optimize your websites.
English is the standard language of programming.
Storage latency – today we only need to travel to Jupiter.
Fix user issues?
Don’t assume the program you wrote and optimized is the fastest possible.
How to interview developers for a job.
Genius anti-piracy strategy.
Forking off open-source projects.
Test with large datasets.
Does it make sense to fix this bug?
Tips how to improve code that is nested.
Jeff Atwood’s “illegal” story.
Friday afternoons in Palo Alto must’ve been legendary.
Coding is not an essential skill like reading and writing.
One bad team member can disrupt the group.
Confronting and resolving issues with “bad apples” is a must in team projects.
Software project is something brand new whereas construction can refer existing projects.
Unit testing is a cute little bunny that can complement real testing.

The Dialogue.
UX of performance.
Dialog box is #BadUX
Dialog box and reading tech tech info.
(some) Users don’t understand double click.
UX of treeviews.
UX of login dialogue.
UX of pagination
Example content instead of a blank page.
Users don’t read instructions.
User feedback based on data rather than what they say.
UX of password dialog
People lie (to themselves).
UX of popup windows.
Helvetica > Arial
Microwave UX.
Font for road signs.
IM vs email, and number of steps it takes to do something in an app.
“How do I make this error message go away?”
Dialogs interrupt users flow.
Don’t force me to login.
Not doing any usability testing is a disaster.

Sneaky redirection hack.
Password length should be at least 12 characters.

HTTPS rules.
Secure your email. Now!
Security bugs in open source and incentives to fix them.
Long passwords good & developers please pick hash algorithms carefully.
Throttle failed logins
Anyone who loads user profile will send their to an evil remote server!
Everyone is vulnerable to phishing.
Online identity and reliance on passwords.

Career options if you don’t like programming anymore.
If you’re a student, find internship like your life depends on it.
Rather create something than study for certification.
Gamebooks and career choices.

Fair use problematic on Youtube.
What is fair use?
Code without license has implicit copyright. License comparison.

Forums suck.
Various options to deal with bad actors in online communities.
Little steps towards healthy open-source community.
Choose appropriate channel for communication.
No boring presentations.
Private email vs public blog post.
AOL and Facebook, private networking sites.
It’s not about you. It’s about them.
Slashdot effect.

Multitasking is a lie.
Estimates are way off.
Declare TODO bankruptcy.
Speed of iteration rules.

Tools & Things
Internet archive is awesome.
Jeff shares my love for Beyond Compare!
Slim wallet rocks.

Neglect accelerates the rot.
Complex solution can be the right one. Occasionally.
Motivation to reduce consumption – a comparison with peers.
Is PC really over? I doubt it.
192kbps MP3 ftw.
Shopping and happiness.
No meeting should ever be more than an hour, under penalty of death.
Bias lighting good for your eyes.
Don’t get tricked by sale techniques.
Reduction of advertising to the lowest common denominator.
Practice makes perfect.
Baby duck syndrome.
Iterative approach to creating mods.
Bill Gates made a game!
Works on my machine!
Songs in Simlish.
Computers sucks!
Website spam prevention.
Dash as a substitute for space.
Straightforward explanation of AF (anisotropic filtering).
Enumerations instead of bool. Radio buttons instead of checkbox.


Leave a Reply

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