Monthly Archives: March 2019

Record, Revisit, Retain

For the ninth week’s reading, I chose to read the pattern, Record What You Learn. The problem this pattern addresses is keeping a journal or history of what you learned but not casting it aside. It suggests that a journal, personal wiki, or blog of lessons can help you in the future. This can be either for mentoring purposes, or a source of information for yourself and others. However, the biggest trap stated is that you will write down the lesson and forgetting them. The next step of writing them down is to revisit them regularly and review what you have written down. Eventually, the outcome is that you will achieve an accurate self-assessment of what you actually know. An example of a successful journal is about a guy named Dave who kept quotes that shaped his learning and eventually totaled over 500 quotes. With this he was able to share it with others and was helpful when he started writing articles and this book in particular!

What I found useful about this article is that it made me do a self-assessment on the spot about how I’m currently retaining information from school. Notes, projects, presentations, and papers are all evidence that I have been actively involved in my learning. However, once the course has finished, all those notes, papers, projects, and presentations are forever locked away in my drive, closet, or thrown away. Valuable information that could be useful in the future is now stacking up somewhere that can’t be maintained in a practical way.

What I found interesting about this article is the portion of the personal wiki. I did not know that you could create a personal wiki and it answered a question along the way. The question is what happens if there is something you learned but don’t want to share publicly. As such, you could have private and public records with no issues. This sparked an interest for myself, as I need a breakable toy to mess around with and learn but didn’t want to create a blog from scratch to do the job. Overall, this pattern is meaningful as it’s a good place to start if you don’t have anywhere to begin.

From the blog CS@Worcester – Progression through Computer Science and Beyond… by Johnny To and used with permission of the author. All other rights reserved by the author.

Pattern 4 – A Different Road

After writing about “The Long Road” in my last post, I decided to read the referenced “A Different Road” pattern. This pattern is exactly as described in “The Long Road”. It is a pattern that basically tells you that it is ok to step away from software development and that even if you leave, you will carry what you have learned into whatever path you choose to take. This pattern also warns readers about the difficulties that may arise if they want to come back to the world of software development after taking a break of any kind.

Compared to “The Long Road”, I very much align more with this pattern. I agree that the problem solving techniques learned throughout years of software development can be useful in other career or life paths. I feel like this pattern should have given more insight into this aspect of choosing a different road. This section didn’t really discuss how one might move from a developer position to a project manager position where such technical insight would be a massive benefit to a company. Being in a position like this and having a strong understanding on the feasibility of reaching deadlines and being able to relate to the developers working under you makes you a great asset to your company. The pattern instead gives examples of teaching and full time parenthood.

I entirely agree with the aspect of this pattern that talks about how difficult it is to find a job after having a gap in employment. I follow several computer science career related forums and this is a very common point of conversation. Whether it is a young adult who takes a gap year after graduating, or a parent who takes off the first year of their child’s life to bond more, they both often have trouble finding work after their gaps. This all varies company to company and there are definitely companies out there that value work-life balance as a core principle of the the company’s mission statement. From my experience, companies that have more of an older employee base are more work-life balance heavy. They tend to have more of an understanding of the 40-45 hour work week. There are also companies in the area of defense contracting that almost “have” to have their employees work a maximum of 40 hours a week due to contracts. It is all about putting in the effort to get back into work and finding a company that will work for you. If they don’t understand a reason for taking a break, they probably aren’t a company you want to work for.

From the blog CS@Worcester – The Road to Software Engineering by Stephen Burke and used with permission of the author. All other rights reserved by the author.

Apprenticeship Pattern: Practice Practice Practice

Something we are taught as kids is that practice makes perfect. We are taught this so that we don’t feel bad about failing at first and that the end goal is to be “perfect” at your objective. That is what this pattern begins to explain in terms of the programming apprentice. Growing as a programmer… Continue Reading →

From the blog CS@Worcester – Computing Finn by computingfinn and used with permission of the author. All other rights reserved by the author.

Rubbing Elbows

Week-8

My blog post this week will be on the chapter “Rubbing Elbows” of Apprenticeship Patterns, in which the reader is encouraged to seek out working with another fellow software developer. The basic thought behind this is that if you develop software alone you can reach points where your learning can stagnate, and cooperative work can get you to learn things in new ways. One very important point that the author made was the aspect of “micro-techniques” (small ways one developer has found to handle certain problems or situations) and how important learning them from other developers can be. This is important to me, and should be to others, because I feel I had to figure out how important those “micro-techniques” are first hand. When I first started working with software I was very independent, not wanting other people’s help. But, the longer that I have worked with software, and just worked in general, I have found out how important it is to see problems and fixes for them from other people’s perspectives. Towards the end of this pattern, the author again points out this importance of being able to see problems from others points of view, even if in the end you do not agree with another person’s perspective. One thing that I found interesting, and wound up doing more research into, was the idea of pair programming. The idea behind this programming technique is to have two programmers work together on one terminal with one programmer writing the code, while the other reviews each line written. This approach of matching a journeyman programmer with an apprentice I can see being very effective way for both the apprentice to gain critical knowledge and for the journeyman to progress further towards becoming a master by passing on his knowledge. One downside to implementing this technique with pair programming that the author points out is that the apprentice may often feel lost, but I feel this can be combined with another one of the patterns(Expose your Ignorance). In essence I feel that as the apprentice in this case, you have to be humble, acknowledge you won’t know much, and to ask a LOT of questions. Don’t ask just  one person these questions too, but ask other’s the same questions to see their perspective on the same problems.

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

