Category Archives: Week 1

PATTERN : Sustainable Motivations

Sustainable Motivations

The author opens this apprenticeship pattern by addressing all the intangibles that are often overlooked in the programming world. He talks about the challenges we, as developers encounter in our career. He addresses the issues of horrendous real-world projects that are often rigorous,  tedious and exhausting. It can grow from  frustrating at times to morphing into overly chaotic or constraining issues that are backed by a business man who only knows what the current trend demands. All through this, the author urges us to hold firm and ensure that our drive for mastery propels us to withstand the situation.

Personal Reflection

I was fortunate enough to be taking the CS-348 class so i got to witness the dynamics of a software development environment through one of our in class simulations and there i realized that the constant specification changes by the business man often can lead to stressful and frustration environment to work in but it is here that the author tell us ground our motivations to the walking the long road pattern. In that pattern, we are though to continue taking on task that build and molds our skills. So in the mist of all the chaos, we are expected to find a related source of interest in programming that will continue to carry us when the going gets real tough.

I personally feel like this is the hardest pattern to master because normally, programming is challenging so the only thing that keeps us going at it is our passion for coding/ developing software. Now should that passion be attacked, we have no more source of interest. But the author tells us to persist even when we have lost drive and find a secondary source that can fuel us through the tough time until our original passion returns. I do agree that it does get to a stage that being able to provide for you family comes into the equation so this rules out switching of area or quitting in generally and money often serves as the secondary drive that can propel us until we get our initial vision back. The life of a programmer is filled with many adventures, learning slopes and curveballs but finding joy in programming amidst the bad times deepens the love and passion to be great !.

From the blog CS@Worcester – Le Blog Spot by Abranti3 Dada Kay and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman

The Introduction to the textbook sets the goals for the book and the targeted audience.

“One of our goals for this book is to inspire the people who love to create software to stay focused on their craft.”

“This book is written entirely for you—not for your boss, not for your team leader, not for your professor.”

