Showing posts with label good programmer. Show all posts
Showing posts with label good programmer. Show all posts

Wednesday, August 8, 2012

Reasons why IT industry isn't the same anymore

Back in time 10 years back, being a part of the IT industry in India was considered uber-cool and elite. The profession commanded respect and even the mention of the word computer science engineer sent bells ringing in the ears of neighborhood aunties looking for grooms for their daughters. Onsite trips for a few months or sometimes years were the norm and people got richer and richer. Property prices zoomed up in cities and suburbs and property brokers thought of different techniques to fleece the buyers in the name of IT boom.

But what happened to the once elite considered profession ? Why isn't it the same anymore ?
Why has it become a dharamshala for all kinds of people ? Why doesn't it come back to it normal self (pre-2007 era) ? Where are the phenomenal salaries that were offered to employees earlier ?

Reason #1 : ( There is no IT in IT ! )
IT work involves insignificant amount of knowledge related to computer science or information technology for that matter. Anybody who knows how to click and type with decent amount of common-sense can come over and start working.

Reason #2: ( IT work is nearly complete )
Most of the IT work has already been completed and optimized in these last 12-15 years of IT boom, which leaves behind little to be done. Clients can today just order a solution over the internet, just like you order a book from amazon.com. The little configuration or customization that needs to be done doesn't need to be outsourced , it can done by hiring a few more members into the IT team of the client themselves.

Reason #3: ( Privacy Issues )
People are today concerned about their privacy and hence are the companies handling the common people's data also concerned about data security and privacy. This has led to companies forming their teams which does the IT work at their own location with lesser issues of data privacy and theft. Specially banks and investment firms.

Reason #4: ( Supply >>> Demand )
The industry is today over-saturated with employees. There is no need for much head-hunting. Thousands of employees are sitting idle today having no work to do at all (read bench). Now, how can one expect that one will be offered a envious hike when he switches companies ?

Reason 5: (Reason#1 + Reason#4)
Finally, the job is such that it doesn't require any heroic programming or analytic skills. On the floor (the workstation where you work) everybody is alike.So this leaves little for the supervisor to differentiate on the basis of your academic background/skills. So you might find a science graduate doing the same work as a electrical engineer. Companies have been seen promoting schemes for bachelor of science graduates to complete their masters along with a job at their offices. It helps them to save costs and get trained bonded resources to work for peanuts.

Monday, December 5, 2011

Reverse a Linked List

This question is one of the most repeated ones across Google, Microsoft, Amazon and a few more. The thing which makes it a good question is that after you scratch your head and give them an algorithm they either ask you to optimize it for the boundary cases (which is fine for most of the candidates) or they ask you to do it the other way round.

I am going to give you both, recursive as well as an iterative solution. For both the techniques :

Initially call the method as : head = reverseList(head,NULL)


Iterative :

Node *Reverse (Node *p)
{
   Node *pr = NULL;
   while (p != NULL)
   {
      Node *tmp = p->next;
      p->next = pr;
      pr = p;
      p = tmp;
   }
   return pr;
}
-----------------------------------------------------------------------
Recursive:

Node *reverseList(Node *current, Node *parent)
{
        Node *revHead;
   if(current == null)
      revHead = parent;
   else
   {
      revHead = reverseList(current->next,current);
      current->next = parent;      
   }
   return revHead;
}

Tuesday, November 29, 2011

Brain-Teaser


Try this without googling the answer.. also please try to justify your assumptions if any ?

A party of four travelers comes to a rickety bridge at night. The bridge can hold the weight of at most two of the travelers at a time, and it cannot be crossed without using a flashlight. The travelers have one flashlight among them. Each traveler walks at a different speed: The first can cross the bridge in 1 minute, the second in 2 minutes, the third in 5 minutes, and the fourth takes 10 minutes to cross the bridge. If two travelers cross together, they walk at the speed of the slower traveler.

What is the least amount of time in which all the travelers can cross from one side of the bridge to the other?


Saturday, November 26, 2011

So do you also want to become a good programmer someday ??

It is no secret that every programmer cherishes a dream of hitting the headlines of the for doing something really great. Although there are not many world famous programmers in this world, and the best ones rarely opt for a life in public. In most cases it is because of the nature of the work which forces them to hit their machines harder each passing day.
Believe me its no joke and neither it is a cakewalk to be successful as a programmer, because programming in the first place is not about learning programming languages, instead it is about the machine, logic and semantics. The code is just something which comes on in after the three have been developed. Choice of a particular language is purely something that is your own and u needn't be advised by anyone. Lastly, expecting overnight success just because you completed that Complete Reference or Bible of XYZ language is called stupidity and i pray to God that such people get some brains soon enough. Dear Reader, after reading the book you need to implement the constructs and syntax on your machine and some problems. Open up a few websites and blogs (like this one) and start to think about the solutions to them, and if you have done enough then start optimizing them or finding new methods to solve the same problem.
There are a few really great articles i would like you to refer :

1.  How to be a good programmer.
2.  How to be come a good programmer in.....