Hacker News new | ask | show | jobs
by av501 4656 days ago
Having interviewed 100+ candidates in past 2 years for my own startup and a similar number before in my previous job, I completely understand what the author is trying to say. Believe me when I say that 90% of my interviews simply stop at the first question (Can you write a function in C which given an integer array and its size as arguments, returns the number of zeros in an array?). My interview then turns in a small career counselling session telling them to learn and how learning to learn is important because it breaks my heart to see the young ones come out with no ability. Most of them though dejected at not clearing the interview thank me and tell me in the past 4 years that they were getting their degree nobody told them what I did. Shows really that there is nobody guiding them out there and the mindset is wrong.
3 comments

I'm in the process of converting my team of 50ish programmers in Chennai into a DevOps and "legacy apps support" org because finding people with the necessary current skills is proving too difficult. And by "current" I'm talking basic stuff like javascript competency, an understanding of what MVC is (versus dragging toolbox controls onto a webform and writing a couple lines of databinding), and the impossibility of hiring people who have programming experience in anything besides .Net (and to a lesser extent, Java, but even Java is hard to recruit for) and SQL Server or Oracle. My "low cost" (which, as a result of demand and globalization, has turned into "US light" rather than "developing world") country of choice now is Mexico, and -- judging from the recent recruiting challenges there -- I'm not alone. In the Guadalajara area, HCL, Tata, Infosys, HP, Dell, Oracle, and a raft of others are all gobbling up freshers who really can code themselves out of a box, who have good communication skills with at least passable English, who are able and interested in learning new skills, and generally speaking have much more in common culturally with the US.

I am certain there are both bright spots and bright futures ahead for the Indian IT economy (and education system), but for now I'm either putting my creative work in other countries or hiring [much higher cost] consultancies to augment the local skills in my captive team there. The cycle mentioned by other commenters here and in the blog post of finding employment solely for the sake of certification or learning a new skill to support jumping to a new employer is a huge turn off for two reasons: 1) a lot of the incoming freshers literally have zero skills and it's a huge time sink for the experienced folks to get them to the point where they can contribute, and 2) by the time someone is contributing they're already either looking for a new job or expecting promotions and salary hikes in the 20-50% per annum range. This is untenable and quite ridiculous, even with the recent inflation/currency issues. My company, like many others, have a different job code/title scale for India than everywhere else in the world, just to support the concept of having a dozen steps in between fresher (literally zero skills) and senior engineer/architect... not to mention similar things on the management side.

I could write a book on this crap and, frankly, I'm already feeling riled up just thinking about it so I'll stop here. I'll just leave it at this: I truly hope the Indian education system and cultural issues surrounding employment, family, corruption, and financial stability are worked out in the coming years, but the stress dealing with this mess through the past ten years has put me off enough to abandon ship. The cost savings is just not worth the productivity hit (not to mention subjective issues like time difference).

As a person who started one of chennai's first product development org. in the mid 90's, let me add my two cents here:

1) Hire people for their interest in programming, their core problem solving ability and the fun they have with the process.

There are lots of such people, just learn to look beyond what everyone else does. For instance, i once hired a person who could not speak much english, and who did a BA or something like that. He, later on, turned out to be one of the stars of the organization writing a core part of a VoIP solution.

2) Invest in long-term training. By that, i mean don't hire some crappy institute to come and train your people. Here from experienced folks in other organizations to come in over the weeke-end or other timings to help your team.

I remember having to train almost every member of my team in assembly, c, win16 and later on win32 among others. Some of my team members then went on to train professors in IIT, chennai. :-)

3) Mentor your team members. Show interest in them beyond what they can deliver today. Build good relationships with them and help them, both technically and otherwise. When they see you sincerely reaching out to them, they will do the same.

4) Be patient with people. If they know zilch, be frank with them and let them know that they are currently not contributing anything to the organization. However also lay out a plan for them, along with HR, to bring them up to speed in core areas; viz problem-solving, algorithm design, data structures etc Don't allow them to waste time on fancy courses from idiotic institutes. Make your senior programmers take classes some of the time. That's also part of their job.

Software can have jobs where the work involved is "crank the handle, produce output", but the majority of them do indeed require the ability to solve problems.

I interviewed one candidate several years ago, and the question was: "How do you ensure that your program works as intended?". Hoping to get answers like "I write unit tests, integration tests, test scaffolds" or even "I exercise it with different inputs", what I got was "I use Visual Studio". After rephrasing my question a couple of times and getting more or less the same answer each time, I came to the conclusion that the candidate felt that Visual Studio doesn't allow you to write bugs.

Crank the handle, produce output.

I actually blame the people who hire such idiots. Their lack of knowledge is not the problem. Their lack of curiosity is. Their lack of self-motivation is.

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.

Right - the question is pretty open ended, with lots of potential areas to explore after getting a basic answer.

As a potential employer, I'm happy to help them learn, but I'm not going to spoon-feed them. If someone is profoundly incurious, maybe they'd be better off working somewhere else. Or in another career field.

Right-o.

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.

Are you really programming in C? If so, good for you and your organization. If not, i suggest not wasting time becoming a career counselor and try finding a faster way to eliminate idiots.

I don't buy the crap that they have not been taught in collage. In the age of the internet, there are so many damn resources on every language possible on the internet that a person claiming that they know how to code in c should have a much, much higher bar set.

That was presumptuous on your part. First I shall talk about C. 2 reasons. 1.Any engineering graduate in India should know C. It is the first language they learn and use in curriculum. 2. We work in embedded and kernel domain. Welcome to a world where C is important.

Also it is not about deep understanding of pointers and stuff like that. The sad part is that most of them can't even write it in pseudo code.

As for the question of you not buying it, I can't convince you except that there are other commenters in this thread who have pointed out the same problem. This problem does exist.

>>Any engineering graduate in India should know C.

A big assumption.

When I finished my engineering, I was pretty good with assembly language programming. I could do anything with 8085 and 8086.

It took a good deal of time to learn ALP, and I'm glad I did it before learning C as I got all necessary low level details correct and complete.

But I agree your point on pseudo code.

Wow. Dude, you really need to learn how to parse english.

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.

You have serious anger issues all over the thread. Calm down a bit.
Really.

I guess you are entitled to your own imagination.

Your aggression and quips do nothing but reveal your insecurity and obviously degrade a rather sensible thread into a showdown of your ego. Kindly refrain.