Lambda School: Full Stack – Week 3, Day 5: Sprint Challenge

The Sprint Challenge for JavaScript Week had me really worried. I didn’t think I was going to meet the minimum requirements to pass. I knew it was going to include problems for us to solve that would span concepts that we’d worked on all week, and I was particularly concerned with callback functions and array methods – and especially scenarios which combined the two. I had been dreading this day all week.

I let my team know my concerns, and they all wished me well, but I know my limitations, and I struggled with projects every night this week. I’m the slowest person in my group, and I had only begun Day 4’s project on the morning before the Challenge, so it wasn’t even complete yet! The only thing I had going for me was that I was somewhat comfortable with prototypes, because for some reason the concepts had stayed with me since the pre-course.

2019.08.23 1

Well, the hour was upon us, and I prepared to go down fighting. We had 5 self-study questions to write answers for. I think I answered them first, this time around. Some were about the differences between certain array methods. Others asked for details about broader topics we’d covered during the week regarding functions, methods, closure, the “this” keyword and aspects of classes. I didn’t go into heavy detail with most of my answers. I tried to sum up their features in the most concise ways I could, for the most part, and then get into the coding parts of the Challenge.

Objects and Arrays

It turned out that there were four pages of programming tasks that we had to solve. They were focused on objects and arrays, functions, prototypes and finally, classes. I surprised myself with the objects problems by getting through them fairly quickly. It was something of a confidence booster and I thought that it was setting me up for a false sense of security with the next section. Basically, we were given data and had to create several objects, and then write code that used those objects to answer questions and finally, write a method for one of the objects.

Next, it was on to arrays, which were on the same page as objects. In this case, we were (1) given an array and had to answer 3 questions using code that focused on array methods and (2) given another array and asked to answer 4 questions about advanced array methods.

I referenced my notes from earlier in the week to answer these questions, and was relieved to find that the questions we were given were similar to some of them. I think I did have to go to MDN and w3schools for information to solve some of them, but enough time has passed that I don’t fully remember now. Each question in the advanced array method section actually told us which function it expected us to use to solve the problem, which helped me in a way – I wasn’t trying to figure out what array method to use to solve any given problem. Instead, I focused on syntax and usage for the method I was asked to use.

Functions

The functions section asked us to write a higher-order function and gave us the parameters for what it was supposed to do. Of course, it featured callbacks. Next, we had to create several functions to use as callbacks with the higher-order function. We were given specific instructions as to what these functions did as well. Finally, we had to run specific tests against out higher-order function and callbacks using provided data. I was able to make each of them succeed! I couldn’t believe it. The callbacks that we wrote were actually all in my ability to write without having to spend an inordinate amount of time on Google, researching, too!

The bottom half of this page asked us to answer something about closure in our own words. I did some testing to see the effects of hoisting from several places inside and outside of the provided function and nested function, and I completed this section too. This was roughly the 50% mark, and while I don’t remember how much time I had left, I was happy that I hadn’t gotten stuck yet or made such poor use of time that I was left with only a few minutes for the last 2 sections.

Prototypes

Prototypes came next, and I was able to directly reference the work from Day 3’s project to help solve the problems in this section. We had to create a constructor function that fit certain specifications to start the section. Then, we had to write two methods that returned specific data using information from prototype of the constructor that we’d just written. One of these had such a crazy formula requirement that I thought there was no way I was going to be able to implement it – but, luckily, I was wrong!

Finally, we created a new object using the constructor from above with certain characteristics and tested it using those characteristics and the methods that we’d written for the prototype, above.I know I had less than an hour when I finished this part. I might have been down to 40 or 45 mins, out of our total of 3 hours.

Classes

The last section we worked on revolved around classes. I’d made it this far, and I was worried that this section would thwart my efforts to succeed because I hadn’t completed the previous night’s challenge, which was similar to one of the requests on the page.

In this part of the challenge, we were asked to copy our prototype from the previous section and paste it onto the page. Then, we had to refactor it using class syntax. I had actually done this part of Day 3’s project, so I was able to reference it to replicate the process here. This included refactoring the methods I’d written, as well.

After this, we created a new object that made use of the class and duplicated the properties of the object created in the Prototypes section. We then closed out by running tests against the new object that made use of the refactored methods that we’d written. It all passed!

I had finished each section and I had about 10 minutes to spare! For the first time ever, I was able to look at stretch goals in each section and attempt them. I actually completed the stretch goal on the objects section! It was practically a watershed moment for me. ;)

2019.08.23 2

Epilogue (because its the end of my Week 3 tale)

Towards the end of the day, we had our 1-on-1 meetings with Reed, our team lead. During our Zoom session, he asked how I felt I had done, and we walked through each of the sections. I was really happy with my performance. I had gone from readying myself to fail and move into the next cohort, losing my current team in the process, to not only completing the Sprint Challenge for the toughest week to date at Lambda, but completing a stretch goal! Reed noted that I had done really well, and after reviewing everything, he told me that I was getting a “3” for this Challenge – the highest grade! “3” means that I met all of the minimum requirements to pass and then went beyond and met at least one stretch goal. It was my first 3!

So, I closed out the week by transitioning from panic mode and despair to actually giving my best performance. I would never have predicted this. And then, to top it off, we got our Build Week assignments. I’ll discuss that in the next post.

Leave a comment