Category Archives: CS448

Week 1: The Clean Coder

Week 1 of CS448 I was assigned to read Chapters 1 & 2 of the book, The Clean Coder.  A quick summary and my thoughts on both of the chapters:

Chapter 1 discussed what it means to be a professional and some ways to achieve be one.  A huge point the chapter touched on is that a professional takes responsibilty for his or her mistakes.  An example the chapter gave was, a nonprofessional who allows a bug to slip through to the product delivered to a customer would shrug it off and move on.  A professional on the other hand would be writing a company check for $10,000.  Some of the major points that the chapter gave to developers that stuck out to me were; they should be testing every single line of their code, they should always make sure to test the whole system before shipping it to a customer (not just the features recently fixed), and that they should be keeping up to date with all of the latest stuff.

Chapter 2 discussed how you should say “no” to a manager, boss or even a customer in the workplace.  The chapter went through and gave different scenarios, using dialogue, where someone was asked to have a certain task done by a certain time, which just simply wasn’t possible.  A good tip that the chapter gives is that you should never lie boss just because you cannot get done what he/she wants in time.  You need to be assertive and let them know respectfully that you will need more time, and what you CAN have done by that time.  In one example in this chapter, a woman named Paula is asked by her manager Mike to be done with the work in 6 weeks.  Paula tells him over and over again that the team will need atleast 8 weeks and there is no way they have it done sooner.  After going back and forth a few times, Mike says “OK, Paula, but I bet you guys can work miracles if you try.”  Mike basically wasn’t taking no for an answer.  He went on to promise the customer that they will have the demo in 6 weeks.  That was an example of the wrong thing to do on Mikes part.  You should NEVER make a false promise and tell someone you will have something done for them if you can’t.

My initial thoughts when beginning the reading was that I was a little bit relieved.  This book isn’t your average boring text book, which was I was expecting it to be.  It’s actually a pretty easy and interesting read.  The book engages the reader and explains things in a way that you can relate to.  Chapter 1 was interesting to me because I never really thought of the term “professional” in the context they described it as.  I just thought if you are in the workplace .. you are considered a professional.  However, I learned that this is not the case at all.  There is a lot that goes into be professional, and chapter 1 opened my eyes to that.  Chapter 2 was my favorite of the two.  I personally have had the problem where I didn’t know how to tell my manager I couldn’t get something done in time.  In the past I have just said, “Ok, I will have it done”, then last minute broke the news even though I knew from the start I couldn’t do it.  I will definitely use what this chapter taught me in the future and say no the right way.  Overall, I enjoyed reading this book for week 1!

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

Reflections, Week 1

