Monday, March 6

Don't forget the fundamentals

Kathy Sierra writes that you should never forget the fundamentals of whatever you do. A good musician will always practice scales and arpeggios.

However, developments in hardware and software mean that you no longer have to worry about things like writing optimal functions for low level tasks such as calculating the lengths of strings. Things like memory management are handled by the operating system and framework.

Which fundamentals are still important to know, and which can be dismissed as no longer being relevant – I think the most important two are Big-O notation and network design?

Big O – notation – It's important to know how long does it take to perform an operation on a collection based on the size of the collection. If you know the basics of this, you can use appropriate collection types (such as lists or hash tables) and know when to look at reducing collection sizes.

Networking technologies – it's important to know how and when data travels across a network, and when delays and unreliability may be introduced. If you know the basics of this, you can plan for how to structure systems to cope with delays and unreliability.

Are there any other fundamentals that you think should never be forgotten?

No comments: