Monthly Archives: April 2022

Week 10: Practice, Practice, Practice

For this week, I chose to read the pattern ‘Practice, Practice, Practice’ from Chapter 5: Perpetual Learning. The name is pretty self explanatory as to what the pattern will be on, practicing. I originally chose this pattern because it’s something that we need to reinforce within ourselves in order to get better at something, for coding especially. This is something I still struggle with due to my lack of drive and motivation but everyday is another day to push myself. Any way, the context of this pattern is wanting to get better at the things you do, to develop concrete skills. Again, just looking at the title gave away the context of this pattern, but that was it.

For the problem of the pattern, it is being unable to learn from your mistakes due to the performance of you daily programming activities, you feel like you’re always on stage. I assume this is in context of a job, but I haven’t experienced this problem yet so knowing about it ahead of time is going to help me down the line. For the solution of this pattern, you want to be able to practice without interruptions and in an environment that makes you comfortable making mistakes. This seems like an easy solution but in practice I’d imagine it’s hard. The solution also mentioned having a mentor to watch you over your practice and provide feedback. This is something I’d be interested in doing but I lack the humility to have a mentor watch me and provide me feedback, I’m always trying to do things on my own. I also dread looking at feedback because I feel I always mess something up, but I believe a pattern in the one of the previous chapters mentioned to put aside your ego, so I’ll have to go look at that one again.

Finally, for the action of the pattern, something I don’t write about often but I thought it would fit here, is to read one of the books that was previously mentioned in this pattern and take an exercise from it or make one yourself. The exercise should ideally be slightly harder than you can easily solve. You’ll then do this over 4 weeks and record your solution every time and over the 4 weeks you should observe how your solutions evolve. I thought this was an interesting take on practicing coding that I’ve never heard about. I usually just one and done exercises but repeating a exercise really cements it into your head so I’d imagine this way is much more beneficial to me.

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

Apprenticeship pattern: Sustainable Motivations

The more I read this book, the more I understand about software and how it works, the things, and sacrifices to make to become that person we see in us every day and turn it into a reality. This week I read about “Sustainable Motivations” and while I was reading, one thing that I understood is that all the motivations that we have are good but we need to define our priorities from our most to our least and then go from there. Many times in the computer science field, I felt like giving up because sometimes I will think that I need to get into something else and most of the time it is when things get very difficult and challenging. And it’s true that most of the time, not just me but also any other programmer thinks first about the money behind the work and that keeps us even when sometimes we don’t want to keep going. It is true that when I think of what I want to achieve, I love what I am doing even more and go for it. One thing that I learned is that when we define our motivations, we need to go with what really makes us happy and want to continue, keep going because that is what will help us align with walking The Long Road. We need our ambitions not to be first about money but what we want to achieve in the technology field and master it/them. This pattern helped me to be more aware of my future decision and what I really want to do it, so I don’t find myself trapped because I want to enjoy what I will be doing to the fullest and master whatever I will decide to do.

From the blog CS@Worcester – Gracia's Blog (Computer Science Major) by gkitenge and used with permission of the author. All other rights reserved by the author.

The Deep End

For this week’s pattern, I decided to go with the deep end. The last pattern I wrote was about rubbing elbows and that pattern was all about how you have reached your plateau of your skills and how to get out of it, while this pattern “the deep end” is the other side of that plateau where you begin to fear that this isn’t a plateau but a rut. On a plateau, you consolidate your skills through diligent practice in order to attain the next level while in a rut, your bland competence eventually decays into mediocrity.

The problem is that you need to grow your skills, your confidence, and the portfolio of successful work. Talking about successful work, when I sent my resume to a mentor/friend to review and ask them for their opinion about how my resume is, he said my resume will not get me anywhere. I had decent projects such as discord bot, android app, website, etc. I thought this much project was enough to set my foot into IT field, but my friend asked me one question which left me speechless, “the projects you built, how has this helped you or anyone else?”. At that moment, I realized that I have just been wasting my time. My projects have done nothing. It was solely built for my own interest, and it had no impact to anyone or not even myself. It didn’t have any positive results where it catches recruiter’s eye. I began to think that I need to challenge myself with bigger things, bigger projects, larger teams, more complex tasks.

