Monthly Archives: February 2016

Clean Coder Chapter 1

Robert C. Martin’s book  Clean Coder: A Code of Conduct for Professional Programmers reviews the basics of being a professional programmer in chapter 1. Some of the important key points are being responsible for all your work, making sure your code is the highest quality you can manage, always test your own code, and being aware of more than just the code. Martin gives a great introduction to being a professional for anyone that is not quite sure what it truly means to be a professional programmer. I personally did not think this was that useful of a chapter though because most people know what being a professional is, it is just the matter of applying yourself to succeed at it. We will see what advice Martin gives in the next few chapters in my next Clean Coder post.

From the blog cs-wsu – mmoussa7wsu by mmoussa7 and used with permission of the author. All other rights reserved by the author.

Clean Coder ch1

Overall, the first chapter of the book “The Clean Coder” had a lot of useful insights and lists of useful information, as well as good ideas for self-improvement. There were a few minor things I disagreed with such as always writing tests first, and testing every single line. While parts of these things are useful, actually writing the tests first is not always the best thing, and testing every line is ideal but often unnecessary unless coding in a basic environment. His point about spending time outside of work on practice is a good idea, though hard to follow. I think it is great that he talks about owning your work and the responsibility that comes with it. I do not know if I would pay a company $10,000 for a mistake I made, but the reasoning was not lost on me. Professionalism is definitely something I must work on.

From the blog shatos by shatos and used with permission of the author. All other rights reserved by the author.

Clean Code Chapter 1

After reading chapter one of clean code I have learned that as a programmer the clarity of your code matters and how you go about working in a team matters as well. I would pretty much agree with everything that was said in the book. A lot of the people in the chapter know exactly what they are talking about since they have a lot of experience in the field of computer science. If there is one thing for sure that the work environment is much different at school than it is when you start working in the industry.

From the blog ani2017 by anirudhu and used with permission of the author. All other rights reserved by the author.

The first chapter

cc

 

Chapter 1 of “The Clean Coder” was focused on what exactly clean code is. Clean code is elegant, reusable, and easy to maintain. My first couple of semesters, the primary focus when coding was hacking away until I finally found something that worked. Once I had a working version, the assignment was submitted and forgotten about. As I’ve progressed through my education, I’ve noticed something that has sort of happened naturally. Over time my code has actually become easier to read and I could go back to my code and follow along and understand my thought process at the time. I went from naming all of my variables a,b,c, etc. to actual names that mean what they represent.

After reading the first chapter, not only did I notice my progression, I also realized how much I need to improve. I now understand I must continually test my work, and also make it easier for myself to go back later on and be able to understand my code. Maintainablity and reliability have become a lot more important, and I am excited on using these ethics to improve my future work. Hopefully one day my code can be considered “clean”.

From the blog CS@worcester – My Progression as a Developer by xg2016 and used with permission of the author. All other rights reserved by the author.

The Clean Coder

After reading the first chapter of “The Clean Coder” by Robert Martin it has made me aware of many key points in the beginning of building elegant software. The most important ideas that I got from this reading was to make your code readable, versatile, and reusable. I would have to agree with everything that was spoken about during this chapter. Many of the people he had asked about it have been programming for their entire lives. They know what works and does not work, when a large majority can say that code should be “clean” then there is a high probability that it should be done this way. As I am transitioning from the school environment to the industry after this semester one thing that I could do better is making sure that code is reusable, elegant, and efficient. Working with projects in the school environment is a lot different than the industry. The project size is a lot smaller and often times the cleanliness of the code is often forgotten in order to get the assignment done on time and done right, after the point of turning it in we would not have to do anything more with it. This causes a lot of messy code that is only created to get the assignment done. I hope to work on creating cleaner code as I wrap up my time at Worcester State and start my career.

From the blog CS@worcester – Greg Tzikas by Greg Tzikas and used with permission of the author. All other rights reserved by the author.

