Going Back To Square One

Good my fellow readers!

Today I will be discussing an individual Apprenticeship Pattern from the book, Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. The pattern I would like to discuss today is naturally the first one, Your First Language, because where else is there to start but at the beginning?

The pattern starts by defining itself as a pattern for those who have surface knowledge of a couple of languages. It suggests that this particular pattern is for those who need to learn a language to solve a problem at work for example, or need to know a language for a job interview. It then launches into the solution, through execution of the pattern. To put it plainly the pattern is to pick a language and learn it. Having a problem to solve helps the process by giving you a goal to work towards and a drive to keep learning. It is also advised to take things slow and in small steps. It is also suggested to find a community and learn from its members as some methods or teachings may only be spread by word of mouth. It ends by reminding the reader to not get stuck with one language and to spread out into other languages.

I will admit, with this being the first pattern in the book I expected it to be for total beginners but it is aimed at just about everyone. What I find interesting about this pattern is that it seems to cater well to those who have never really picked up coding before or someone who, like myself, have had years of high school and college education in coding. I will admit that the amount I know about all the languages I have learned about is somewhat shallow. Some go deeper but many are probably not that far off from just surface knowledge. I might just try following this pattern after graduation. At first, I would have only recommended this pattern for only beginners who haven’t had formal schooling but after reconsidering, I think even those like myself who have had formal schooling can benefit from this pattern.

That’s all I have to draw from this first pattern and I hope to get more from future patterns. Until next time readers!

 

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

“Record What You learn”/”Share What You Learn”

This is the last blog post for Individual Apprenticeship Patterns, I want to end with “Record What You Learn”. Most of what we were talking about was learning and how to apply it to the real world. I thought this is important because I am also doing this in daily basic. I keep making same mistake, and I learn to avoid it slowly. There are issue I just need to more practice to avoid, but there are mistakes I could have learnt. The book suggests that some platform to write down. Ade uses two instances of the same wiki, one for his private thoughts and the other for stuff he wants to share with the world. That is the good idea, some from my mistakes I didn’t want lets other to know about it. But after this book I wouldn’t mind others to check on my mistakes. They could help me to fix it or at least I will learn from it.

By said that, I also want to connect this to the next pattern “Share What You Learn”. Like I mention above, we could become a journeyman, the ability to communicate effectively and bring other people up to speed quickly. We learn what need to be share and what shouldn’t. It does not matter what you take note for yourself. Before share to others, you need to think if that will have negative effect to them or even to the team. This could damage the relationship of the group. They also suggest that shared as blogpost about the lesson which is soft of what we are already been doing. In blogpost we also could share our solution and have conversation with other.

This is my final thought of the book. I think this book is good on the guideline on the ethics side of the industry. I also have honest advice from experience people. They gave short good example/advice that easy to ready. I am will read the rest of the patterns and keep this book with me.

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

Expose your ignorance

Hello everyone and welcome back to another apprenticeship patterns blog post which is going to about expose your ignorance for CS 448. I think it’s an important pattern because I was in the same situation because I was uncomfortable with having the idea I didn’t know what I was doing and I didn’t want other people to think I don’t know what I do so I would stay quiet and try to guess what’s going on and it wasn’t working so well for me just like the article says. I now think it’s better to let people know what you are struggling on so that they can help you through your problems. When I first started my internship at an IT company, I first let everyone know that I didn’t know much or anything about IT, and everyone was very understandable and help me through it. I think if I would of stay quiet and act like I knew what I was doing it would of cause more harm than if I didn’t. I know that in ordered to learn more and grow, you must expose your weakness. I think this pattern does a good explaining that you should find your weakness and work on it and add more to the list as you go and don’t be a shame of it. I agree that you must show the process through your journey for the people that depend on you to know your stuff because if you don’t then you would show no promise. It’s also important to build a strong relationship with people as you are in your journey. All in all, I think this pattern was important because it highlights most of the stuff that should make you successful when on a journey to be a craftsman. I don’t disagree with anything in this article because most of the stuff that it goes, I try to follow every day because its good advice which I hear from successful people. I think it’s important to honest with your self and knows that you still learning and everyone doesn’t know everything and everyone is still learning

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

Sprint 6

