# Weekly Recap# This week, I took my first steps into object-oriented programming in Python. Up until now, I had been working with functions. Functions felt like my safe space. They were simple and straightforward: give them an input, they do the work, and return something back. It was like having small helpers I could call on anytime. That made sense to me. But then I stepped into OOP. The first time I saw a class definition, I honestly felt a bit lost. The syntax looked strange—__init__, self, methods inside a class. It felt like a lot to take in. Still, I tried it out: class Dog: def __init__(self, name): self.name = name def bark(self): return f"{self.name} is barking." my_dog = Dog("Buddy") print(my_dog.bark()) When I ran this code, it clicked a little. I wasn’t just writing a function anymore—I was creating something, an object, that could carry its own data and behavior. My dog “Buddy” could now bark, not because I told it directly to bark with a function, but because it knew how to bark as part of what it was. That felt different. It felt new. The challenge for me right now is wrapping my head around the bigger picture. With functions, I could immediately see what was happening. With OOP, I sometimes ask myself: Why not just use functions? Why do we need objects? I know the answer will become clearer as I keep learning, but for now it feels like stepping into unfamiliar territory. I’ve also noticed that OOP forces me to think in a new way. Instead of only focusing on actions, I have to think about “things” and what they can do. A car that can drive. A student that can study. A bank account that can deposit or withdraw. It’s still the beginning for me, but even with this small start, I can tell that OOP is going to be important. Functions taught me how to organize code. OOP looks like it will teach me how to structure entire programs. This is where I am right now still asking questions, still a little confused, but also excited to keep going.