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:
- Years of Experience: Assuming the coder earns more as their experience increases.
- Number of Languages Known: More languages might lead to a higher salary.
- Degree Level: Higher education may contribute to higher earnings.
- 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> <head> <style> body { font-family: Arial, sans-serif; } .calculator { width: 300px; padding: 16px; background-color: #f8f9fa; margin: 0 auto; margin-top: 50px; border: 1px solid #ced4da; border-radius: 4px; } .input-group { margin-bottom: 10px; } .input-group label { display: block; margin-bottom: 5px; } .input-group input, .input-group select { width: 100%; padding: 5px; box-sizing: border-box; } #result { margin-top: 20px; font-size: 20px; color: #007bff; } </style> </head> <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.
If you enjoyed this practical project, make sure to join our free email newsletter that teaches you programming on a daily basis by downloading our cheat sheets below: π
Also, you may be interested in the following blog tutorial:
π Recommended: Whatβs the Hourly Rate of a Python Freelancer?

While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.