This week wraps up sprint number six, as well as the semester. This is our last sprint before the semester ends. Some of us, this is out last semester in undergraduate. Many of us will be graduating after this sprint ends. This sprint for our team was nothing entirely too fancy, it was more of a wrap up. Since we realized we were running short on time, and with a presentation of our final project looming just around the corner, we decided it would be best to stop the pipeline of taking in new tasks to work on. I was able to take on one small task in the end, just before we put a halt on work. This task was to add an optional field for gender into the intake form. This was a rather simple addition as I was able to reuse most of the HTML from another part of the form. The majority of the scratch work was done in the Customer.ts and the Customer-form.component.ts classes. In the customer class I had to add gender as an instance variable so that our customer constructor would know that it needs gender as an argument (needing it is specifically for testing purposes, the actual prompt is optional, per request of the food pantry owners). I then had to go to the customer.form.component class and add an array of options for gender, as this prompt would be a pulldown menu option. I was able to create an array of gender options called gender which had the values of male, female, other, or prefer not to say. This way there are enough options to cover the spectrum while also being able to keep the question entirely optional. Once I did this I had to add the gender paramaters into the Customer objects so that it would build the customer correctly. This was the easy part! The hard part comes next. Branches, and pull requests. I was easily able to check out a branch in our repository to get my issues and commits tracked on github. The hard part is the pull request. With the initial pull request, there are many conflicts to be resolved. This is expected, because you’re comparing an old file to a new file that has deletions and insertions, and code moved around. This is typically an easy fix as you can just go in text editor in github and remove the conflicts by hand and recommit the changes right on github. I have done the old fashioned way of running git commands in terminal to fix conflicts, and I find the in-browser option to be the more efficient and easier solution (if it allows, sometimes it isn’t as simple as removing a few lines of erroneous content on github). What happened next is the funny part. In the time I opened my pull request, notified my professor, and resolved conflicts, my professor merged another open request on our repository. Now I was getting no errors (because I had not refreshed the page) but my pull request would not merge. My professor and I were looking specifically at the customer constructor and were wondering why his master version had 18 variables and mine only had 14. After thinking about it for a while, I decided to pull from the master branch then recommit my branch, again fixing all the conflict resolutions. This appeared to do the trick, because I was missing the information from the merge that occurred while I was trying to get my branch merged. This goes to show you that communication is imperative on github and in teams of multiple developers working in the same place. Knowing this would have turned my 5 minutes of code and 45 minutes of trying to merge onto github into 5 minutes of code, a simple merge, and a new task. In the period of time between putting a stop to work and our final presentation, we as a team worked on our final presentation slideshow. We did this as a requirement from our professor, but also as a way to recap all that we have accomplished this semester. Looking back, it has been a fun semester getting to work on a project from scratch and seeing how far we could get. I hope the next food pantry teams have a good starting point, and will continue to do great things with the software.

From the blog CS@Worcester – The Average CS Student by Nathan Posterro and used with permission of the author. All other rights reserved by the author.

The White Belt

For this week’s blog I have decided to write about the chapter called “The White Belt” from out textbook. The context of this chapter is that you have developed a deep understanding of your first language but have plateaued and you are rather comfortable with that spot. I find this to be exactly where I am now. I have spent four years writing in Java a majority of the time. I would say that Java is the language I feel most comfortable in, and have the strongest understanding of how it works. Other languages that we have touched upon in my college career such as C and typescript/javascript, I am not as comfortable in because of this lack of depth of knowledge in these languages. This leads us to the problem portion of the chapter, which is that we have problems gaining knowledge of new things when we are coming from a position of comfort. The book points out a fear of personal development coming to a halt, and I think that rings true with me. I am afraid that once I leave college I will not learn as much as I need/want to. I am afraid of being a “one trick pony” with Java. What if my job requires me to code in C? C++? Any other language? I feel right now in this minute that if this were the case, I would be able to get by, but just barely and not very comfortably. And that is a feeling I do not want to have every Monday through Friday in my career! So how do we fix this issue of complacency? The book starts off the solution with a quote from Star Wars, which I thought was genius. The quote is, “You must unlearn what you have learned”. Now this doesn’t mean go and forget Java and all of its syntaxes and learn another language completely. This means unlearn your learning habits, keep your knowledge of Java but also learn to gain a knowledge of another language. Keep doing this, and soon enough you will be a master of programming. I find this solution to be rather comforting as I also find myself in this position of plateau quite often. I am hoping to continue my education of coding long after I leave college.

From the blog CS@Worcester – The Average CS Student by Nathan Posterro and used with permission of the author. All other rights reserved by the author.

Sustainable Motivations

There are many things that can motivate us to be programmers. Some of them can motivate for the long term, while others may not be sustainable. We may become very good at a particular language or framework. This specific expertise may very well translate to a larger paycheck. But if your true goal is mastery … Continue reading Sustainable Motivations

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 Review #6

