Sunday, November 15, 2009

Ingredients to be a successful software engineer

Ok, the title is a bit exaggerated. But this is not a post which gives the resume list "hardworking, willing to learn new things..blah blah". These are my views on what it takes to be successful (read make a lot of money) in the services industry.

50% Luck
30% Management skills
10% Mental strength
5% more luck
and..
5% Technical skills

Now I know that all you geeks will be raising your eyebrows after seeing the last item on the list. Frankly, software industry is not the place for you, go and do research, don't waste your Grey matter.

Luck


Believe it or not, you will surely need a lot of luck even to survive, let alone be successful. You will understand this once you get to know about how projects come into existence.

First of all, some top-level management guys have to find out something that people need (or atleast think that there is something that people need). After that there will be some 20 or so companies fighting it out to get hold of that project (or part of that project). Usually this is decided by doing a small prototype of the actual thing in about 1 month. This prototype would be done by a very small team, only about 1/10th of original.

Now you can imagine that most of them would show up after one month with almost the same thing. Now the guys at client side have to determine which one of them is best. Since most of them turn out to be almost the same, the selection can be as random as throwing a dice. It will depend even on they had for breakfast that morning.

So finally your company gets the project and starts working on it. The team gets expanded by a factor of 10, managers fly-in from everywhere and take charge, schedules are prepared and.. kick-off...

Management skills


Now that you have finally started working on the project you have to ensure that you are in good terms with your colleagues (not that difficult), managers (Moderately difficult), and HRs (very difficult).

If you were in the team which was doing the prototype, then you are going to get lots of requests to do other people's work. If you say "Yes to all", then you will be one of those who gets stuck at office and burn midnight oil. If you say "No to all", then you are at the risk of pissing off some of your colleagues. Unfortunately, the aforementioned two responses are the most popular for a programmer. I wonder when we'll learn to say "Yes or No appropriately" instead of a "Yes to all" or "No to all".

Now assuming that you were not part of the team initially. Then you have to get others to talk so that you could learn about the project and start being useful to the course. If you don't, you better be good at pretending (and convincing) that you are really important for the project, which again is MBAish skills.

Mental strength


How would you respond when customer wants a code clean-up and your auto-indenting tool doesn't work as expected, or the hardware doesn't work according to the spec and it takes two days to find out. These are exactly the kind of nuisances that you face while being a software engineer. Lets face it, nobody is going to do all the dirty work for you, sometimes you have to dig deep and do all that dirty stuff (Fixing makefiles, copy-pasting poorly written code...) to survive in the industry.

Technical skills


After all the dirty stuff, some technical stuff has to be done to make the customer happy. And it is the 10% you are actually going to enjoy.

I'm not claiming that the situation is exactly the same everywhere. But with my experience and what I hear from friends, it's pretty much the same.

Friday, October 30, 2009

IITM - life updates

Yesterday, I went to a temple inside campus with my friend Sunil. It was a small, quiet temple. There are 3 temples inside the campus. One in hostel zone, one in academic zone, and one in residential zone. One of those is home to a white-colored deer. It's called "meetu maan" by senior malayalees (and now by us).

Monday, September 28, 2009

IITM - life updates

The quizzes (Just another term for sessionals) are over, and shaasthra, tech fest hosted and organized by IITM, is coming up. Life's pretty busy here. I remember the days in GEC. They were so different. I mean we could get away by not studying for 51/2 months (or more) in a semester. It kills if we relax for 1 week here.

Nowadays, I am spending a lot of time watching "The big bang theory" and "Bones". Both very different, but goes well with "wannabe geeks".

Sunday, August 16, 2009

Just how tough is NLP?

I got this while auditing an introductory class on natural language processing.

A colleague recently told Roger Gould, a sociologist at the University of Chicago, about a lecture, place uncertain, referring to double negatives. Every language, the lecturer observed, has a construction in which two negatives make a positive. But in English, he said, there's no construction in which two positives make a negative.

From the hall came the perfect, anonymous response: "Yeah, right."

Wednesday, August 12, 2009

About chennai

I have been in Chennai for only one week. So this post is basically my first impression of Chennai.

The first thing that comes to mind is temperature. I am very lucky to be living in IIT-M campus which is 2-3 degrees cooler from Chennai. Water seems to be another big problem. The water that we get in the campus is fine. But outside, even packaged water has a weird taste.

