Apprenticeship Pattern: Be the Worst

This week I read the apprenticeship pattern “Be the Worst”. With this pattern essentially says that once you become one of the best on your team, and you aren’t learning as much, you should put yourself in an environment where you are the worst and you know almost nothing. By putting yourself in the situation where you are the “worst”, you are surrounded by engineers who are better than you and are in an environment where there is a lot more to learn.

What I found the most interesting about this pattern is the author’s willingness to leave what most would consider an ideal situation and put yourself in one where the odds are stacked against you. For most people, being the worst on a team isn’t the goal. Most people want to grow and reach that level of expertise where you are nicely paid, do your job comfortably, and are looked to others as a leader, this pattern suggests that this means the end of your growth. After really giving more thought to this pattern I realized that I agreed with the author, this is because applying this pattern makes you a lot more marketable. If you apply this pattern it will ultimately give you more expertise in more different domains making you much more marketable and increasing your job security.

I agree with almost everything about this pattern, but I am not sure if it is the safest way to go about this growth. The author referred to this as a “sink or swim” strategy so while it is true that it might be a very good way to learn and grow, for some the risk might not be worth the reward. It is still possible to grow even if you are the best, nothing is stopping you from learning more and continuing to the be the best where you currently are.

In conclusion, I think that this is a useful pattern but I don’t think it should be followed exactly as it is stated due to the high risk. What I have taken away (and will try to apply) is that I should try to put myself in situations that will promote growth.

From the blog CS@Worcester – Site Title by lphilippeau and used with permission of the author. All other rights reserved by the author.

Apprenticeship Pattern: Be the Worst

This week I read the apprenticeship pattern “Be the Worst”. With this pattern essentially says that once you become one of the best on your team, and you aren’t learning as much, you should put yourself in an environment where you are the worst and you know almost nothing. By putting yourself in the situation where you are the “worst”, you are surrounded by engineers who are better than you and are in an environment where there is a lot more to learn.

What I found the most interesting about this pattern is the author’s willingness to leave what most would consider an ideal situation and put yourself in one where the odds are stacked against you. For most people, being the worst on a team isn’t the goal. Most people want to grow and reach that level of expertise where you are nicely paid, do your job comfortably, and are looked to others as a leader, this pattern suggests that this means the end of your growth. After really giving more thought to this pattern I realized that I agreed with the author, this is because applying this pattern makes you a lot more marketable. If you apply this pattern it will ultimately give you more expertise in more different domains making you much more marketable and increasing your job security.

I agree with almost everything about this pattern, but I am not sure if it is the safest way to go about this growth. The author referred to this as a “sink or swim” strategy so while it is true that it might be a very good way to learn and grow, for some the risk might not be worth the reward. It is still possible to grow even if you are the best, nothing is stopping you from learning more and continuing to the be the best where you currently are.

In conclusion, I think that this is a useful pattern but I don’t think it should be followed exactly as it is stated due to the high risk. What I have taken away (and will try to apply) is that I should try to put myself in situations that will promote growth.

From the blog CS@Worcester – Site Title by lphilippeau and used with permission of the author. All other rights reserved by the author.

Constructing a Curriculum

After recently completing a difficult, humbling and valuable phone interview for a position that I thought I was well qualified for, I decided to make a renewed effort in educating myself outside of the classroom. The discussion helped me to realize the areas where my skill set was lacking, and where to focus my educational efforts. While some classes offer information of a specific, desirable topic, I often find that I cannot find the exact topic that I want to learn as part of a course. I perform a quick search on Amazon, which reveals multiple books on the topic, and I quickly order one according to user reviews and ratings. This is the process that has occured time and time again, leading to a bookshelf full of books on varying programming topics. For many of these books, I have only just begun reading (or I got halfway through and was distracted by something else), and never fully gained an understanding of the topic that I set out to learn.

