Checkpoint Complete

Mar 28, 2017

I have just completed my second assessment at Bloc. But before I write any thoughts on my experience with that, I want to recall my prior one to put things into perspective.

Back on February 3rd, I was preparing for my first assessment at Bloc. I didn’t quite know what to expect then. I had just plowed through 2 weeks of introductory preparation in HTML, CSS, and JavaScript. While I had tinkered with HTML and CSS in the past, the few course overviews on the topics were well received and a good refresher on the foundational basics. JavaScript, however, was a beast I had never before encountered. The courses started off simple enough. Here are values; this is a variable; here’s how you link your .js file. Seems simple enough, I know the basic structure of coding. Then, we’re taken through loops, conditionals, arrays, building custom functionality. Alright, now we’re learning! My functions are working, things are happening in the console. I tackled these first two courses with ease, eager to move on to the 3rd module and absorb all of this knowledge on my way to becoming a JavaScript king.

The third module was a brick wall. We’re suddenly in the (course titled) forest of function expressions and ocean of objects. The hoisting hills loomed above the plains of prototypes. Looking back at them now they seem straightforward. As a beginner, having just quit his cushy job 2 weeks prior, this was a wake-up call. The reality of my endeavor began to sink in, and I began to feel my first pangs of doubt. What was supposed to be an 8-hour course on advanced JavaScript concepts turned into a 20-hour ordeal of going back and forth through lessons, presentation slides, examples, and Stack Overflow threads. What had I gotten myself into?

On one hand, this felt great. I was working harder then, trying to learn and absorb all of this knowledge, than I had in the prior 6 months combined. That’s hyperbole, but the immense difference in intensity was palpable. The struggle was real, as they say. I’d be stuck on a problem statement for an hour, wondering why my code wouldn’t work, and sometimes not even knowing how to begin. Answers to the challenges were readily available on the forums, but I wanted to learn the hard way. I needed to ensure these concepts, their syntax, and this new language was becoming a part of me. At various points through these challenges I felt like I wanted to quit. This was not something that was going to be possible for me to do. Look at me, I’m on the preparatory section of my curriculum and I’m struggling mightily already. I’m supposed to be the smart kid in class, not the one that is scraping by!

At some point through each struggle within each lesson, it clicks. Looking back, I find this to be a commonality during my journey thus far. I’ll bang my head against a wall, feel the tightness in my chest as I wonder what I’m not getting (you don’t know what you don’t know) and why this isn’t working. I look up thread after thread for information I can use to piece this together, and BAM, it all makes sense and the euphoria of having the correct solution suddenly washes away any of the prior issues. Such were my first 60 hours with Bloc.

Along came the assessment. Throughout this phase, the relationship between my-then-mentor and myself was fairly high level. There wasn’t much in the way of guidance other than a ‘good job’ here and ‘keep leaning into the work’ there as he approved my course checkpoints. Watching the boxes get ticked one-by-one was a welcome treat. Visible progress to help fight the phantoms of struggle and the unknown in my head. Once I completed the advanced JavaScript course, he told me I was ready. I asked if there was preparation to be done, what were the topics I really needed to work on and focus? None, he said, I knew it all, it was engrained within me and I was ready to rock. Just schedule the assessment and off we’ll go.

Bloc’s take on assessments tries to be both parts casual and completely serious. The person on the other end of your teleconference style meeting / interview / test tells you up front that this is not an indicator of your abilities and ultimate potential as a programmer, but one that will test your current knowledge of topics while giving you and your mentor a better understanding of your strengths and weaknesses. This was probably the first day in a week or so I had taken the time to feel like a professional again. A proper shave and shower, good breakfast, nice clothes. I was going to take this as seriously as an interview (without the suit), and sometimes one’s mindset can be altered just by feeling better. I was put together, I had studied the prior checkpoints and their lesson goals, and I reviewed my challenges from the courses I had just taken. I was ready.

And I failed.

I didn’t fail by much. The assessment was graded on a 10-point scale; some answers worth 0.5 points, some 1.5 points (you don’t know until the end which ones are which). I scored a 6.75 out of 10, where a 7 is considered pass on their pass/fail system. Thus, I had failed. I hadn’t failed something since… ever. I was devastated. The person conducting the assessment reviewed my answers with me and I felt like a fool. The questions asked are verbal (define a function in JavaScript), multiple choice, code snippets where you say what’s going on based on the code present, and a couple peer reviewed code sessions where you get to showcase your newfound coding skills. Live. In front of a stranger. While being recorded.

On one question, I knew as I spoke through the multiple-choice options which ones were certainly false. Yet for some reason, I picked the one I knew was certainly false. In another, I was asked to type in code that would retrieve a property from an object. I froze, and hesitated, and typed something in quickly which was unfinished. I knew it was unfinished, but I felt the hidden gaze of eyes upon me, judging me, judging my sudden struggle to recall information, and I wanted it to be over. Yep, final answer. Knowing it was wrong, I said it was my final answer just to get over it. The next few code snippets I did fairly well on, but was off on one answer (callback functions are hard when you’re just starting out and keeping sums in scope felt… weird). Like I said, I missed passing by 0.25 points. Had I not chosen the incorrect multiple choice answer where I knew the correct choice, I wouldn’t be typing this. Had I just added the correctly held integer, we wouldn’t be talking about this. If I could have just finished my object recall with .b then I would have passed.

After hanging up the call, I was shell-shocked. Never before had I felt like a fraud. It was embarrassing. I knew the answers; what had happened? Why did I struggle so mightily? Did I really know the answers then or do I just know them now after going over them? My day was shot. My weekend was toast. I was a ball of misery and regret. My mentor was provided with a video of my failure (as was I) to review. He told me there was nothing to review. I knew what I did wrong. Schedule the re-assessment ASAP and pass it so we can move on. I felt alone on an island. I studied what I could. I re-took the exam in my head over and over. I did some practice coding sessions from my prior challenges. I studied up on my terms and definitions and overall concepts. Reluctant to let too much time slide by, I scheduled the assessment for the following Monday. I needed this horrific sense of failure washed out of my soul immediately. Waiting until Monday felt like an eternity.

Upon its arrival, I felt the specter of doubt hovering over my shoulder. My assessment was scheduled with the same person that had witnessed my failure before. She was calm, welcoming, and presented the assessment as she had the prior one. Some of the questions were the same, others quite different, but of the same difficulty as before. Knowing what to expect, I spoke through each question, ensured I read each optional answer, broke down each segment of code out loud (we’re not allowed to use notes / materials / search engines during this time), and scored a perfect 10. I was more relieved than happy. This was how it should have been in the first place! She offered a simple ‘congratulations’ and I was on my way, ready to tackle the next step in the curriculum.

Once I broke my problems into small pieces I was able to carry them, just like those acorns, one at a time.

The lessons learned from this experience continue to stick with me. Looking back, I’m happy I failed by such a small margin. Had I passed by 0.25 points, I likely would have just chalked it all up to being awesome and not working out the kinks as I did.

Some lessons need to be formed into habit. As I go through the phase of learning topics at a rapid-fire pace, I need to remember to let them settle in. I need to tell myself to walk through it, break the issues down into small pieces that are able to be solved on their own. The answers are there; code works as a method of providing inputs and it spits out a response. Each line, each character, has its owns steps that it has to follow – it’s not magic. I’ve had to remind myself since, more than once, to continue to break things down into these portions. Other times, just typing out a question on why something isn’t working suddenly propels me into an answer. No longer am I able to rely on the patterns of experience to see the right answer. New patterns must be spun into memory, and the only way to do that is with repetition.