# Blog | CY is here.

An algorithm is a common formula for getting a certain result.

## An Algorithm is a Formula

Such as the "formula" below for getting a string reversed (code in JavaScript):

``````// Problem: Reverse a string
const str = "hello";

// Step 1: split every single letter of the string to an array;
let lettersArr = str.split("");
console.log(lettersArr); // -> ["h", "e", "l", "l", "o"]

// Step 2: use the built-in method to reverse the array's items;
lettersArr.reverse();
console.log(lettersArr); // -> ["o", "l", "l", "e", "h"]

// Step 3: use the built-in method to join the array's items to a string;
const result = lettersArr.join("");
console.log(result): // -> "olleh"
``````

The formula(steps/method) solves a problem and gets a certain result, it is an algorithm.

## A Formula Has Many Faces

To achieve the same result, the algorithm can have many "faces". Such as we can combine the steps above to one line:

``````const reversed = str.split("").reverse().join("");
console.log(reversed); // -> "olleh"
``````

To be more programmatic, we can wrap it as a function:

``````function reverseString(str) {
return str.split("").reverse().join("");
}

const reversedStr = reverseString("hello");
console.log(reversedStr); // -> "olleh"
``````

We can also write it in the new ES6 syntax, which is spreading the text string to an array:

``````function reverseString(str) {
// ⛑️ ATTENTION ⛑️
return [...str].reverse().join("");
}
``````

## There Are Many Formulas for the Same Result

Here's another formula to solve the "reverse string" problem:

``````function reverseStringInLoop(str) {
let reversed = "";

for (let letter of str) {
reversed = letter + reversed;
}

return reversed;
}

const reversedStr = reverseStringInLoop("hello");
console.log(reversedStr); // -> "olleh"
``````

The loop concept can be written in another way:

``````function reverseStringInLoop(str) {
let reversed = "";

for (let i = str.length - 1; i >= 0; i--) {
reversed += str[i];
}

return reversed;
}

const reversedStr = reverseStringInLoop("hello");
console.log(reversedStr); // -> "olleh"
``````

## Summary

I think the concept of algorithms in programming is simple. Like I write above, they're formulas for solving problems. But the not-easy part of algorithms is how to find that formula. I've found the hint is analyzing and solving the problems step by step. And relax.