Author Archives: ajahan22

Apprenticeship Patterns: Software developers

Currently, I am reading an assigned book, “Apprenticeship Patterns” for my CS class. It is one of the simplest books so far I’ve read at university for a CS course. The book is written for upcoming software developers who are lost or in other words, are unaware of how to balance and increase their knowledge in the developing field.  

The author explains the meaning of software developers by connecting it to apprenticeship, which is a way of “equipping programmers by teaching them to value learning over the appearance of smartness to relish a challenge and use errors as routes to mastery.” It is a way to learn about being a good Software developer. The basic concepts were defined and it is agreeable how Apprenticeship Patterns help establish a good software developer. 

 The author portrays it simply, to be a software developer there are few basic keys phrases that need to be understood:

  • Adopt changes based on feedback
  • Pragmatic rather them dogmatic
  • Failure happens so that lessons are learned
  • Welcome all the elements of the software developing community
  • Surrounding yourself among people who are as eager as you are, or smarter than you. Growth is important and it comes from learning by others.

Where kept me going was the short stories that were introduced before the main idea. It helped me stay focused. After reading the short stories it helped me connect to the point that the author was stating. What caught my attention was the short story of the “Emptying The Cup”. The meaning behind the story refreshed my mind in knowing that no matter how well you know, adopting new skills won’t do any harm hence it will increase the ability to enhance the knowledge of what is being taught.

It agrees with the author that you are never done learning there will always be something to learn in order to grow. One phase of language or skill is never sufficient. After reading the chapters, I have been focusing on what needs to be done. I am currently looking for opportunities to learn and communicate with other software developers. 

I would definitely recommend the book to anyone who is pursuing a career in a Software developer.

From the blog CS@Worcester – Tech a Talk -Arisha Khan by ajahan22 and used with permission of the author. All other rights reserved by the author.

LibreFoodPantry Intro

The project that we are working on is called LibreFoodPantry. What is really interesting is that students get to use their programming skills to work on a project that is not related to school based projects. To be precise, it is more like an internship where you are working on real project that is helping the community.

Its an open source project, Not only students can help out but also anyone who has a strong desire for developing and programming.

Lastly I noticed the Values sections. In any field there are moral principles. To make anything reach its goal there should be a limit to how far you will have the access. As a software developer, safety is one of the priorities. When you are aware of the rules you are mostly at the safest section where you don’t have to stress about what could go wrong. LibreFoodPantry is well organized. The Code of conduct, Agile values, Agile principles and FOSSisms are defined.

From the blog CS@Worcester – Tech a Talk -Arisha Khan by ajahan22 and used with permission of the author. All other rights reserved by the author.

What CS-448 has for me?

The class that I am currently taking is CS-448. It mainly hands on experience with a project that is been out and we as students are using our programming skills to achieve an esteemed system. New programming tools and skills are introduced and I am excited to share along my learning through the blogs.

From the blog CS@Worcester – Tech a Talk -Arisha Khan by ajahan22 and used with permission of the author. All other rights reserved by the author.

Who am I?

Hi everyone, I am Arisha Jahan Khan. This is my first blog and I will be posting weekly journals here.

I am a senior at Worcester State University, soon to be holding a Computer Science Degree. What brought me to computer science was the reliability of how technology impacts our life and how it makes our life easier. I took my first Computer Science class at my senior year of High School, where I touched upon the Object Oriented Programming. The curiosity grew and I declared my major as I entered my first year at University.

I am originally from Pakistan but moved to United States 8 years ago. I am a professional squash player as well. I love to travel. I have visited more than 10 countries.

From the blog CS@Worcester – Tech a Talk -Arisha Khan by ajahan22 and used with permission of the author. All other rights reserved by the author.

GRASP (General Responsibility Assignment Software Patterns)

GRASP stands for General Responsibility Assignment Software Patterns. It is a tool for software developers. It is a design pattern in object-oriented software which provides to solve organizational problems and offers a common way to speak about abstract concepts.

In general for Software programmers design Patterns are essential tool in developing software. it gives the programmer a standard vernacular to communicate with and also offers conceptual abstractions that are valuable in wide set of circumstances. It classifies the problems and their solutions together as a pattern.

There are nine roles the GRASP carries for making a clear delineation of responsibilities here are first five:

Controller: is responsible for handling the actions of user-interfaces.

Information Expert: When the controller has much logic, it results in bloated controllers which means that it is coupling in our system. which does not sound good. This Expert solves this by encapsulating information about task into a distinct class.

Creator: Takes responsibility of creating certain other objects. It has the informations on how to create said objects. It can be used to enforce the logical design of a system.

High Cohesion: Attempts to keep objects appropriately focused, manageable and understandable. It is generally used in support of low coupling. The more focused a class is the higher its cohesiveness is, which is a good thing.

Low Coupling: is an evaluation pattern that dictates how to assign responsibilities to support higher reuse potential and lower dependency between the classes. It reduces connectivity

From the blog CS@Worcester – Tech a Talk -Arisha Khan by ajahan22 and used with permission of the author. All other rights reserved by the author.