week-2 from the book

 Hello, a blog for the second week; it seems nice and claims a little bit. I’m starting to read chapter 2 for apprenticeship patterns. While reading, I found one of the helpful patterns was “Record What You Learn.” It is nice to look back at the progress from the start and end with some struggles for learning something every day to help keep track of things that progress to improve at working efficiently. There is another pattern I would like to disagree with my opinions is “Reflect as You Work”; because it made me have doubts like “why didn’t I do this earlier or how couldn’t I think of it.” regardless, it is nice to see what you have to learn, and done for this to work.

Has the practice caused you to change how you think about your intended profession or how you think you will work?

For developers of these practices, it helps for using the patterns from this book can have several benefits. One of the benefits was to advance their understanding and proficiency in software engineering, and lifelong learning helps keep up to date on software engineering trends and technologies. It was even helping to gain more self-assurance in their skills by offering developers a collection of best practices and productivity-boosting strategies.

Those who want to become experts in software development can prepare to devote themselves to continuous learning and practice because the industry is challenged and undergoing rapid change. In this process, focused practice and reflection are both essential steps. Reflection entails taking time to pause and think about one’s knowledge and practice, evaluating what one already knows and what one may do to improve on a crucial stage in acquiring mastery since it enables the person to assess their abilities and pinpoint areas for development.

Purposeful practice and reflection lay the groundwork for domination in software development since they both emphasize enhancing knowledge and skills over time. On the other hand, deliberate practice is setting aside time to practice and hone abilities, gradually increasing over time. To attain mastery, one must engage in this kind of exercise since it makes the person pay attention to their areas of weakness and invest the time to strengthen them.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-2 from the book

 Hello, a blog for the second week; it seems nice and claims a little bit. I’m starting to read chapter 2 for apprenticeship patterns. While reading, I found one of the helpful patterns was “Record What You Learn.” It is nice to look back at the progress from the start and end with some struggles for learning something every day to help keep track of things that progress to improve at working efficiently. There is another pattern I would like to disagree with my opinions is “Reflect as You Work”; because it made me have doubts like “why didn’t I do this earlier or how couldn’t I think of it.” regardless, it is nice to see what you have to learn, and done for this to work.

Has the practice caused you to change how you think about your intended profession or how you think you will work?

For developers of these practices, it helps for using the patterns from this book can have several benefits. One of the benefits was to advance their understanding and proficiency in software engineering, and lifelong learning helps keep up to date on software engineering trends and technologies. It was even helping to gain more self-assurance in their skills by offering developers a collection of best practices and productivity-boosting strategies.

Those who want to become experts in software development can prepare to devote themselves to continuous learning and practice because the industry is challenged and undergoing rapid change. In this process, focused practice and reflection are both essential steps. Reflection entails taking time to pause and think about one’s knowledge and practice, evaluating what one already knows and what one may do to improve on a crucial stage in acquiring mastery since it enables the person to assess their abilities and pinpoint areas for development.

Purposeful practice and reflection lay the groundwork for domination in software development since they both emphasize enhancing knowledge and skills over time. On the other hand, deliberate practice is setting aside time to practice and hone abilities, gradually increasing over time. To attain mastery, one must engage in this kind of exercise since it makes the person pay attention to their areas of weakness and invest the time to strengthen them.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns: Sustainable Motivations

CS@Worcester
 

CS-448

##Summary
This pattern talks about the ups and down of the journey to be a master at the craft of programming and how to remain on the long road despite the many challenges I may face. Sometimes “working in hte trenches of real-world projects is rigorous, sometimes tedious, sometimes exhausting, often frustrating, and frequently over chaotic or constraining.”

The author prepares us by telling us that there will be days that we will expect days where we have an easy time programming. In other times we will be going through a lot in some nasty projects that we undertake, your commitment will be questioned. It is important to remember what motivates you for the long road. For some it is motivation by titles and money, for others the enjoyment of programming will be their driving motivation, for others working on open source softwares will improve their reputation within the programming community.

After a couple of examples the authors ask us to rediscover our motivations by listing them down and using that list of motivations to keep us going even when times get tough.