The Chennai sun reminds me the sun (Can't quite remember which ad) which drains a kid using a straw.

Saturday, August 8, 2009

First class week at IIT-M

This post has been delayed for quite a long time for various reasons. I was actually going to post my first day experience. Since its been delayed for a week , I'm going to summarize my IIT-M life, first week (Everything I saved on first day in italics). Some interesting things I found out about IIT-M classes: -

The software engineering paper has a lab. Remember, this used to be one of the most boring theory-only paper during B-Tech. More info about experiments in the lab once it starts. Unfortunately, I'm going to miss the first one on monday.

The lab has started now, we have to form a "company" of 5 people and prepare a presentation about the company.

We had an introductory class on cryptography. My view on cryptography is that, no matter how strong your algorithm is, it's all going to be broken when user chooses the password (which is one part of every algorithm, I think). We know for a fact that it is simply too difficult to make people (myself included) to choose strong passwords. The company that I worked for had very strict rules for password.It required us to use letters, digits, and special chars. Also it had to be atleast 10 chars or something, and we had to change it every 2 weeks or so. After faithfully following the system for sometime, I just found it too difficult to remember my password. So I started using the approach most people followed, maintain a common prefix of letters and numbers, then cycle through all special chars each time you have to change your password. In other words, passwords are easily guessed and your cutting-edge cryptographic algorithm looks stupid(period).

Wednesday, August 5, 2009

Joined IIT-M

Yesterday was my first day at IIT-M. I've now completed all the usual admission formalities. I'm a bit surprised after that experience. I expected the thing to be simple and smooth. Instead, it was like every other college. I had to fill in my name and address in a million forms (, and I thought getting through GATE was tough).

Saturday, June 13, 2009

Life Update

I have decided to join IIT Madras for M Tech. It's funny, the only thing I can think of is "I'm gonna miss living in kerala". I'm getting homesick already.

Today is saturday. Got to help my friend here to cook. Today's special: stew (pronounced "ishtew")

"The lyf so short, the craft so longe to lerne"
- Geoffrey Chaucer

Sunday, May 3, 2009

I'm pretty good at cooking

Pazham pori is one of my favorite snacks.

Here (Technopark) it costs about Rs. 4/-. Pretty high considering the fact that here pazham pori is just pori without a pazham. So just like Linus Torvalds decided to make Linux getting sick of all crappy OS es at that time, I thought about doing the unthinkable - make pazham pori myself.

I tried it out for the first time about 5 weeks ago. It turned out to be a big hit. Then I tried it out at my kazhakoottam home with two of my friends manu and renjith. They helped me a lot too; they ate about 25 out of 40 I made (Nah..they helped me cook too). Yesterday (Apr 29), I took a shot at making pazham pori for the third time. It was a big success too.

Planning to make it a few more times because a lot of ingredients (except banana) are left over from first buy.

Don't know what to name this

That time is not far away, when Internet and phone will be free.

That time is not far away, when water and air will cost you a fortune.

Friday, April 10, 2009

Why compilers should start looking into comments!!!

/* Fix for BUG: 1313 */
jumpFlag = 0; /* Set jumpFlag to 1 */

Saturday, April 4, 2009

MS Word cleaner!!!

See http://textism.com/wordcleaner/

"A tool to strip Microsoft's proprietary tags and other superfluous noise
from Word-generated HTML documents, leaving all the basic goodness intact."

A perfect example of why closed source sucks!!!

Trying to fix up badness in programs using other programs.

Sounds like somebody should modify MS Word HTML generation part.

Thursday, March 19, 2009

Got to love this if u've heard the real song

"
Another Glitch in the Call

(Sung to the tune of a Pink Floyd song)
-
We don't need no indirection
We don't need no flow control
No data typing or declarations
Did you leave the lists alone?
-
Hey! Hacker! Leave those lists alone!
-
Chorus:
All in all, it was, just a pure-LISP function call.
All in all, it was, just a pure-LISP function call.
"

If you don't know, the real song is,
Another brick in the wall..

Friday, February 27, 2009

Habit

The most basic fact of life. Every action is influenced by habit.

Friday, January 23, 2009

23

It's Jan 23, 2009. It's been 23 years of travel through this strange loop.

Thursday, January 22, 2009

Does god exist?

Yes, God exists in minds of people. Then you may ask does it exist in reality? Take a look at this quote from "The Matrix".

"If real is what you can feel, smell, taste and see, then 'real' is simply electrical signals interpreted by your brain."

Well, real seems so un-real now. doesn't it? :-)

The most "real" place anything can exist is someone's mind. Since God exists in many (many!!!) minds. It should be more real than you or me.

"
Neo: I thought it wasn't real
Morpheus: Your mind makes it real
" - From 'The Matrix'

Friday, January 16, 2009

"I don't know"

still remains one of the hardest things for me to say.

Thursday, January 8, 2009

Emacs - customizing code indentation

In code editors with automatic indenting, we can normally customize the indentation by setting up variables. Say, "indent-space" which is an integer which determines how many spaces should be inserted from current indentation level for a nested block. It usually takes a long time to find out the name of the appropriate variable (which involves searching through a list of 1000 variables). Emacs takes a different, highly interactive approach.

The code indentation engine in Emacs works with "syntactic symbols". When you type code in emacs type "C-c C-s". The minibuffer will show the syntactic symbol near point. Now type "C-c C-o" this will ask for a syntactic symbol that you want to customize (By default it shows the one near point). Here you can select the number of spaces Emacs should use to indent this particular syntactic symbol.

For ex:-

main()
{ /* type C-c C-s here, minibuffer will show defun-open, typing C-c C-o now
will allow you to set the number of spaces Emacs should insert for a brace
starting a function definition */


PS:- A point means the position at which the cursor is in.


Wednesday, January 7, 2009

Using Emacs CVS commands

This tutorial is for us (really lazy Emacs users) who hate to get out of Emacs for those boring CVS tasks (checkout, commit...).

From shell (or if you've started Emacs and don't want to get out of Emacs try 'M-x shell')

1) Set the environment variable CVSROOT
2) Login to CVS
3) Start Emacs if you haven't already (and don't bother getting out)