For these reasons, I found the problem statement of the Reading List pattern in Hoover and Oshineye’s Apprenticeship Patterns to be especially applicable to my current situation. The problem statement says, “The number of books you need to read is increasing faster than you can read them.” While I am constantly increasing my understanding of certain topics, new and improved methods are constantly being developed. Keeping up with the rapid pace at which software development changes is difficult, but following the advice of Hoover and Oshineye will undoubtedly give me a leg up on the competition. I like that the Reading List that they propose is essentially a priority queue, with the books that are most important at the top of the list and the ones that may not be as important towards the bottom.

I also appreciated the advice that Hoover and Oshineye gave when they suggested looking at the books that are referenced in those that you do read. When you see a pattern of many books referencing one in particular, be sure to add that one to your reading list, as it may contain valuable information not covered in the material referencing it. Looking at references for which books to add to a reading list is also great advice if the style or organization of one book is not working for you and you are looking for the same or similar information to be presented differently.

It was reassuring to me to know that I was not alone in feeling overwhelmed by the amount of information that I need to attempt to gain an understanding of. The strategies in the Reading List pattern are sure to help me in organizing and creating a plan for learning new software development techniques and improving my skill set. Setting goals and prioritizing what I read will allow me to use books as a tool rather than simply being overwhelmed by what I don’t yet know.

 

From the blog CS@Worcester – ~/GeorgeMatthew/etc by gmatthew and used with permission of the author. All other rights reserved by the author.

Your First Language

As an apprentice or a developer, your career begins with you choosing one language and mastering it. This language will be the grounds at which your early development is going to be based on. It does not have to be big; everything begins with you taking a small step. The best way to learn a language is to work with an expert in it. This is because feedback for your work is very important apart from you having someone who will boost your morale in learning such a language. Your first language is not only the foundation of your career but the pivot at which you will learn other languages.

So far, this book has enlightened my taught very much and I am really happy for laying hands on such a materials. I totally agreed with every point made in the aspect of the book. I will say it is a wake-up call to me and for my colleague students who will want to excel in the programming industry. I deemed it very important to have one language mastered and any other language could be learnt afterward than trying to learn two or more languages at the same time; you will end up haven a shallow knowledge in all of them.

Also, haven someone as a mentor is as equally important as your choice of life. There have often been times that I went through tough time trying to do things myself and there were times I had thing very easy with the help of an expert even though I did not like his style of mentoring but after reading this portion of the book, I have now come to realized why he did what he did; he didn’t wanted me to be solely dependent on him to do my work. I used to study ahead of what I was assigned to do before our meetings in order not to appear before him looking stupid and some time he only ask questions which lead me to solving my own problem without him given me the solution. I can clearly differentiate my level of production on those days we worked together as compared to the time I worked on my own especially the time spent in solving a problem.

In conclusion, I will say this portion of the book has boost my morale of choosing and mastering one language before trying to learnt any other language and I am also reconnecting with the expert I have worked with in the past as a mentor for my career.

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

Draw Your Own Map

A very important apprenticeship pattern to keep in mind is Draw Your Own Map.  The pattern discussing the importance of planning out the next steps that you need to take in your career.  It is important to talk to your bosses and others that have been in the field longer than you about the direction that you need to take to advance your career, but it is important to note that while you should listen to what they have to say and take it into consideration do not blindly heed their advice.  When you do this, you are no longer in control of where your career and to a degree where your life is headed.  You need to sort through all the advice you are given and decide if it is in your best interest to follow said advice. One thing that I have always believed in and kept in mind when following advice of others or handing out advice of my own is that it is very easy for someone else to tell you what you should do because they don’t have to wake up and deal with it tomorrow.  By this I mean that ultimately the path you choose and decisions you make will impact your day to day life, career, and happiness.  Most of the time while your advisor may care what happens and worry about if you will succeed they don’t have to feel the pressure of what happens or the negative or even positive consequences from that decision.  You need to remain in control of your own life and career.  The best way to do this is to draw an actual diagram of where you want your career to head and what you need to do to get from point a to point b.  Life isn’t that simple though and things change so it’s important to constantly examine the map to see if you are on the right track.  If not see what you need to do to get back on track, or maybe things changed and you want to take a new direction either from a new-found interest or responsibility change in your life and then it’s time to redraw your map to have a plan of your next steps.  No one else is going to do it for you or care as much about the success of your career as you.

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

