![]() ![]() then you go to write this perfect implementation, annnnnddddd just nothing seems to come out as well as it looked in your head? Either interface Y just doesn't seem to be working, or maybe the dependency injection you thought would be smart in class X is backfiring in your face. I'll tell myself something along the lines of "Oh yea, I'll just create class X and parent interface Y and the code will be awesome!" Quite frequently I will design a solution that seems perfectly reasonable and easy to explain in my head, only to find that it is difficult to implement in real life. Mohamed Aladdin post on Writing Clean Code."Code smells are a set of common signs which indicate that your code is not good enough and it needs refactoring to finally have a clean code." This causes you to reevaluate, start over, and reset your entire thinking on the problem, potentially burning away hours or even days of time from your previous attempt. ![]() Have you ever had those days of programming when you seem to be on a roll, and then suddenly you realize any one of the following: 1) you missed an important edge case, 2) misunderstood either the problem or the solution, or 3) the requirements were changed out from under you? After working long enough in the software world, one, if not all three of these situations will happen to you, and its just upsetting, especially if you have already have been deep into the project or a particular implementation. The two following situations seem to occur a lot as a junior engineer, and I know many colleagues and former classmates who let these situations get to them, chasing them away from the software industry. It is however an extremely interesting book no matter your background, so I recommend giving it a read if you are looking for some crazy deep philosophy and just a few minor cases of existentialist dread. I cannot stand on a soap box and argue whether or not Camus's thinking on life, death, and the meaning of it all is correct, I simply find the story interesting and drew some conclusions to my own thinking about the Software Development Life Cycle and what it means to be a Software Engineer. I'm going to mention a piece of writing throughout this post titled The Myth of Sisyphus by Albert Camus that talks about existentialism and the absurdity of life. Religion, Politics, and The Great Pumpkin.” “There are three things I have learned never to discuss with people. Even thousands of years later, we can relate this myth to the daily grind of software engineering and programming. ![]() Sounds pretty grim, right? But there's a lot to learn from this myth and a lot to be optimistic about when digging deeper into it. He was tasked with rolling a boulder up a hill for all of eternity only to have it fall back to the bottom, all because of a con he attempted where he tried to cheat death. While coming to this acceptance, I was able to draw some notable comparisons to one of my favorite ancient Greek myths, the tale of Sisyphus the king. This made certain parts of my early career miserable, slowed down projects, led to burnout, and even made me reconsider my life choices a few times.Īs I've grown and learned from the experienced individuals around me, I've come to accept my imperfect code and imperfect solutions. If my editor was a pencil and paper, I would have gone through all of the world's supplies of erasers before ever coming to a solution, because I felt like the code I was writing wasn't good enough to give to a client or to deserve a job. "What is the point of writing code if its not the best it can be?" I would ask myself. No matter how hard I tried, things just didn't always line up and it bothered me. Something felt wrong about the code I wrote. For years as a student and into my first few years as a junior engineer, I felt dirty. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |