Category Archives: cs-wsu

“Retreat into Competence” Apprenticeship Pattern

I am writing this blog post about the “Retreat into Competence” apprenticeship pattern from the Apprenticeship Patterns book. To summarize the idea of this pattern, it is about handling being overwhelmed by new challenges. This is something I experience frequently, particularly because I actively search for new challenges and often find ones that are beyond my current ability. The recommended response is to go do something else that is more familiar instead. Succeeding at something familiar and reflecting on past success is comforting in the face of overwhelming ignorance. There are two definitions of the word “overwhelming” that I can imagine here, and the one that this chapter seems to be using is in an emotional sense. Recognizing one’s own incompetence is uncomfortable, so taking a moment to go back and successfully complete a familiar task feels better than struggling with an unfamiliar one. The other definition would be being overwhelmed in the sense of lacking the capacity to complete the given challenge. Retreating into competence is done for the sake of regaining confidence, and it is important to be able to handle being emotionally overwhelmed before trying to handle being academically overwhelmed. I have confidence in myself and my abilities, but when I am challenged by something new, I remain confident in what I know and recognize that it is a challenge because of what I do not know. I was doing a problem recently that required a certain background knowledge of combinatorial game theory that I did not have. Despite my aptitude for problem solving, my lack of education on the matter made the problem challenging (or overwhelming) to the extent that talent would not make up for inexperience. I saw it as a learning opportunity and started researching the information that I was not familiar with, and also did some easier problems instead that did not require a level of education I was lacking. Remaining in one’s own comfort zone is a good thing, but only briefly, as the chapter notes. It is taking a step backwards in order to prepare to continue moving forward and learning.

From the blog cs-wsu – klapointe blog by klapointe2 and used with permission of the author. All other rights reserved by the author.

Retrospective 4

As we finished another sprint, we learned more about Angular applications. we split the work based on components, and each team was assigned in one component, or to do the services needed. I and my team started to work with the search bar in the sprint three, and we are doing considerable progress with that. … Continue reading Retrospective 4

From the blog cs-wsu – Kristi Pina's Blog by kpina23 and used with permission of the author. All other rights reserved by the author.

Sprint 5 Retrospective

Since the last sprint retrospective blog post, our team has struggled to get the component we have been working on to show up correctly. It has been determined that the formatting code will not be applied to the component if it is just opened by itself in a browser. It is necessary for the amrs server to be running first, and then the component will show up at localhost:4200. We made progress once another group had us make a copy of their component and try to get theirs working for us, since they already had it working for them. I ran the commands cd amrs-simple-app, cd ampath-simple-app, git, checkout Tabs, git pull origin Tabs to make a copy of their component. Then I tried ng serve, and that errored, so I googled the error and found the solution and entered the command npm install –save-dev @angular-devkit/build-angular, npm audit fix, ng serve –prod, and then it worked. I waited for it to say “Compiled successfully” and opened localhost:4200 and the component showed up, correctly formatted.

Since that is out of the way now, we should be able to actually finish the one component we have been trying to get working for the last month. We should probably be able to do a second component, too, since the thing that has been holding us back the whole time has been solved. Now we can go back to our component, apply the solution that worked to display the other team’s component, and finish getting it to work and move on with the project.

From the blog cs-wsu – klapointe blog by klapointe2 and used with permission of the author. All other rights reserved by the author.

Sustainable Motivation

For this week’s blog, I chose the Sustainable Motivation pattern from the Apprenticeship Patterns book. The Sustainable Motivation pattern is about keeping your motivation while working in the industry. While working in the industry, things can get tedious, real projects are more rigorous and can be exhausting and often frustrating. As an apprentice, you will encounter these problems while developing your technical skills. You will often find yourself working in the messy specified projects for customers with the always changing demands.

Of course, there are times when you love your job, and your ability to write code seems too good but they will not be your ordinary days. Most of the time there are going to be nasty problems, bugs, and to add to that, your manager wants it soon. That is why you gotta stay calm and focus on the long road. You will most likely stay in the craft because of money and would try to endure the long road. While sticking with it, you then find your love for programming returns. It is going to be a cycle of love and hate relationship. Many programmers get trapped by their motivation. Learning something new gets harder and you see no point in doing so when you are already getting paid for the things you already know.

I totally agree with this pattern. There are going to be an up and down moment while working, I’ve already experienced this problem with my current internship. As an intern, they do not really expect you to do a lot. They do not expect you to actually contribute much to anything they do but expect you do to what is minimally expected of you, and most of it is learning. In my internship, I usually finish the task that was given to me earlier than expected. I would always try my best to finish it without wasting time, and always check with my supervisor if it is what they wanted, but sometimes they are also busy or are not around so I am stuck there with nothing to do. What I do in such situation is go to another department or another employee, then I would always ask if there is anything I could help them with and try to learn new things.

From the blog cs-wsu – Computer Science by csrenz and used with permission of the author. All other rights reserved by the author.

