Category Archives: CS-448

Being the Least Skilled: Good or Bad?

The “Be the Worst” pattern advises individuals to seek out environments where they are not the most skilled or knowledgeable. Instead of always aiming to be the best, this pattern encourages embracing discomfort and challenges that come with being the least skilled person in the room. By immersing oneself in such environments, individuals can experience accelerated growth, learning, and personal development.

The “Be the Worst” pattern has profoundly impacted my perspective on professional growth and skill development. It challenged me to rethink the notion of always striving to be the best and instead highlighted the immense value in stepping into situations where I may feel inadequate or outmatched.

What resonated with me the most about this pattern is its emphasis on humility, openness to learning, and the willingness to embrace discomfort. It acknowledges that growth often occurs outside of one’s comfort zone and that being the least skilled person in a group can be a powerful catalyst for improvement.

This pattern has caused a significant shift in how I approach my intended profession as a software developer. Instead of seeking validation from being the best, I now prioritize seeking environments where I can learn the most, even if it means initially feeling uncomfortable or challenged.

One aspect that I found particularly thought-provoking about this pattern is its recognition of the importance of humility in learning. It encourages individuals to set aside their ego and embrace the learning process fully, regardless of their current skill level.

While I wholeheartedly agree with the premise of the “Be the Worst” pattern, I also recognize the importance of finding a balance. It’s essential to have supportive environments where one can leverage their strengths while still being pushed to grow and improve.

“Be the Worst” pattern has inspired me to embrace challenges, seek out learning opportunities, and approach skill development with a mindset of continuous improvement. It has reshaped my perspective on professional growth, emphasizing the value of discomfort and humility in the journey towards mastery.

From the blog CS@Worcester – Hieu Tran Blog by Trung Hiếu and used with permission of the author. All other rights reserved by the author.

Week 7 blog

HI everyone, welcome back to my blog. In this post, I will be talking about two patterns from the apprenticeship patterns book that was provided to us in the beginning of the semester. We will be going to go more in depth about how you should reflect as you work and how to record as you work, which I think goes hand in hand in my opinion. First, let’s talk about recording what you learn. There is this saying that my dad always used to tell me was that those who don’t learn from their mistakes are the ones doomed to repeat it. There are a lot of things that you can do to help you with that. For example, you can start recording your journey of what worked and what doesn’t in a sort of blog or personal journal. I know some people who write those things down and never go back and read them ever, what’s the point? Don’t just write it down, try to think about it and review it later, just to freshen up. You never know, you might discover something new or old that will help you and will help you avoid making the same mistakes again. I personally do not write anything down and I have a terrible memory, so I should probably start writing things down, and it will help me get better by giving myself something to look forward to and learn from.

The second pattern I want to go over is the ability to reflect as you work. Ask yourself questions, like how did I get here or how can I improve? It doesn’t have to be questions about yourself, you can say how can we improve as a team? This will make you observe and reflect on things about yourself and the environment around you. I believe that this goes hand in hand with the first pattern because you can observe yourself and ask questions regularly and then write the conclusion down of what you have learned from this experience. Personally, I will start my own daily private journal so I can be constructive with myself and honest to try and improve my everyday life.

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

Success Begins By Sweeping The Floor

In the Software Development industry, every journey begins with a step forward and is often in the form of menial tasks. The Sweeping the Floor pattern emphasizes the importance of starting off small and embracing humbling tasks as a newcomer to a team. This means volunteering to do simple yet essential tasks to help contribute to the team’s overall success and grow as a developer. These tasks may not seem as exciting, but they help form the backbone of the team and provide valuable learning opportunities.

While learning more about the pattern, I found myself reflecting on my own experiences. This pattern brings up the idea that we should try to tackle not just simple tasks, but challenging ones as well. This helped me realize that regardless what our level of knowledge is, every contribution matters and serves as a stepping stone towards future accomplishments.

In a field that is often associated with complexity and innovation, I found it interesting for a pattern to highlight the importance of starting from the ground up and acknowledging that mastery is a journey that comes with time, rather than a destination. Also, by taking on tasks within our teams, we are gaining additional knowledge. The patterns focus on filling knowledge gaps through hands-on experience and learning underscores the importance of practical learning in the field.

Sweeping the Floor has led me to reevaluate my approach to the field. While I have always recognized the importance of continuous learning, this pattern has reinforced the idea that no task is beneath us as craftsmen and apprentices. This helped inspire me to contribute more to any team I’m on, even if it means taking on some of the more challenging tasks.

