Sunday 18 August 2013

The joys and woes of my first project

In my college, students pursuing B.Tech are required to make a project in the summer break following their second year. I was excited about it as it was perhaps the first time in college that we were expected to do some 'real' engineering, and not merely cram textbooks and vomit its contents on sheets in exam.

I'm quite an enthusiast but don't have much experience, or knowledge for that matter. So this project presented a great opportunity for learning while building. Choosing the topic for the project was easy, as I was determined to take up something of my interest. Having loved movies for most part of my childhood, teenage, and whatever adulthood I've lived through so far, this decision was easy.

Next came the language, and having scratched the surface of Python, I knew it was a powerful language and was eager to dig deeper into it. I decided to make a 'Movie Organiser & Recommendation Generator'. Quite a mouthful, I know, but hey, it was based on movies and working on something I enjoy was a constant motivator.

This application allowed the user to log in via his/her Facebook account and on the basis of their 'likes', suggested movies to them. It was immense fun to make, and I did and learnt a lot from my mistakes. Having started the project with the wrong methodology, I stumbled upon the correct way of doing things.

I realised that the beginning was the most difficult. You just don't know which way to go! The first thing to do is draw an outline of the idea, and decide the features to put in. Now in theory, you should have a clear road map ahead, but if you try to figure out a problem before even facing it, then you'll probably never reach the execution stage. Its empirical to keep developing as you plan, or else all you'll have in the end will be plans and no results.


Then comes learning a new language, which was the case here. Knowledge without application always seemed like a waste of time to me. So I was determined to learn something I could use in reality. And with that in mind, I set of to Dive Into Python. Learning Python was fun as I was able to get things done in no time and even automate the whole process! I needed to make a database by scraping contents off a website. So I wrote a script that parses the contents of the site and feeds it to a sqlite database. This was perhaps the best script I had made till now, and it took around 80 lines of code!!

After finishing the project I proudly went to see my Project Guide, who told me to make a GUI for the application. Now, this was unsettling, as this was going to take  a lot of time and I had no idea how to make one, but then I had no idea how to make the whole app, and I had already done it. So how hard can the User Interface can be? But this was about to become a major Woe in the timeline of my project. The GUI alone took half as much time as the entire app took. The reason perhaps was not the mere lack of knowledge, but also the lack of will. I thought of it as a waste of time, but later realized that besides the back end, one must also know a little about the front end development.

But that wasn't all. The worst job was to document the whole process and by 'document', I don't mean a blog post like this, but a complete report on the project. To be honest it wasn't the documentation that stung me that much, but it was the strict format in which the documentation was to be done.

But then at the day of the presentation, the external examiner was quite impressed by my project and I guess that was a Job Well Done.

As they say, it's the journey that is more important than the destination. I certainly enjoyed my journey and now am confident enough to take on more sophisticated projects.


Saturday 17 August 2013

Hello Null!

This would probably look like a desperate attempt not to seem cliché, and maybe it is. The act of using "Hello World" while testing a program, or while learning a new language, has become more of a tradition.

So here is to the Null, the nothingness, the emptiness, and in short, the cumulative of all those words you have for, well, 'Nothing'!

Hello Null!!!

P.S: This was an inaugural post, posted simply for the sake of posting something. Kindly don't try to find any meaning in this, simply for the reason that it doesn't have any!