Thursday, January 19, 2012

The Drive

This week has been filled with senior project work.  Just a normal occurrence ever since I left you guys in October.  It's been rough, but an incredibly fulfilling experience and I will be a bit sad when it's finally over come the end of February.  I've learned a lot from doing this.  I learned that not every team I work with will be filled with assholes and there are still people out there who believe in doing quality work.  That my original chosen specialty may not be for me and that my place is within a different branch of programming.  However, I think that the most important thing that I have gotten from this project so far is confidence in my own abilities.  Allow me to clarify.

For our project we are building two separate programs per-say.  For the anonymity of both my team and the client we are working for I can not say what exactly we are making.  However, I can give some details as to what is going into them (Sorry to those who aren't programmers/technical that probably won't understand the terms):
  • One program will be built in Java with Heavy database functionality (MySQL)
  • One program will be built in C# combined with several other frameworks along with having moderate database functionality (SQL Server) (Database Functionality was a recent addition to the requirements).  Program will also require graphics and will have online capabilities
  • Programs will be complete separate entities from each other
Now as I stated a few days ago, I am working with three other guys.  One of them is not a programmer and primarily works with documentation.  That limits our programmers to two people if you do not include myself in the total.  The other two programmers (who are also database specified) have taken on the task of building the first program in Java.  That leaves the second program to me and pretty much me alone in some sort of sense.  Graphics and code in all.  Before my tech people start questioning why we are doing the programs in two separate languages, it's just what is required.  I know I am being vague and all but I really can't say what exactly I'm building.

I will be honest, this program is one of the most complicated things I have built yet.  In the beginning I was panicking because I didn't know if I have taken on more work than I was truly ready for.  But at the same time, I knew that my team was counting on me for this.  By the second week of the project I was already burying myself in articles, research papers, forums and my own little testing framework to make sure I get every little detail right for this thing.  From how security will perform if someone were to try and hack it to the minor click of a button on a panel.  I wanted to ensure that everything would be to the best of my minor ability.  This is obviously a much bigger challenge when you are working along.  But it's not like I had a choice in the matter.

We are now getting close to the end of the project.  Come the end of February we are going to have to do a huge presentation in front of the school and potential employers of what we did.  Here's the thing, we are not the only team presenting.  I guess that it kind of obvious, but still.  Senior Project itself is still a class that we have to physically attend once a week.  Rather than learning anything we go there to report our progress of what we have done each week and the mentor (professor of the "class") offers us suggestions and feedback of how we are doing.  We are in the class with three other teams.  One is a team of network majors, the other teams are programming teams.  For their projects, they are respectively building the same program that I was tasked with.  The difference between our work is that that will be the major component of their projects in comparison to our team where the Java program is really the main focus of the project.  Their programs also have a much larger scale of functionality in comparison to mine as well.

We all started this project in the beginning of September.  I started to build an official crappy prototype that barely did what it was supposed to do that was at least ready to show on power-point by the second week of November (the first two months were consisted of finding the client and designing the product they asked us to build, also a lot of paper work).  By Christmas break, I had not only demoed a fully functional prototype complete with graphics I drew MYSELF,  I threw in animations in it, for the fuck of it.  The other two teams didn't even build their live demos yet.  Teams with four to five people who were specialized  for the particular type of programming I am using did not even get close to what I did as a signal unit with limited knowledge.  After I saw how far behind they were, I decided to push my program even further by adding functionality that on a close level to what theirs would be towards the end of their products.  What they want to do with their own and appear to be struggling with took me less than a week to do.  I would never say that it will be as good as what their final product will be, but I at least showed that I have the capability to do it alone and without the help of anyone else.

MFW so far ahead
February is close, I know for a fact that I myself will be cutting it VERY close to the deadline even if I didn't make those additions.  But the other teams, they did not show a demo of their work until last week.  Their demos level of completion was where I was the last week of November, minus the database functionality which I added over the Christmas break.  For pacmans sake, one of the members from the other team was asking how to program a dropdown menu in visual studio.  How are you at this level and still don't have the capability to program a flipping Drop Down menu?  I barely knew how to make a database and did that in less than a day, you can't take two minutes of your time to look it up on Google?  Seriously?

What have you people been doing since September?  I barely know what I'm doing but apparently I am doing a better job than most of them with my limited knowledge and skills.  I'm not even saying that I don't have my own problems.  Hell I think I having more problems then the other teams.  I break my own security measures at least once a week minimum.  I'm planning on making a huge series of "Y U NO"'s by the end of this.  I'm not even trying to say that I am better than them.  I know that I am an idiot, it's just who I am.  Half the time I can't even explain what I am actually doing, I just know how to do it in my own backwards way.  Of course I do at least make sure to comment the flip out of everything (programmers will understand).  The only thing I can say I am is what the team leader told me I was ; Driven.

My friends can tell you that I am borderline obsessive with a lot of things; Harry Potter, Mass Effect lore, Formerly Teen Titans, Currently My Little Pony (Like I give a flip what your think) and most importantly, projects.  It's even more critical since a lot of potenail employers will be seeing our work and I am planning to add the program to my little portfolio that I can show them what I can do.  This is why it needs to be as perfect as it can possibly be.  Getting a job is going to depend on what I can show I can do.  Not only that, but this is still going to be used by a real client for a real business.  I don't want to fail them and give crappy work.  This is why I spend so much time just doing research rather than just working solely  on getting tied up in paperwork.  I won't say that it's perfect, but I think it's the best thing I've ever built (so far) and it's not even finished yet.  I think it's the first time I can actually say that I am proud of my work and that I am capable of actually building something that is something of true worth rather than useless crap.

I need to get back to work before I fall further behind.  Here's a new awesome song that I am just going nuts over.  I don't even know why, I just love it.


  1. Oop, must be tough having a non-programmer trying to keep up...

  2. Don't worry about it being too perfect and over prepare...sometimes the best presentations let the audience fill in the gaps. Give them a taster of your skill/knowledge/talent and say you're available at the end for more detail

  3. I'm a freshman and I'm taking up I.T and i must say that i completely understand what you're going through although i am not experiencing that ordeal yet, I have a lot of I.T friends who also need to build projects for clients and just like you, they also need to beat a deadline. Well, good luck!You can do it! : )

  4. Good luck, I'm trying to teach myself python right now though I keep getting distracted

  5. Hefty material there. I applaud you for taking so much that I would not.

  6. A good team is always refreshing! Way to take on challenging projects! Great song

  7. A good team is always refreshing! Way to take on challenging projects! Great song