# Online Calculator: How Much Can You Earn as a Coder?

The following calculator computes your earning potential based on some inputs. Note that this serves only as an example based on some common inputs. I’ll explain the code for this later in the article! π

I have based the earnings potential on the following inputs:

1. Years of Experience: Assuming the coder earns more as their experience increases.
2. Number of Languages Known: More languages might lead to a higher salary.
3. Degree Level: Higher education may contribute to higher earnings.
4. Work Hours per Week: More hours, more pay.

Here’s how the calculation works: it starts with a base hourly rate, and then increases this rate based on your experience, the number of languages they know, and their degree level. Then, it multiplies the result by the number of hours they work each week and the number of weeks in a year to get their annual earnings.

You can check out the following code to accomplish this:

```<!DOCTYPE html>
<html>
<style>
body {
font-family: Arial, sans-serif;
}
.calculator {
width: 300px;
background-color: #f8f9fa;
margin: 0 auto;
margin-top: 50px;
border: 1px solid #ced4da;
}
.input-group {
margin-bottom: 10px;
}
.input-group label {
display: block;
margin-bottom: 5px;
}
.input-group input, .input-group select {
width: 100%;
box-sizing: border-box;
}
#result {
margin-top: 20px;
font-size: 20px;
color: #007bff;
}
</style>
<body>

<div class="calculator">
<div class="input-group">
<label for="experience">Years of Experience:</label>
<input type="number" id="experience" min="0">
</div>
<div class="input-group">
<label for="languages">Number of Languages Known:</label>
<input type="number" id="languages" min="0">
</div>
<div class="input-group">
<label for="degree">Degree Level:</label>
<select id="degree">
<option value="1">Bachelor's</option>
<option value="1.2">Master's</option>
<option value="1.4">PhD</option>
</select>
</div>
<div class="input-group">
<label for="hours">Work Hours per Week:</label>
<input type="number" id="hours" min="0">
</div>

<button onclick="calculate()">Calculate</button>

<div id="result"></div>
</div>

<script>
function calculate() {
var baseRate = 20; // Base hourly rate - you might want to adjust this

var experience = document.getElementById("experience").value;
var languages = document.getElementById("languages").value;
var degree = document.getElementById("degree").value;
var hours = document.getElementById("hours").value;

var earnings = baseRate * (1 + experience * 0.05) * (1 + languages * 0.1) * degree * hours * 52; // 52 weeks per year

document.getElementById("result").innerHTML = "Estimated Earnings: \$" + earnings.toFixed(2);
}
</script>

</body>
</html>
```

Let’s explain the different components of this code next!

## HTML

HTML forms the skeleton of the page.

It includes input fields for the user’s years of experience, the number of programming languages they know, their degree level, and their working hours per week. There’s also a button that the user will press to calculate their earnings, and a `div` where the result will be displayed.

## CSS

CSS styles the page.

The given CSS is fairly straightforward – it sets the font, styles the container that holds everything, and styles the input fields and the result text. This makes the calculator more visually appealing.

## JavaScript

This is where the calculator’s logic is located.

It starts with setting a base hourly rate (which you can adjust). When the user clicks the “`Calculate`” button, it grabs the values the user has entered in the input fields.

For the degree level, a `select` HTML element is used, which allows users to choose between Bachelor’s, Master’s, or PhD. These are assigned values of 1, 1.2, and 1.4 respectively, indicating that higher degrees lead to a higher salary.

The JavaScript then performs a calculation with these values. It takes the base rate and increases it based on the user’s years of experience and the number of programming languages they know (assuming that both of these will increase the hourly rate).

It then multiplies this by the degree level to account for the impact of education on earnings.

Finally, it multiplies the hourly rate by the number of hours the user works each week and the number of weeks in a year (52) to calculate their annual earnings. This value is then displayed on the page.