sprint 4 cultural

PROBLEM SOLVING APPLIED

Got Blocked on a Simple Problem

I found the Kata: Super FizzBuzz challenge really fun and engaging. Although there was a moment where it became challenging to me and that was figuring out how to get the multiples of an integer. This was exciting as there was mathematics involved. I made use of PSEUDOCODE; writing instructions to guide me prior to writing the code to keep me on track. I found this very handy at times when I get lost or carried away. This technique was enough for me to get over the obstacle. I knew that I had to use the “%” remainder operator but I had factors in mind instead of multiples. The Pseudocode helped me in this as I constantly looked back at the instructions and it was then when it clicked to me that if I check if the number divided by 15 is equals to 0, that would be enough to confirm that it’s a multiples of 15. This particular problem made me feel excited and engaged throughout. Despite the roadblock, I was very keen to get over my confusion and not let it get the best of me since I knew I was very capable of solving the problem. My takeaway from this is to always refer back and understand what is being asked, especially when you get blocked because it may simply just be a small misconception in the end.

Solved a Problem in an Elegant Way

I found the Kata: Built-in Method an extremely difficult roadblock to get around from since it mainly consisted of anonymous arrow functions. This was something we had to learn ourselves as it wasn’t covered as a lesson in the course, so far. I first tried GOOGLING basics of turning simple functions to arrow functions which was simple enough. Where it got tricky was learning how to turn an anonymous function into an anonymous arrow function. I then proceeded to ASKING MY COACH FOR HELP to better understand how to apply this to the problem at hand. I found this very helpful and I was very appreciative of the help I was given. However, I wanted to TRY THIS OUT for myself in repetition so I can hone my skills on this particular matter even further than learning it theoretically. I started out feeling frustrated being stuck on this problem but I wasn’t going to give up so I tried the problem solving techniques mentioned and that alleviated some of the stress as I was finally able to solve the problem. But I wanted to extend this learning and put more practice into arrow functions so I tried on a couple of functions form previous Kata’s and it honestly made me feel like I was really starting to understand the whole essence of it. My biggest takeaway from this is once you’ve learned the solution to your problem, take it further by applying the solution to similar problems to become familiar with it and make it almost second nature to you.

function sum (a, b) {

return a + b

}// Simple Function

let sum = (a, b) => {

return a + b

}// Anonymous Arrow

let sum =(a, b)=> a + b

// Anonymous Inline Arrow Function

PROBLEM SOLVING TECHNIUQUES

CONFIDENCE LEVELS:
4
3
2
1

PSUEDOCODE
4

In computer science, pseudocode is an informal high-level description of the operating principle of a computer program or other algorithm. It uses the structural conventions of a normal programming language, but is intended for human reading rather than machine reading and therefore uses plain English language. I’ve made use of this multiple times and intend to keep doing so whenever I see fit. I’ve also learned to only write Pseudocode for complex code to avoid unnecessary clutter when the code is, otherwise, straightforward.

// This is Pseudocode

// Short, descriptive instructions

// In plain English

// To guide and remind

GOOGLING
4

The technique, Googling, is rather broad. What this essentially entails is the ability to be resourceful by surfing the web for solutions to your problems that other programmers have solved. This could mean going onto forums like Stack Overflow, watching how-to videos on YouTube, looking up methods on W3Schools and so much more. It all really comes down to knowing where to get your answers.

W3 Schools YouTube StackoverFlow
ASKING PEERS AND COACHES FOR HELP
4

We all need help sometimes. However, people often disregard this idea when faced with a problem for various reasons: they might be shy to ask, they may believe that asking would damage their ego, and many others. The fact is, asking questions won’t only lead you closer to the answers you desire but also build camaraderie and trust between the parties. Others won’t view any less of you but instead understand that you’re willing to learn which is an attractive trait. Framing your questions is also very important and usually makes the difference from a good and bad question. Make sure to always give context and background to bring the person helping up to speed with what it is you’re trying to do. I’ve used this method many times and usually is the one that leads me to answers half of the time.

CONSOLE.LOGGING and READING ERROR MESSAGES
3

Both methods can be seen displayed on the terminal when running your code. This is a good practice to not only make sure your code is running, but it you can display whatever it is you’re returning by the use of Console.Log() and to be given the appropriate description when you run into a particular error by the throwing Error Messages. I’ve made use of console.log() at times when I need to check what my complex code is returning for good measure. I’ve also read error messages provided in the Kata challenges. These save you a lot of time and scrolling to figure out what it is you need to do. I’m yet to try writing my own error messages in the future and I need to incorporate console.log() more into my testing.

IMPROVING PROCESS WITH REFLECTION
3

Continuous improvement of one's skill is key to further development and success in anything especially in the tech industry. Self-awareness is the first step in becoming better; knowing which stage you're at currently and how far you are from your ultimate goal means you've got room for improvement. You then must reflect on your current approach and underline what could be improved, what needs more attention and what needs less. Every improvement you make is already an upgrade of yourself. Then you repeat. I have made use of this skill and technique not just in development but also in life. I give this a Confidence Level 3 because there's always room for improvement.

TRYING SOMETHING
2

More often than not, trying something will lead to failure. But what if it doesn’t? You won’t know if your idea works unless you try. A wise man once said, “You miss 100 percent of the shots you don’t take”. So don’t be afraid to try it out! Note that you can still try a different approach even when your code works already. Simply comment out the working code and try whatever it is you had in mind. I sure did! There were many times I would refactor a code because I think it could be written better. However, I’m still yet to find my own go-to platform to try out new methods, code, functions and statements. For now, W3Schools does the job.

RUBBER DUCKY METHOD
1

In software engineering, the rubber duck is a method for debugging code. If you’re stuck on a problem, try explaining what needs to be done to something as dull as an inanimate rubber duck. By assuming its ignorance, you’re having to explain more thoroughly and exactly than you were likely thinking those specific lines of code through in your head. You’re forced, by the need to be precise while helping someone else understand your problem, to pay very careful attention to all that you were previously just taking for granted. Personally, I may have unknowingly used this method before but this is the first time I’m hearing about it. The method seems useful and effective, I plan on using this more in the future.