Whenever I say something like go to the file and type x to do some CVS action. It means go to the line for that particular file in *cvs* buffer.

The first thing we've got to do is to checkout a repository so that we can work on it. The Emacs command for that is 'M-x cvs-checkout'. Emacs will prompt you for the name of the module (In some future version, there'll be some command 'M-x cvs-checkout-mindread' that will read your mind and figure out the module). After checking out, a *cvs* buffer will pop up showing the list of files downloaded.

If you want to edit a file, go to that file and type 'o'. After hours of typing away if you want to know the status of files, go to *cvs* and do 'M-x cvs-status'. This will show you which files were modified after checkout. If you want to find out what modifications you have made to a particular file, go to that file and type '='.

And finally when it's time to commit
'M-x cvs-do-commit'
Emacs will prompt you for a commit message. After typing it in do 'C-c C-c' to commit.

Not very relevant but you may find this useful

'C-u n C-x ^' to increase the size of a window by n lines. This is very useful for increasing the size of the window you are editing in (as you may want to keep *cvs* window small).

Bugzilla

The name of the most popular bug-tracking system is bugzilla. Bugzilla translates into "no bugs" in malayalam (bugs-illa). ;-P

Tuesday, January 6, 2009

Simplicity

Being simple is extremely difficult.

Saturday, January 3, 2009

X'mas n 2009

Now @ office waiting for my friend to finish his "Bug fixing" activity. So thought I would blog about things I did for X'mas and New year (which almost every time sums up to sleeping, sleeping and more sleeping.., but not this time).

This X'mas I (actually we pullazhians [would need to start another blog to describe all of them:)]) had my X'mas wine 'n' cake at Shine 'n' Sherine's (pullazhians, ofcourse). Then on 26th (or is it 27th, man.., I have poor memory) we went to Athirapilly, Vazhachal, and some other dam on the way. The tour was fun and *free* (as in free beer) as one of our pullazhians's father works in forest department. We were 8 (me, raseel, vc, hiranchettan, kuttan, kunku, shine, and sherine) in 2 cars (raseel's and kunku's). The tour was fun (I was assigned to the job of taking snaps of all the cool things they do :)), security shouting at me for going too near the waterfall, shine stepping on crap...(sorry dude).

And guess what I did on New year's....

slept from 9 to 7 (C'mon, I was tired after all the action).

With that, a belated Happy New Year to all my readers, keep smiling :-)...

Google is insane!!!

Just started using google reader for my favourite blogs. And when I started checking the "recommended links" section. Obviously it matches my profile with other bloggers's profile to "recommend" links. And these are the links that showed up

Three of those links were blogs of my college-mates

Life Revisited
Cool Raindrops
Free as in freedom...not as in free beer...

and the other one was that of "malayalam reality shows" or something like that.... thankfully, there is a "No thanks" link for it.

PS: Sorry for the title, Google. I love google (we all do).