##Reflection
Sustainable Motivations are important especially when the journey is long, i believe that this will be an important part of my career journey to constantly remind me as to why I am doing what I am doing. That pattern has reinforced the importance of me understanding why I do what I am doing. On the point of having money as a primary motivation in you career I find it had to accept it. I think it would be foolish to run after money as you will end up loosing so much more in pursuit of money. As the author mentions follow your passions and then money will come to you effortlessly.

It is important to remember the how sustainable motivations can continually recharge and re-energize us for the long journey that is ahead of us.

From the blog De Arrow's Webpage by Samuel Njuguna and used with permission of the author. All other rights reserved by the author.

Week 2 – Your First Language

In the chapter Emptying the Cup, I chose to write about the apprentice pattern Your First Language. This pattern discusses picking your first language and what practices to develop to enhance your understanding of it. This pattern stood out to me this week because I relate to the fact that I only really know one language, Java. I have dabbled in other languages like Python and Vue for other classes, but a majority of my college education was in Java. I have had worries looking at job applications where the employer requests that the individual that applies has knowledge of different languages such as C++. The section explains however that if an application calls for experience in a different language, then to create something in that language and learn, and build something that you can show off to employers.

The article explains that different languages have tools that can help individuals learn that specific language, such as Ruby having an interactive command-line tool irb. The pattern ensures that there are tools and help available for individuals in case they need a little extra push in learning a new language.

Another important point that the pattern points out is to ask an experienced individual in your life for help when struggling with a new language, but not to become completely dependent on that individual. Working through struggles on your own will ensure that you learn more throughout to process. I have had experiences like that through my education, where I have been stuck on an issue and I needed to lean on my professor to help out. Instead of just giving me the answer however, the professor would ask questions that would help guide me towards the solution. This is an effective mentorship trait.

This pattern really helped comfort me with the worries I had regarding job searching when I graduate. I want to be able to perform at my new job and become a helpful member of the team, and the worries of not being proficient in a certain language holding me back was hindering my confidence to achieve that. But the article reassured me that if a job asks for proficiency in a certain language, it’s just an excuse to mess around and learn in a new environment and adapt.

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

Retreat Into Competence

Greetings!

This week, I wanted to kick off with the pattern “Retreat Into Competence” from “Apprenticeship Patterns” by Dave Hoover and Adewale Oshineye. 

Retreat Into Competence relates to scenarios when you realize how little you know or you’re facing a challenge that’s making you reflect back on your knowledge, and you feel overwhelmed. The solution to this is to give yourself a moment–or a little longer, and step back from the challenge you’re facing. Then, take some time to work on something you’re familiar with or know that you’re capable of doing. 

The pattern touches upon how you may feel the thrill of learning new technology along the way of your journey, and the satisfaction of delivering things to customers. And then, you meet more experienced people along the way who make you feel that you really know nothing, and you can also feel this way when there are fast-approaching deadlines and product issues. And sometimes, to deal with this, you need to go backwards to move forward again.

The book warns to not retreat too far back into what you’re comfortable with if you’re afraid of failure, because what you’re comfortable with may no longer be used in the future and the extent of what you know is very limited and you may need to face the consequences of that. Therefore, the book says to use this pattern only as a little pick-me-up, and not to use it for too long because it can be a double edged sword. For action, it’s suggested to pick up something you are well acquainted with and work with it once again. 

I find it interesting that I have utilized this pattern with my internship. When given a new task to code for something in a report, I often change the report template and form corresponding to that report. My biggest challenges come from changing the code in the report, so I sometimes find myself taking a break from that and moving to the template or changing the report form–tasks I find more simple that I have a better grasp on. I agree with the book that it is a short-term fix and should eventually move forward. I’ve recently realized how much I’ve learned from my internship when I took a step back to work on the form and template. It had been something that I had no idea how to handle not too long ago, and now it’s something I’m most comfortable changing. And that’s what made me feel so accomplished and happier to move onto the report code, knowing that I’ll eventually be able to consider the report code something not too difficult to handle. There wasn’t anything I disagreed with.

From the blog CS@Worcester – CS With Sarah by Sarah T and used with permission of the author. All other rights reserved by the author.

How To Become Better at my First Programming Language.

Learning a language is really difficult, not only is it really hard to get started with one but once you have a good understanding of the syntax then learning certain methods of how that language can be used can be quite time consuming to learn. The problem I tend to have is that it can be difficult for me to implement a specific method in my work. For example I could go in and look at an example of a design pattern like the factory method, and I could know how it works and what it does, but I would have a hard time trying to implement it in my work.

