The White Belt

This week I read the section called “The White Belt.” The quote goes like” As a rule, each step should have a feeling of entrance. This is the beginner’s mid- the state of becoming. “I like the title of this section The White Belt. I like it because I do Tae Kwon Do and when you first start off you are a white belt. That is where everyone else starts and no matter who you are we all start off as white belts. As you take classes you learn not just from the master (which is a black belt the highest of the belts) but you also learn from everyone else as well. Taking Tae Kwon Do classes we all learn from each other no matter what belt you are. This section of the book takes everything you know and tells you that you don’t know anything. Which is true because when you are learning you don’t know everything. There are times when you are working on a code and it becomes a 30 line code and you think you did it the best way however there are some people who can take that 30 lines of code and just make it into 10 lines and some can even do it with 1 line of code. Just like the example in the book that shows the different solutions of how to write the code that generates random numbers for the United Kingdom’s National Lottery. This also goes for the blackbelts because even though you may know a lot you do not know everything. Technology changes rapidly and then there are different concepts and people that are just better at doing certain things that you. So you should not stop the search for knowledge and we should continue to try learning from each other just like how a white belt learns from each other, their pears, and their masters. Everyone has their different skills and different strengths and weakness so that means when you work as a team they can help cover your weakness and improve your strength


Sprint Retrospective 2

This week’s sprint retrospective we finally figured out what we are doing.  We started to talk about what we wanted to do for the project. Looking at the Trello board there were quite a few options. However, since Eric had some experience with encryption services we decided to work on the encryption for the website.

We were reading the google doc to see what they wanted us to do for this project. We noticed that they wanted to be able go to download a certain patient information before they were to go out onto the field because whenever they were to work on the field the internet would cut off and it would impact their work dramatically. So, we know that since they are taking sensitive information with them outside they have the risk of it getting stolen. With this information, we wanted to have an encryption that is not just some username password but also a keygen so that way it would last a few weeks or however long the doctor would want the information on the tablet to be accessible on the tablet but after that it would get locked out where you would not be able to access the information at all.

Our next objective was to look up what kind of library’s we could use to make this encryption such as crypto-js, forge, bcryptjs, and webcrypto. Oren sent a message on the slack to Jonathan asking what kind of encryption that they have already used or would like us to use and they are fine with us choosing.

We then set up on our Trello board what each one has to research and write a sample project with the assigned library. As I researched the encryption library Forge. There were many things that I had no idea what they were talking about or what it did so because of this I had to watch a few YouTube videos of what encryption really is. I had a feeling that encryption is just like a folder that you put a password on and then that way no one can access it but it’s different than that. The process of covering information of data into a code. So that way it can change words into random words and letters that would just be gibberish. This is going to be a lot of fun learning about encryption since many things out now a day should deal with personal information security and to be able to learn more about it is going to be useful for me in the future.

Moving forward we just want to be able to work on our communication with each other and how we would be able to share the information that we have with not just each other but also with the rest of the class. Throughout the week all I have done was read though the code and to see what it does. Reading though the code it looks like they have some kind of implication for security however it looks very basic.

Sprint Retrospective 1

For this sprint retrospective there isn’t much to talk about because we were just going over the basics of how we are going to work together and setting up the server for our team to work on. During the sprint meeting we talked about the little things that we would like to set up so that way our experience of the class will be much easier. Such as how we can change how our trello board works. The way that we decided to do the trello board is that we wanted to have a column of things that we should do. Which was the sprint back log. Things we are working on which is the sprint planning.  Then for the end of each sprint we would sit down review what we did what we finished and then decided if the part that we finished would go on to the finished section or would stay on the needs to be completed section.

Next, we talked about how we are going to push code to each other. This was something that was going to be a little difficult for us because most of the time we just push the code to our own git and we don’t have to worry about messing with anyone else code. We decided that any code that we write that would be combined we would push it in class together that way if we have any issues we can talk to each other then and there. Since we do not know how git hub would implement the changes and if we would want each other to change something that we wanted to write but someone else wrote something else then that way it would cause less confusion within the group.

Finally, we went onto the google doc at the end of the meeting and just talked a reviewed the stories for ng-amrs. Just trying to keep ourselves ahead of the curve and started talking about how we can do this project. Sitting down and reading many of the stories they all talked about how they were going to a village and most of the time they would have no internet at some times. So it was harder for them to pull up information about their patient. So the main point of the project was to have an offline application that they can access between online and offline seamlessly. However they don’t want to have every single patient but to have certain patents in the tablet so that way they don’t have to worry about storage space.

Throughout the week I just worked on the assignment leading up to setting up the server and getting to know my team more. Some of the things that did help me out throughout the sprints are the slack board and my teammates. For now I don’t see any issues working  with my team they are all great people and we are testing the waters of how we should be coordinating how we work and what we should do.

Your first language

This week I read up on the section from the single pattern book called “Your First Language.”With this chapter focused on the people who are just starting out their programming journey and they have little to no experience programming.

