Sunday, April 29, 2012

4/23 - 4/27 CS373 Blog Post

Good morning, everybody!

Wow, it's already the last week of classes.  It truly is incredible how fast time has flown by this semester.  And for me, this marks my last semester as an undergrad at UT.  After this, it's essentially the "real world" from here on out!

For the last few classes, we had talked about more refactoring, as well as different factory methods of refactoring.  I actually have a pretty amazing story that revolves around these ideas.  Last Wednesday after class, I had an interview for a start-up mobile development company.  We had met up at a coffee shop just to discuss things casually.  He began to ask me iOS specific questions, such as what a category is, what provisioning profiles do, delegation, et cetera.  We get to one part that becomes more generalized in object oriented programming, and he asks me what a singleton is.  Knowing this from the previous week, I began explaining the different kinds of singletons and what their general purpose is.  Immediately after this, he asks me about factory methods; the thing we had JUST talked about in class that day.  Thankfully, the idea was still very fresh in my head and I explain to him the different kinds.  I just thought it was an incredible thing to know that I had just learned these concepts within an hour, and an interviewer had asked me about it.

Anyway, factory methods and just the general idea of design patterns has always intrigued me.  I've taken a look at code that I wrote four years ago and I compare it to how I design things now, and it is incredibly different.  I used to not write any methods; everything would just go into the main body, pretty much.  Now I try to keep the main body as small and succinct as possible, and all of the inner methods the same.  Breaking things down into small, reusable methods has proven to work very well for me.  They are easily testable and it's easy to understand a function call just by seeing multiple method calls inside.  Assuming the methods have names which are relevant, it is easy to know what is going on, rather than having to parse through old code that hasn't been looked at in such a long time.

Also, congrats to Team Cache Money! What an awesome presentation.  The introductory video was very slick and a really intuitive idea; I kind of wish our team had done that!  The website is pretty awesome and very catchy.  Good job to you guys!  I felt like our presentation was decent; nothing too fancy.  There were a lot of things we could have done to make our website in general better, but we really just stuck to what needed to be done.  We were all very pleased with our product and didn't want to mess with it if it already worked well.  I'm proud of our group for all that we've got accomplished!  It is an awesome site that we pretty much derived from scratch.  I learned a tremendous amount of Python, HTML/CSS, Django, and database programming that I want to merge into my own websites.  I currently run a website in PHP, but I want to try to convert that into Python+Django, because Django is such a nice template system!  It's a lot easier to manage that than to hard-code the HTML into every PHP all the time.

Well, that's it for now.  One more week and this class is finished!

Until next time,

Corey

No comments:

Post a Comment