Lab 1 Reflection

reflection
labreport
A brief reflection on Lab 1: Seven Segment Display
Author

Jackson Philion

Published

September 8, 2024

As I write this reflection, I am still riding the high of making 2 major adjustments to my Lab 1 source code – with nary an error along the way. It’s an incredible feeling. However, don’t get me wrong – I still failed. A lot. Like, way more than I usually do. But, that failure was intentional. It was a stated part of my learning goals, and I can tell it’s already paying dividends.

Referring back to my first post on learning goals, I only listed a brief two. I felt that these most effectively summarized the litany of knowledge and skills which I hoped to gain from this course.

  1. Gain an understanding of FPGAs and their applications; and
  2. Increase my Autonomy (by failing more often).

Lab 1 did indeed give me my first introduction to FPGAs. I understand them now as powerful tools which may be simply harnessed using SystemVerilog and Lattice Radiant. That is to say, I understand how one can put most any desired hardware into SystemVerilog language, program it onto an FPGA, then connect that virtual hardware to the outside world through simple pin assignments. The limit is only drawn by your FPGA’s… capacity? Size? Configuration? I’m still sorting out the specific details, but my point stands – I recognize FPGAs for the effective tools they are, and can’t wait to jump into Lab 2 with this knowledge next week.

However, I want to focus this reflection on my second learning goal, as I think it has seen the most impact thus far. Do you recall me saying that I failed a lot? Well, I meant it. I went into the MicroPs lab 6/7 days of the week to get this lab done to my expectation, and spent 18 hours working on it outside of class. Where did this time go? So little of it went towards what I traditionally consider “succeeding.”

Consider a hallmark of Jackson Philion’s workflow – the first draft gets submitted. I agonize over each sentence, demanding near-perfection from every line, but make no mistake – once the final sentence has been written, I do not read it again. These 6 days in the lab did not follow this usual workflow. I revisited the same chunks of code over multiple days, making revisions on already-functioning pieces to polish up the result. Nor did these days meet my traditional standard for success, as I went home on more than half of them knowing that I would see the same error messages tomorrow. Two years ago, I would have been infuriated with these “failings” and “inefficiencies”. A year ago, heck even a couple months ago, I would have gone on hours-long lab binges until I could leave with a sense of success. Now, don’t get me wrong, I still had one lab binge… after all, we’re all just works in progress, right? However, as I sit here still riding the high of my relatively error-free night, I feel success in those days that I failed. I think back, and I realize that I never felt that sense of impending doom called failure. I looked forward to taking my next crack at it tomorrow, during my planned lab time. While I worked alongside friends, I didn’t lean on them to help me resolve my errors to the usual extent. I made an intentional effort to let myself try and fail at least 3 times. Most often, this resulted in a new piece of learning that may not have been conveyed otherwise. Instead of feeling like agony, these moments were more jovial than I expected.

I think I am reveling in the challenge that this class represents. As I have mentioned before, I have been hearing about this class and building up to it since I was a freshman. I think I have bought into some vision that this is the class which is meant to forge oneself into a high-performing professional. In this mindset, it is easy for me to embrace new workflows, new schedules, and new failures. It’s easy to start week one of the course and give it my all, and it’s easy to see the success and learning that failing autonomously has brought me. After 18 hours spent combing through documentation and forums, I am proud to say that my most recent edits had no errors because I had already gotten them all. Not because I was perfect, but because I failed and revised enough to find the right path. And right now, it feels great.

Looking forward, I am considering what next week will bring. To make a crude analogy, I feel like I am feasting on ham after winning the war’s first summertime battle. I fought, I struggled, and I won. I was surrounded by my A-team… tutorials, quick-start guides, and similar week-one aids. I didn’t have other classes yet vying for my attention. In short: I was surrounded by things that made it easy to fail and get right back up again. However, this is a semester-long class, not a summer workshop. I need to win the war, not just the battle. I need to win the battle in the dead winter when supplies have been low for weeks. Sure, I’m on the right track now, but will I still be when my first Politics essay is due? When technical work with HRL Labs Clinic begins in earnest? When I come back from Thanksgiving break and have to motivate through Finals? I think I need to spend some time preparing for that eventuality, rather than letting it get the best of me.

That is to say, this week I am feeling great. I am thoroughly excited to pursue the rest of this coursework, and to try out new things: failing, reflecting in these posts, writing up my work thoroughly, partitioning the workload like a job. But I’m nervous to see how I respond when failing starts to feel… not good. That will be the true test of my learning goals. I can’t tell whether I actually want that point to come or not. For now, I guess we’ll remain in suspense until next week. September 8, 2024.