Setting Up

I started out by finding my old Git Lab account and making a new project. Then added Karl Wurst as a Reporter to monitor my progress. After this I set up Xamarin, the framework I’m going to use to program the app. With the help of Xamarin I will be able to develop for both IOS and Android at the same time. Setting up the IOS portion of Xamarin is a little tricky though. In order to compile IOS code Xamarin needs to have access to a Mac running MacOS 10.12 or higher. Since I don’t have a Mac at my disposal I’m going to have run MacOS virtually in VMware. Fortunately, I found a site which provided instructions on how to do this and a download link to the OS. After getting through that I just needed to connect the VMware running MacOS to Visual Studio running Xamarin which was really easy since it just automatically found the connection for me.

From the blog Location App Blog by Anonymous and used with permission of the author. All other rights reserved by the author.

Setting Up

I started out by finding my old Git Lab account and making a new project. Then added Karl Wurst as a Reporter to monitor my progress. After this I set up Xamarin, the framework I’m going to use to program the app. With the help of Xamarin I will be able to develop for both IOS and Android at the same time. Setting up the IOS portion of Xamarin is a little tricky though. In order to compile IOS code Xamarin needs to have access to a Mac running MacOS 10.12 or higher. Since I don’t have a Mac at my disposal I’m going to have run MacOS virtually in VMware. Fortunately, I found a site which provided instructions on how to do this and a download link to the OS. After getting through that I just needed to connect the VMware running MacOS to Visual Studio running Xamarin which was really easy since it just automatically found the connection for me.

From the blog Location App Blog by Anonymous and used with permission of the author. All other rights reserved by the author.

Setting Up

I started out by finding my old Git Lab account and making a new project. Then added Karl Wurst as a Reporter to monitor my progress. After this I set up Xamarin, the framework I’m going to use to program the app. With the help of Xamarin I will be able to develop for both IOS and Android at the same time. Setting up the IOS portion of Xamarin is a little tricky though. In order to compile IOS code Xamarin needs to have access to a Mac running MacOS 10.12 or higher. Since I don’t have a Mac at my disposal I’m going to have run MacOS virtually in VMware. Fortunately, I found a site which provided instructions on how to do this and a download link to the OS. After getting through that I just needed to connect the VMware running MacOS to Visual Studio running Xamarin which was really easy since it just automatically found the connection for me.

From the blog Location App Blog by Anonymous and used with permission of the author. All other rights reserved by the author.

Setting Up

I started out by finding my old Git Lab account and making a new project. Then added Karl Wurst as a Reporter to monitor my progress. After this I set up Xamarin, the framework I’m going to use to program the app. With the help of Xamarin I will be able to develop for both IOS and Android at the same time. Setting up the IOS portion of Xamarin is a little tricky though. In order to compile IOS code Xamarin needs to have access to a Mac running MacOS 10.12 or higher. Since I don’t have a Mac at my disposal I’m going to have run MacOS virtually in VMware. Fortunately, I found a site which provided instructions on how to do this and a download link to the OS. After getting through that I just needed to connect the VMware running MacOS to Visual Studio running Xamarin which was really easy since it just automatically found the connection for me.

From the blog Location App Blog by Anonymous and used with permission of the author. All other rights reserved by the author.

Setting Up

I started out by finding my old Git Lab account and making a new project. Then added Karl Wurst as a Reporter to monitor my progress. After this I set up Xamarin, the framework I’m going to use to program the app. With the help of Xamarin I will be able to develop for both IOS and Android at the same time. Setting up the IOS portion of Xamarin is a little tricky though. In order to compile IOS code Xamarin needs to have access to a Mac running MacOS 10.12 or higher. Since I don’t have a Mac at my disposal I’m going to have run MacOS virtually in VMware. Fortunately, I found a site which provided instructions on how to do this and a download link to the OS. After getting through that I just needed to connect the VMware running MacOS to Visual Studio running Xamarin which was really easy since it just automatically found the connection for me.

From the blog Location App Blog by Anonymous and used with permission of the author. All other rights reserved by the author.