While I agree with the message of the pattern, I believe there’s a fine line between taking on humbling tasks and being pigeonholed into a role with limited growth potential. I believe it is essential to seek opportunities for growth and development beyond just menial tasks. While Sweeping the Floor is a part of the apprenticeship journey, it’s also crucial to strike a balance and demonstrate knowledge for more significant challenges and roles within a team.

With this being said, the Sweeping the Floor pattern can serve as a reminder that with dedication and continuous learning, we can follow our own paths to mastery. By embracing the humbling tasks from the beginning rather than pushing them away, and reaching for various opportunities for growth, we as apprentices can then lay a solid foundation that’ll set us up for success in the future.

From the blog CS@Worcester – Conner Moniz Blog by connermoniz1 and used with permission of the author. All other rights reserved by the author.

Stay in the Trenches: Nurturing Your Passion for Software Development

In a world where promotions often signal success, it’s crucial to consider whether ascending the corporate ladder aligns with your true passions. George Leonard, in his book “Mastery,” cautions against succumbing to the allure of quick-fixes, urging us to stay committed to our craft despite the tempting promises of managerial roles.

Summary of the Pattern

“Stay in the Trenches” challenges the conventional notion that climbing the organizational ladder is the only path to success. It emphasizes the importance of remaining immersed in the technical aspects of your profession, particularly in software development, rather than transitioning into managerial roles prematurely. By prioritizing hands-on experience and continuous learning, individuals can sustain their passion for their craft and avoid the erosion of their expertise.

Reaction to the Pattern

This pattern resonates deeply with me as a software developer. It underscores the significance of staying true to one’s passion for programming, even in the face of enticing promotions. The idea that mastery diminishes when one veers away from practice serves as a powerful reminder of the value of continuous engagement with technical challenges.

The pattern prompts me to reconsider traditional notions of career advancement and success within my profession. It encourages a shift in perspective towards recognizing the intrinsic satisfaction derived from honing in on one’s skills, rather than solely pursuing external markers of achievement.

Furthermore, “Stay in the Trenches” has prompted me to reflect on the role of leadership and influence within technical domains. It highlights the potential for experienced practitioners to advocate for environments that facilitate ongoing learning and growth, not just for themselves but for their colleagues as well.

Disagreements with the Pattern

While I largely agree with the principles outlined in this pattern, I acknowledge the complexity of navigating career trajectories within different organizational contexts. While staying in the trenches may be an ideal scenario for some, it may not always be feasible or conducive to professional growth in every situation. In some organizations, the pathways for technical advancement may be limited, and promotions into management roles may be unavoidable for those seeking career progression. Additionally, the pattern’s emphasis on rejecting promotions may not align with everyone’s career aspirations or financial needs.

In conclusion, “Stay in the Trenches” serves as an important reminder of the importance of nurturing one’s passion for software development amidst the attraction of managerial positions. By prioritizing technical excellence and continuous learning, individuals can navigate their career paths with intentionality and authenticity, ultimately fostering a deeper sense of fulfillment in their professional challenges.

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

CS Blog Post 1

Breakable Toys is a pattern that shows the importance of learning through failure and trail and error in software development. It teaches that failure is inevitable in the learning process and encourages developers to create small,  projects where they can make mistakes without breaking something permanently . By building a toy systems with similar toolsets to their professional projects but on a smaller scale developers can push their abilities to the limit and gain experience. The pattern suggests building simple projects like wikis, calendars, or address books. These projects serve as opportunities to try out new ideas and techniques without the pressure of real-world consequences in a job scenario . They allow developers to learn from their mistakes, iterate, and grow as professionals. Examples of Breakable Toys include personal wikis, games like Tetris or Tic-Tac-Toe, blogging software, and IRC clients. The idea is to choose projects that are relevant and useful to the developer’s life, allowing them to invest time and effort into exploring different aspects of software development. The pattern also emphasizes the importance of enjoying the process of building these toys. If the projects become stressful, they are less likely to be learning experiences that are successful.Also , developers should be open to the possibility that their toys may evolve into something more significant or even gain other users over time. A classic example cited is Linus Torvalds’s creation of Linux, initially announced as a hobby project to build a small operating system similar to Minix. This shows how even the most significant projects can start as personal experiments or Breakable Toys. Overall, Breakable Toys encourage developers to embrace failure, take risks, and continuously seek opportunities for learning and growth in their craft. By building and iterating on these small projects, developers can expand their skill sets, deepen their understanding of tools and technologies, and ultimately become more proficient practitioners of software development. I have used breakable toys for a school setting but never for just for fun, after diving more to the pattern I will be deepening during my free time. 

From the blog CS@Worcester – CS- Raquel Penha by raqpenha and used with permission of the author. All other rights reserved by the author.

