Fortunately and thankfully with so many experts around, she has never run short of resources for help once she is truly stuck. Her coding skills have improved tremendously in the last couple of months. So last week when the teacher decided to group the class into senior division and intermediate division, Tanya was happy to be selected for senior division.
"What's good of being in a senior group in this busy college season?"
"Nothing except for more work and assignments, and much harder labs. But it feels good."
So last weekend, the senior group student got a lab, which is to program a game in Java, a magnitude harder than the assignment for intermediate division. This lab originates from American Computer Science League Contest #1, 1989-90 which sets 72 hours as a limit to complete the program. Tanya concentrated on this lab about 5 hours non-stop and finally got it done. Then she decided to embark on the extra credit work for bonus, which is to write a graphic demonstration of the game. I reminded her that there are essays due soon, and she should be wise in using time but she just could not stop. With this passion, what can I say, even though I know that she would hardly leave time for a decent sleep in the night.
But this graphic thing turned out to be as hard. She worked another three hours before the deadline and got it basically working except for one cosmetic bug. She had to give up on trying to fix that bug and submitted the lab with the following reflection to the teacher:
"I still have a bug....but I would call it a feature".
"a bug as a feature??" I was as confused as amused.
"Isn't that what the software giants regularly do?"
I have to agree there to certain extent. Last time I upgraded my system, some functions no longer work and they call it new features.
Tanya is really quick in coding, but lacking in design. I was pointing it out, "knowing the coding skills is fun and important, but you should spend more time in design and algorithm."
"Yes, I know that's my weakness. I usually only think about a problem for a little while, occasionally write a few lines of pseudo code for the structure, and soon I will embark on coding the solution in details, using trial and error to debug the program until it works. So my code is not most structured and optimized and sometimes I am stuck and have to go back to change the workflow. I am a coder, not an architect."
Ok, she knows her problem well. What more can I say? She will learn lessons along the way. Just like swimming, since she likes swimming in the computer language sea, let her jump in and swim.