Sprint 5 Retrospective

This week’s blog is about our fifth sprint. During this sprint, we were finally being able to start tackling the issues that we have created. I learned a lot during this sprint than the previous one. In the previous one, we were creating issues pretty much left and right, placing them in our task board and then people work on it. The problem is that these tasks are not really assigned to anyone, and you can have two people working on the same thing without them knowing. This made it hard to keep track of the people working on an issue.

During the planning phase of this sprint, we planned on finishing the front end of the food pantry form. We tried to finish talking about what styling to use and what should the form look like. We also planned on adding more attributes or questions to the form since the main purpose of the form is to create a report every month that they could send or submit to the Worcester County Food Bank. The initial form only asks about the student ID, SNAP assistance, housing status, government help they are getting, and the number of household/income level. The last question was very vague since it only shows letters a through h, but no context on what they mean. Then there are the attributes that need to be added to the form like zip codes, participation in federal programs, primary household income source(household number of employed, unemployed, and other categories), and ages in the household that is served by the food pantry. These need to be added to the form to create the report.

The second meeting in our fifth sprint was comprised of fixing how the issues are laid out and what issues are still needed to be published. During this time, we were still organizing the issues that were put on the repository. The other team kept on closing issues that are not yet resolved, or maybe it was but it was never pushed into the repository, creating duplicated issues or issues that can be placed into one issue since they both pretty much mean the same thing. We also tried to organize the branches that were created. There were multiple branches created that are not working and we did not know which is the correct branch that we could work on since communication with the other team is not ideal.

During the second meeting still, I tried working on how we could correctly store the student ID field from scanning it using the card scanner. The original format of the student ID when scanned is something like ;0000111111100? but we only need characters 5 to 12. When I looked around for functions that I can use in angular, I found this javascript function called slice which slices the string given the position of the start character and the end character. I wanted it to slice the student ID when you submit the form so that it would be stored as a proper student ID so I thought I could just write this.model.studentId.slice(5, 3) and it would do that when you submit the form then show it in the submitted form, but it did not work. Although, using slice on the html file actually does it. I think that since it is a javascript function, that may be the reason why it is not working, I would definitely need to test it again and hopefully have it working during the next sprint.

From the blog CS@Worcester – Computer Science by csrenz and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective 3

As we are going deeper in the class project, we are learning how to be more productive. After the first two sprints, that we created the project, the git repository and organize the projects between the official repository in CS-Worcester and our class organization. My team decided to work in the Search Bar component and … Continue reading Sprint Retrospective 3

From the blog cs-wsu – Kristi Pina's Blog by kpina23 and used with permission of the author. All other rights reserved by the author.

“Expand Your Bandwidth” Apprenticeship Pattern

I am writing this blog post about the “Expand Your Bandwidth” apprenticeship pattern from the Apprenticeship Patterns book. To summarize the idea of this pattern, it is about learning about a greater variety of topics than just what tends to be the most relevant. The chapter describes the problem as having a narrow understanding of software development that focuses only on the low-level details of past work. The solution to this is to just start learning about different things. I think that this is a relevant concept that I seem to be dealing with at the moment. My specialty is computer science, and I have a deep understanding of many of the fundamental concepts in computer science. Software development, though, involves much more than just computer science, and I have not researched software development beyond researching computer science. The problem here is that I have a narrow understanding of software development, and the solution is to research the other topics that are important to understand besides computer science.

I think that this chapter relates closely to the “Concrete Skills” apprenticeship pattern. The main difference is that this assumes you already have a full set of skills that are already being applied in a day job, and “Concrete Skills” is about developing those skills in the first place. I have not yet begun a career in software development, though, so these problems are effectively the same. I have a narrow understanding of software development, and this narrow understanding is a set of concrete skills.

There are often times that I do research new and unfamiliar concepts, but these tend to be concepts that are still within the field of computer science and not software development. I do have a goal of learning and understanding more, and there are a lot of topics that I find interesting enough to read about, develop some experience with and practice applying. This book constantly emphasizes the importance of a willingness to read, practice, research and learn, but it puts an equal emphasis on software development. My concerns should be lessened by just applying myself more toward software development in particular.

From the blog CS@Worcester – klapointe blog by klapointe2 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns CH 1& CH 2-6 Intro

Hello dear readers. Most of my future blogs, including this one too, will talk about this book that I started to read called Apprenticeship Patterns by Adewale Oshineye and Dave Hoover. In this first blog I will write about the first chapter and the into of chapters 2 to 6. 

When I got the book in my hand I was like: “What is Apprenticeship?” and while I was confused by this term I came across another unknown term called “Software Craftsmanship”. For a second I was thinking we were going to talk about ships. Okay okay, just trying to make it funny. However, let me go ahead and explain what these two terms are about. Software Craftsmanship in this book is used as a distillation of the values of highly skilled individuals that are interviewed in the book. Also, it is used as an expression of the kind of community that would like to be emerged. In my opinion, being a software craftsman is to be in a journey but to always try to do better, learn, seek, dedicate and focus more.

