DEV Community

Borislav Grigorov
Borislav Grigorov

Posted on • Edited on

3

Programmer's first principles

Original article

Our job as developers is to solve problems. It's the programmer's axiom.

Thus everything we do that contributes to the realization of this goal is good (productive). Everything that contradicts and interferes with it - is bad (unproductive). At the end of the day we must ship solutions.

A fair question that arises is: How do we do this?

By observing objective truths from the reality in regards of your specific case and then implementing as much of the productive things (for that specific case) in your process as possible.

And how do we know if something is productive or not? Based on reasoning. In order to reason about something, one should have a solid foundation on top of which to build up and take logical decisions.

Here are some of the solid foundations that I use as a guiding light in my practice as a developer (and some of those to some extend as a human being in my life).

  1. Simplicity over complexity. Always.
  2. Automation over manual work - if machine can do it, it must do it.
  3. If writing code can be avoided, avoid it. Remember the programmer's axiom - solve problems. It's not "write code".
  4. Single point of failure is always preferable.
  5. Remove what's not needed. It rots.
  6. Duplicating code IS OK. Duplicating knowledge in separate modules IS NOT.
  7. If it can be reused, reuse it. (Note: keep in mind simplicity)
  8. Name things properly.
  9. Do not succumb to the falacy that "there's no right or wrong approach". NO! There is! There always is. This fallacy is just an excuse. You should be aware of this and not allow it to influence your decisions.
  10. No one knows better than you. Do not accept authorities telling you what's right and what's wrong. Figure it out yourself. Do not make the mistake to hand over your responsibility to some vague, anonymized authority. Make sure that the decisions you make (in your code and in life in general) are closed for the opportunity to blame others. You are the responsible one and you should be proud of it. That's what makes you a rational being.

Share some of the truths that guide YOU in your day-to-day problem-solving career.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more