**What I learned from developing this calculator**
- Version control is very important because it increases efficiency of development. Largely what coding consists of is testing different solutions. In order to be able to test different solutions agility in how much you can change your code without losing possibly useful code you wrote in the past is required. Experimentation is required for progress and version control is required for (efficient) experimentation when coding.
- Be very clear in the scope of the project. Ask yourself "Which criteria (e.g. user stories) have to be fulfilled for the project (or for the current iteration of development of the project) to be finished?" It was a conscious decision to let some bugs remain in this calculator, such as the invalid results returned when users use several arithmetic operators at once before clicking "=". My reasoning behind it is that sometimes limiting project scope saves time and enables focus on what's most important for end users. In the case of this calculator, I simply wanted to move on to other projects after all the user stories outlined in the repo linked to abvoe had been fulfilled.
- Use CSS frameworks (e.g. React-Bootstrap) and standard styling solutions unless you have a very good reason to be creative. Be creative in designing things only if you truly have reason to believe you can make something that looks much nicer than already tested designs.
Code what you can and then clearly define what you're trying to accomplish that you find hard to code. By being specific regarding what is missing in your solution it will be easy to google how to do the things you're currently incapable of doing.
Google, stackoverflow, and blogs are very useful for finding inspiration and alternative solutions to very specific (and small) parts of a project. The big picture of how to develop an app is too closely linked to the vision of what it will do so that it is close to impossible to find relevant and effective help online regarding development of an entire applicaton. If you break implementation of the big ideas down into small problems however, it will be easy to find ways to accomplish what you're trying to do.
- There are many solutions to a lot of problems, often without a clear best one. Sometimes it’s best to just pick one and sometimes it is sound to compare pros and cons of the available alternatives. I believe this is something you get better at with practice. My belief in that practice is very important for becoming a better developer has been strengthened in the process of developing a calculator.
SCSS, React-Bootstrap, Javscript, React (incl. Hooks), CSS, HTML, Netlify, Git, Github. This was the tech-stack I used for this project, so naturally I have become better at using these technologies with practice.
Published:July 28, 2021