Things I Learnt The Hard Way - If Your Data Has a Schema, Use a Structure

You may be tempted to use a list (or tuple, if your language allows) to keep your data if it has, say, only 2 fields. Don't.

Read more...

Things I Learnt The Hard Way - It's Better To Let The Application Crash Than Do Nothing

Although that sounds weird, it's better to not add any error handling than silently capturing errors and doing nothing.

Read more...

Things I Learnt The Hard Way - Types Say What You Data Is

Memory is just a sequence of bytes; bytes are just numbers from 0 to 255; what those numbers mean is described on the language type system.

Read more...

Things I Learnt The Hard Way - If You Know How To Handle It, Handle It

If you know an error can occur, then you should handle it properly, instead of ignoring it.

Read more...

Things I Learnt The Hard Way - A Language Is Much More Than A Language

Picking a programming language is much more than just picking the words that will generate a code. They come with a community, a leadership, an ecosystem and a thread the binds them all together.

Read more...

Things I Learnt The Hard Way - Don't Use Booleans As Parameters

When you're designing a function, you may be tempted to add a flag (a parameter in a function that it is a boolean). Don't do this.

Read more...

Things I Learnt The Hard Way - If A Function Description Includes An "And", It's Wrong

Functions should do one thing and one thing only. I clear indication that you're breaking this principle is the need to add an "and" in its documentation.

Read more...

Things I Learnt The Hard Way - Beware of Interface Changes

Interfaces and APIs is what you give away to others. If you keep changing them, you'll make everyone's life sad.

Read more...

Things I Learnt The Hard Way - Good Languages Come With Integrated Documentation

If you're worried about learning some new programming language, you can bet the one with a better documentation is the one that is born with a document processor.

Same goes for the frameworks/libraries of that language.

Read more...

Things I Learnt The Hard Way - The Function Documentation Is Its Contract

When you start the code by writing the general flow as steps and making each step a function, you're actually making a contract (probably with your future self): I'm saying this function does this and this is what it does.

Read more...