My initial project was quite ambitious. Now that I think about it, ScratchDB was written during some earlier years in high school when I had plenty of free time after school and I didn’t have many other things going on. This second semester at Georgia Tech is quite different from that time. For example, the entire past week I’ve been planning for 3 tests and taking 3 tests (As I am writing this all that is left is, well, 3 finals). I really haven’t had much time to sit down and work on personal projects. In the past week, the longest time I’ve gone not studying was a period of about 2 hours where I was able to watch a single episode of a new show. A project like this, where I need to design and write 3 programs, is a little ambitious for a single semester, especially when I don’t have enough time.
The previous version of my project was done when I haven’t had much computer science design knowledge, so writing the code was quite honestly extremely quick and didn’t require a ton of thinking besides “I want it to do this, let me do this”, not putting thought into efficiency, time, or space requirements. Redoing this project, since I’ve taken some classes relating to efficiency and algorithms, would simply take more time since it would be written with more care. A project of the scale I initially designed could honestly be done in a semester, but not the type of semester I’m currently living. If I had more time
like next semester where registration only gifted me with 7 hours so far this project could have at least had some basic design and perhaps some basic functionality, but since the project was technically “running” on its previous version somewhat fine, I didn’t exactly have a sense of needing to write code quickly or get design done rapidly.
When I was writing the third version of the project (this class would be the fourth), I was dealing with a second version that was falling apart and had many people trying to do things I couldn’t do with the system, so I had to re-design it quickly to stay relevant. At this point, my project has become a somewhat mainstay in the community and people are fairly content with how it works, of course there are some issues, but many of them eventually get automagically sorted out. The one thing the third version of the project could do is be somewhat resilient. The first and second versions required constant restarts and maintenance, while this iteration I simply need to restart it once every few weeks or whenever the power goes out. So I guess to sum this part up, I not only had enough time to do it, I also, unfortunately, didn’t have a ton of motivation to give it the massive amount of time it needed.
I’ve also had this same issue for a project for a club I’m in, WREK 91.1, the radio station. I was tasked (well, gave myself the task) of writing a new CD ripping system. Unfortunately, the system takes a lot of time to work on and due to its complexity, I would need to sit down for a period of a few hours to get any work done. These are the same issues with the current project. One downside to my project for WREK is that it’s already taken some funding to build a computer for it, so currently my project sits incomplete, while an expensive computer sits unused.
I wish I had more time, but unfortunately, time is an irreplaceable, non-refundable resource that is extremely limited, and I unfortunately budgeted it on other things. I hope I can eventually get the final project done, but for now I can simply discuss the difficulty of planning, and the process of trying to learn for a new project.