The actions are to ask yourself a question such as what is the biggest successful project you have eve worked on in terms of lines of code and number of developers. What is the biggest codebase you have ever built on your own?. The answers to these question will show you other dimensions of project complexity and other ways of measuring your projects. Use this metrics to measure every project you have ever been involved in and draw a chart. After a while, you will be able to use this chart to track down where your career is heading and even start to make choices based on the chart.

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

Share What You Learn

It’s impossible not to overestimate the importance of having a generous spirit in your life. Take a look around you at the luckiest people, the ones you admire, the ones who seem to have luck fall into their laps on a regular basis. What is it that they do that makes them stand out? If it happens repeatedly, it isn’t just bad luck. They’re prepared, always working at their craft, alert, involve their friends in their work, and make others feel lucky to be around them if they’re anything like the fortunate people I know, said Twyla Tharp.

One of the most powerful aspects of apprenticeship is being a part of a community of individuals who value both independent learning and humbly sharing newly acquired knowledge. It opens up previously esoteric fields of knowledge and connects apprentices with mentors who speak their language. We have learned so many different patterns, which teach us a lot about how to become a better programmer, a better team member, a better listener, a better apprentice, a better notes keeper, a better communicator, etc… But what all that serves us if we don’t share any information with others that are coming after us. What does it represent to future generations if we don’t pass that information to them?

This is the reason I decided to write about this pattern at the end of my blogs because it will serve and stay as a landmark for me to remind myself about the importance of sharing with others. Share What You Learn will also allow me to gain a better understanding of how to share with others. In order to share with others, you have to be disciplined and be an example of doing the right things. 

As Twyla Tharp said; it is important to share your thoughts with an audience, no matter how small, you become a part of a larger world. When you put a few thoughts on a topic in a newsletter, you start to wonder nervously if anyone will notice. What are they going to say? Is it possible that he said something stupid? An audience is a group of people. The written word is a declaration of membership in that community, as well as a willingness to make a meaningful contribution to it.

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

Record What You Learn

Noone should ever undervalue the power of writing in general. As the quote says you may lose sight of your larger goal. Writing, on the other hand, allows you to take a step back and consider a problem. Even the most enraged rant necessitates some level of thoughtfulness on the part of the writer. This is something that everyone should be thinking about. Why do we need to take notes? How does taking notes to help us to achieve a goal? Let’s take a look at some ways that taking notes helps to appear in some situations and make things lighter to the extent that they empower us to achieve greatness.

Atul Gawande said in his quote that I will paraphrase like this: Something should be written. This is not meant to be a threatening suggestion. Whether you’re writing five paragraphs for a blog, a paper for a professional journal, or a poem for a reading group, it doesn’t matter. Simply put, write. It is not necessary for what you write to be perfect. It only needs to include a few minor observations about your surroundings.
It’s also important not to overlook the power of the act of writing. As Atul stated, he didn’t start writing until he was a doctor. However, once he became a doctor, he discovered that he needed to write. Medicine is more physically demanding than intellectually demanding, despite its complexity. It can be a grind in medicine because it is a retail business, and doctors provide their services to one person after another. You may lose sight of your larger goal. Writing, on the other hand, allows you to take a step back and consider a problem. Even the most enraged rant necessitates some level of thoughtfulness on the part of the writer.

Record What You Learn is one of my favorite patterns because it gives me a better sense of my situation. I have to admit that one of my major weaknesses is taking notes or record keeping. I always think I will be able to remember everything at the time that information is being processed. Never thought in a million years that I would forget about it. What I think is the most upsetting about the way I have been when it comes to recording is when I have a wonderful thought, and I don’t take the time to put it in writing. Before I know it, It’s gone from my mind. Take out a paper notebook and begin jotting down your thoughts and ideas about what you want to do is the way to go. Make sure to date your notes. Why do you need to reference it to other sources? When you’ve done with your notes, keep using the same notebook for the other things you’ve learned in the same way.

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

Use the Source- blog 8

