Alright, my dear readers. If you have read my posts up to this point, starting from my very first intro post through my recounting of the first three weeks — well, first of all, thank you. I really appreciate the fact that you have taken your time to see what I’ve been up to.
That said, I’m sad to tell you that I don’t have that much exciting update for the fourth week.
Except that on Monday, July 18, as part of Northwestern’s local partnership program, a handful of Evanston Township High School kids visited NU campus to shadow some of the graduate and undergraduate students conducting research on campus for the summer, including myself. Those kids ranged from rising sophomores to rising seniors. Rising high school sophomores already thinking about career? Are you kidding me? Wtf did *I* do back in those days? Three kids shadowed me that day: one in the morning, two in the afternoon.
Technically I was asked to do the daily tasks as usual, but instead I decided to walk them through my code line by line, explaining what each line of code helps in my research so that they can understand why I do this kind of stuff (I mean, who’d think it’s fun to just sit down watching me looking at the computer screen for hours?).
Incidentally, my task for that day was to clean up the code by removing unnecessary lines, organizing the comments, and reordering and grouping some of the code lines for better readability, which enabled me to do my daily task while explaining the code to those high school kids.
So that was that.
But then for the next two days, I found myself having an unusually hard time getting back on track. Like, on Wednesday, for example, I somehow just could not pull myself to work.
Professor Riecke, my faculty advisor for this project, warned me before that he would be out of the country from mid-July to mid-August for conference and vacation. And John, the graduate student who would provide me guidance as needed, was also in that conference, scheduled to return to office on July 26. And I failed to anticipate the temporary absence of those sources of guidance to be this much impactful on my productivity level.
Ever since Prof. Riecke and I have decided to abandon the agent-based modeling platform (for the reasons described in one of the previous posts) and switch into MATLAB platform to continue my project, my contribution boiled down to implementing the modifications I have described on my URG proposal in the original MATLAB code file written by Prof. Riecke and his former graduate students.
The problem was, I found his original code file to be poorly organized. It has evolved so over time, as he explained, upon adding bits and pieces of code snippets without sufficiently explaining why each modification was made. Because the people involved in the prior projects already knew what was going on, they didn’t feel the need to explain those things, so they didn’t bother.
Hence, the tasks that I was doing — reorganizing and updating the code, as well as writing down the explanation for each part of the code while making sure the computed output remains the same — were not the most intellectually exciting tasks you could do. In fact, they were pretty tedious. They involved line-by-line comparisons of the code (which, by the way, is this one mammoth code file with over 5,000 lines) to identify where exactly the updates were made, and how. Yes, this is a problem that could have been easily avoided with sound software engineering practices like modularization, proper documentation, and version control, but that was the point — I was doing the cleanup so that this kind of frustration could be reduced in the future.
I’m one of those people who feel depressed upon feeling unproductive. Which didn’t help — it made the looming tasks seem like even greater burden, which made me feel less certain that I’d be able to get them done on time, which then made me procrastinate even more and be even more unproductive. It was a vicious cycle!
It felt absolutely terrible on Wednesday.
Thankfully, I pulled myself back up on Thursday. Once I hit the bottom of unproductiveness and managed to sit down and start working, the so-called “sense of flow” came back. And I was able to write all the looming lines of code that I had to write for this week in one sitting.
But the unproductiveness on Wednesday turned out to be a nontrivial hit. By the end of Friday, I had some output verification tasks outstanding — the tasks I promised myself to complete by the end of the week.