> 6.009 Lab 1 - Image Processing

August 20, 2019


Project Information
6.009 Lab 1: Image Processing (Spring 2019 - Instructions)


  • Completed Lab 1
  • Wrote progress updates for the past few days


YES I FINALLY STARTED THE CHALLENGE (and actually wrote a blog post about it!)

After reading about #100DaysOfCode a few years ago, I have been really looking forward to starting the challenge. Seeing all the super cool projects and amazing stories from individuals who were going through the challenge really inspired me!

At the end of Day 1, I finished the 6.009 Lab 1. I also spent a lot of time writing blog updates that I've been putting off. Future blog posts will not be as long, but it was worth it to finally get the opportunity to catch up again.

Feel free to check out the lab link instructions above for more details! Due to class policies, however, I will not be making my code public on github.

Lessons Learned

  1. JUST DO IT. The activation energy to begin is the most difficult part. Newton's first law of motion: "An object will remain at rest (or in motion) unless acted upon by an external force". Once I got started, it was easy to keep going.
  2. Coding is fun! When I take the time to actually sit down, breathe, relax, and focus on the challenge, coding actually became super fun and almost meditative! Since much of my previous programming experiences were from classes, programming often felt like an obligation, rather than a source of leisure. With obligations and responsibilities came expectations, and I often equated it to sources of stress. After getting focused, I found, for the first time, that it was actually really fun! I look forward to the challenges and projects to come!
  3. It's a marathon, not a sprint. The challenge was one hour a day, and I shouldn't make myself feel obligated to do more if I don't feel like it, lest it become another obligation, rather than a fun experience. The one hour is a wonderful activator, and I often choose to go past it when I'm deep in a project, often for 10s of hours on end (which is fine!). But I know that in the future, I must definitely remind myself that good, CONSISTENT habits take repetition and positive feedback to build, and that I should not burn myself out too early with the challenge.
  4. Don't overcommit. Giving myself impossible schedules is just a recipe for failure. Create more flexible schedules, and focus on building good happy habits. I want to learn a lot of different things, but I will learn best if I focus on learning the material fully first, rather than rushing myself to the next new project.
  5. Prioritize understanding and implementation first. Speed will come later. When completing some of the tasks in Lab 1, I was somewhat disappointed at the speed/efficiency in which I was implementing some of the algorithms that I considered pretty "basic". Currently I do not have much coding experience outside of schoolwork, and I cannot expect myself to be super fast or good as the role models I look up to immediately. I will grow at my own pace. Prioritize understanding and learning first. Speed will come through experience.
  6. It's okay to not be perfect when learning. I hold myself to a high standard with any work that I set myself to produce (in terms of both quality and time efficiency). As someone who approaches things with the mentality of "do it well and to the best of your ability, or don't do it at all", I have found that in just the past few days alone, I have spent more time making sure my code and blog posts looked perfect than actually coding/learning about the algorithms itself. This is a recipe for burnout. Improvement does not come from perfectionism. Things don't need to be perfect all the time. It is okay to fail from time to time, or to take things slowly. That is part of the learning process. I need to remind myself that I don't need to be perfect. I just need to improve, and that will come through experience.
  7. A note to readers: Everything I write in this blog is specific to my own work habits and needs. I get frustrated when the work that I produce don't meet my own expectations, so a big thing I'm trying to push myself to get comfortable with recently has been forgiving myself and being okay with the "imperfect" side of learning. Oftentimes that desire for "perfectionism" holds me back from progress. Thus, every "Lessons Learned" or advice I've written in this blog comes from my own experiences and needs. Before judging a stranger by their decisions, please remember that everyone has their own life experiences and lessons to learn. Everyone is different, what works for me may not work for you. So as a reader, please take anything you read (especially from strangers on the internet) with a grain of salt. So, with that disclaimer out of the way...