4 Problem Solving Strategies from a Self-Taught Software Developer

Annie Freeman
4 min readDec 8, 2020
Computer with code on it

Over the last year and a half of my law degree, I realised that coding was much more fun than anything I would end up doing if I became a lawyer. So, I took on the challenge of teaching myself to code and ended up finishing university with a job as a software developer!

One of the most important skills in coding is being able to solve problems, whether that’s uncovering a bug, figuring out the right logic when interacting with an API, display something in a particular way and much, much more.

A benefit of being self-taught is that you throw yourself in the deep-end by forcing yourself to overcome challenges on your own, right from the beginning.

Recently, I built a portfolio website using React and .NET Core. This project was the first time learning both of these technologies, and I definitely faced a lot of challenges while building it!

Here’s some of strategies that I’ve discovered so far that you can use to help you in your coding journey:

PROBLEM ONE

I was keen to implement dynamic error checking in the forms on my website. There’s various packages you can install that will do the heavy lifting for you, but at the time I couldn’t get them working. I’m pretty sure I just didn’t know enough about what was going on behind the scenes, so I set out to figure out how do it from scratch.

After reading various articles and StackOverflow questions, and adjusting code to fit my needs, I managed to get what I wanted working. Doing it this way I was able to understand what was going on at every stage of the process. What was really exciting after going through that process was finding it much easier to see and come up with logic to solve other problems.

First lesson: If I’m struggling to get something working, I probably haven’t read enough documentation.

PROBLEM TWO

At the very beginning of the project I was figuring out how to implement a pie chart using Chart.js. It was my first time using React, and the first component of the site I worked on! I wanted to get data from an API and use state to pass it down to the chart component. It’s something that seems simple to me now! It wasn’t working at first and I spent a bit of time working through each step of the process to see what was blocking the chart being rendered. In the end, I found that just changing the component from a class component to a functional one worked.

Second lesson: To solve a problem, establish the facts, ask questions at each stage of the process, then narrow it down until the issue is spotted. Often it is something really small!

PROBLEM THREE

Another problem I had was dealing with dates and displaying the correct time zone. I would create a date in the front end and send it to the back end to store with other data. When I got it back from an API call, it would display a time zone twelve hours behind. Weird! As I discovered, working with dates can be frustrating for many developers. A lot of people recommended using the Moment.js library. I tried a few different methods from this library, and eventually solved the problem with a function that can add a specified number of hours to the displayed value.

Third lesson: If something weird is happening, it’s probably happened to lots of people before, and there will be lots of ways to try and fix it.

PROBLEM FOUR

The final challenge of the project was deployment. It is hosted on a Digital Ocean droplet on a Linux server with a MySQL database. There were lots of steps — setting up the server and making sure the IP address was connected, the database was being created and the default Digital Ocean website wasn’t being displayed instead of my website, and then connecting the domain name and adding a SSL certificate. I seemed to encounter a new problem at each step — so I was very excited when it all managed to work!

Fourth lesson: Don’t give up! If the first way doesn’t work, there’s always another way. When I encounter a problem, I like to think about what my B and C plans are if plan A doesn’t work. That way, I don’t get frustrated and instead move on to try the next approach.

Good luck with your problem solving!

Photo by Ilya Pavlov on Unsplash

--

--

Annie Freeman

Software engineer with a law degree. Champion for green software.