Thursday, April 10, 2014

Let There Be Legal Pads (Google Summer of Code Experience Part 2)

So, when we last left off, I was just accepted into the program.

First of all, I left off some climactic details of my acceptance. About a week before I was accepted, my future mentor let me know that I was a strong candidate to be accepted (which made me very, very excited). Thus, the waiting game was on. And about a minute before the results were to be posted, the GSoC site crashed (probably due to all of the applicants logging on at once...). LUCKILY! I received an email at precisely 3:00 PST (6:00 my time), which congratulated me on my acceptance into the program.

So there we have it. Freshly accepted into the program and more excited than I can reasonably express.




So, now that I've been accepted into the program...


What now?

That was the question I asked myself for the next two weeks, when finally I got word from my mentor about how to proceed. He said, "Go learn the prototype, figure out how it works."

"Figure out how it works."

What an intriguing idea. This was to be my first experience reading actually reading someone else's code (outside of an academic environment). So I began my tasking, thinking to myself, "This seems like a fairly basic program, just a few frames and tables and graphs... shouldn't be too complicated..." And, I'm here to tell you, I was wrong. The prototype was at least 20 classes, mostly written using Eclipse JDT (which I had never seen before).

I did the only thing that I could see actually helping and I bought 3 yellow legal pads. It was the only way I knew how to handle such a large coding base. I had my three legal pads, and 2 new pens, and I picked a class and began going through line-by-line to see if I could unravel the mystery. This was when I learned my first lesson from GSoC... use comments (please, for the love of all that is good and holy). This code (~2,500 lines) had a total of 20 helpful comments. I spent the next two weeks writing note after note after note until I figured out exactly what each class did, and exactly how each fit into the puzzle that was this protoype.

Finally, I began to understand what these terribly commented classes actually did. I spent weeks pouring over them.

On the first day of the "Coding" period, my mentor told me "Okay, your first task is to create a clean project and start from the ground up."

From the ground up?

Not possible...

No comments:

Post a Comment