enry_straker
1) Look at the background of you 3 guys, and list out problems which were being worked around in the areas of your business development or private equity or the domain of your phd friend.
There is a much higher probability of you guys having domain expertise in the areas you have been exposed to in the past, and a lot of business contacts as well - and solving a problem in those areas means that you will be able to address problems you have personally faced before - through a combination of software and services.
Note that there is no dearth of problems to be solved, but problems you have faced before personally can be a much more fruitful area for automated solutions.
Grow old.
Thus their fate today.
The difference, this time, seems to be high-level policy and a complete change of direction of the entire developer division.
If you know how to spot a good programmer with a real interest in programming, what does it matter where he started?
Only people who don't know how to spot or attract a good programmer fall back to big school names, and years of experience and all the rest of the fake stuff.
Sadly, outsourcing is here to stay and is decided upon by CxO level folks with little to no input from the tech staff.
The so-called "senior" guy just comes across as a bully. Nothing more. Nothing less.
It also indicates that the indian side did not have a good filtering system in place to keep such folks out.
It also shows that the project management was not quick to spot this trouble and try to correct the senior developer's behavioral issues.
But drawing conclusions about the culture of a billion plus people based on that seems a bit extreme.
a) Send senior management to personally oversee the outsourced work in india ( at least initially )?
b) Send detailed SRS (Software Requirement Specification) to the outsourced team?
c) Personally interview and hire the programmers who will be working on their projects?
d) Personally perform a skills audit and then try to correct any deficiencies noticed through training for the programmers?
e) perform a thorough software estimation exercise based on the previous work history of the group they plan to work with?
The reason i raise the following questions is that i notice a tendency among many to stereotype the indian programmer for various reasons, but the reason for most software failures is probably a combination of bad management, poor tracking, bad estimation practises, lack of domain expertise among programmers, and the need to save a quick buck by the folks at cxo levels.
Just my two cents
Programming is a hand-on activity, and the best way to learn programming is by doing it every day, in every way, till you can do it in your sleep.
I am really trying hard to take you seriously and not treat you like a troll.
As far as supporting code written by someone else years ago, that's just the nature of programming. If you find it too painful, get out of this industry, find something you truly enjoy and do your best in that area.
Life is too short to be struck doing something you really don't enjoy.
Here's a link to the open source linux version: http://linux-iscsi.sourceforge.net/
Also check out this site for more info: http://www.open-iscsi.org/
The Windows DDK is a good source of sample driver code. If you are a MSDN subscriber, you would be able to find it as part of your collection ( or available for download online )
Beyond that, i suggest contacting MS tech support.
If you have something useful or even your own opinion to contribute, do so. I see that you have nothing to contribute except with your imagination
I guess you are entitled to your own imagination.
But i have to admit that most python programs are a joy to read ( thanks to guido's insistence on indentation as part of the specs ) whereas most real-world C code is just horrible ( even code i had written a few years back )
Good to go with open ended questions. It's hard for candidates to memorize answers.
Sadly i see lots of these kinds of idiotic strategies on their part :-)
When i started my first company in 95 or thereabouts, i remember a person who just would not open his mouth during the entire interview. I didn't know what to make of him. I then asked my receptionist to talk to him, find out if i was being too rough or intimidating etc.
Turns out that the interviewee did not trust his own command over english enough to answer back.
Once i learned that, i just handed him a free PC, told him to try writing whatever program he wanted in the next few hours and did not set any time limits.
When i came back after lunch, i saw that he had written a complete game ( This was in the DOS days where writing a game was really difficult since there were no high-level game engines around )
The guy eventually turned out to be one of my best programmer.
1) When i said, "i don't buy that..." i was referring to people blaming the collage or university for their own lack of knowledge.
In today's world where the internet is available to everyone with a net connection, i would expect people to use some initiative, go online, search for C sources or tutorials, download free compilers and linkers, learn them thoroughly etc. ie The real blame for their lack of knowledge is with them not with their collages.
2) Why would you claim, on the one hand, that the blame for kids is with their collages and poor teaching, and then claim that i expect everyone to know c cause that's the first thing they learn in engineering?
And, lastly, don't get huffy with me, dude. If you make generalizations like "Any engineering grad in India should know C" good for you. I don't care. I really don't give a damn.
And, by the way, the constitution of india enjoins every indian to be treated equally. If you don't understand that concept, and only view life through casteist eyes, then you are in for a sad, bigoted future.
Even for "crank the handle, produce output" type of jobs, it's a bad strategy to hire idiots since they will not be doing such jobs for the rest of their lives. Projects change. clients change. Technology changes, and only people with at least a minimal amount of adaptability wlll thrive.
And to answer your generic interview question: By running it. If you probe further, things like unit test coverage, integration test coverage, debugging, seed data etc can come into the picture but that depends on your specific question.
The internet is the biggest teacher of all. With institutions like Khan Academy and MITx and Google and coursera and other MOOCs, the availability of free knowledge is plentyful for people with an ounce of interest.
And never invest in a person who does not love programming or problem solving. No amount of training can fix a character flaw.