The pattern I read about this week is called Use the Source. This pattern is intended to show apprentices how to take advantage of the open source era. In the open source world, the ability of self-learning by reading and understanding source code is much more important than asking and waiting for answers from others. That is because only the code can tell you the truth, “the programmer’s intentions are irrelevant if the code disagrees”. That means it is always best when you can understand the code yourself without anyone telling you. However, the problem with this pattern is how to use the source, how to know if it is a good source and how to know if your work is good or bad when there are no exemplars or experts around you.

To answer those questions, the author has made many suggestions to help apprentices use the sources effectively. I can summarize them into two main ideas that an apprentice should adopt to become an expert. First, it’s about self-learning. All apprentices should seek out other people’s code to read and see the difference between the code written by all programmers. When you find any good programmers, you can learn to program like them. By reading the code, you should find out the intentions of the programmers, once you understand the codebase you can try to refactor them to ensure that you can build the projects independently. Taking the time to read and learn code written by other programmers is how you make other people’s tools your own; and that is also how you build your own toolbox, which is used to solve most of your career problems quickly and easily. Second, besides educating yourself from all the open source, you should learn from your community where you might have someone interested in reading your code and give you feedback. On the contrary, you should also be willing to read their code and be able to give them correct feedback or also be able to learn from their code.

In my opinion, Use the Source is the pattern that every programmer or every apprentice should use to develop their programming skills. That’s because I believe that reading the source is how you learn everything on your own; and this is also an opportunity for you to expose with other programmers to see their works and to also share your works to grow together. Moreover, as the author said that the software development field is lacking teachers; and there is no shortcut to learn all the tools for solving all the problems. So, I think open source is one of the most essential elements that no programmer can live without.

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

Apprenticeship Pattern “Learn How You Fail”

I am choosing to write about this section this week because I can feel like I can relate to this topic deeply. In one of the opening statements of this section, the author talks about how people who have never failed or say that they have never failed have avoided pushing themselves or have just glazed over their failures. I agree with this statement. Another point that author brings up and I agree with is reflecting about your mistakes is not about ranting about the mistakes that we have made but rather it is a matter of character. We should be reflecting on our mistakes so that the next time we do something similar, we can make something better. This is a sentiment that I can really relate to because whenever I finish a project or assignment, even I did it correctly, I would look back at it afterwards and analyze my work to see what I could have done better or done instead. For example, if I barely finish something before the due date, I might look back at it and think to myself, “I wish I had more time and added this feature” or “this feature took a lot longer than I thought it would and that I should have managed my time better”. One point I disagree with is ranting about our mistakes. I think being able to identify the mistakes that we made is very important and when I talk or rant to someone about the mistakes that I made during a project, I am able to identify more mistakes that I had made that I did not realize before. Another topic that the author brought up in this section is the importance on certain skills or goals. I am finding myself agreeing more with this statement each and every day. I used to do the opposite and try to identify all of the skills that I am not good at and tried to get better at all of those skills at once. This did not end well. I often found myself spreading myself too thin. I found that I was spending too much time on one topic and not enough time on another. This led me to feeling that I had mastered no skills at all because I was trying to learn and master too many things at once. So, I am going to end this post by echoing something that was said in this section. At some point we need to realize we cannot excel at everything and that we need to know and accept our limits so that we can focus what we know we can improve.

From the blog CS@Worcester – Just a Guy Passing By by Eric Nguyen and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns: Chapter 3

Sustainable Motivations

At some point while developing your skills while working on a project or a job, you’ll find yourself primarily focused on your current skills or focused on your work. During this you might find yourself in a bit of a rut and a lack of desire to continue working on those projects. Though you might want to take a break and try something new, you find that the project you are working on is paying the bills or giving you the validation of your skills. The conundrum comes down to do you keep at it even though your work is draining you, or do you strike out on something new to hone your craft.

Now obviously you need to continue your work, but you don’t need to be trapped by it. You can always on your own build something that you want to rather than something that you have to. In your job you may find that its not improving yourself and become monotonous. Nothing is stopping you at home from taking up a personal side project to grow yourself.