Clean Coder

Recently, I started reading The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin. From what I am reading, there are many things described that I find very relatable and very helpful to me. I hope to use these tips in my last class as well as going forward with my professional career wherever I end up.

The first section I read is the Foreword. One of the many business practices discussed was the Batman-Robin routine, though the way Matt, the writer of this section, describes it makes it seem like at first, Matt was arguing with his team member, Joe. Then he says it’s also possible that Joe was trying to play a joke on the rest of the technical team. I find this practice very confusing. Why would a co-worker joke about a legal team having an issue that prevents a web application or a web site from launching on schedule? It doesn’t make sense to me.

Next, I move on to the Preface, which describes how in 1986, Space Shuttle Challenger exploded over 8 nmi above the ground due to a failed SRB. Anyone who has lived to see the event would know that the reaction and aftermath was enough to put family members of the deceased devastated. It also describes what would have been done to prevent this issue from happening again. Reading this, I had a sense of remorse not just for reading about the disaster, but also the aftermath: the mother of high school teacher Christa McAuliffe devastated and possibly in tears after hearing her daughter had died in flight. Immediately after reading the chapter, I immediately decided to watch a YouTube video of the disaster to get a better understanding of it. I do not remember my emotions after watching the CNN coverage of the disaster, but it was more remorse for the dead than anything else.

After reading the Acknowledgements, About the Author, and On the Cover, to which I did not find interest in the subjects in any of those sections, I finally start reading Chapter 1: Professionalism. In the chapter, it discusses many different rules of conduct for a professional. The “stuff happens “comment in the “Be Careful What You Ask For” section really gave me a good laugh. Reading about Martin’s irresponsibility in the “Taking Responsibility” section proved an interesting read, making me learn that proper testing of software will prevent complaints. This is especially true in the field of video games: as the game itself is considered software, proper testing of the game is very important to avoid many bugs, graphical glitches included. I have beta tested at least one game and still remember back in November when I tested the RollerCoaster Builder feature in a game called RollerCoaster Tycoon World (yes, I grew up with the series and continue to enjoy its progress).

The day was Sunday, November 1, 2015. It was the last day of the first Beta weekend for the game, and the team at Atari and Nvizzio was letting fans that pre-ordered the game, including myself, to test the Coaster Builder feature in the game. It was advertised to be very different from the previous three games, all of which let us build coasters piece by piece, a tedious process. In this game, the development team programmed a system that allowed for a safety rating on coaster designs. This rating was supposed to assist in improving the coasters’ design moreso than the other three ratings, which included Intensity, a rating I was more focused on when playing the game. However, there was a bug that showed its face frequently when I built certain coasters: the tighter a curve on the coaster was, the more likely the coaster was supposed to crash. On that day, on almost every coaster I built, I felt like I was doing something wrong; each coaster kept crashing at random curves, be it turns, slopes, etc., where normally I thought the coasters wouldn’t crash. I knew I wasn’t the only tester that noticed this, because the day after, I saw reports to the developers that other players were experiencing similar issues. To my knowledge, the bugs are being repaired to this day. I hope that all known bugs are caught and fixed before the game’s official release, which is supposed to be sometime this Spring.

Continuing on with the chapter.

My previous discussion about the coaster builder in World goes well with the “QA Should Find Nothing” section. The bugs I caught while playing the game is an example of a violation of the “Do No Harm” rule described earlier in the chapter. Once the developers were aware of the issues, they immediately pushed back their promised release date for the game and apologized for the mess they sent to supporters.

Finishing the chapter, I felt confident with the knowledge I was given. The moment I read the first section of the chapter, I thought to myself, “Now I know I want to take the direction of a professional in my career.” I still have this belief after reading.

I hope to read more of this book and learn more practices as I go.

From the blog cs-wsu – jdongamer by jd22292 and used with permission of the author. All other rights reserved by the author.