Skip to main content

Command Palette

Search for a command to run...

How a calculator taught me that I can be a developer

Published
5 min read
How a calculator taught me that I can be a developer

I decided to go into software development about 3 months ago.

At the time, I wasn’t sure where to begin. I had some basic knowledge of HTML and CSS from a course I had taken a few years previous, but there are so many programming languages out there. As a beginner with no frame of reference, how are you supposed to know what to choose?

Fortunately I have a friend who works in the industry, Quinn, who has been very generous with answering my non-stop questions. He was able to inform me about what technologies were relevant and suggested I start with JavaScript. He pointed me in the direction of Wes Bos, recommending his Beginner JavaScript course.

Being where I am in my life (full time job, bills to pay, saving for a house, you get the picture), I didn’t really have the extra money laying around for that course. I worked through a couple free courses to learn the basics. Once I had a basic understanding of JavaScript syntax and concepts, I enrolled for JavaScript 30, a free course in which Wes helps you build 30 things with JavaScript.

From the first video, I was lost. What’s a document element? What is an event listener? Most of the resources I found didn’t explain what I’ve now come to know as the DOM (though there were occasional mentions of it).

Stumbling through the first two videos, I saw a few CSS properties I had never heard of, including among others CSS Grid and Flexbox. Conveniently, Wes also has a free CSS Grid course, so I put JavaScript on pause to learn something a little more fundamental.

I decided to try something more personal with the new skills, and so I built and published my first website, www.tannerwiltshire.com. It’s nothing fancy, but I did it’s mine and therefore I’m proud of it.

First version of www.tannerwiltshire.com

Feeling a little better about my foundations, I started working through the freeCodeCamp JavaScript course. There were many times that I felt like giving up. The main issue I had was feeling like I was learning lots of JavaScript, but not how to apply it. I could use the console to work with functions and arrays no problem, but I had no idea how to use JavaScript to make a webpage interactive. So, even with (still) no knowledge of what the DOM was (or that it existed), I went back to JavaScript 30.

I followed along a little easier this time. After another 10 videos or so, I began to understand a couple of pieces of how to interact with elements and styles of the document. Then, in one video, Wes broke things down in a way that stuck with me.

He said, “First, we’re going to get our elements, then we are going to build our functions. Then we are going to hook up the event listeners”.

That was a game changer. It eliminated the “I have no idea where to even start” piece that was plaguing me whenever I looked at any beginner projects.

So I challenged myself to build a calculator from scratch, without using a tutorial or any outside help. I thought, I know how a calculator works, I should be able to knock this out in one day.

It was a lot harder than I thought. It ended up taking me twice as long as I expected. Even now, days later, I’m still finding mistakes in it.

But I learned a lot through the process!

Any time I had some piece of code that wasn’t working, I just commented it out and tried again a different way. I still have all the comments in there, and I can see about 3 or 4 different ways that I tried to approach aspects of the project.

I’ve always been generally good at finding things through google searches. Here, I learned how to be more specific about what I was looking for and follow trails from one search result to another to piece together answers to my questions.

I learned so many new methods for the DOM, strings, arrays, and numbers. It’s one thing to go through a course where they tell you about a method and even have examples for you to play with to test your understanding. However, when it’s the answer that you’ve found to an actual problem you’re working on, the understanding occurs on a deeper level.

I know the code isn’t perfect. I’ll probably come back to it in a year and think “Jeez, what was I thinking?” But I did achieve my goal of programming a calculator, even if it isn’t done the best way.

I’ve heard that the first thing to do when you’re planning to get into developing is to start thinking of yourself as a developer. Imposter syndrome is a real thing, and when all I’d done is some free online courses it was all too easy to think myself a fraud.

My top 3 takeaways from this experience:

It’s okay to not know the answer. A lot of the time you won’t.

Failure is good. If you’re not failing, you’re not really learning much.

Break things down into bite sized pieces (Okay, I knew this one already, I just wasn’t taking small enough bites).

I still don’t know everything about the DOM or how to manipulate it, but I now know that it’s a gap in my knowledge, and I can get to work on filling it. I’ve proven to myself that I can be a developer, and I know how I’m going to get there: one step at a time.