Confronting the limited knowledge

For this week, I have decided to read another pattern from the Apprentice Patterns by Adevele Oshineye and Dave Hoover. It is called “Confront Your Ignorance” for this pattern. I chose this one because since I have read about job titles in the last blog post, I believe that there is a need to go back and understand the basics of knowing what to do with self-awareness when it comes to learning materials.

With this pattern, it starts off with the context of that we identified gaps in our skillset, gaps that are relevant to our daily work. The problem is that we do not know how to begin in working on them while knowing that there are tools and technique to master. By to some extent, some of the people around us already know these things and there is an expectation for the knowledge. To solve this issue, we need to choose one skill, tool, or technique to fill in these gaps for the knowledge. It is necessary to make the trade-offs each day to hone these and be sure that to decide whatever it is alright to dig deeper or fix the other gaps in the future.

From this pattern, what I found interesting is the way it makes a compelling statement towards a real-life scenario. While it is alright to learn when doing the project, it is not appreciated for programmers with the code that may lead to another project instead of the one that was tasked.  Employers may not be okay with understanding if the educational needs is interfering with the project delivery. It is best to have the willingness to put the wider interests of the community. This pattern has changed my mind in approaching in what should I do generally with the knowledge that feels limited. I don’t disagree with anything since it does give a clear sense of being a good step towards in expanding your work to even teaching them to others.

Based on the content of this pattern, I would say this is an excellent read as a refresh in knowing what to do with limited knowledge on projects. This pattern has shown me ways to understand that self-awareness is one of the key things to be successful. For future practice, I will try to be more considerate with separating the practice material and then use those skills from it to give acceptable code for future projects.

Link to the pattern: https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/ch02s06.html

From the blog CS@Worcester – Onwards to becoming an expert developer by dtran365 and used with permission of the author. All other rights reserved by the author.

Knowing what to do with job titles

For this week, I have decided to read “Use Your Title” pattern from the Apprentice Patterns by Adevele Oshineye and Dave Hoover. I have chosen this one because there is a need to know what to do when seeing a job title that is given. I believe this will help me in making sure that when a job is given, it does not feel as stressful from just reading it.

This pattern starts off with the context of being hired or promoted to a position with a title as a result of dedication of learning. The problem is that the job title does not match in what you see for yourself. Because of this, there is the need to apologize or explain the difference from the skill level to the job given. By this explanation, the solution is to not let the title affect you. A job title is not meant to slow down the process or believe that the changes should be big to fully do the work. What is needed to be done is writing down a document that describes the job title and update it time to time.

From this pattern, what I found useful is the way to think about the job title as a way to help you instead of putting you down to stress. It is to make sure that the reflection shows what is it you really do and the skill level is accurate by your standings. Thanks to reading this pattern, I understand that I should be not intimidated by the job titles and instead show that I can improve my organization from one work to the next. Overall, I don’t disagree with anything of this pattern and this is because it helps me understand that the industry is very difficult to choose people that can help with the problems ahead.

Based on the contents of this pattern, I would say this is one that requires thinking from your perspective and it is effective by the end of it. This pattern has given me some ideas to approach in expressing the future jobs that might be needing clarification. For future practice, I should try to write down job positions that I found suited to my skill level and make it clear for myself so that it would not as bad at first glance.

 

 

Link to the pattern: https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/ch03s06.html

From the blog CS@Worcester – Onwards to becoming an expert developer by dtran365 and used with permission of the author. All other rights reserved by the author.

Record What You Learn

For this week’s blog I decided to write about the chapter “Record What You Learn” from our textbook of software apprenticeship patterns. The context of this pattern is that you learn the same lessons/ideas/things over and over and over again but you never seem to retain the information or you retain it for a short period of time and then forget it. I personally find this to happen to me every so often. Sometimes in class we will learn a lesson and I will not retain the information and when it comes time to use the information we learned or to prove our knowledge of the subject on a test or examination or project (some form of graded material) I will draw a blank. This is extremely frustrating because most of the time I know that we have learned this topic and that I was in that lecture but somehow someway I have forgotten what that thing we learned is. The problem being set up by the book is this; You don’t learn from history or historical mistakes and you are doomed to this repetition of failure due to your lack of discipline to take notes or record what you learn in a way that you wont forget it. The solution to this problem is rather simple; record what you have learned. Do it in some way that sticks with you – a way that makes sense for you. Two different people might have two different ways of remembering information. Maybe I can write notes down in a journal from lecture and be all set whereas my classmate (let’s call him Jim for the sake of conversation) can’t retain information from reviewing basic lecture notes. Maybe in order for the information to stick with Jim he needs to do it hands-on a few times. Once he does it himself physically he will remember how to do it because he knows he’s done it before and has the confidence he’s done it correct in the past. I hope to improve my retention of knowledge by finding more avenues to retain my information as opposed to just relying on lecture notes.

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.