Embracing Vulnerability: “Expose Your Ignorance” Week-7

Acknowledging the Unknown:

“Expose Your Ignorance,” a compelling pattern from “Apprenticeship Patterns” by Dave Hoover and Adewale Oshineye, addresses a crucial aspect of growth in software development: openly acknowledging what you don’t know. This pattern encourages embracing the gaps in your knowledge as opportunities for learning, rather than as weaknesses. It’s about admitting your ignorance on certain topics, and actively seeking to fill those gaps, thereby transforming vulnerability into strength.

A Resonating Approach:

Though I haven’t yet started a career in software development, the principle of “Expose Your Ignorance” resonates with me. It aligns with my understanding of learning as an iterative and transparent process. This pattern challenges the often-held notion that admitting ignorance is a sign of weakness, especially in a field as complex as technology, where no one can know everything.

The Power of Honest Inquiry:

What I find most intriguing about this pattern is the empowerment that comes from honest self-assessment and inquiry. By exposing our ignorance, we open doors to new knowledge and show a willingness to grow. This approach not only accelerates learning but also fosters an environment of openness and collaboration.

Shaping Future Learning Attitudes:

While I have not yet had the chance to apply this in a professional setting, “Expose Your Ignorance” shapes my perspective on how I intend to approach learning in my future career. It instilled in me the value of being forthright about what I don’t know and using that as a catalyst for continuous improvement and skill acquisition.

A Balance of Vulnerability and Confidence:

While embracing ignorance is a powerful learning tool, I also recognize the importance of balancing this vulnerability with confidence in what I do know. It’s crucial to avoid underestimating one’s existing skills and knowledge while being open about areas for growth.

In conclusion, “Expose Your Ignorance” is an essential pattern for anyone aspiring to succeed in the ever-evolving world of software development. It encourages a mindset where admitting to not knowing something is not a drawback but a starting point for learning and growth. This pattern is a reminder that in the journey to becoming a skilled professional, vulnerability and openness are not just accepted; they are necessary. By willingly exposing our ignorance, we set ourselves on a path of continual learning and development, a path that is essential in the dynamic field of software development.

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

Week 7: CS-448

Concrete Skills

For this post, I read about the Concrete Skills pattern. This pattern is about when seeking a new role on a development team, the team may not want to risk the possibility that one may you be able to contribute to the team. They may think this because you may not have much concrete work to show your skillset and prove to teams you are able to contribute. The solution to this problem according to the text, is to acquire and maintain concrete skills. In order to do this, the text suggests collecting CVs of people whose skills you respect. Collecting CVs helps give an idea to what skills are useful and looked for when joining these teams. After learning these skills, then build a project using them to demonstrate that you can apply those newly learned skills.

I found this pattern to be useful because I am currently in the process of applying to jobs, so this pattern is very prevalent to me. Collecting CVs of those already in the industry, or those with more experience is something I had not thought of. However I believe it is a good way to find skills that you may be missing. Collecting a list of skills is also useful in the sense that common buzzwords used among CVs can be noted to help get past HR filters and managers who construct teams based off of those buzzwords.

I found the statement that describes hiring managers requiring to take a leap of faith on choosing who they hire, and having concrete work allows you to meet them halfway to be interesting. I found this to be interesting because it changes my perspective on the hiring process.

This pattern has changed the way I go about looking for new skills to learn. When learning new skills, I sometimes plateau and get overwhelmed with what I should be looking into. Now after reading this pattern, going into the future I will start collecting CVs because having a list of skills will be useful to direct my focus in the skills I should be learning.

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

CS-448 Week 7 Learn How you Fail

The pattern being examined is “Learn How to Fail” and it emphasizes the inevitability of failure in everyone’s life. It also suggests that failure is not a sign of incompetence but rather an opportunity for growth and self-awareness. This encourages individuals to analyze their failures, understand the underlying patterns, and address them effectively without dwelling on past mistakes or striving for perfection.

This pattern resonates deeply with me due to the universal nature of failure and brings light to the fact it is a natural part of the learning process. I am one that values continuous self-improvement and find the idea of embracing failure as a catalyst for personal growth both empowering and liberating. Instead of viewing failure as inadequate, it is seen as an invaluable source of feedback that can inform my future decisions and actions.

One of the more interesting and useful aspects of this pattern is its emphasis on self-reflection and self-awareness. The pattern provides a practical framework for introspection and self-discovery by encouraging individuals to identify recurring patterns, habits, and behaviors that contribute to their failures. This will help individuals to make more informed choices and develop strategies to lessen their weaknesses effectively.

This pattern has certainly influenced the way I think about my intended profession and how I approach my work. Failure is now viewed as an opportunity for learning and development rather than a setback or source of shame. I intend to face challenges and setbacks during my career path and handle them with resilience, knowing that they will contribute to my overall growth and success.

While I do not disagree with the general message of this pattern, there can be cause for concern given how you might handle failure. It is important to acknowledge and learn from failure, it is just as important to celebrate successes and achievements. Failure can provide valuable lessons but can also overshadow or diminish one’s accomplishments in the search of self-improvement. Balancing both self-reflection and self-affirmation is crucial for maintaining a healthy mindset and sustained motivation.

In conclusion, the pattern underscores the importance of embracing failure as a steppingstone to personal and professional growth. By cultivating self-awareness, learning from mistakes, and approaching challenges with resilience, individuals can navigate their professional journeys with confidence and adaptability.

5. Perpetual Learning | Apprenticeship Patterns (oreilly.com)

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

sustainable motivations

I hear this a lot: getting into tech, and specifically software engineering, because of money. It certainly seems to be the case that many people since maybe the 2010s have worked on Computer Science degrees solely because of the income and luxury of it, rather than an actual enjoyment of it.

I always found myself good with technology. When I took my first Computer Science course in high school, I always ended up completing assignments in 10-15 minutes when the allotted time was around two class periods. This is what I’m good at, as far as I can tell, but that’s not necessarily enough for me to make a career off of. If I don’t care about it, then I’m stagnating. If my motivation is simply that I’m good at it, it doesn’t necessarily inspire growth.

These are two examples of unsustainable motivations. The idea is that we can get trapped in the motivations we set up for what we do, and they lock us into a (most of the time, negative) mindset. Instead of enjoying my day to day work, I’ll see it as just work, and want the day to be over as soon as it starts, without actually growing as a person or in my skill level.

While the solution given tries to offer a practical approach (writing down your motivations and how much they factor in to your decision to stay a software developer), I don’t necessarily think this is a strong solution. I’m inclined to say that you have to have a more inquisitive investigation to why you care about this career, and what is really motivating you. Ultimately, you yourself create this motivation, it’s not out there waiting to be found. You can either construct for yourself an enjoyment of the journey, or you can only care about the outcomes.

From this, I would say solely caring about outcomes is unhealthy, and that mindset lends itself to motivations like reputation and money. As such, you have to ultimately figure out how to care about the journey if you actually want to have some level of enjoyment in your career. Otherwise every day genuinely will be a soulless repetition of the last.

There’s a reason why Camus wrote that one must imagine Sisyphus happy. If Sisyphus were to redefine the pushing of that boulder as a journey, and the rolling down of that boulder as a satisfying conclusion and new beginning, then this punishment is not as severe. Of course, this requires a lot of mental effort, but I think it’s necessary to live a life that you can actually be happy with.

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

Exposing Your Ignorance

This week the pattern I decided to write about is from chapter 2. The pattern titled “Expose Your Ignorance” discusses something I’ve had to experience recently: letting those you’re working with fill the gaps in your knowledge. This section opens up with this quote by Jake Scruggs in “My Apprenticeship at Object Mentor”. The quote is “Tomorrow I need to look stupider and feel better about it. This staying quiet and trying to guess what’s going on isn’t working so well.” Opening this topic with that quote is impactful because I think a lot of people feel shame and would call themselves stupid for simple gaps in their knowledge when others have high expectations for them. It’s important to acknowledge that it’s okay to not know everything and be transparent about it instead of struggling alone while deadlines approach.

When I was working on a website with a group of other developers, we were all transparent with each other about our knowledge gaps for the tech stack we had to work with. This allowed us to play off of each other’s strengths and weaknesses. Some of us were more knowledgeable about the front end while others were more knowledgeable about what was required for the backend. I was more unfamiliar with what the front end required so I worked on the backend team. When we started working on the project, I was transparent about my lack of knowledge about JavaScript, routes, controllers, and HTTP requests. My team leader spent some time going over the material with me and provided some resources to research on my own. I then looked for more resources to learn. We also made an effort for everyone to learn a bit more about both the front end and the back end.

 In the text, it said, “Conceding to unspoken pressures and telling people what they want to hear is not a good way to build strong relationships.” I agree with this because our transparency made sure we were able to help each other grow and in turn strengthen our relationships with each other. Your reputation will be built off of your willingness to learn. There wasn’t any part that I could disagree with. When you’re honest about your ignorance you will end up picking up knowledge about a variety of technologies which will make it easier for you to adapt down the road.

From the blog CS@Worcester – Live Laugh Code by Shamarah Ramirez and used with permission of the author. All other rights reserved by the author.