I spent this week learning JavaScript and Angular 2. I found a nice website that has video lessons on JavaScript (https://javabrains.io/topics/corejs); I listened to almost all of the videos.

I found learning Angular 2 quite annoying. I have become so used to Java that it is going to take me some more time to really get used to Angular 2. After searching for a while, I found a channel on youtube about Angular 2 that I liked (https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBYxWxJtLi8c6PGjNKGYGZZ). I watched the first few videos and plan to watch the rest by end of this week.

I also plan to learn TypeScript this week; from what I have learnt TypeScript is a super set of JavaScript and adds features like class based object orientation and type checking to JavaScript and it is also really important in Angular 2.

From the blog CS448 – The blog about software by Sudarshan and used with permission of the author. All other rights reserved by the author.

The Clean Coder (Week 1)

This was my first time reading this book, and so far, i’ve throughly enjoyed it. Prior to reading the book, I took a stab at what kind of book this would be. Based on the title, i figured that the book will touch base on the qualities of being a person who appreciates their craft. After reading the first two chapters, this book does just that. It explains in details of how one should go about on being professional. One of my favorite lines from the book is on continuous learning.

Would you visit a doctor who did not keep current with medical journals? Would you hire a tax lawyer who did not keep current with the tax laws and precedents? Why should employers hire developers who don’t keep current?

I found this quote to be quite thought-provoking, because i’m a believer that learning is never done. Learning is a life long process and that I too, would hope my doctor would be up to date with his medical journals, and if I have a tax lawyer, that he/she would keep current with the tax laws and precedents. The same thing goes for software developers. The industry is currently changing and concepts that you may have grasped and think you know well, might not be relevant in future frameworks. For example, after doing a little reading about AngularJS two, a javascript framework, migrating from AngularJS one to the newer version won’t be a walk in the park. Things that will work in AngularJS one won’t work in the newer version.

The second chapter touches base with the idea of saying “no” in the workforce. When you are first starting out, you want to excel and meet every expectations and demands that are laid out by your boss. You do so by doing your work to the best of your ability, but when you are given a project with a lot of features to include and you know that father time is not on your side, it’s hard to say no. You end up saying “yes” just to keep everyone happy. By everyone, you mean everyone, but you. This then could result in you being burnt out and have completed it(but did a crappy job), or more commonly, you’re boss and the customer isn’t very happy because you promised x, y and z, but could only deliver x. It’s important to say no, because it could prevent all of the headaches and unwanted meetings with angry customers wondering why something isn’t finished.

 

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

Reflection (Week 1)

All throughout the Fall semester I’ve been mentally prepping myself up for this moment. Now that the time has come, I’m filled with a plethora of mixed emotions (mostly excited). As a Computer Science student, I’m required to take a software development capstone class, AKA CS-448.

Week one has officially ended and i’m very excited to see how the rest of the semester will play out. On the first day of class, we were put into a SCRUM team for an activity where each person on the team had a job. The job consisted of 2 customers, 4 developers, and one monitor. Prior to this activity, I had no idea about SCRUM and its significance, but after the activity, I had a better understanding of this type of framework. After the quick and fun intro to Scrum, we were then placed into teams of 6 where we will be working on features for the OpenMRS project but specifically the AMPATH section.

OpenMRS is the leading open source enterprise electronic medical record system platform. Initially, the community that consisted of volunteers from many different backgrounds started out to fix a database system in a single clinic in Kenya. Over the years, the community of the OpenMRS grew exponentially, ergo allowing this software to expand to other clinics.

If you want to read more about this, heres the link:

Read More

 

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

The Clean Coder, Chapter 1 and 2 (Week 1)

I read the the introduction, chapter 1 and chapter 2 of the The Clean Coder by Robert C. Martin. I found the introduction funny because the author basically quit the job he did not like while he was making $7,200 a year and and a few months later got the same job back for $6,800 ! I guess the lesson to learn here is the importance of wisdom.

The second and third chapters were about professionalism and when to say no to something (how to be a professional). Being a professional means that you care about the product you build and take responsibility for any problems that may arise. The author explains that to be a professional you must not create bugs in your software and if you make an error, you must apologize. Never release any code that you know to be faulty. And the software you write must be flexible.

The author also talks about the importance of learning. It our responsibility as professionals to make sure we are marketable. We have constantly to learn and strive to improve ourselves.

I found the second chapter interesting. The author explains why it is important to say no to a request by your boss and why not to use the word try. I think following this idea is hard in practice. What if you boss insist you complete something within a certain time limit (which is not possible)? It is very easy to just comply, but it is hard to say no given the fact that your boss has the authority to fire you. But I guess being a professional is not easy, you have to put the software that you produce over everything else.

From the blog CS448 – The blog about software by Sudarshan and used with permission of the author. All other rights reserved by the author.

Clean Code – Chapter 1 and 2 (Week 1)

I read the first 2 chapters of this book almost 16 months ago and I did not quite understand the significance of clean code back then. This week I decided to listen to the video version of clean code (available in SafariBooksOnline). The video version made it much easier to understand and I had a few good laughs.

In the first chapter Uncle Bob explains why clean code is important. He tells us the story of Sword Inc, a software company that failed because they produced bad code. When code is not clean the productivity of the development team decreases as time increases. The reason for this loss of productivity is that the developers build a mess as they develop the product. And the software product eventually fails becuase when the management demands new features within a certain deadline, the development team is not able to deliver because they just can’t.

The management tries all sorts of things (like increasing developers) to improve productivity, but nothing works. According to Brook’s law, adding more man power to a late project makes it later.

Finally the management turns to the developers for a solution. The developers solution is to redisgn the entire system! Management does not want to do this since it is expensive. The mangement however, after some time, decides to do it. But even this would not solve the problem. Eventually the company would loose customers because when they replace the new product for the old (more feature rich) product, customers leave for better products.

The only way to solve this problem is to stop running away from it and clean the mess.

So what is bad code? You know that a software systems contains bad code if it is rigid, is fragile, lacks seperability and is opaque. Uncle Bob goes on to explain that bad code is the fault of developers not management, not anybody else.

The second chapter is all about making your code more readable with the help of better naming strategies.

I can relate to this chapter and the Sword Inc company failure. Last semester I wrote software for a class project. Since we only had a limited amount of time and a bunch of requirements to fulfill, I rushed through the development process. As a result of my rushing, the code lacks the properties of clean code. If I had to use the code again or implement a new requirement, I would be lost.

From the blog CS448 – The blog about software by Sudarshan and used with permission of the author. All other rights reserved by the author.

Software Capstone (CS-448), Introductory Post

Hi everybody, I am excited about this course. I am currently working on setting up my JavaScript development environment using Visual Studio Code.

There will be a blog in the future regarding this topic; so stay tuned!

From the blog CS448 – The blog about software by Sudarshan and used with permission of the author. All other rights reserved by the author.

CS-448 Introduction

2cb3e82c00000578-3247151-satire_at_the_end_of_the_episode_cartman_who_had_earlier_taken_o-a-65_1443075345705

Well, it’s a brand new semester and that means a whole new slew of blog posts.  Buckle up buckaroos!

From the blog cs443 – TayNock's Blog by taynock and used with permission of the author. All other rights reserved by the author.

CS448 Intro Post

Hi, this is my first post for CS448.  Can’t wait to blog woohooo

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

CS 448 Intro

Hello,

For those of you who don’t know me, my name is Hung Huynh.

I look forward to this class.

Thanks,

Hung

 

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