Now, one of the first patterns that is introduced in Apprentice Patterns puts the reader in the context that they are starting out as a programmer and that they have a shallow understanding of the languages they know. The problems that we are introduced to are that since we have such an unlettered understanding of the language, it is difficult for us to create quality programs and solve problems. The solutions to this is that we must pick a language and take the time to become fluent in the language. The drive of wanting to learn and solve solutions for that language should be enough to guide the learning process.

While reading about this pattern, It was safe to say that this wasn’t the first time I’ve been exposed to this information of how to become fluent in a language. What really captivated me was how the author made a good point in learning the fundamentals and not just syntax, I feel that at this point in programming journey I could string a couple lines of code together because I’m to familiar with the syntax of my language, but the potential that I can create in that language is close to none. I wouldn’t know the first thing to do to start a project. The author put an emphasis on learning fundamentals, learning how to solve solutions with the chosen language, and how to use testing to your advantage. It’s important to open every and any feasible avenue when working to understand the language. As the author mentions, it must click. There is a difference between learning how to write a piece of code and absolutely knowing every purpose of that code. My goal is to find someone that knows more about the language I’m trying to become fluent in and to learn as much as I can from them, almost like a master. It’s a lot easier for me to acquire someone else’s wisdom rather than figuring it out on my own.

Sources:

Hoover, Dave H., and Adewale Oshineye. Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. O’Reilly, 2010.

From the blog CS@Worcester – FindKelvin by Kelvin Nina and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns: Long Road

CS@Worcester
 

CS-448

Summary

The long road addresses the microwave nature of the generation and times that we live in. We all expect to get good or be ready within a short time, we are not instant noodles though! The authors talk about realizing the journey that is ahead of us as developers. They challenge us to look to growing our skills rather than running after money, positions and titles. Being a master craftsman requires dedication and commitment similar to how Linus Tovralds came up with unix. The author re-iterates that the “long road” is not for the faint hearted and it requires a lot fo commitment and dedication. It is commitment and dedication that we will be able to do what is considered extraordinary. Realize the journey ahead of you and start the process of boiling to get the best broth out of you! However, it is important to notice that the long road is not for everyone and the authors offer a different pattern for those who will not be able to go for the long road.

Reactions

It is good to focus more on the bigger picture, the journey that is ahead of my self rather than looking to instant gratification. The activity at the end of the pattern was quite thought provoking. In my future I would mostly think about stability in different areas of my life, that activity made me think about my skills rather than the positions or the titles that I am hoping to gain by then. It was also interesting to learn that the same way we are loosing culture and due to mordernization, we are also loosing important lessons that veterans in our field have learnt. Floods of people are rushing into computer related fields just for the money and the importance of building skills and experience is now becoming something of the past.

My future will definitely change as a result of the pattern that I have learned today. Realizing the long road that is ahead of me I will focus more on growing my skills and expereince rather than running after positions and titles.

From the blog De Arrow's Webpage by Samuel Njuguna and used with permission of the author. All other rights reserved by the author.

Apprenticeship Pattern: Expand Your Bandwidth

This week I read the apprenticeship pattern called Expand Your Bandwidth. This pattern is found in the chapter on perpetual learning. The context for this pattern is you have gathered a basic set of skills and your understanding of software development is narrow and focused only on low-level details. This pattern’s purpose is to fix that by expanding your knowledge. The book explains the solution to this problem and gives several examples of what you can do to help increase your knowledge. 

It starts by explaining that at this point in your apprenticeship, you have been drinking steadily through a straw but sometimes you have to drink from a fire hose of information. The book tells us we must develop discipline and techniques that are needed to effectively absorb new information and be able to understand,  retain, and apply it. We must do more than just read a book but seek knowledge and experience in multiple dimensions. There were several examples of this. A few examples are using online courses, videos, and podcasts, attending technical conferences, reading a book, and contacting the author with questions. 

The author made it clear that it is necessary to shut off the fire horse so you can focus on project work because it can be easy to get distracted and not get any development done.

