I love building Lego sets as a child. Star Wars, Harry Potter, Lord of the Rings, you name it. My mom would help organize the pieces while I would hastily dig through the loose, unsorted pieces trying to build the set as fast as possible. Building Lego sets over and over again builds a sort of repetition, you build houses that same, and trees become easier to complete. At some point, I noticed that I would be able to complete steps accurately without even needing to look at every individual instruction. But the real fun came after breaking down the sets. With no instructions, I had the freedom to create large towers, and giant cities, and set up large scenes to replicate battles or movie scenes creating endless possibilities. I would catch myself remembering long strings of different steps from different steps making the build process for each unique structure I make similar to the original. It made it look more complete, more like a full set.
As I grew up and phased out of Legos, I saw these patterns emerging in something new, coding. I would be able to write basic functions and lines of important syntax straight from memory. Writing loops and incrementing variables became second nature, much like building Lego houses. Debugging and compiling, especially in C during ICS 212, felt like solving familiar puzzles. By identifying reusable patterns in both syntax and logic, I could focus on mastering more complex concepts.
What started as a childhood hobby gave me a foundational understanding of design. Whether I’m building with Lego bricks or code, recognizing and applying patterns transforms the process into something efficient and deeply rewarding.