Ask HN: Common or important programming compromises

2 points by unFou ↗ HN
As a beginner-intermediate programmer, I'm starting to get a feeling that a better programmer is someone who is more consistently aware of the consequences of the decisions that they're making when they code. In other words, someone who has reduced their unknown unknowns.

Examples that I've come across personally are knowing the consequences / differences between: An array and a hash table (I come from a non-compsci background, and was exposed very late to hash/dictionary structures); An operational vs a relational database, and when to (de)normalise your data; Using a new language better suited for the job vs the upkeep of adding another language to the codebase.

To the collective experience of HN: what are some common or very importance consequences that you've come across?

P.S. please don't feel limited to technical details. I haven't been exposed to the start-up or internal political side much, but wouldn't mind picking up hints and details

2 comments

[ 1.8 ms ] story [ 16.1 ms ] thread
A compromise I haven't figured out yet:

When is it better to import a library for a function vs copy just the source code for that function (with attribution, of course).

If you think the function may improve in the future, import the library, if not; copy the code. Remember that you will not go back later to see if there is a new version to copy in.