Saturday, May 28, 2011

The Inevitable Future (3/4th of an engineer)

Yes, I'm almost an engineer, just a quarter remaining. I have come a long way crossing each and every obstacle that is put forth. Learnt a lot of things, experienced a lot. Well nothing teaches you better than your own experience. From hardcore Operating System to Environmental Science and from Cultural education to Computer Networks ( ahh TCP/IP you are so awesome), I have learnt a lot, I really have. Okay, I know all these things but what am I going to do with all the knowledge that I have? I really have no clue.

When I was a kid when someone asks me what I wanted to become I would say 'DOCTOR'. What am I now? A typical wanna-be software engineer. What went wrong? The computer that was bought for me. I was obsessed with it, be it playing games or surfing the Internet. I forgot what my original ambition was. I started to buy components and made my computer evolve. And now it's a beast. The word hacker would definitely excite any teenager. It certainly does. I started to learn more stuff about computer. I was so motivated by Die Hard 4. 'Fire Sail' was the word to give me goosebumps.

Now that I made up my mind to learn about computers, I chose to pursue Information Technology in Amrita Vishwa Vidyapeetham.

First semester started, There was this C programming, still I was confused, why am I studying thermodynamics and to make matters worse why Engineering Drawing. I convinced myself, It is part of syllabus. Read it. Exams got over and I know that I didn't do well and the grades were not so high but that is what I deserved. Sucked at almost every subject, the worst was thermodynamics. But Gained some knowledge about programming.

Second semester was no better. But something that I looked forward in learning was physics as I was fascinated about relativity and quantum physics ( sound geeky every time you say that). I was lucky that Mr Subeesh taught me physics. I can never forget the vector calculus and differential equations taught by Mr. Vishwanathan. He made the course so interesting. His love for mathematics cannot be scaled. Respect. It was time for OOPS. Went to library regularly. Took books that looked geeky. Even if I didn't understand I would just skim through. You can always see me with a book in my bus. It is the time of exams, group studies, etc. Yay! my first A-, so excited got above 8, so happy. With the advice of Ashok Gowtham I took a book on Microsoft Foundations Class. Got home. You should see the excitement on my face. But that went like a busted balloon. I didn't understand a thing. Made me feel intimidated. Fine I gained some C++ knowledge.

Third semester, I'm a senior. I saw the syllabus and was pretty excited. In Data structures and Algorithms ( sounds cool doesn't it?) I learnt about stacks,queues,trees,graphs etc. That was the time when we(Prima Legion) participated in ICPC. International Collegiate Programming Contest is the most popular coding contest in the world. We registered, and participated in the online round. When the results came out we were shocked that we were listed among the IITs and NITs. So our trip began with our coach Mr Chandrasekar to Amritapuri. I was really an awesome experience. Even though we did badly in the on-site contest, It gave us lot of insights on how to program efficiently. Time complexity and Space complexity became our enemies. The face off is gruesome. Learnt a lot in that semester. Computer Organisation and Architecture taught me how a computer actually works. There were other interesting subjects like Digital Logic and Discrete Mathematics. Exams over. I was shocked to see that i got more than 9 GPA this time. Amazing isn't it. Hard work pays off. During the semester holidays I learnt web programming and built a simple website using PHP. I was proud of myself.

Fourth semester, I stepped in, with confidence at my side. I learnt about Operating systems. No other lab than OS lab were so interesting. Processes, threads, semaphores, synchronization became so common. I really enjoyed the assembly programming in microprocessors. Playing with registers was never this much fun. And there was this environmental science. No one bothered to read it. And how can I forget that I vomited while trying to do an all-night study. I blame the coffee that I had. And I shall never in my life still figure out what I learnt in computational chemistry. I have no clue what I did in the labs. No one had a clue to be honest. The results were pretty good. I wanted to do something different that vacation. I thought I could quit programming for a while and get my hands dirty with designing. Learnt a bit of Photoshop. My dreams of learning After Effects and Illustrator failed. Maybe I just didn't have the designer stuff in me. I recommend you  watch this.

Fifth semester, full of interesting subjects begins. I was excited to write queries for Database Management System. As time went by I got bored. Never listened in the class as I couldn't understand anything. I was so scared to face the exam. That is where Mr Gary Boetticher saved me. He has this youtube channel where he teaches some good stuff. Got in depth view of how programs that we write actually work through System Software. Learnt how an interpreter works, how symbol tables are maintained etc. There was this Object Modelling and Design. One of the subjects that I hated. All we did was draw diagrams like class diagram,sequence diagram,use case diagram. Was so boring yet they are the corner stone for every software project. Fine I designed, I developed. The most interesting subject was computer networks. Learnt sending a byte of information is not so simple. But flows through several stacks which are responsible for different actions. This time the same team registered for ICPC but didn't even qualify for the onsite contest. Got some scoldings from Mrs Rajathilagam. And how hard was it to learn all the unnecessary derivations in Laser Physics.

Sixth semester is already over. Writing programs for windows through SDK and MFC were so much fun. Yup it was actually fun animating stuff on the screen. But I really hated the theory part. You don't see a tool tip popup when you place a dot in the exam paper. TCP/IP seemed to be a déjà-vu for me. But Mr Adi Narayanan sir's class is always a treat to be in. He was really an inspiration to me. He talks pure philosophy. Ahh the fourier series and transforms in Digital Signal Processing kinda got in my nerves. Still it was interesting to play with equations. I really didn't learn anything new in Internet Technologies as I already knew some stuff like HTML,XML,JAVA. And Experienced wild theory in Software Engineering. How I cursed the subject!. Still managed to Ace the semester. Tried some game programming with UNITY game engine.

Ashok Gowtham and I used to participate in lot of events. Going to PSG Tech for events became a habit for us. Won some stuff. Participated in a coding contest conducted by AIT and won the second time. The first time we missed the 18k prize money. The reason being, we forgot to give -Wall parameter while compiling with gcc. So the warnings gave run time errors. We first had no clue why we had run time errors. We double checked array out of bounds, memory leak..Nothing..damn the online judge.
We (Cryptic calls) participated in InCTF 11, a capture the flag kind of hacking contest. The geeky fellows joined hands. Determined to win this time, planned a lot. We topped the second round which wanted us to find vulnerabilities in websites, crack some hashes, etc. The final round was the awaited capture the flag round. We had to set up a VPN(Virtual Private Network) and an internal LAN within our room. Just when the round was about to start we finally set it up. The opponents were more formidable than we thought. We didn't make it. But still it was a great experience. Hope we pwn them all next year.

As Adi sir would say "i'm not a geek, i'm more than that"

Now that i'm aware of all the things that i'm capable of, what am I going to do in future?
Stay tuned for my next post.




Sunday, May 16, 2010

WTF code

“ Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. Martin Golding

“ Programming is like sex: one mistake and you’re providing support for a lifetime. Michael Sinz

“ The trouble with programmers is that you can never tell what a programmer is doing until it’s too late. Seymour Cray


Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves. Alan Kay