Talent and luck might happen to you by chance, but learning is a skill and practice that anyone can accomplish with diligence. That being said, bootcamp was not easy. That's because, as it turns out, learning is not always easy. You’re always going to encounter a learning curve when you learn something new — it’s one of the requirements to actually learning! The frustrations and struggles that come with it are also a requirement. The learning curve doesn’t mean that you should quit — as long as you face the challenges and work through those frustrations, you will make progress. I chose to attend Codeup because I love being surrounded by people going in the same direction as me. We share the same goals despite our many failures and successes along the way. In bootcamp you're pushed harder than you would ever push yourself — barreling past the invisible limits that you place on yourself. In bootcamp you learn to rely on each other and be a part of a team.
Learning is an exercise in changing the self. As I look at the women who inspire me, no matter what platform they have chosen — they are all passionate and resilient. But the women in technology, who represent such a small percent of the industry are game-changers. When I considered how being a minority woman in tech would feel, I'll admit it was a little daunting. But I'm a part of a changing world in which I get to choose to be a part of something greater than me. I get to choose to be different in the midst of sameness and be someone that the next generation of women can look at and know that if I did it, then they can do it as well. I would not have considered becoming a software developer were it not for the women I look up to every single day.
The four pillars of object oriented programming are Abstraction, Encapsulation, Polymorphism and Inheritance. The way that I remember what these pillars are and what they do is by narrowing the definition to something that I can explain. The first two, I think go well together, are Abstraction and Encapsulation. Encapsulation allows for classes in an application to only be accessible to other classes through certain methods. The most common way of doing this is to keep an object and its properties private and allow access to that class using certain methods. Abstraction takes a robust application and ensures that only the high-level mechanisms for it are exposed to other functions. So there's no need to try to figure out everything that is happening with an object in order to communicate with it. There only needs to be exposure to the mechanisms that are relevant to other objects, essentially leaving all the other stuff encapsulated. Inheritance is a way to use existing code from a parent object so that you don't need to rewrite code over and over. The child object can have its own code as well as access to the code from the parent object. It inherits it, there's no need to rewrite it. And finally we have Polymorphism, did you know that Polymorphism means “many shapes” in Greek? Well, Polymorphism is cool because let's say that you have a few classes that inherit methods from a parent class. If you have a method implemented for the parent class?—?but you’d like to use it for the children as well, Polymorphism gives a way to do this without the confusion with mixing types. Each child class keeps its own methods as they are. This typically happens by defining a (parent) interface to be reused. It outlines a bunch of common methods. Then, each child class implements its own version of these methods.