I found this pattern to be very helpful because it helped me realize that sometimes I am gonna have to put in a lot of extra work. I can’t always be going at a steady pace and I will need to work on my discipline when it comes to learning and researching so I can expand my knowledge and improve my skills as a software developer. I also liked how it pointed out the dangers of going overboard with this. I felt like that will be something important to keep in mind as I am learning. I found the examples of where to look for this knowledge helpful and it gives me a few new ideas on where to look for new information or get some experience. I think this pattern will be especially helpful when I am looking for a job after graduation because I see a lot of programming languages I have not heard of and technologies that job listings mention and a fire horse of information is exactly what I might need to get ahead.

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

Expose Your Ignorance Pattern~

Hello! 

For the grand start of my discussion of apprenticeship patterns from “Apprenticeship Patterns” by Dave Hoover and Adewale Oshineye, I wanted to begin with the pattern Expose Your Ignorance.

Expose Your Ignorance is related to the notion that managers and team members expect you to know what you’re doing. For your position, you may know most of what is expected for your role and overall what you need to be doing. However, there are some components that you are bound to not be as familiar with, or have no experience with, like some new technology. The solution to this is that you should reassure them that you’re learning how to deliver to them what they want, and not to pretend that you know how to do it. You would be able to form a reputation of having a great learning ability rather than playing on with fake expectations of what you know.

One way to expose your ignorance is to ask questions. It may be difficult to do so at first, but eventually communicating with team members who are very knowledgeable about the topic won’t be such a tribulation. This would be helpful to give your team members a scope of what you can do and learn, and could also help them understand more about the topic as they explain things to you. The book suggests keeping a list of things you don’t understand related to your work in a place others can see.

I appreciate that this pattern addresses my concerns as someone new and heading into the workforce. I often feel pressure that there are some things that I probably should know how to do, or that I need to do something but it involves something I have not heard of before. But as discussed with the pattern, I do know a good chunk of what I need to be doing, and what I don’t know are just some gaps between them, so I don’t need to feel so pressured. This reminds me that team members I work with have been using this technology and certain methods for a while now, and I just haven’t learned them yet, so I am not too behind. 

 I’m very open to learning and I can reassure them that I’m studying and practicing what I’m learning from them and other sources. I also shouldn’t be afraid to ask questions, because asking someone for help can help put me on track faster to having a better foothold on the technique/technology I’m working on. Of course, I still try to solve things on my own for as much as I can so I won’t have to repeatedly ask for help, but I keep in mind time constraints. I definitely agree that I shouldn’t just specialize in one thing, but aim to branch out and learn more to have a better foothold in different components of technology. I don’t think I have anything I disagree with for this pattern.

From the blog CS@Worcester – CS With Sarah by Sarah T and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns – Chapter 1 and more

I read Apprenticeship Patterns as per the syllabus and I found a lot of things that resonated deeply with me. Dave talks about giving up on learning to code, or rather to program after being unable to do anything compelling or significant, and only having had mastered Perl on his third attempt. I myself have on multiple occasions traded a language for another when I stop making progress. My thinking was – “Maybe, this isn’t the one for me”. So, I hopped from Python to JS to Scala to Java to C learning only the basics and just enough to satisfy any classes that might’ve required it. I was a jack of all trade, and master of none! Only upon revisiting Python again for a summer fellowship with a professor, and working on learning more than just the syntaxes, idiosyncrasies, and fun facts about the language, was I able to move on to being somewhat competent. Dave’s story tells us how he sought out mentors, took on challenging projects, and continuously challenged himself to improve and grow as a software developer. His story serves as an illustration of the apprenticeship journey and the importance of seeking out opportunities for learning and growth in the software development field.


I also really liked the definitions and the progression in stages – an apprentice, to a journeyman, to a master. Looking at software development as a craft to be honed and mastered like an Archer, or a Swordsman was quite interesting to think about. The third chapter especially was very enlightening. For the pursuit of efficiency, or most likely in service of sloth – my favorite sin, I take shortcuts whenever possible. I have noticed in myself the tendency to bodge things to make do – like putting on a band-aid over a bullet hole, to push perfection for later, to say – “Can’t be bolloxed, this will have to do!”.  Walking the Long Road is quite a departure from that mindset, and one I hope to grow into. Ah! to be able to rip off the band-aid!


All in all, quick fun read. Not bad at all!

From the blog Zed's Blog by Lord Zed and used with permission of the author. All other rights reserved by the author.