Apprenticeship is considered as the beginning of your journey as a software craftsman. everyone on board..we are leaving the port and this journey will be long! Apprenticeship is known to be as the state or process of evolving and always looking for faster an better way.From my experience at my job, this is one of those things that you would always be valued for.
A good start is half of the journey, my mom used to say. However, you got to maintain these skills by being a journeyman. A journeyman is another focus that will help you keep up with your craft. It is focused o building even larger portfolio of applications that demonstrates your progress in the craft. Failures as a journeyman would cause lots of harm.
Last but not least is master. Master involves performing all roles (apprentice and journeyman) and also focuses on moving the industry forward. Being a master means to have the superior skill as the most important part of being a software craftsman.

While reading the intro of chapters 2, 3, 4, 5 and 6, I realized that this book will help me grow a lot in mindset and understand what the steps of a software developer are. The cycle of software craftsmanship its just like the life cycle: Child – Adult – Old. In every step we will grow and learn even more. The most interesting and relevant chapter I am looking forward to read is Chapter 3. In a world where almost everything is about money, it is hard to choose and value grow opportunities. Most of the people define growing as only financially, but I don’t agree with that. It is indeed going to be a long road ahead of me and there will be wrong turns or several storms but that only gives you experience and makes you a better journeyman.

In my opinion, this book seems to bring some very good thoughts  and explanations about being a software craftsmanship in life. I am so looking forward to read this book and share with you guys author’s and my thoughts about it. Until next time..

 

 

 

From the blog CS@Worcester – Danja's Blog by danja9 and used with permission of the author. All other rights reserved by the author.

“Concrete Skills” Apprenticeship Pattern

I am writing this blog post about the “Concrete Skills” apprenticeship pattern from the Apprenticeship Patterns book. To summarize the idea of this pattern, it is about dealing with concerns about seeking a role on a team but not having any practical experience. I chose to write about this pattern in particular because I find it relevant to myself at the moment. I am searching through job descriptions and they all seem to prefer certain areas of experience that I do not have. This is also evident in our capstone project. The “solution” section of this chapter in the book says to gain some concrete skills. I do have concrete skills; my aptitude is for mathematics, data structures and algorithms – computer science in general. It refers specifically to “tools” and “technologies”, though, and I know nothing about that. It becomes apparent when I work on the capstone project that my expertise has no application here. This sort of computer programming has nothing to do with computer “science.” There is no logical problem to solve, there are only tools and frameworks to learn how to utilize in order to accomplish some basic tasks. My past experiences have not seemed to have prepared me to be any better than anyone else at approaching these problems. It seems, then, that the “concrete skills” that I need are of a different sort. The chapter recommends looking at the CVs of others and finding a common set of discrete skills that seem important to become familiar with. This seems like a good idea. In order to gain some level of confidence about being able to perform on a team, it would be helpful to become familiar with the skills and common knowledge among the demographic. Rather than continuing to study computer science, there seems to be an additional field of knowledge that I am unaware of a name for, which is comprised of tools and technologies that are required for certain software development tasks. It seems like it will be important for me to gain some “concrete skills” in whatever field it is this might be.

From the blog CS@Worcester – klapointe blog by klapointe2 and used with permission of the author. All other rights reserved by the author.

Craft Over Art

This blog is about another pattern from the Apprenticeship Patterns book. This pattern is about Craft Over Art. Choosing whether to add that extra feature that you think will impress your colleagues rather than focusing on what the customer specifies or want. This problem would occur to you more than you would think. We are not just programmers we are also artists. Creating beautiful, unique and creative applications are all within us, but if you are working for someone else, you might have to forgo of your creativity.

The book suggests focussing on delivering value to the customer rather than advancing your own self-interest. As a craftsman you are primarily building things in terms of the specification, working under someone and not indulging in your creative self. As craftsmen, we work for the customer. You need to do your best work in ways that place the interests of your customers over your desire to display your own skills or pad your resume. The book even says “If your desire to do beautiful work forces you out of professional software development and away from building useful things for real people, then you have left the craft.”  They said that the things we build for customers can be beautiful but it must be useful. That part of the process of maturation is developing the ability to sacrifice beauty in favor of utility when it becomes necessary.

I am split on this pattern. I kind of agree that we should do what the customer has asked us and enhance its quality, making it a software that can do almost everything that they needed. But, I also think that you can still practice art even if you are working for a company. You can inquire on your customer and see if they like what you are trying to do, but then again I see how this can conflict with the other software developers. Since you are not the only person that would be working on a project when you become an apprentice, there are things that others would think is not necessary to the software, so there definitely going to be things that gonna have to be agreed upon.

 

From the blog CS@Worcester – Computer Science by csrenz and used with permission of the author. All other rights reserved by the author.