The thing I primarily learned from this pattern is the concept of the golden lock. It never really struck me before. The idea that my own motivation to work would be the one to lock me in place and prevent me from progressing. When thinking further, it does make sense. You have a motivation to work because it provides you with income or a status on showing your skill. Simply placing yourself into that mindset will lock you into that position and you’ll never make the time to improve yourself. That little golden latch holding you in place because this is what’s advancing your career. Your career is more of a side note to your progression as a software developer, its not the primary driving force. Your job is a job, but there might be something else out there that you can hone as a fine skill that barely anyone else can and could even lead to a new field you never considered for your career. Your passion for learning programming cannot be tied to motivations to complete your work.

From the blog CS@Worcester – A Boolean Not An Or by Julion DeVincentis and used with permission of the author. All other rights reserved by the author.

“Sustainable Motivations” Apprenticeship Pattern

Summary:

This apprenticeship pattern deals with the practice of working in real-world projects that may be rigorous, frustrating, or exhausting such that it makes the Apprentice question his motivations in the field. There may also be employment issues, bad leadership, or bad co-workers. Whether this programmer hates the job but desires a good income, is in a hiatus for his love of the field, or works on open source projects for a reputation.

One of my greatest fears in my career is a lack of interest in what I’m required to do. If I work at a company that shifts my work into something that I have no interest in or is very different, I run a real risk of burning out. Although, my favorite element of Computer Science and of programming stems from a certain love of creating things, a type that is not universally palpable in different fields. Hence, even though I don’t have a lot of peculiar interest in, say, creating a website, I’d do it if I need to and I’d probably enjoy doing it. 

I don’t agree or disagree with the action recommended in this apprenticeship pattern, however I feel as though more could be done in a situation like this. On top of writing the things that motivate you, you should try to think to yourself why you are motivated by the things that motivate you, and what is the common connection between all of them that acts as the catalyst. It may be that your motivations are either inconsistent or are the way they are for the wrong reasons. Shifting motivations to be more realistic or to make them fit more appropriately for a given situation can be very useful. On the other hand, if you’re in an untenable situation where you may become burnt out, forcing yourself to be in that situation while attempting to justify it may be harmful.

This apprenticeship pattern has at least caused me to be more aware of a situation that I may be befallen to in my future career. It may be better to move projects or companies if I’m in a situation where I may be burnt out working on something that I don’t like, whereas I could take some initiative and move to where I feel I’d be better suited.

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

Apprenticeship Pattern “The Deep End”

This apprenticeship pattern describes how we should approach our careers when we are put into a situation where we feel like we are stuck and don’t know where to go. This situation is different than plateauing where you know don’t know what to do next but still need to grow our skills in our career. What we need to do next is to “Jump in the Deep End” and take on situations that make us uncomfortable with the likelihood of failure. They give us an example with Enrique where he was stuck with working at a place where he didn’t feel like anything was being done with his life, so he took a leap of faith. In that leap of faith, he ended up in Nigeria where the original plan failed but was able to come up with a new solution. This story sets an example of how if we don’t try and fail then there is something we are not doing right. To avoid trying to be stuck in a rut, maybe we can try taking the work we’ve done and comparing it to one another so see where our careers are heading to and to maybe see what we can improve on in the next one.

What I’ve taken from this pattern is that we shouldn’t be scared from taking a leap into uncharted territories. If we have not failed then we haven’t attempted anything that’s been worth while for our careers. Being stuck and not doing anything about it would result in our careers being at a complete stand still and not a plateau. Growth only happens from taking on projects that are scary and will push you to your limits, and it’s that kind of work that will push you out of being stuck. When faced with a situation where you fail, it might open the doors to finding a new solution that you might be able to recognize.

This pattern has made been insightful in how I should approach the future when I feel like I don’t know what to do in my career. It has also reminded me of time’s where I have been in ruts at the places where I have worked. In those situations I have felt as though with the work I was doing, there was nothing more than I could do and I was just comfortable doing what I always did. Not once did I even jump into the deep end and allowed for myself to be at a stand still for too long. If I jumped into the deep end at least once, I would have gotten out of there earlier.

From the blog CS@Worcester – Life as a CS Student by Dylan Nguyen and used with permission of the author. All other rights reserved by the author.