Sweep the Floor

A good amount of the Apprenticeship Patterns that I see when choosing one to write my blog post about have contexts, situations, and descriptions of people who are confident in their programming abilities, have a defined role on a development team, and are eager to get in the meat of the problem.

However, this context does not describe me very well. I am not confident in my abilities as a programmer yet, I do have an apprenticeship opportunity, but I have no defined role or job title, and I am nervous to tackle important complex tasks because of my inexperience. Thankfully I came across a pattern which describes my situation pretty well.

The “Sweep the Floor” pattern is for people like me who are unsure of the team and vice versa. People who want to contribute to the meaningful work in order to grow their skills and find a defined place on the team, but have only just began their position in the group. This context really spoke to me and pretty much read my mind without my thinking it.

The solution they provide is so remarkably simple that I’m surprised I didn’t think about it before to put my mind at ease. The authors suggest that in order to gain trust and find your place in the team is to in the beginning “volunteer for simple, unglamorous, yet necessary, tasks.” Hence the pattern’s title sweep the floor. If I can’t contribute to the main problem yet, then I can demonstrate my usefulness by handling tasks that are either tedious, not fun, or otherwise that the team does not want to do.

“Typically, you’ll want to focus on the edges of the system where there is less risk, rather than the core where there are usually many dependencies and lots of complexity”. This quote from the authors gave me a lot of clarity about what steps I can take in my internship to make myself known and actually be useful to the company.

However, they do highlight a risk about applying this pattern which I know all too well from other jobs I’ve had in the past; if you constantly are taking the ugly tasks nobody wants to do, there is a risk the group will want to keep you doing the boring, menial tasks. I have had this happen to me to the point where my coworkers would jokingly call me what translates to “Cinderella boy”. To mitigate this risk, the authors suggest to advocate for yourself and look for every opportunity to prove that you can produce quality work on a higher level.

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

Craft Over Art || S.S. 8

Sams Ships (10)As we have a few weeks left in the semester, I wanted to discuss the more creative apprenticeship patterns. This time I’m going to describe Craft Over Art, which is basically when a solution to a client’s problem can be solved with something that could work…or we could take it and go above and beyond. It’s being more innovative than just settling for a solution just to have something.

I found that the pattern is interesting because it emphasized the importance of how the things built for customers can still be beautiful but must always be useful. If it strays away from being useful, then it no longer counts as the craft.

I also found it to be thought-provoking because it brought up how people are truly in charge of how a problem gets solved. No one can force you to code something a certain way if they do not know a way to solve it on their own, which is why your role exists in the first place.

The pattern has caused me to change the way I think about my intended profession because your work can still reflect you in terms of creativity. As a person, I think I am more on the creative side and incorporating more ideas into creating something for people sounds pretty cool. If I had to follow a super rigorous structure, I may feel limited in what I can do to produce work that makes me happier.

The one thing I have to disagree with in the pattern is the part where it mentions that someone is suddenly no longer “part of the craft” if they deviate a little further. Who sets these boundaries? I do not want people to feel like they are not “enough” to be considered a real craftsman or whichever term it is referred it as just because they were being extra.

Overall, I appreciated the action section which encouraged people to reflect on what projects they worked on or situations they may have found themselves in where they chose creativity over usefulness. At the moments where I have personally done so, I had felt more proud of my work, because I knew it was uniquely mine.

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

Retreat into Competence

For this week’s blog, I am going to be talking about “Retreat into Competence” pattern from the Apprenticeship Pattern book. This pattern is about realizing how little you know, or when the new challenges that you have taken are not working out so well.  As you work, there are going to be many projects and challenges that are gonna be assigned or you are going to take. Sometimes, these challenges can be something you have never done before, or it might be a roadblock that you are gonna have to clear and these challenges are making you realize how little you know.

The book’s solution to this pattern is to “Pull back, then launch forward like a stone from a catapult.” They said that you should retreat briefly into what your confident on doing and regain composure. Take some time to build something that you know how then use that experience to see how far you’ve really come and measure what else you are capable of. Being an apprentice there is going to be a lot of ups and downs. You will experience learning new technologies and use it to leverage your knowledge that would deliver value to your customers. But you will also experience terror, roadblocks that seem impossible to pass through. These challenges can be overwhelming at times but it is to be expected if you want to progress.

I totally agree with this pattern. There are going to be times when you will encounter problems that seem to be unsolvable or problems that will show you just how much you actually know. In life there are going to be problems that seem impossible to solve, we get overwhelmed and try to forget about it, which becomes a bigger problem. I like how the pattern suggests that you look back on what you know how to do first.  It will show you how far you’ve really come. This process might give you hope that no challenge is impossible, you just gotta go through all the learning again.

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