I found this chapter (pattern) to be another intriguingly good read. It addressed an issue I had questioned a fellow programmer about. I asked him about all these great programmers that have written many prestigious codes and programs. They didn’t have access to these Google sources we are able to consult for help to aid us in figuring out issues and problems. What did they look up when they had issues? Imagine a programing world where you couldn’t Google or look at other great programing works to model out a solution. No open source API’s and frameworks to work with. It would be very difficult to get things done. As the author said, if you don’t look at the works of other that are better than you, you are doomed to continue making your own mistakes and carry on your bad habits. I believe one of my professors made a confession about how much his coding changed for the better after reading the book, clean code. We often forget that we are a generation that strives to continually move forward and the key to doing this is by learning from others mistakes and building upon it so we don’t have to make the same mistakes by so doing, we maximize our time spent on moving forward. The development of one’s programming abilities is not a day’s journey. It takes many years of learning, reading and absorbing varieties of programing techniques and its proper applications. Through your learning, you will begin to develop a keen sense for what is proper and practical. You will also learn to understand the decisions and thought processes that goes into all the good programming works. Programming remains an art that needs to mastered and the more you are exposed to others exhibits and what the experts think about them, the more you will learn, see and inspire you own artistic sense. Although not to be confused with mimicking, we need to understand that everyone has their own niche that they will have to carve but this will result from being exposed to many programing’s forms and finding the one that works for you.
Team Retrospective – Sprint 1
I think this was a very important sprint because it introduced me to my teammates and it also showed me a little bit of what I can expect from my team during this project. During this sprint, we were to learn about angular tests and how to implement them, clone the project that was to be worked on, run the project and ensure that it built successfully and also make sure we were able to log into the program and kind of get a feel for the program’s UI ( User interface). Most of these tasks were accomplished and throughout the process, I was able to learn a bit more about my team. There were a few that reached out to us when we had issues and others even stepped up sent group messages text messages to ensure we were on track and slack messages when they came up with solutions and answers we didn’t have. Also I made sure to emphasize on creating a good working environment and a relaxed atmosphere for every one to feel comfortable and casual. I accomplished this by starting conversations and asking how everyone was doing whenever we had team meetings. Overall, I think we have a really good group and can get a lot accomplished this year because although there is some room for improvement, we already have pretty good team communication. As for actual work that was done, I think there was a very steep learning curve that had to be covered. I remember in previous classes, we did projects with angular and typescript but the tasks that were completed didn’t go into details as much as this project does. I think one of the issues that stands out the most is all the issues I had with the various angular dependencies. But luckily, one of our teammates was pretty comfortable with angular and was able to offer help when i needed. There were times we contemplated building the project on one system and making sure it was running there, then we were going to clone it into our team’s repository and get everyone to pull from that repository. This we hope was going to eliminate most of the error but we were wrong and after many research, we figured doing it independently on each machine would expose us all to many things that would be helpful to know. It would also add to our already limited angular knowledge. Overall, it was a good sprint and I think most of what we set out to do was accomplished and I know lot more angular that I did a few weeks ago. Looking forward to the year!
In this pattern, the author presents the issue of people getting moved into different roles due to their dedication to mastering their crafts and art. usually when you become outstanding and put in time to better and help you team improve you begin to create a chain reaction of quality standards that either get matched by your peers who in turn become better programmers or you are put in a position to defend your processes and methods. ON the management level , this will serve as a sign that moves you to a leadership role or position in the company. It is at this point that the author wants us to understand that we do not need to conform to the pressure around us. As a software craftsman, you are to remain that and continually improve your craft without breaking into the distractions around you. we are not to allow ourselves to be controlled or changed by our title but we are to leave it at the outskirts of our consciousness. Once in such a position, do not be swayed by the positions descriptions and demands but instead use that as a gauge to assess your organization. If you were noticed due to you outstanding qualities, hard work and knowledge, it should serve as a sign for you to evaluate how well the organization seeks for growth and progress. On the other hand if you are not recognized although you are still exerting these qualities, that should also paint a picture of where the organization is headed. Everyone wants to be recognized when they do things that are deemed to be recognized so an organization that fails to recognize this often lose out on the talents of such a person. whiles companies that pay notice to things like that keep acquiring people of such traits. Another possible scenario that often results from this trend is the differentiation of both informal versus formal titles.Many times employees begin to grown into a positions of authority on teams, despite their formal title remaining the same. Growth into positions of authority booms with familiarity with the job, development of skills and an overall understanding of the specific companies processes and task. The more you understand, the more you can explain and the more you are familiar with a process, the better you understanding of it.
This pattern talks about the biggest step for every “programmer”. I mean i can also say you need to take this step before you are given the title of a programmer. After reading the section above this pattern which addressed emptying your cup before receiving more, i found it very easily cohesive with the content of this pattern. Programming is almost like nothing you have done before. But its only when you begin to understand it, that you begin to see how in tune it is with things that we do everyday unconsciously. I agreed with how the author addressed this chapter. Unless you open your mind to accept new understanding and insight, grasping the concept of programming as a whole becomes almost impossible. The only way to truly excel at this craft is to dedicated your entire life as a programmer to the cause of learning and improving everyday regardless of how much you know. because for all you know, a new language can erupt tomorrow and render your task and routine of today, obsolete. Everyday you sit down to program you have to be yielding to learn and grown because there can be a new framework that came out yesterday that can make your life a lot easier as long as you know how to implement it. To better implement new techniques and methods will ultimately depend on your understanding of the basics of programming. And your understanding of the basics and fundamentals can be attributed to your in dept understanding of your first language and the tasks you used it for. But once you have acquired this knowledge do not allow yourself to be bound by this knowledge but instead use it as fuel to attain new heights in the programming world. Every task that you are able to complete or solve should fuel you to learn the next thing in line. Programming is one of those things that theoretical knowledge only goes a distant. Using the knowledge to build, solve and overcome new challenges broadens one’s understanding of the art and this is the path that leads to greatness. The learning curve of a particular framework or technology grows exponentially in regards to the task and problems it is used to fixed.
Woah !, I really enjoyed reading the book , Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. I have read many books and been in the software-learning role for a while but this book spoke entirely about how I had been seeing this field and how i felt it should be done. I am very emotionally connected to this life craft. I am currently a CS student and like this author, it wasn’t until my junior year in college that I began to see a future with this program for me. I had excelled in class and managed to perform okay but when I I tried to create new project for myself to work on, I found my self always hitting a blank wall. It wasn’t till last summer that I figured what was going on. I was studying how to program like it was a task to be done instead of a skill that needed to be cultivated. When attempting to cultivate a land there are many steps that has to be taken. The soil has to be prepped, and catered for the incoming crops. Everyone wants to be great at programming but you can’t expect a 3 year old to read a college level book. In programing, the gap between the proficient and beginner is so large but unlike ages and height, its not easily noticeable. Its it only when you decide to create something from scratch that’s when you realize and begin to appreciate the people who were able to build Operating systems and large software programs from scratch. This goes to prove the apprenticeship of the software journey. Those people that are able to do that, often don’t hold very high degrees when they were building those programs instead they invest time and dedicate their efforts into making a change by creating and developing something that will benefit the world. From this reading I do agree and believe that one has to invest time, sweat and effort into learning the art of thinking like a programmer. It is only then can you start to see what they can see and think like they can. In programming, if you can’t see and logically make the connection, it’s almost impossible to create. Teaching an individual what to see and how to interpret it takes time and is also greatly individualized. Just like apprenticeship, everyone has their own pace and cognitive strength and moving forward should only be allowed when what is needed is grasped. In a perfect world, everyone that graduates in software development should be able to code quiet adequately but such is not life and I believe and agree with this book in the sense that if you should approach software development as a personal piece of art that continually needed to be perfected, you will become a successful programmer.
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 !
The Philosopher and the tester
In this episode of the ministry of testing, Israel Alvarez talks about his transition from a philosopher background to becoming a QA tester. He believes there is a lot of positives from his philosophy background that has helped his career as a software context driven tester. Philosopher raises topics and concepts that forces you to think and so does testing so it was fairly relatable and easy to apply his acquired skills from philosophy. Being able to critically think is key to becoming a great QA tester. Knowing what to test for and how to test for makes this arguably one of the hardest things to do. Often as a tester, you have to analyze your own thinking, many times risking the analysis paralysis syndrome. As a math and philosophy major, Israel was always faced with problems that often didn’t have plan cut simple solution so he always had to try and apply what he had learned to get the job done with thinking outside the box. That’s what makes testing so hard. Its easy to come up with some things to test in a code or program but finding out things that need to be tested requires a thorough understanding of the product or software that is being developed. You often need to understand it even more than the creators of the product. They only way you can adequately test a product is to find its boundaries, applications and purposes and see what you can do to challenge these thing or break them. In a start up for instance, there are deadlines, scope changes and many challenges’ that testers have to endure. Proving your value as a tester is very important in the early stages of testing. Learning to articulate and defend ones view, as a tester is an essential skill that every tester needs to have to grow. This is a major challenge because developers often have to prove their point and findings to the programmers. Programmers often have strong views and passion for their work and in order to properly nit pick and criticize defect or bug that is in their work, you need to be able to establish yourself and emphasize overall product quality in your defending’s. As a tester, developers often have stressed feelings towards your work. It’s just the nature of the job as a QA manager or tester. It’s your job to ensure that the developers have put out the best possible product or software they can produce.