Journey into A Different Road (A Individual Apprenticeship Patterns)

On this Software Development Capstone journey part of my assignment is to choose 10 Individual Apprenticeship Patterns out of 35 patterns among Chapters 2-6 from the book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsmanby Dave Hoover and Adewale Oshineye. For my first individual Apprenticeship pattern I have chosen A different road. I will first summarize the pattern and then I will state my reaction of this pattern.

A Different Road summarized

After using Draw Your Own Map pattern and creating the map which you been following. You come to realized that the map you drew has led you away from the long road or the road your on is no longer the one for you. Even if you decide to take a detour and do something different from software development your software craftsmanship will always benefit you no matter what. Also, if you do leave and then decide to come back you will be bringing back with you new set of skills that will be beneficial because it will be a fresh new set of eyes with a new prospective. Although sometimes when you take a break some software organization might make you jump over a few hoops and ask you over 21 question seeking justification from you for leaving for a while and then deciding to come back.  The key is to no worry because you are a software craftsmen and everything you have learned will always be with you. An action you should take whenever you no longer want to be a software developer or you’re wondering what would/should you do? This pattern suggestion for you is to list the kind of jobs you would like to do and then find people who matches your jobs list and who also loves their job. Once you found that person you are to “Ask them what they love about it and compare that to the things you love about software development.”

My Reaction

This pattern helps you not worry and be confident that the road although different is not entirely different. It also, reassure you that its okay to take a different road. I agree with this idea. I found that this idea is not just interesting but also useful and thought-provoking. This pattern has definitely changed the way I think about my profession and the way I think I will work because it has made me less worry and more confident in knowing that I should not be afraid to go on different roads because as a software craftsman I will have a set of quality that will last a life time.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

 

 

 

 

 

 

Journey into Software C.D.A. a SOLID Explanation

As I take a step towards my journey in Software C.D.A. I am told that for my first task I must find a blog related to the class topic. The blog I chose was “The Solid Principles of Object Oriented Design” by Joseph Smith. I chose this blog cause it’s about one of the Object Orientated Design Principle. A topic that was supposed to be cover on the first day of class, but was not covered since we ran out of time. This blog was short simple and direct to the topic, hence why I chose it. The content in the blog is about the S.O.L.I.D. Principle of Object Oriented Design. I will give a summary of what the blog was about and what it explained from my point f view and understanding. It goes as follows:

There is about five Object Oriented Design Principles known as SOLID. This SOLID principle is used by Software Developers to help them successfully develop applications that are clearly workable.

SOLID stands for the following:

S)  SRP – Single Responsibility Principle.

  • This means that a class only really need one duty, and only one motive to change.

O)  OCP – Open Closed Principle

  • This means that a class needs to be open for extension, and closed for any changes.

L)  LSP – Lisko Substitution Principle

  • This means that the child class must allow the parent class to be interchangeable with it. Meaning the child class can inherit from the parent class by utilizing a copy of all or sum of its objects and change what’s within the object to what relates to the child class.

I)  ISP – Interface Segregation Principle

  • This means a class is not required to use any methods it does not need. This is possible through Interface Segregation by taking the larger interface and splitting them into smaller ones, all the way until a class implementation of the interface. Once that happens it only will have relevant methods.

D)  DIP – Dependency Inversion Principle

  • This means that high-level of modules are independent of low-level of modules, but both are dependent of abstraction. However, abstraction is not dependent on details and vice versa.

 

Then the blog finish by saying it will continue with more in-depth information of these principles the next few weeks. It also suggests we go on Wikipedia if we seek more information or detail on the subject so, I did. Well the reason mainly being that I was unclear on the Dependency Inversion Principle. I had to go on Wikipedia to see how it’s explained on that site and if I could understand the concept better. Okay, let’s just say I did so the definition I place on the DIP section was obtained from Wikipedia and not the blog itself. Now, other than that part of the blog everything else was understandable and explained the principle. I found the link to the Wikipedia page useful. I like how the Arthur only focused on the SOLID principle because it’s a pretty big subject and very easy to get lost and confused. This blog has taken me on the right directing to understanding one of the subjects related to the class Software Construction, Design, and Architecture (CS-343). I honestly liked this blog and it made me realized I know some of the topic since it has been covered in past CS classes. I am eager to learn more as it will help perfect my skills.

This has been YessyMer in the World Of Computer Science, thank you for your time until next time.