Hello and Welcome back to Benderson’s Blog! This is the final sprint review blog I will have for this semester as our project is coming to a close and so is my college career at Worcester State. This was the 6th sprint that we did for the semester and it was probably the more relaxed one out of all of them. This was because we were basically done with everything that we needed to do for the project and were working on things for the project that weren’t mandatory but would be nice to have. For example, Nick was working on this weight counter for the food pantry that would keep track of their inventory weight for them but it wasn’t required and we didn’t get it done because it was too much work for the end of the semester but it was fine. For the rest of the group, Andy was still finishing up the Foodkeeper API, making sure it was running correctly and there were no errors. Johnny, Nate and I were working hard on the power point that we needed to make for our final presentation on what we did the whole semester in our groups. We got up to 31 slides in the end and divided up the power point among the members. We present on May 9th and I’m excited to see how our class takes our project, it has been a long time coming for everyone to see what we have been up to.

Our power point has a wide range of topics covered in it, starting from the beginning with our first meeting with each other and discussing the ideas that we had to proceed with the project. Then we go on to talk about our first meeting with Serena, a worker at the food pantry that got us on the right track on how things should be done for the food pantry intake form and other aspects of the food pantry that we were working on. Then we go on to talk about the different epics, stories and tasks we worked on for the project. Nick is going to talk about all the tasks he added to the intake form, Nate is going to talk about the CSS side of the intake form, Johnny is going to talk about the server/database he made for the information so it can be stored and lastly Andy is going to talk about the Foodkeeper API and how it works as well. Then at the end we have what we struggled with and our sources that we used for the project.

Other than all that stuff we worked on, I would like to reflect on this semester for this class I took to end my senior year of college. This class was fun to work in groups and get an actual project done for a client like it usually is in the real world in actual real jobs. Some things that I wish I did better were take more responsibility within the team, I feel like I didn’t do as big as tasks as my team members but on my future teams I will make sure that I volunteer and take more big roles and fill those shoes that I need to fill to make my team respect me and put me on later, higher projects. Thank you for joining me on Benderson’s blog, this was a great experience and can’t wait to update you on my future.

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

Sprint-6

Hello everyone and welcome to another and last sprint retrospective blog post for CS 448. Today I’m going to talk about what went on during our last sprint which is sprint 6. First, what I work on was finishing up the presentation. The steps I took during my steps to finishing up the presentation is that I reverted to the old commit of my original Ampath template because my slides would be about the beginning phases of the project. I made demo clips of both the old left navigation bar and the new left navigation bar to show how it would function. I also created a slide on how to create a blank angular project. I wanted to show I took stuff from the previous class 348 and implement them in this class 448. I also made a slide for the HTML code and the CSS code and I’m planning to explain them during the presentation on Wednesday the 15th. Our group has been working hard to get the presentation finished and we decided that each of us would do 5 slides each. The 5 slides would be about which member work during this semester. I think that we are about done, and the project looks great. During this sprint we didn’t plan much because we were approaching the deadline, so we wanted to just focus our full attention on the polish version of our Ampath project. Mike is going to be presenting the dropdown box during the presentation day and Tim is going to talk about the conversion from GitLab to GitHub. Kat is going to go over the Angular imports and the features that she added. Yensia is going to go over the rest of the Ampath project that she was working on during this semester. All in all, I think I learned a lot during this semester because I felt like this was a good simulation of what a job would be like. I feel way more comfortable in scrum than before. I think the weekly meetings help get used to always working and making sure I stay involve and keep the members of my group updated. I believe that our group works great together and we got many kinds of stuff done during this semester. I think that the left navigation bar was exactly what Greg was asking for at the beginning of the semester. Also, I learned more about Angular while working with this Ampath project. I don’t think there should be any improvements as I thought that the semester went very smoothly, and everything works out. In conclusion, this is the last sprint and the end to a very successful semester and my group was great and I enjoy this experience.

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

This Is It, The Final Sprint

Hello, once again my fellow readers! I say this with some sadness as it is my last retrospective for the semester. The final sprint has ended and the team is now in full presentation mode. For the sprint, some of the team decided to keep working on the product and some of the team, including myself, decided to start work on the presentation.

The part of the team that decided to continue work on the presentation worked on small improvements to the product. Small improvements to features we have already implemented and making aesthetic changes.