This section talks about the problem that these people face when they first start learning to program. Many of them feel like they should have the knowledge of multiple language and they have to be proficient so that way their code isn’t just chicken scratch so that way everyone in their team can just pick up their code and use it right away. They also feel like they have to make their code be as good as the senior members of their team. However, in reality these people don’t know as much or as well as the other people working in their group.

This part of the chapter tells the readers that they should just pick a language and try to become fluent in it. No matter what language you choose the basic problem-solving skills that you get from it would be able to be used in other languages. One of the major tips that I believe works well is that you don’t have to learn this language by yourself. Find someone who has mastered the language and talk to them about it. You should be able to ask them for tips and tricks about the programming language. Even though you don’t see them every single day if you see them once a week it can improve your knowledge of the language. Once you learn enough code to start writing your own stuff you can start running test, tweaking, and experimenting your code. With this you can learn what can break the code and learn the limit of the code. You also aren’t limited in learning the language you can also learn about how other people’s libraries work and over time you can test points to new library’s and see the functionalities of them.

A good advice that this pattern talks about is to talk to other people who have mastered multiple languages. Then ask them why did they choose the language they are using now. Also, since they have mastered multiple language what is their favorite and what do they think is the best language to learn first. With this it allows you to get input from other people of what works and what doesn’t. I like this pattern and what they talk about because with this people who want to start programming shouldn’t be scared of it. Programming isn’t something that you have to naturally gifted to be able to do. It takes time to learn and understand what you are doing. This is what the Computer Science Club is trying to do. So that programming isn’t hard and if you take the time to learn and study it you can do it as well. Everyone learns at their own pace and their own language so that way anyone can learn programming and it’s not hard to do.

Chapter One

Chapter One of Apprenticeship patters was a very helpful and interesting reading. For the most part I agreed with mostly everything this chapter has talked about. I love the idea that programmers are broken down into three different categories which are the apprentice, the journeyman, and the master. Within these different categories I still believe that I am an apprentice. As an apprentice I aim to keep learning new programming languages and to expand my knowledge for me, myself, and I. So, I am always looking for tutors, “masters”, and any kind of outside sources to help me learn as much as I can. Next stage would be the journeyman. These people are still trying to improve themselves and their knowledge of programming language however they are educated and experienced enough that they can talk to other journeyman and interact with other people. Finally, there are the masters who has reach the point in their lives that they are proficient enough in programming (however still learning because you can always teach an old dog new tricks.) These are the people who become mentors, teachers, project heads. They are the people that the apprentices and journeyman aspire to be and look to for help.

There was also a section of the chapter where it talks about the community of practice united and defined by overlapping values. Few of them are things I believe that a lot of new programmers should follow which is “A willingness to experiment and be proven wrong.” This is very important because we should not be afraid to make mistakes. With mistakes comes a learning/teaching experience. This shows you that there are things that you don’t know and that is fine because you are not supposed to know everything. If you are willing to make those risks then that just means that you accepted that you are not the best and is willing to learn from others. I also like the value that talks about “A belief that it is better to share what we know than to create scarcity by hording it.” I honestly think that this is something a lot of people should follow I understand with today’s society money rules the world. However, knowledge should not cost an arm and a leg to get. With education we should be able to get information from others to help each other out and to increase productivity with each other. Just as how in some of the classes have free books for classes it is an easier way for student to not have to worry about putting money on a book that they are only going to use for a few chapters. So I am happy that some of the classes I take the professor gets his book by an online source and it is free as well.

So what I got out of this chapter that I will take away and use in the furure is that I know 100% I do not know everything. I will and always look up to those mentors and teachers to help me grow my knowledge of programming. Then I hope that one day I can have enough knowledge to help those around me as well. Because there was this one professor I had back when I first started school and he said. “Teachers are not here to show off how much knowledge we have and to belittle you. A good teacher is a platform for you to reach a higher platform than what we have achieved. We are here to make you better than us and to use the knowledge we have gained when weer learning and to pass it on to you guys.” This is someone I want to be when I grow up and to pass on the knowledge I have gained to others.


Data Flow Testing

Finally, for this week I decided to write about Data Flow Testing. I found a blog site called Ques10 and there was a question about what is data flow testing. The blogger Ramnarth ansered the question by explaining what Data Flow Testing is. Data Flow Testing is a test that tells us that a programmer can perform a number of test on data values which are collectively known as data flow testing. With data flow testing it can be performed at two levels static and dynamic. Static testing is performed by analyzing the source code and doesn’t involve in running the source code. It is performed to reveal potential problems in the programs which are also known as a data flow anomaly.  And with dynamic testing it looks at the path of the program from the source code and with this you would draw a data flow graph of the program select a critical testing area, then identify the paths in that data flow and test the derive inputs. He talks about how testing critical section on the data flow chart by breaking it down into paths and tests such as how we did it in class. Were we would look at the DU-Paths and look at all the edges and nodes to see if they make sense. I like this blog because it does involve some of the things that we did in class such as DU-Path testing, edges, and node testing. I like that the things I learned in class is also reflected into real life things we can do. I think data flow testing is just something we could be doing because it is just a bunch of tests that you run through so that way you do multiple test at the same time.