Karan Blogging!

Problem Solving

A time I was stuck...

A problem I got stuck on was during the Manipulating Objects kata. The problem was adding an empty object within an object, and I got really stuck on how to code this. I felt like my code was correct, I was asking it the right thing. I played around with the issue for a while, then decided to take a break. During the break, I decided to try the Rubber Ducky method. I had researched it earlier in the week, and thought lets just give it a go. So I did, I tried to explain to a bottle, what I was trying to achieve. And it was something in the way I worded it, that made a spark in my brain go "WAIT!". The code I had written did not exactly match what I was describing, I was missing a small piece of what it was asking me to. So I fixed that issue I felt was wrong, tried what I think actually made sense, and shockingly it worked! I felt abit stressed throughout this process. It was very early into the kata exercises, and I felt if I get this stuck now, the later katas are going to be impossible. But after I had solved it, I felt very confident in proceding, having utilised new skills, both coding and problem solving. I feel I learned the importance of trying new techniques and methods. I feel sometimes I am prone to only try methods that I am used to. But having success with something like the rubber ducky method, I feel confident trying something new.

A time I elegantly solved a problem...

A problem I felt I solved elegantly was the deBee problem in this weeks Built-In Functions kata. The problem was creating a function that would remove the word 'buzz' any string passed through it. I worked my way through the problem using a combination of: the rubber ducky method, where I verbalised step by step what I wanted the function to do, googling gaps of information I had, such as the in-built methods I was not familier with. This along with reflecting on work I had in previous katas I worked out the solution. I honestly felt really comfortable, and confident working through the problem I felt I had a good grasp of the issue, and I utilised different problem solving techniques at different obstacles to get through the problem with not a lot of resistance. I learned that I am capable of interpolating things I had learnt previously, and applying that knowledge to other problems really well. I learnt to use techniques such as the rubber ducky method in a way that worked well for me, where I would sometimes concurrently describe my issue verbally, and then follow my code to see where my describtion did not line up to my code.

Reflecting on Problem Solving Techniques

Pseudocode

I only starting using Pseudocode this week, but had seen the Javascript Cafe video, where it was used alot so I got to appreciate the value of doing it. I tried a little bit this week, to do so, and I think that it does help. Particularly helps to keep the code you write focused and makes the objectives clear by writing out small chucks of the process at a time.

Trying Something

This is probably the technique that I have been using mostly up until now. My process was trying something that somewhat made sense to me, running it, then deconstructing what I had and trying to locate there the issue might be coming from. The problem I have doing this sometimes is that it can lead me down a very non relavent path of working and may take me some time to realise that I am not on track.

Rubber Ducky Method

I researched this method a little bit this week, because it had the most interesting name. I ended up using this method, weirdly in the shower because I thought why not?, when I was stuck on a kata, and it actually worked. I came up with a solution to my problem, tested it out and, I solved the issue, it was kind of wild.

Reading Error Messages

This is something that I am still trying to get used to. There have been a few instances where, I have successfully done this, but I am still not too confident with using this as a tool.

Console.logging

This I have been doing little bits of since the start of this course, and I find it does help track where your code is working and where its not. So I do like this technique, and I feel I am slowly getting better at using it.

Googling

This technique has been incredibly useful so far in DevAcademy. There are so many little things that I either need a recap on, or just need to quickly figure out. Googling has been so efficient in closing those little gaps of information I need to keep moving forward with my work. I am very confident with this. I am still trying to become better at identifying which sites provide the best coding information though.

Asking peers for help

Historically, I am someone that has been quite bad at asking others for help, I usually go to google first. But I think so far in DevAcademy I have done a good job at asking for help, particularly my peers. Discord makes it very easy to ask for help, and I feel comfortable doing so if need be.

Asking coaches for help

So far I fortunately have not really come across an issue that I have needed a coaches help directly. I use discord to ask for help from peers and coaches, and usually both are helpful with any issues I am having. But I feel comfortable if something was really wrong and I needed help I would go to a coach.

Improving your process with reflection

I think this something that I need to start doing more often, and sooner after I solve problems. I think when I set stuck on an issue thats similar to a previous issue I will reflect then on how I solved the previous problem, but I wont reflect prior to that. And I feel by that time, the reflecting is not as effective that it would have been if I had it a lot closer to the time, I had solved the issue.