The rest of the team, including myself, started our presentation work by making a presentation. From here, we decided to break and each of us would start working on our own portion of the presentation. My part of the presentation consists of what happened a few weeks ago with the GitLab to GitHub transfer. You may remember that series of events from my sprint retrospective blog a couple of blogs ago. The main part of this presentation is not just to recount everything we’ve done over the semester, however.

The big part is to recount everything we have learned over the semester. To do this, I needed to go back and reread all of my blog posts. Boy, it has been an interesting ride this semester. Looking back, I have to say that I like Scrum. It took a little set-up but by the end of it all, Scrum worked out pretty well for our team. Everyone in our team was able to step up and take lead when they wanted to and no one person was ever the leader all the time. It definitely led to great teamwork and helped each and every one of us to achieve our individual and team goals. What I find interesting about Scrum, and if anyone wants to replicate Scrum successfully is that I find that Scrum works best as a team that self regulates itself. What I mean by that is, the team is able to find team members that are slacking or behind due to other reasons, and help them get back on the horse. If the team self regulates itself, the team can keep itself on track and make up for momentary weaknesses.

Another thing I learned was quite a bit about Git. When the git repository transfer had to happen as you may remember, I had to transfer our project from our GitLab repository to the min GitHub repository. This process that I went through taught me two things. The first was that we should have planned a bit further in advance when we first created our part of the project. We created our part in GitLab, without a thought. Thinking ahead, we would have definitely chosen to make it in the main GitHub branch we had created. The second thing I learned was about Git itself. During the process of moving, I thought that I could just simply copy paste our files in. That was not the case, and I had to enter in lines of code in some files, to preserve the work that other groups had done. I also had to deal with numerous merge conflicts that I had to deal with as well. I learned from that process how to better deal with those merge conflicts, and with moving files and things into a git repository.

Well, this is it, readers. That’s all I have to say on this semester and I definitely I can say that I got something out of it. This will be the last farewell as not just the semester is ending but I am graduating as well. No more blog posts for me… for now. I may return to writing blogs as they did help me reflect but we will have to see in the future whether I return. I must end sometime, so for the final time farewell my dear readers!

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

Sprint 6 Retrospective

Sprint 6 lasted from April 24th to May 6th. This sprint, my group and I had a main goal to focus on completing a powerpoint of our final project to present to the class on May 15th. Unknowingly, we instead spent most of our class time trying to merge and integrate our project with everybody else’s, which in turn broke some of our features and we never fully completed this integration.

While my teammates worked through those issues, I spent a lot of time trying to merge my completed dropdown button feature on to the main branch. This was also unsuccessful, partly due to merge conflicts since minor fixes and contributions were being pushed at the same time I was trying to push my own changes. My feature has been working on my own local branch for quite some time, in fact it was easier to develop the dropdown button than it was to merge it with everybody else’s project.

Working with professor wurst, I created a new branch that included my feature since attempting to push to the main branch wasn’t working. I tried creating a new folder, pulling the most up to date branch on a clean slate, then rewriting my changes in class which only took me about an hour. This plan was also unfortunately unsuccessful. Ultimately, as the deadline for the end of the sprint drew closer, we had to compromise on some of our more ambitious goals in order to start work on the presentation, which was meant to be the focus of the entire sprint.

I was still able to write about the ins and outs of my dropdown button, and I included screenshots from my local running branch. Thankfully, I believe I will have much to talk about. I will explain in depth some of the code lines and how they tie together with the modules and components necessary to make the whole thing work. I also want to include references to where I got the idea for the dropdown, since I stumbled upon a very helpful website that included HTML sample code for me to modify and trim down to fit our projects needs. I lastly will talk about how our work can be improved in the future. Our project contains a lot of filler text and our buttons don’t do much besides display text on the screen. To fit more specific needs, the text can easily be changed and more functions in the HTML can be added without necessarily changing the buttons around. Some ideas would be displaying various messages, videos, or information otherwise that would fit a more specific need depending on who will actually be using the app. Ill include a link to the presentation below this paragraph.

https://docs.google.com/presentation/d/1mJS7XpGuvMmKmI_LZyf-CLtPi8Xi8Ft_8yVu3f09ewk/edit?ts=5cc73c24#slide=id.g59df31ee4a_1_27

Overall I think we will get a good grade on the project, on our presentation, and on the class as a whole. I enjoyed this class more so than some of the others I took this semester, and I feel that I had more motivation to put in more effort into this class than some of the others.

From the blog CS@Worcester – CS Mikes Way by CSmikesway and used with permission of the author. All other rights reserved by the author.