devshirt.club

Posted on

# On software algorithm

### Introduction

We've done a t-shirt for creating software algorithms. When creating algorithms we often feel as mad scientists.

### How we build algorithms

We try to build something that is machine wise efficient. Ideally an algorithm that runs in n time and occupies n space. But you know, don't get too hard on yourself if it is n*n time.

Same as with any kind of code, the best way is to have something working, then do small, iterative improvements. This skill is often tested in technical interviews, there are also countless platforms which automate that kind of testing.

At the end of the day it is a skill that is cherished and can always be improved with practice.

### Algorithms - from origins to today

The concept of algorithms has existed since antic times. Pretty much at the same time math was "invented" people started to wonder how can we do some sort of calculations.

These days, even though we are inventing and discovering more algorithms each day, we are mostly using algorithms that were invented even before computers became a thing, or as the matter of fact before first computer was even invented. Today, there is countless more resources, and multiples of people working on improving various algorithms.

Besides doing concrete implementations on different fields, such as machine learning on plants identifications, all the way to advanced stock market oracles. We as humanity are investing heavily in solving some of the 1 million \$\$\$ worth millennial problems.

We are also investing heavily in teaching non mathematicians about most famous and efficient algortihms such as quick sort or similar. We have countless of testing grounds or if you want to call them algorithms playgrounds such as leetcode or hackerrank which publish time limited competitions requiring algorithmic problem solving skills.

### Software algorithms for non techies

Software algorithms are closely tied to math and to logical thinkings. Writing a complex algorithm is similar to solving a complex math equation. There are a lot of common and standardised way of doing things but most often you need to adapt a certain algorithm to your needs. They can be written in almost any programming language.

More often than not, a concrete programming language will come with predefined algorithms implementations as part of some standard library.

Algorithms are all about doing a certain thing, in a machine resources efficient way. There can exist multiple algorithms that provide the same solution. But important difference being how much compute time and compute space they consume.

Some of them are so famous and so long lasting that there is a \$1,000,000 prize ensured for a person that manages to solve it.

Like this one:
A traveling salesman problem, or another version of it, organising household accommodation for students algorithm/math problem.