09 Jan 2015, by Kevin Hebert in Developer

I’m going to start off with a quote from a reference that was given to me by a former boss:

Kevin is a learning masochist. He won’t give up until he seemingly forces the eureka moment. Because of this, every step forward he takes is a solid one. With his work ethic and brute force learning, Kevin will be a valuable asset to any tech company.”

This same man also once told me:

“If you can’t explain it, you don’t understand it.”

Now, I don’t believe that second quote one bit, but that’s for another time. I want to focus on the first quote. That quote speaks to me of persistence. I’m a very persistent person. No matter what the task is, I must complete it. This can be any type of task, i.e. ones I set for myself, or those imposed upon me. Let me give you some examples of this.

Quite recently, I was able to beat the video game Kingdom Hearts 2 Final Mix on Critical Mode. What that means is that I beat the game on the hardest difficulty the game could provide. To make it even harder, I took on the final boss fights without a way to heal myself at all. So, when my character took damage, I wasn’t able to just fix myself and keep going. Let me break down these fights for you. The final boss is separated into four stages with each stage being increasing in difficulty.  So, here I was, going through all of these stages without the ability to heal myself, in what is thought to be one of the harder battles in the game (there are other side events that are much tougher, but I’m still working on those). I began my battle at about 10pm. It wasn’t until around 3:30am, I finally completed my mission, and beat the final boss. This entire thing took me close to six hours to accomplish. However, upon inspecting the in game counter, it really only took me about 10-15 minutes. Six hours of work, for 15 minutes of accomplishment. Persistence. Setting a goal, and doing whatever it is you have to do to accomplish it.

Now, as I said, I’m not only persistent in goals I set for myself, but in those that are given to me. This includes work. Quite recently for a client I was needed to create a custom report using a technology (Telerik) that I hadn’t really worked with before. Sure, I’d done some SSMS reports, and I’d updated some wording in a Telerik report, but I never really created one. This also delved into some SQL querying that I’d never really worked with either. I’d worked with your basic CRUD before, but now I was having to write a stored procedure to pull data from several tables to generate the data for this report. As a still greenish programmer, this was a bit scary. So, I was given this layout for this report, and told it needed to look EXACTLY like the mock-up. We’re talking, to the pixel on textbox sizes. I spent a lot of time just getting the design and the layout to be just like they wanted. Now that that part was out of the way, time came to write the SQL that was going to get me the data. As stated before, I didn’t have much experience with that, so I had a co-worker or two help me with it. In the end, I came through with a bit more knowledge of how SQL works. I learned about INNER JOIN’s and calling stored procedures from the program. But, that wasn’t where my issue’s started. Once I ran the report with the data, I noticed that the layout actually started to look a bit “wonky”.  The report looked great on the first page, but on the second page and after, it started cutting itself off. You see, a report is broken into Groups. Each group has a Header, a Detail, and a Footer section. Also, the report itself has a Header and a Footer section. And each of those sections held the objects that created the report. I started looking at various properties of the report, properties of the objects in the report, and just about everything. Nothing I had tried worked. I enlisted the help of three co-workers who, upon looking at it, and checking several properties, were each in turn in a state of “Huh. I don’t know.” So, I turned to StackOverflow. I posted my question there. To this day, there are still no answers on it. I posted on Telerik forums. I had no luck there either. It wasn’t until I was at home one night, just googling some table interactions on Telerik reports that I stumbled across a potential answer. Now, since I wasn’t using the Group Footer section, I had decided to set its Visible property to “false”. I didn’t want it to clutter things up. However, this caused a problem with the size of the report compared to the size of the page and the Group section. So, I changed the Visible property to “true”, and ran my report again. This time, it worked! Every page looked exactly the way that it should.

Now, if I wasn’t the “learning masochist” that I am, I would have just passed the SQL work to someone else. Or the layout issue on to someone else. But I stuck with it. I went to co-workers and the internet to get help and learn. I feel that as a programmer we should all be persistent when it comes to learning new things. We should see learning opportunities and jump on them as they come along. We should always be learning. Which is actually a good statement about life in general. We should strive to learn something new every day, no matter how big or small it is. One co-worker today learned that middle mouse-clicking a tab will close said tab. And I learned that bleach in a car’s fuel tank is the best way to make an engine go bad. But that is a story for another time.