What Is Software Craftsmanship?
The book considers software craftsmanship as some overlapping values, listed here are those values with my thoughts on them.

  • Growth Mindset, the belief that you can always improve and find faster, easier ways to do things if you are prepared to work. Failure should be seen as an incentive to change your approach. “Effort is what makes you smart or talented” – Carol Dweck. I think the growth mindset it very important to quality and success and avoiding burn-out.
  • Constantly adapting to constructive criticism and learning to improve areas where you are lacking. This idea is essential to ensuring quality work and keeping up-to-date on the best practices.
  • A desire to be pragmatic rather than dogmatic. This important trade-off allows you to get things done and avoid spending too much time making things “perfect”. This ties in well with YAGNI.
  • A belief that information is better shared than hoarded. Everyone benefits from shared knowledge which is the basis for the idea of Open Source projects. This allows a greater population to improve shared code and learn how things work.
  • Ability and willingness to experiment and not worry about failing, because you are able to learn from the experience.
  • Taking control of and responsibility for our destinies rather than waiting for someone else to give us the answer. I think this is basically saying to take initiative, or try to think differently to solve a problem.
  • Focusing on individuals rather than groups. This book is meant to help you as an individual improve your skills.
  • A commitment to inclusiveness. I think this is a good rule in everyday life but works with being a craftsman.
  • We are skill-centric rather than process-centric. It’s more important to be highly skilled than using the “right” process. I think it boils down to it pays to have the knowledge to use your skills in any situation, not having to rely on a template of tools.
  • Situated Learning, the idea of learning a skill around those using those skills. Working your first job as a software developer would be a good example of this.
  • Based on the introduction, this text appears to have very useful information for someone who wants to improve the quality of their work and what they contribute. The book includes good lessons that can apply to any aspect of life. It stresses the idea of improving skills by being open to learning from others, learn from mistakes, and never stop improving.

    The post Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman appeared first on code friendly.

    From the blog CS@Worcester – code friendly by erik and used with permission of the author. All other rights reserved by the author.

    Apprenticeship Patterns Chapter 1

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

    CS448 Intro blog

    Hi everybody, I’m Buvan, and I’m enrolled in CS448 with Karl Wurst, Ph.D.

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

    Apprenticeship Patterns Chapter 1

    Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye opens up with a really great hook that makes you want to dive deeper. The book, so far is extremely simple and easy to read. The authors do not overwhelm you with too much information. It feels like they are talking to you rather than telling you something. I like the medieval inspiration of guilds, masters, and apprentices. It brings me back to the days where I wanted to be a blacksmith apprentice (in 5th grade we went to Old Sturbridge Village which sparked my interest in blacksmithing). I never became one, obviously because there are no blacksmith masters around. Anyways, just the word apprenticeship gives me a feeling of being useful (or at least learning to be useful) and I enjoy the thought of having a master to teach me the crafts.

    My favorite line from this chapter was “Our goal here is not simply to hand people a rule book, but to give them the ability to create new practices for new contexts, which in turn drives the discipline of software development forward.” This is important because even the most skilled of teachers can learn things from students that think differently. Giving us the tools to make our own decisions is what we need to continue developing new and better technology.

    The authors include a bulleted list of values that describes the phrase software craftsmanship. Some of the most important values being:

    -Growth mindset. The author accurately explains that failure is just momentum to try again. Keep learning and growing from your mistakes an you will become very powerful.

    -Adaptability. Recognize that the world is changing around you and just because you think it is right, doesn’t mean it is.

    -Open source sharing. Share what you know rather than hoarding it. This will help progress software development as a whole.

    -Manifest Destiny. Go out and create your own opportunities rather than waiting for someone to give them to you.

    -Learn form your environment. Swallow your pride and ask for help from people around you. They have the knowledge and skills to advance your skills.

    The authors go on to explain what it means to be a journeyman, master and an apprentice.  As an apprentice you should always have the attitude that there is a better and faster way to do things. You should continuously absorb information from the people around you and use that information to your advantage. A journeyman is an apprentice that might switch between masters and relay ideas off each other. They are focused on enlarging their portfolio and working to become a master. A Master is the all powerful leader of the three. A Master retains all responsibilities from his journeymanship, with the added responsibility of furthering software development as a whole. He/she does this by teaching and continually learning.

    The phrase apprenticeship pattern does not mean that this book will teach you how to become a software designer. The patterns are simply a guide to bring you to the next level and get you better at what you want to do.

    From the blog CS@Worcester – Rookey Mistake by Shane Rookey and used with permission of the author. All other rights reserved by the author.

    Software Craftsmen, chapter 1, week-1

    Chapter 1. Introduction (Summary) The authors tell us that the concept of apprenticeship is one that encourages cooperation among the experts and novices. This cooperation results in the enrichment of the novice with respect to the expert’s know-hows. Apprentices eventually … Continue reading

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

    Intro – CS 448

    Hello Everyone in Cs-448  !

    My name is Kwame ofori and i am really looking forward to this class and getting some real world experiences. I believe experience is the best teacher so i am ready to learn !

     

     

    From the blog CS@Worcester – Le Blog Spot by Abranti3 Dada Kay and used with permission of the author. All other rights reserved by the author.

    CS-448 Capstone Blog Intro

    First Blog post for the capstone!

    From the blog CS@Worcester – Rookey Mistake by Shane Rookey and used with permission of the author. All other rights reserved by the author.

    Testing Categories and Tags for Syndication

    To help me with finding student’s blog posts that have been syndicated to the CS@Worcester blog, I have been asking them to tag them with the course number (e.g. CS-343). That has worked well for finding just the posts for a particular class.

    But, what would make it even easier for me, would be to also have them add a tag for the week that the post is due (e.g. Week-1) so that I don’t need to scroll back until I find the first post from the previous week.

    So, I’m tagging this post in the same way that I’m thinking of asking them to do it to see if it works.

    From the blog CS@Worcester – On becoming an Eccentric Professor… by Karl R. Wurst and used with permission of the author. All other rights reserved by the author.

    The Clean Coder, Chapters 1 & 2.

    “The Clean Coder: A Code of Conduct for Professional Programmers” is the first book I am reading by the author Robert C. Martin. Going through the pre-requisite introduction portion of the book Martin noticeably states that this particular book is full of catalog of his errors from his 42 years of experience in software engineering field and a set of guidelines to avoid them. I am expecting a lot of takeaways form this book for my Capstone course and professional career as well.

    Chapter 1: “Professionalism” discussions about the taking responsibilities and the various ways to be able to accomplish the responsibilities in regard of the true essence of professionalism. First part of chapter surrounds with the things every software professional should be familiar with such as Test Driven Development approach, QA process, code flexibility and so on. Of course these principles are important during the software development process. When the writer starts to talks about gaining credibility and trust through continuous learning, practice, collaboration, and customer service; things get excited. I agree with the writer how learning process is necessary for self-empowerment. Being up-to-date with the new disciplines and techniques is a must in Computer Science field. Similarly, practice help individual to refine and enhance our skills. Personal drive and team-building skills are valuable and necessary for developers striving for the top of the profession, but more is required. Though most developers bring a project to the table, pushing it through requires a strong ethic of customer service. Customer is critical because it establishes a path that helps make sure that the features you are developing are really going the address your customer’s need.

    Chapter 2: “Saying No” focuses upon team work. Martin gives a clear vision of how to be a successful team player. He states a team player is not someone who says yes all the time. Sometimes the only way to get to the right yes is to be unafraid and say no. I completely agree with the thought that, “What we all have to realize is that saying yes to dropping our professional disciplines is not the way to solve problems.” It rapidly becomes impossible to control all aspects of all the projects within a large area of responsibility. It is critical to develop teams that can bring the necessary talents to bear without requiring your direct intervention.

     

    From the blog CS@Worcester – Software Dev Capstone by osworup007 and used with permission of the author. All other rights reserved by the author.