Artima.com has published an article of in which 15 people who attended a recent summit on Writing Better Code discuss interview techniques that can help you can find the most qualified programmers for your project.
Read How to Interview a Programmer
This Artima.com article includes comments by Josh Bloch, Andy Hunt, Bruce Eckel, Scott Meyers, Chris Sells, Dave Thomas, and many others.
How do you interview someone for a programming job?
The main question is: "Tell me about web apps you put in in production?"
If he | she can tell you about some, size, issues operations issues, he | she is a player.
A warning sign is: "The way I would do that is .... "
This is a newbie, with 0 production experience, maybe never put an app in production. Maybe an internship for this person, or * they pay you to learn if you have time on project, but not touch anything, else someone has to clean up after them. *
You want people who say: "The way I did it is" and people with production experience. If they never put an app in production, I think maybe they just never will, or worse, maybe the experiment in their code to cause the project to fail.
Otherwise, if you just want to hire people who "know of" J2EE, but have no production and operation experience, you can outscore to overseas, like India, I think the rate is less than $15 per hour.
As far as the other questions posted: What book have you read?. This can be misleading. I could buy a book on surgery and read it, but that does not make me a doctor. Reading a book on Struts, does not mean you know Struts, if you have never put a Struts application in production, and know the consequences of choices you made. So what book you read question, might make you select a pretender.
I go for operations experience as the main goal and avoid pretenders, see *.
I STRONGLY disagree with your statement about putting an app in production. The statement is relative. If I'm on an infrastructure team that creates a set of frameworks that the core business developers use; I'll never deliver it to production myself. It will be the core application developers that will deliver my code to production; most of the time without my involvement.
For debate purposes and to explore:
"infrastructure team that creates a set of frameworks that the core business developers use"
If your frameworks never made it to production, or "you" never saw conseqences of your decissions in production, I put that in a 0 column.
For every app that had your code in production/operation I do a i++. The more apps in production the better.
ps: if a candidate thinks that they should be writing their own framework, or their own jar (let's say they say they wrote caching), I would make that i--.
There are pleanty of tested jars and frameworks, no need to experienent and debug. IMO, better to reuse.
#ps: if a candidate thinks that they should be writing their own framework, or
#their own jar (let's say they say they wrote caching), I would make that i--.
#There are pleanty of tested jars and frameworks, no need to experienent and
#debug. IMO, better to reuse.
I understand what you are trying to say about frameworks. I do not
agree, but it is a valid point of view.
But you can not seriously mean that developers should not create their
own jars !
Even if you are a framework developer on the infrastructure team, if your software has been put into production by others chances are you will be involved in some way or another. Even if you did not directly put something into production you will be involved in tweaking it once it is in production. That is unless you write perfect software without any defects, in which case an interviewer would know you are lying. ;-)
Vic and Anthony, have you ever worked in a fortune 100 company where you had specific development teams (E.g. Application, Infrastructure )etc..? Or built a J2EE app which your company sold instead of using it in an ASP model. Well I have. Yes we did extensive testing in performance and scalability labs. We had test suites with over 2,000 unit tests. We had a professionaly services department that did client installations. We had business units that would build applications on top of our frameworks. Once we released the infrastructure product and trained the upstream developers, we went on to the next version. The infrastructure team was never involved. That is why I said production is a relative term and should be used loosely. I've worked with guys who were involved with the OMG and CORBA during the initial design. To disqualify them because they never put a web app into production is arrogance on your part. There is more to successful and acomplished development than a pretty web page.
Vic one last thing. To say there is an open source or COTS framework for every scenario you may encounter is false. If that were true, why do we have new frameworks appearing all the time?
If your frameworks never made it to production, or "you" never saw conseqences of your decissions in production, I put that in a 0 column.
You are a moron. If the framework myself and my team used reduced upstream application development time signifigantly, than that is a huge cost savings and a win for the company. Too many developers are focusing on what that have used to create an application and forgetting the entire purpose of creating it.
"You are a moron."
By reading the forums and public boards your candidate participates to, you can quickly get a feel of how much self-control and openness against other opinions your candidate has. It's an important criteria for team-work.
Hopefully for you, suez zeus is not a real name... :)
Vic's saying that as a framework developer, you must have some experience of seeing your framework deployed and the consequences and issues that arose from your design and deployment decisions, you are obviously not coding in a vacuum. You should easily be able to point to some relevant information you have accumulated about putting your framework into production, which is equivalent in many ways to putting the app into prduction. If you walked into an interview and said "I've written all this amazing code, but I've never seen a line of it run in a production environment and I've never had a difficult-to-resolve issue with it, I wouldn't hire you either, but obviously you must have that experience...
Once we released the infrastructure product and trained the upstream
> developers, we went on to the next version. The infrastructure team was never
release it into production, it just happened to be internal. Additionally, you state that after releasing it you went onto the next version - I assume this includes soliciting feedback from application developers for determining what needs to be added/fixed in the framework, correct?
I think that Vic's original post was intended to indicate that hiring managers should be wary of a developer which has never put anything into production. Being careful is not the same as disqualifying someone outright.
I can see where you are coming from though in stating that developing in a Fortune 100 company is vastly different than developing in small and medium size businesses and thus the hiring criteria will most likely be different. But you have to admit that experience is hugely important regardless of the company's size.
I think that Vic's original post was intended to indicate that hiring managers should be wary of a developer which has never put anything into production. Being careful is not the same as disqualifying someone outright.
Absolutely. Just because a candidate never saw their code put in production doesn't mean they are not good. There are plenty of reasons why this might happen.
However, you -- as the interviewer -- should be able to assess whether the design that the candidate used made sense, and add or subtract points based on that.
The main question is: "Tell me about web apps you put in in production?"
> If he | she can tell you about some, size, issues operations issues, he | she
> is a player.
Production experience is certainly valuable, but I don't think that you can make an interview revolve around a single question or area of expertise.
All you have to do then, is to talk to enough people who *have* experience with production apps and you can lie your way through the first part of that interview.
Besides, everone is looking for people with production experience. The trick is not to get in a bidding war for the small number of people that have what everyone is looking for. The best interviewer is the one who can find value that other people miss.
> Otherwise, if you just want to hire people who "know of" J2EE, but have no
> production and operation experience, you can outscore to overseas, like
> India, I think the rate is less than $15 per hour.
...or any experience at all. This is the biggest hurdle I have in interviewing. I go about it in a different way though. My philosophy is that if you've done something professionally, you'll retain enough of a knowledge of it to be able to discuss it in detail. That includes writing down bits of code on paper or on a board. It also includes asking questions about little details that are easily forgotten if all you've ever done is to take a course.
<Otherwise, if you just want to hire people who "know of" J2EE, but have no production and operation experience, you can outscore to overseas, like India, I think the rate is less than $15 per hour>
thats not a fair statement though not entirely false!
I work for a services firm "Infosys" which has a fair amount of J2EE skills and lots of production and operation experience.
Even if you are not convinced, there is Pramati (www.pramati.com) which is (to my knowledge) entirely an Indian effort....(they were the first guys to certify on J2EE 1.3 - technically this means something - right???)
they were the first guys to certify on J2EE 1.3
I think IBM claims that WAS 5 was the first 1.3 certified server.
Sorry, but as far as I know, it was one of the last application servers to be certified. Pramati was the first, I guess. JRun 4 was certified almost an year ago.
India has lots of J2EE Professional's, issue of cost is totally different thing, i would tell amount of applications put into production would be most by indians if u try to find that number. Jai Hind
Aren't you talking about "How to Interview a Programmer, Deployer, Tester, Performance Analyst .... "
In order to find a right software programmer it is very important to know about his following skills.
Logical analysis skills
Knowledge about process involved in design, development and review of production quality codes.
I have heard that some people asking questions about framework APIs and known bugs in industry leaders application infrastructures in interviews.
We need to hire people who have creative ideas and sincerity to learn and take responsibilities to the work, which we perform as a team in a project. Regarding the production deployment experience: I am not sure in my knowledge that software programmers and developers get production level access in all time in clients locations which follow strict rules and separation about development, testing, staging and production regions. It was not easy for me to get access to productions servers in my early days of software development. The reason behind testing tools and hardware investment in different infrastructure regions such as development, testing, staging etc are, get their developers aware about the production expectations.Most of the time, programmers and developers will be doing their work in development and testing region. Most time Access to even staging levels are restricted because staging is kind of snapshot of production.
Nowadays, people run company in their backyard too, so there is no wonder a person asking questions in an interview about production level experience. For them, development, testing, staging and production everything will be a same computer.
Outsourcing back to India is also not a bad idea. I have worked with candidates from companies such as Infosys and have seen they delivered CMM level quality software codes and documentations, The result was 200% better than a goofy guy come to my office with his funky American diploma and writing junk code.
I totally agree with you, T Q
So you agree with the following statement that TQ made:
"...Outsourcing back to India is also not a bad idea... The result was 200% better than a goofy guy come to my office with his funky American diploma and writing junk code. ..."
TQ is insinuating that Indians are better programmers than Americans and also that India has better scholastic institutions than Harvard, Stanford, MIT, and Yale.
TQ also disagrees that your behaviour should not have anything to do with getting a job.
You agree with this, then? Or did you just not like my jab concerning the Darth Maul figurine that you have on top of your monitor? Or was it my assertion regarding the Nikes and Megadeath T-Shirts you like wearing to work.
Before you reply, remember that the above paragraph is tongue-in-cheek, so no, I don't assume to know what your real garb is.
I replied to TQ's very first post and before I had a chance to read your comments.
I do not believe TQ was insinuating that Indians are better programmers than Americans. I believe he said outsourcing is a viable option and in certain conditions, it certainly is. For instance, if I was to own a company with tight financial constraints, potentially outsourcing my QA team would be a worthwhile
option to pursue.
As far scholastic institutions, there are some top schools in India that rivals the best of what America can offer. Ever heard of IIT?
And listen mate, lets stick to the topic at hand and stay away from poking each other. If you must know, I am wearing a Gucci Shirt, Tommy Hilfiger trousers, Rockport shoes and Calvin Klien underpants.
According to an article I saw on 60 Minutes, IIT is actually far more difficult to get into than _any_ US uni, and just as rigorous. Of course, Boston College is better (and I might be slightly biased on that score since that's where I went).
Northwest Alliance for Computational Science and Engineering
According to an article I saw on 60 Minutes, IIT is actually far more difficult to get into than _any_ US uni, and just as rigorous. Of course, Boston College is better (and I might be slightly biased on that score since that's where I went).
> Jason McKerr
> Northwest Alliance for Computational Science and Engineering
This does not necessary mean that IIT is better than US universities, right? As I know, there is only one good university in India, that is IIT. That is the major reason makes it so difficult to get in with about 1 billion people, right? I come from China, I know how difficult it is to get into the best universities in China, but that does not mean they are better than MIT.
> > According to an article I saw on 60 Minutes, IIT is actually far more difficult to get into than _any_ US uni, and just as rigorous. Of course, Boston College is better (and I might be slightly biased on that score since that's where I went).
> > Jason McKerr
> > Northwest Alliance for Computational Science and Engineering
> This does not necessary mean that IIT is better than US universities, right? As I know, there is only one good university in India, that is IIT. That is the major reason makes it so difficult to get in with about 1 billion people, right? I come from China, I know how difficult it is to get into the best universities in China, but that does not mean they are better than MIT.
I dont know what "60 minutes" is, but I think Jason was mentioning on some comment by Vinod Khosla - which might be biased (like Jasons ;) because he studied there. See http://www.washtech.org/wt/news/industry/display.php?ID_Content=444
for some comments on IIT - which might again be biased.
IMO, the fact that getting into IIT is tough does not indicate anything about the quality of education there - as you suggested. But it does indicate that the students passing out from there *might* adapt easily to the highly competitive world out there - afterall, they were at IIT by beating 150,000+ peers - they did posses some gut for hardwork, dedication etc at a very young age!
Are you comparing IIT with Chineese Universities?????
funny and very funny.
dude, IIT is not a place for duplicate technology such as stealing nuclear and research papers from all over the world. IIT is a place to excellence and quality. IIT's foundation is logical and mathematical skills. It is not made stealing or copying others technology and put a "made in china brand on it" . Well regarding your software quality and level of communication with other part of the world, I have worked with a lot of guys from china :)). Well they are good for cheap work, stealing technology, duplicating technology etc, so please keep IIT out of your shit comparision. It might be easy for building a world and show others we are going to be a super power,if you don't give any value to freedom and choice in life.
So we know T Q is an India, probably from IIT, and he's getting a bit nervous(or jealous?) when people mention about China. But I don't think it's a proper place to pick up this topic.
We were discussing interview skills :) :)
It made interesting but nont-nice reading.
Line # Error
[jsp src:line #:18]
Class _components.Enumeration not found. Enumeration errorEnum = useCaseResultsBean.getErrors();
That's because JSPs suck.
No way. TQ is from China.
All righty then...Alma mater wars...
Everybody tends to defend their turf with a little over-zealousness. Between IIT and Boston, most people tend to forget that the most brilliant people (technically brilliant if not socially) do not really give too much importance to the degrees that they hold (or do not hold).
Some of my friends are Chemical Engineers, Chartered accountants, some don't have any degree whatsoever - and technically brilliant- atleast 6 of them are on some JCP or on some specification team or have officially reviewed some top technical books.
So don't get carried away with the degree-flashing.
Being an Indian, I smarted at Vic's comments myself. I took the time to post a message with as little sarcasm as I could manage and then sat back comfortable with the thought that I probably know more than Vic will ever know about J2EE and more importantly - about people.
Relax guys..get back to work...and don't let degrees, generalizations and your nationalities get in the way of hiring good people.
Relax guys..get back to work...and don't let degrees, generalizations and your nationalities get in the way of hiring good people.
Well Said Rakesh..
That was a good one... Keep it up...
Well, I had the "luck"(?) to spend 10 months working for the Indian branch of a USA consulting company and was really impressed... because I met a guy from IIT, who was working for a German company and was unable to explain to me what TCP/IP is all about. (His role even was "Network Specialist").
I am not saying all of them are not good. There must be at least 10000 very good ones, considering the whole population of 100000000000 people who lives there. :-)
Well Well , you are the biggest fool, another idiot who jumped into conclusion by following your US consulting company boss. You asked him about TCP/IP. Did you or your boss ever asked him what was his specializations or major subject in IIT???????????. There are 300 specializations in IIT and some idiots like your boss will select people from IIT with a specialization such as hotel management, environmental study etc into Information Technology. Even most of the Infosys employees from IITs have low level and non-computer science degrees such as chemical engineering, mechanical engineering etc. There is no wonder you couldn't get a proper answer for TCP/IP from him. It is your company's problem that they send you to India for asking questions about TCP/IP to a non computer science IIT professional who got selected into your consulting firm for an IT job just cuz of the value difference in dollar and India rupees.
I am sure your consulting firm never ever going to get an IIT or major Indian technical institute candidates from Information technology specialization, who went IIT through a merit seat. I am sorry you guys again got fooled. Open your eyes dude.
My dear masala-eater:
I am just a poor developer from a third-world country located in South America. We don't have major degrees here. You get a bachelor degree in CS after spending 5 years of study. Despite the fact that most of my experience is related to application development I DO know about TCP/IP and Compilers and Turing Machine and Models and Simulation. Maybe I do not know by heart all the algorithms that Donal Knuth stated in his clasic 3 book series "The Art of Computer Programming" but I do know about them.
PLEASE, would you mind reading again what I have posted??
Programming in South America!!!. May be it is all about how to clean toilets in North America or pack drugs in South America or cross boarder in Mexico. I was talking about computer technology, information system, VHDL, design approach, logical approach to business problems etc and selection of right candidates to do that job. It is nothing to do with business in South America. Would you please read the purpose of theserverside.com? It is for intellectual people, not for toilet cleaners or drug dealers. Sorry to inform you about your real business.
Anyway, there is a place in North America called Seattle and there is one fellow named Bill, he is the richest person, may 100 times more than your South American drug dealer. He knows much about IIT and he realized that more than 15 years ago. That is the reason he is number one in richest peoples list in this world. Want to know more about it read newspapers or Internet such as the link below
I understand you are not having a good back ground and your words are not decent.
Why don't you get out from this site and do something useful?
I recommend to this site web master to remove all your messages and login access to this site.
I am not quite sure about how good are your technical side, but I am sure you are very rude, very aggressive person, even other people just have different opinions. it must be a painful thing to have you as a teammate.
BTW, Don't use the hand wrongly when you grab your food!
The most troubling thing about TQ is his obvious racism against any non-Indian. He seems to really hate Americans. He looks down on American schools and thinks that American citizens are "...idiots...".
TQs attitude will eventually catch up to him and he will be discovered by his superiors (who are most likely American citizens), so don't waste your breath trying to cajole him into feeling badly about his comments.
I've always felt that those who have something to hide are the ones who sound like TQ. TQ is afraid and lonely, and the only reason he feels empowered to speak so rudely is because he knows, in the end, that nobody pays attention to him anyway. Let's try to ignore him from now on --- I know that everyone was hoping that he would keep his word and stop writing to this thread, but it's obvious that this is the only way TQ will feel that people will know that he exists.
The only cause of TQ having a job is because he agrees to work for minimum wage.If he dare to ask for a fair wage they send him back to mcdonalds.Why would any body hire someone like TQ unless they can save money?He says he makes a lot of money but i dont belive it for a minute.He probably has no job and is just a 17 year old student.
Most important thing is as long as they respect me I respect them too. In my personal life, I might be far better than you in social service or being there for suffering people. I don't want to explain that here. Regarding my salary and technical skills, I don't have to explain to you guys cuz it is far better than any of yours( visit some of my technical reviews in serverside.com). I am rude to some people cuz they look into others through their bad eyes. In last email that person replied to my post with a heading something like "Masala eater" . I don't know what it is, but it is none of his business to use bad words. I never used any thread for abusing others people in first place. I might have replied for some threads in bad words where people started all these junks.
Anyway I am sorry, if I have ever hurt anybody's feeling. I am not an anti american or racist. I am just a human being who hate bad people.
You are a LIAR. Your very first answer to my posting was "Well Well , you are the biggest fool, another idiot who jumped into conclusion by following your US consulting company boss..." AND "... and some idiots like your boss ...".
By the way, I like Chicken Masala or a nice Chicken Tika but sure dislike people with fifth-world attitude who thinks with their butt when the time comes to discuss in a civilized way. (that is of course, assumming they think)
And again: READ and UNDERSTAND what I wrote, if you are able to find any RUDE word in my original posting, I will apologize. Hope you will do the same if you are not able to find any. Deal?
From Larry Ellison's view,I would like to add some points :
I'm an Indian,first of all and working here in USA for the past 3 years with overall 6 years of IT experience.I'm a consultant and so has worked with various clients at client places as a contractor so far in USA.
From what I found in my experience is :
1.Most Indians don't even think using deodrant/body spray/cologne is essential.
2.Mouth freshners,not required at all times.
3.slurping,burping and similar activities are very common as they are not rude in Asia(but rude in USA).
4.Most Indian developers/programmers working with Indian consulting companies in USA had their resume beefed up but in original,have very less experience and fake projects.some of them would even interview the original candidate and get the details of the project and use it in their resume.This is because the Indian consulting companies force them to do it to get a project.
5.Most of the Indian programmers,they have no idea what they are doing.This is because,they are not actually from the computer programming background.back in India,getting H1B visa was pretty simple : get a fake experience letter,get a fake degree just to clear INS rules.This process is very common from a particular state of India,i.e.,Andhra Pradesh.Also in 1999-2000,you can get a H1B visa for 2-3 lakh rupees(4k-6k US dollars),if u just have a degree.
6.English is very badly spoken by many indians(especially Andhra Pradesh,even though English is the medium of communication in India).
7.This is because the American companies don't need quality work,but want to reduce the cost of IT projects,so tries to reduce the billing rates and hence un professional candidates are obtained at very lower rates.
8.I know many Indians after reading this,would flame at me.Job commitment is something new for Indians still.
9.This is just about Indians and I'm not sure about other people from different countries as I haven't worked with them very much.
I am relatively new to the server side. I am very troubled by this particular discussion thread; it doesn't seem to belong to this site. Its very discriminating nature makes it an ideal candidate for skinhead.com or kkk.com where handful of uneducated, low IQ individuals wrongfully uses disk space, CPU cycles and network bandwidth to produce excrement. Why bunch of grown up, educated IT professionals reducing themselves to participate in such discussion?
I have been in this industry for almost 18 years and seen many competent professionals from many different countries especially from Asian continent.
Let’s take the higher hand and ignore the offending elements on this thread. Let’s make 119 the final message count.
Thanks in advance to those who wish the same.
To add to what has been posted by Tony Blair, I recommend that TSS moderators pitching in before letting any "oof the topic" post get into the threads, including this one.
can any one explain why you are picking this site for posting junk topics like this. lets post something useful.
I think you have forgotten that out of 1 billion ppl only 1 lakh ppl gives the exam. And I think you never got chance to see the IIT enterance paper.
Just look at the papers specially before 93. Then you will come to know the standard of IITs.
Well, I agree with you on your very first posting on this discussion form. I am staying out of the spat between you and Larry.
OK thanks Jay. So I guess what you're saying is that you don't "...totally..." agree with TQ.
Would it be more accurate to say that you partially agree with TQ?
How about this: You like the part TQ says about not having to behave or dress accordingly because you believe that IT professionals in the corporate world should not have to worry about annoying things like that.
But you don't agree with TQs racism against USA and Americans, the very people that had at one time given him the wonderful opportunity of being paid $450/hour?
What about TQ's crack about my mother and his profanity? Or would you say that you feel that this comment, if anything, reinforces my insinuation that TQ would probably make it further in life if he (or she) took pride in himself, even anonymously?
Bottom Line: Would *YOU* hire TQ after reading his statements in this message board? Perhaps more interesting: would you let TQ into your home and introduce him to your mother, sister, daughter, or wife given the statements he immediately gave us concerning women?
Thanks for the clarification,
It's a shame that TQ chose to use the expletives that he did to address your post. But thats all I have to say really about that - thats something between you and him. I inadvertently got dragged into it.
Whatever happened to the topic of hiring decent programmers?
Right, I understand your position better now, thank you.
The reason the thread seems to have curtailed is because I brought up another factor that people should consider when hiring not only programmers, but any corporate employee.
I suggested that we take a look at the intangible qualities of people, such as their personality, choice of clothing, and communication characteristics. I did not intend to suggest that this mean that only "good-looking" people get hired -- the discrimination, if you will, is based on traits that people must LEARN, not be born with.
One of those traits is etiquette, and I find it sorely lacking in today's IT industry. I am a consultant who travels semi-frequently. I can't begin to explain how frustrating it is to work with people who speak over each other, about each other, come to work with offensive body odor, smelly sneakers, etc. In my experience, I found that people who dress nice, have good manners, communicate very well, and have respect for each other are ALWAYS ALWAYS ALWAYS the best choice for the job. These are the "smart" people. These are the "go-getters".
The correlation is 100% on the nose every time, and that's why I think business etiquette should be used as a tool when deciding who to hire out of a pool of hundreds of otherwise technically-equal candidates.
Take the candidate to lunch. Does he eat like a pig? Does he use profanity? What about his appearance? Is it obvious that he takes no pride in his clothing? If so, this probably suggests that he takes no pride in other things he does.
If he can't be bothered to take care of himself and treat himself and others with dignity and respect, however in the world do you reason that he will do the same for your company?!?!?
I agree with you there - etiquette is an important factor, particularly if potential employee is exposed to the end client. Nonetheless, it is all too often overlooked where hiring decisions are made mainly on technical skills. Towards the end of the decision process, your idea of taking the candidate out to lunch to gauge his/her interpersonal skills and judging how well the candidate will "fit in" to a particular work environment sounds like something companies should make more of an effort on.
Yes, sometimes I find myself absolutely appalled at some of the hiring decisions companies make. And then some people have the nerve to complain that these problems are due to bad schools or cultural differences. In my experience, I have met the most fantastic people from India, China, Russia, and yes, even America. These people have a certain aura about them -- they attract others to them and will NEVER be out of a job no matter what.
There are several truths to business etiquette that would save the industry some grief:
1) First impression is not everything, but it might as well be. If a candidate doesn't have the etiquette to dress nicely, smile, or participate in a conversation like a decent human being when you first meet him or her, then say goodbye, because that's how he or she will react in other pressure-filled situations.
2) There's lots of technically talented people out there who can not only push out code, but they'll also encourage a little something called "spirit" in the workplace. There's NOTHING like having a work environment where people actually enjoy coming to work every day and working with their team. You don't get that with theories that we've heard previously, where it was suggested that arrogant people and their technical skills are the only meaningful data when deciding who to hire. You also don't get that with people who can't understand why it's important to learn how to speak English correctly and express your correctly.
3) These special people who are not only technically talented and possess outstanding communication skills can be involved in MANY OTHER careers other than IT. The argument that a company puts forth when explaining why the salary is $40000/year since an Indian living in Bangalore doesn't mind working for $15/hour becomes irrelevant when considering these kinds of people. Again, you get what you pay for -- if you want a cog in a machine, then outsource your employees. If hiring managers want a dynamic, exciting workplace, then the company must redirect the company's expenses such that salaries are high enough to retain these special people. A programmer is a dime a dozen nowadays, I certainly won't be wasting my time holding interviews for people who are so one-dimensional as TQ is. Man, I know dozens of TQs who will work for peanuts!
So who's better off?
2. Could not agree more. Maybe it is the type of work we do that requires a lot of attention, but often, coming to work in lot of places is like attending a funeral. If you have a motivated bunch of people who have their fun but at the same time look forward to coming to work everyday and solving challenges, I reckon you have a blueprint for success in the long term. But it is pretty difficult to appraise such qualities in a candidate based on just one or two hours of mostly technical questions, which is typical of most companies.
About a year and a half ago when the market was probably at its lowest , we searched for a top notch person who, in addition to technical skills, had excellent client facing and communication skills. We searched for 7 months, and finally did find someone. However, he had several other offers already and chose another opportunity. Goes to show that there are tons of programmers out there but finding somebody outstanding is analogous to finding a needle in a haystack.
"...since an Indian living in Bangalore doesn't mind working for $15/hour becomes irrelevant when considering these kinds of people. Again, you get what you pay for --"
Are you suggesting that an Indian getting paid $15/hour in India is inferior in his or her skills when compared to an American earning $80/hour in America? I don't understand the context of your quote "you get what you pay for"...
Either you are trying to be arrogant (as Vic, the Consummate idiot on this forum who brought India into this thread for no reason) or totally clueless. Reading your other posts, I assume the later may be true.
FYI... I am an Indian Immigrant who is working for a premier American company here in America and I know the skills of the $15 programmer much more than you do.
Your question is reasonable considering the context you have taken it in; however, this is not the intention. The reason you believe I was concentrating solely on programmers in India is because you did not follow the analogy I had presented as I intended. I should take part of the blame for this as it seems like I could have communicated better. Please allow me to frame the quote in the way I originally meant to:
"...These special people who are not only technically talented and possess outstanding communication skills can be involved in MANY OTHER careers other than IT. The argument that a company puts forth when explaining why the salary is $40000/year since an Indian living in Bangalore doesn't mind working for $15/hour becomes irrelevant when considering these kinds of people. Again, you get what you pay for..."
This quote of mine intended to provide the reader with an understanding of how a US resident (whether the resident is an immigrant or natural born American is irrelevant) can provide a prospective employer with a reason why she or he is worth more than the $15/hour he can get away with paying somebody in India.
So on the contrary, I am saying that the people in India are technically competent, and that US residents are going to have to provide good reasons why they should be earning more than an Indian resident. And like I mentioned in a previous posts, I have no doubt of the Indian talent and its value to the world -- I admire it, and am trying to show the programming world that we have to change our skillset if we want to justify higher salaries for ourselves. We can no longer compete with foreign talent, ESPECIALLY based on raw talent alone. We will lose that argument very quickly.
Also: Forgive me if I sound arrogant, but I am well-versed in the "..skills of the $15/hour programmer..." as you put it. I have worked with over 100 premier American companies in my years as a consultant and understand the capabilities of these people, whether they are from India or Timbuktu. Although I cannot claim to have lived in India like you obviously have, I have worked directly with a couple of big India-based tech firms, so I consider myself aware of the talent that India has to offer.
And it's good, no doubt about it. But please don't miss my point -- My argument is now, more than ever, that etiquette skills will set us apart from the these outsourced people. I hope you are not offended by that comment --- there are American "cogs" as well as Indian "cogs", European "cogs" etc etc... When I say "these people", I mean the people that are providing the same services that US residents do at a highly discounted rate.
I believe that the "cogs" are a dime a dozen. We need to improve our skillset in order to get the limited jobs that are available. Learning how to act in the corporate world is one very important differentiator, especially when you are competing with somebody whose communication consists of phone conferences and badly worded email (for the most part). It's a niche that is ripe for exploitation, and I for one see a huge opportunity to take advantage of it.
I hope that clears things up! Thank you for your insight!
Lawrie Cornwell and yourself have brought up some very insightful comments. I totally agree with your opinion about interviews and etiquette. It's such a pity that people react so (unduly) violently but as you said, it's a smoke cloud that hides something deeper. I find TQ quite aggressive (that does not mean I would not hire him, only if I did, I would have to manage this aggressivity). He's not that anonymous either (check the WebLogic Portal review).
I'm striving to get that etiquette myself, it's not always so easy but this is a domain where girlfriends excel at - a girlfriend is the programmer's best friend :). Overall, the etiquette can be summed up as "Respect your customers and colleagues" and goes way beyond the IT world. But then, respect is not everything, you need skilled people too. Sometimes you need to accept trade-offs between the two.
Anyway, I also wanted to stress that you have impressive communication skills (in my opinion). But why do you use two aliases to post here ?
Thanks for your comments -- yes, I also believe that compromising on the traits you mentioned will be necessary. Common sense tells us that there is nobody among us who is going to be perfect in both technical and soft skills, so some give and take will be necessary.
My aggressive stance on this topic was mostly in response to TQ's original comments, in which he discounted completely the idea that soft skills such as etiquette, personality, and demeanor mean nothing. He also went on further to compare people who have these traits to the French genocidal colonialists of yesteryear, insinuating that anybody with an ounce of etiquette is probably a person from a rag-tag American university who creates garbage code. And then he had the nerve to call my argument ridiculous, which is ironic considering all the generalizations he made.
Anyway, enough of that... I think everybody agrees that IT job hunters need to add more to their skillset, and that was the main point of my debate.
As far as you trying to improve your etiquette -- that's fantastic, may I recommend that you purchase a book or two on the subject? I just finished ordering two more from Amazon.
After doing a great deal of research on this topic, I came to question *what it was* about the people who managed to achieve executive status -- did these people have any commonalities? CEOs, CIOs, etc etc always seem to share the same characteristics: These successful people are for the most part very well-mannered, dress impeccably, speak courteously, and are very intelligent. I know that that may strike a chord with some people, as it is commonplace to have antogonism between programmers and executives, but the bottom line is that these people have reached the top for many reasons, and I am convinced that their skills at mastering business etiquette are one of the many major factors why.
Some may argue that executives are an elite group of people who get to the top because of who they know, and not because of their tangible accomplishments. I readily agree with that --- it's all about who you know, and the best way to get to know the "right people" is to improve your communication and social skills. There's nothing wrong with achieving status based on your ability to communicate well --- in fact, isn't that what computer science's most highest goal is all about, communicating more efficiently? Of course it is, computers are here to serve our needs for information technology, and for the most part, programmers are here to act as a proxy between human communication needs and a computers ability to facilite the information necessary to achieve that.
PS: I used different aliases because during the course of this thread I inadvertantly deleted my cookies. It's been a long time since I manually logged into theserverside.com, so I had forgotten my password. As a result, I had to sign up again... Of course, Larry Ellison is not my real name. I would never use my real name on a public message board. Googling a candidate is becoming more and more common, and I would hate to have a prospective employer judge me based on what my past comments on theserverside.com were, good or bad.
Googling a candidate is becoming more and more common, and I would hate to have a prospective employer judge me based on what my past comments on theserverside.com were, good or bad.
I do tend to "google" candidates myself, and I don't see why you're afraid of it. As Yann said, you are articulate. I think positive engagement in the community is a good thing. I don't see why I wouldn't want to put my name to anything I posted in a public forum.
If I'm looking for an architect-level candidate, I would hope that they had made a contribution to the community, whether in insightful posts, open source/other development, articles etc. I wouldn't be concerned to find posts I didn't agree with. I would look at the quality of argument. Abusive posts would be a negative.
I think personality is very important. I think deep technical skills are still rare, even in the current market. But maturity, ability to communicate, ability to appreciate business requirements and take an interest in the business are also very important.
Thanks for the feedback; I do actually post using my real name quite often, I just decided not to do it for this thread because I had a feeling that a few nutcases would be coming out of the woodwork with some major anger management issues.
Given that there were references to my mother in some very unflattering terms, it looks like I made the right choice.
Of course, I believe that whether a person posts anonymously or not, he or she should always stay true to the most important aspect of communicating their ideas, and that is keeping your opinions and personality consistent. The name, in the end, is irrelevant.
Well obviously anything abusive from _other_ posters doesn't reflect on the original poster, unless his or her post was abusive in the first place or he descended to name calling.
Message #75003: Posted By: Leonard Ellison on February 25, 2003 @ 02:30 PM in response to Message #75002.
"How you behave in anonymity is ALWAYS a window into your true personality. Although you may get away with all the juvenile behaviour you want on an anonymous message board, the only person you're fooling is yourself. One day, your true personality will slip out in public because you've been "practicing" anonymously for so long."
Message #75091: Posted By: Larry Ellison on February 26, 2003 @ 10:55 AM in response to Message #75076.
"I had to sign up again... Of course, Larry Ellison is not my real name. I would never use my real name on a public message board. Googling a candidate is becoming more and more common, and I would hate to have a prospective employer judge me based on what my past comments on theserverside.com were, good or bad. "
Message #75102: Posted By: Larry Ellison on February 26, 2003 @ 12:24 PM in response to Message #75095.
"Thanks for the feedback; I do actually post using my real name quite often, I just decided not to do it for this thread because I had a feeling that a few nutcases would be coming out of the woodwork with some major anger management issues."
Confusing... Let me clarify
1. You also have no control anger, right?
2. Do you have the grit to stand up for what you say? If yes, then why
Well I waited for this Larry guy to answer, but I guess he got sick and tired of talking to idiots like you "Siplin".
Siplin, you dork... don't you get it?!?!?! Whoever this Larry guy is, he is making a statement to you by beeing ananymous. How do we know that your real name is "Siplin"? How do we know who "T Q" is?!?!? TQ could be anybody!! YOU could be anybody!!
Larry is saying that though he's anonymos, he will not use that as a exuse to act like an idiot like TQ. and he doesn't. we all asked TQ to say his real name, and he never did. that's because tq is too ashamed to post his real name. He's afraid of being fired for expressing his racist views, and i dont blame him.
Why does larry have to give his real name to make his words sound right/ MY name really isnt Colon, but I still think you are a loser, and whether or not I am real doesn't make my statement false. You are a loser, and that's the truth.
Larry asks all people who dont care about hygene: take a look at your smelly body and ugly haircut and get a clue. and yes, white socks ARE a stupid thing to wear, dont you have any pride?! I dont agree with alot of what larry says about looking for the right person in a interview, but one thing i DO agree with is his disgust for people who dont give a dime about appearance. It DOES matter. Everyday i work with both americans AND indians who stink and who make me pity them when i see them wear clothes that look like they have been around since 1980. that's just plain stupidity.
I dont care if your a programmer or a manager, get some pride.
i forgot to mention, here are the real life examples of why larry is right: the indian i worked with would only shower on wednesdays. he would also wear the same shirt to work at least 3 days a week, but there were many weeks where he just wore the same thing everyday, he didnt care. he got salary of 51 thousand a year, so he had the money to buy new clothes and some soap but i guess because he was encouraged by people like you "not to worry about appearance", he decided that it was better to spend the money elsewhere. and the american that i had a problem with wore dirty high-cut sneakers to work, and he would tuck his blue jeans into them and leave the shoelaces loose, so he looked REALLY stupid. since the reset of us at the office has to dress in a good way, we compalaine to the boss. the boss told the american that he needs to wear dress clothes to work. so what did the american do? he wears a nice pair of cordoroy pants with.... you bet... DIRTY HIGH CUT SNEAKERS. it was the stupidist thing i ever saw in my life.
Here I was blaming pointy haired bosses about it all, when Colon comes and says he's complained to the boss about... someone's sneakers and how it looks with the jeans tucked in them. Not about their professional skills, not about their contribution to the project, not about the value they're providing to the company, but about how their sneakers and pants looked together.
Well, come to think about it, I can see a point there. Someone who's a total incompetent, will want to try hard to shift the company's focus from competence to dress codes and god knows what other irrelevant issues. If your only skill is dressing right, of course, you'll want to try hard to get the boss to believe that that's the only needed skill. So let's hammer in the idea that we don't want people who can code (or sometimes even tell a mouse from a microphone), we need people whose footwear looks right. Otherwise, god forbid, the boss might get funny ideas, like "hey, maybe we could use more good programmers, and less of those good dressed louts who just camp the coffee machine half the day, and beat each other's record at painting cell phone logos the other half of the day." Can't have that ;)
And of course, when the project fails and the company goes bust, the well dressed tick will just move to another host and couldn't care less. He'll have one more project on his resume (and no doubt he'll get "creative" and say he was the lead programmer, not the guy who only produced excuses and complained to the boss about everyone else), and he'll have the right clothes and smile to impress a clueless HR droid.
So here's a new idea for you: yes, he had the money to get a ton of shirts and sneakers per year. But maybe the issue here is _time_. Maybe, just maybe, he was spending his free unpaid time learning how to better do his job. Maybe, just maybe, while his coleagues were busy shopping for a cool new tie to go with that suit, or perfecting their people skills at the pub, that guy was in fact doing unpaid work for the company at home. (Yes, learning stuff for the job on one's free time _is_ in fact doing work for the company.) And actually giving them a lot more than 51 thousand a year worth of value.
Just a wild idea.
But either way, thanks for clearing things up. Have a nice day.
no, i don't believe what you said. i believe that this person has a mental defect that prevents him from understanding how to be a professional.
i know dozens of americans who can look and act like a professional AS WELL AS code like one. it is these kind of people that i would want in my company, not the uber-nerds like you who think it's OK to not shower.
i also have a rule of thumb -- anyone who says "Oh, poor me, i work at home for free and provide even more value to my company" does not really do that. People who brag about working long hours and yadda yadda yadda are really just pretending to be hard at work. And when they go home, they are playing with their He-Man figurines, trying to understand why they too cannot have muscles. Isn't one of the best exercises you can do called the "Keyboard Press"? Hmmmm.
you want america to consider you a good candidate for a job, any job? Then smarten up and take some pride in your choice of clothes. you people disgust me.
I don't know about your company, but I had co-workers who stayed at work until 2 AM to keep a project on track, in spite of the fact that it wasn't their fault that it was badly planned. The boss had admitted that he had knowingly set the deadline too short, so we'd still get the contract at all cost. Everyone liked the boss, though, so noone told him "screw you, then code overnight yourself to keep that stupid deadline."
Or let's talk about a friend who bought a laptop out of his own money, so he can work at home for the company too. That's already a bit too hard-core even for _my_ taste, but the guy did it.
Or let's talk about another friend who not only installed WebSphere and Oracle at home to try some stuff for the project, but had to buy a new computer (again: with his own money) for that too. His old computer couldn't handle all that.
And I'm not even talking about "small" expenses, like people buying several dozens of programming books out of one's own pocket and reading them on one's supposedly free time.
Basically I don't even need to use myself as an example or anything: I just need to look around me to see these things happening. They're not many, but these people exist. And sometimes I don't even need to look for them: some of these guys can't even talk about anything else than their work any more.
Maybe you're working at the wrong company, if you really never saw anything like this around you? Or maybe it's just that these things are easier to notice when one isn't obsessed with pointing everyone else's deffects?
I mean, really, when your main argument into this talk are your lame phantasies about your co-workers "playing with he-man figurines" at home and envying the plastic "muscles" on some toy... I really can't picture you as anything but insecure and obssessed with proving that the others are worse off than you. I figure that was probably supposed to be an insult, but the thing is: it just came out pathetic. Not even insulting or anything. Just plain old sad that someone might actually need such a lame phantasy about their co-workers, to bandage their own insecure little ego.
Now I don't know if you really are like that. Maybe not. But coming up with such a sad and insecure phantasy, sure comes out that way. Might want to re-read before you post lame stuff like that in anger. As they say: "a closed mouth gathers no foot."
Either way, just for my curiosity, how much time a day _do_ you stare at someone's shoes, that it becomes your main concern? Is that an obsession, or? No, really. In my average day at work, what I have in front of my nose normally is a computer screen, not other people's shoes. I might remember someone's coat, as I talked to them over the monitor, but not what they wore from the waist down. Even if I strictly speaking saw their pants or shoes once or twice in that day, chances are that either (A) it didn't even register, being that at the moment I had a head full of "how do I solve this weird XA issue in this MDB" or some such, (B) those 10 _seconds_ didn't even start to matter, compared to the _hours_ of having to think about the project, or (C) both.
But yes, there are people who are good professionals and can also dress good. Not too many, but there are. Some can indeed dress very very good. But guess what? Those can still prove their own worth by their own code. They don't have to run to the boss and belittle their coleagues at every occasion. The moment when all someone has to prove is the others' deffects (and doubly so when said deffects are 100% irrelevant to the project), instead of proving their own worth... you can be sure that they themselves don't believe they have much worth in the first place. Regardless of how they dress.
Let me recap: The good professionals can prove their _own_ worth. By comparison with the best of the industry, _not_ by some low aimed comparison like "hey, but there's one guy in the company who's worse than me." (Doubly so when the sole criterion for that "worse" judgment is something completely irrelevant to the job in the first place.)
The _really_ good professionals don't even have to try to prove anything at all. They'll let their work's quality will do the talking for them.
Someone mentioned sports. Yes, that comparison will have to do. Which players are the _really_ good ones? The ones who actually can hit the ball, or the ones whose only skill is complaining about every other player? That's my whole point. There too, the good ones can just point at their own achievements. While the _really_ good ones don't even have to point at anything, because it's already obvious.
And there you may start to glimpse why some people make a point to not give a darn about silly little dress codes, or do something as purposely silly as stuffing some expensive pants into their sneakers. Because they'd rather be appreciated for their work than for their socks. Because a job where your shoes matter more than your code, sometimes may be more humiliating to keep than to lose. That silly outfit may actually be trying to tell you something.
None of that makes a single bit of sense to me. you complain that i am posting stupid things, yet you seem to feel free to go ahead and write the most far-fetched generalizations this thread has seen up to this point. Here are some of Your Highlihts:
I had co-workers who stayed at work until 2 AM to keep a project on track, in spite of the fact that it wasn't their fault that it was badly planned
--- Well, you are all very stupid people. The last time that happened to me, i made sure that i was paid for it. if money could not be part of the equation, then i made sure that i was at least recognized for my efforts, such as getting a promotion or making me a part of the planning next time.
Or let's talk about a friend who bought a laptop out of his own money, so he can work at home for the company too
--- Talk about him? OK, here's what i have to say about him --- he's a chump! Anytime i need to buy software/hardware in order to better my work, i get my employer to pay for it, and my employer gladly pays for it because i am an investment, not a sucker. you keep bringing up points that make you and those around you look foolish.
And I'm not even talking about "small" expenses, like people buying several dozens of programming books out of one's own pocket and reading them on one's supposedly free time
I do this too, I wont criticize you on this point. I enjoy reading the books and i don't ask for compensation on this. But we're talking about books that are under $40 each, give or take.
some of these guys can't even talk about anything else than their work any more.
If work is their life and they have no social or personal ambitionss, then keep them far away from companies that actually take pride in what they do business. although i know you don't agree, there are many companies that do not like the idea of having a social retard on their staff.
Either way, just for my curiosity, how much time a day _do_ you stare at someone's shoes, that it becomes your main concern?
--- I spend exactly 2 seconds looking at people's shoes. if i see dirty high cut sneakers or anything like that, i immediately file this person under "R" for "Retard".
Because they'd rather be appreciated for their work than for their socks
--- which 3rd world country do you work in? here in america, where we are civilized and educated and take pride in EVERYTHING we do, not just our little code abilities, we are critiqued on EVERYTHING about us. It makes us better people than those who are hired only because they can push code. if you honestly believe that you can look and smell like a homeless person and be respected in america, you got another thing coming.
The rest of your diatribe made no sense.
..that there are 2 kinds of people:
1) those who work.
2) those whose only skill is trying hard to make themselves look good. Often by bad-mouthing their coleagues to the boss at every occasion, and for every single irrelevant issue.
So let us recap: the one achievement you felt a need to brag about, the one notable contribution to the company, was... making someone wear other pants. In your own words, you only spend only 2 seconds looking at someone's shoes... yet it was reason enough to complain about that to the boss. Maybe because complaining is what you do best? (See Dan's "people programmers.") Well, then I didn't really expect you to understand the first category in the first place.
So yeah, I don't doubt that people like you will consider the actual workers as "retards" and insist that companies should only hire and promote the second category. Makes perfect sense. Yeah, I don't doubt that you'll find some nationalistic tangent or whatnot to show how much more valuable your shoelace tying skills are, than someone's coding skills.
Well, guess what? In america or anywhere else, you still need someone who can program, if you actually want to deliver a software product. In america or anywhere else, still only about 1 in 4 people paid as programmers can actually program. In america or anywhere else, over half the projects still fail.
Feel free to take pride in your shoelace tying skills, and I won't try to take that away from you. But for your company to actually deliver a product, that's one totally irrelevant skill. What they really need is someone who can make that product. Same as if they needed to make a poster what they'd really need is a graphics artist, and same as if they needed to make a building they needed an architect, and same as if they were dealing with the client's health instead of the client's computers they'd need a doctor... to make programs in the end the one skill they need is, surprise, "programming".
Hiring and promoting people just because they have some irrelevant skill, no matter how much that skill fits the american dream, is in the end just a way to hurt themselves. E.g., it's ok for someone to take pride in their car driving skills, but you wouldn't want someone whose only skill is driving as an architect. That building will collapse in no time. E.g., it's ok for someone to take pride in their children, but nevertheless if someone had a "show me pictures of your kids" test as the sole criterion for hiring a doctor, they'd be just digging their own grave. E.g., it's ok for someone to take pride in their stamp collection, but you wouldn't hire a graphics artist just based on their stamp collection. You'd want to see what can they draw. Etc.
Well, same idea here. It's ok for you to take pride in your clothing, or adherence to the american way, or whatnot, but for your company those skills won't give them a software product to sell.
So while I _know_ that, yes, a lot of companies do hire for stupid irrelevant criteria, like shoes, socks and pants... well, guess what? A lot of companies go bankrupt or struggle with some badly designed and badly programmed system, which is a nightmare (and a financial black hole) to maintain. Or worse yet, deliver it broken like that and let the client struggle with the monstrosity of a mis-programmed product. It happens in america just as well as in other places.
And you know what? If one of those doesn't hire me, I'm perfectly content with that.
Examples from actual projects, where people hired for the awfully wrong skills didn't help the project:
1) One client basically needed to work with some very simple and small trees. Basically the program had to deal with cutting a square board in exactly two smaller boards. Each of which can be again cut into exactly two other boards. And so on. Yep, it's a tree.
So they think they can do better than my offer, and hire their own mathematician with supposedly extensive programming experience. Well dressed too. Now mathematicians invented trees, so it makes sense. Even I thought "oh well, if they actually hired someone like that, they'll probably do better than we could in the first place." Wrong. After two months that guy and one other worker were still struggling with saving and loading a tree to a file. Not only it still didn't work right, it took almost 10 minutes to load a very small tree from the disc. Their code was not only fully unusable (guess who had to save that project?), they had actually made a sick and twisted mess of an attempt to _avoid_ using trees. They really had no clue how to traverse a tree, and obviously couldn't be bothered to learn that from a book either. As simple as that.
2) Had someone briefly as a co-worker. Very well dressed, I might add. Sold himself to the boss as a Swing programming expert, apparently. And got placed in a simple Swing project, as the only programmer in that team. (A very uncomfortable position for an impostor: basically being a parasite without a host.) After a couple of weeks of being obviously incompetent, and his only solutions being stuff like "can't we just tell the client that it's impossible to change the look and feel of a JTree?"... he just quit in the middle of the project, in the most non-professional way. Just sent an e-mail to the boss along the lines of "I found another job, I don't care what my contract says, starting tomorrow I'm not coming to work any more."
3) The project between big corporations that I've mentioned earlier. They had a couple of very well dressed people. Very good at smooth-talking the client too. But utterly clueless at actually doing their job.
Now I'm not saying that these guys were incompetent _because_ of being well dressed. But they got hired by testing an irrelevant and unrelated skill: their clothing sense. And they served as living proof that when you don't test that someone also has the relevant skill (in this case: programming), well, it can well happen that they just don't have that skill. These didn't.
Christian, you are a very narcissitic and arrogant person.
Do you actually think that anybody took the time to read the 2000-word essay you just posted?!?!?
Just by scanning it, I saw that you are still defiant. You should know that me and my colleagues all look great and code great, and so we are in the top 5% of the salary bracket.
You and your colleagues dress like children going to a puppet show, but you can still code great. Well, I guarantee you that you do not even come close to my salary.
Grow up Christian. The world is not what it "should" be. The world is what it "is". You can rebel all you want, it won't change things.
People will still look at you as the guy they can abuse and make stay until 2am, while people like me go home and put my feet up on the couch, and look at my 6 digit paycheck. There will always be the "haves" and the "have nots", so please, keep up your attitude. The more have-nots for me to take advantage of, the better.
_If_ you can indeed code great (how you look is not my problem), then what is your problem in the first place? I seem to recall having said that my problem is only with the useless non-functional products and useless non-productive people bought _solely_ based on looks, hype and other irrelevant criteria. My problem is strictly with the billions of gallons of snake oil sold and bought every year in this industry. If you're not one of them, you're not my problem anyway.
So if in the end all you're trying to say is "my boss is willing to blow a large chunk of extra corporate money just to see a bunch of nice suits in the cubicles, when equal competence without the suits would have cost less"... well, I'm not going to complain. (Again: as long as he actually gets some functional code at the end of the day, not just the suits. Which most often is not the case.) It drives the wages up for everyone, in the end.
Me, I'm still going to go for my own niche, though. Not because of some rebellion, not because of some idealized view of the world, but just because in the very real world it's more comfortable and less stressful. To me, anyway. There are things I like to do. (E.g., give me a challenging task to code, and leave me in peace to code it, and I'll be a happy camper. Show some appreciation for a work well done, at least verbally, and I'll be even happier.) And there are things I do not want to do, even though I do know they pay slightly better. (E.g., no, I will not be a substitute marketeer. E.g., no, I will not take part in silly office backstabbing games. Etc.) If it takes a silly outfit and a bad haircut to let a potential employer know that right from the start, then a silly outfit and a bad haircut it is.
So what you're saying is that even though you are aware that you could probably show your professionalism in a better way by cleaning yourself up, using underarm deoderant, or wearing decent clothes --- you won't do it because you are afraid that all your nerdy buddies will label you as a useless coder, a showboat, or just as a person with a "nice suit".
And you're saying that you think that it is I who have a problem?!?!?!
Check your head.
Huh? Where did I say I didn't use deodorant? And where did I mention what my buddies would think, or whether I'd even care? Or are we back to your "unwashed nerds playing with he-man figurines" fantasies again? :)
The point is what I'm willing to do and what I'm _not_ willing to do for that job. The point is what _I_ think. Would I sell my soul for slightly more money? Nope. (Though I wouldn't say no if someone offered more cash and let me do the same job.) As I've said before, all things being equal I'd rather have a job I like, than one which just pays a couple thousand more per year. So I'll basically wear a costume which says "Warning: anti-social. Keep me hidden behind a monitor", because that's the kind of job I'm looking for.
As for my buddies? They would just say "hey, cool. congrats on the raise, man" and go back to their Linux hacking. Some of them actually wear funny suits and put up with some idiot for more money themselves. If that's their thing, more power to them, as far as I'm concerned. Some don't. Who cares?
The thing you don't seem to understand is that this whole "culture" is not about costumes: some wear a suit, some wear jeans, and none of us cares either way. That business suit (or lack thereof) is strictly something between you and your boss. No more, no less. It's about competence. If you can't code your way out of a brown paper bag, noone will respect you for either suit or jeans. If you can produce clean, efficient code and produce it within a reasonable time frame (debugging happens, but spending 2 months just to save and load a tree is right out), noone could care less if you wear an expensive suit, or bermudas, or a BDSM harness, or whatever.
The ones who actually care about suits one way or the other are the imposters: the ones who jumped from some other job into CS, not for love (or sometimes even understanding) of computers, but just because "hey, it pays more." So they just fake a resume, put on whatever disguise they think goes with that resume, and cheat and lie their way past a clueless HR droid who's doing the job interviews.
Either way, we're already off-topic. The topic, last I remember, was how to sort out candidates when you're the one _hiring_. So, shoot. Your turn. If you think your asking for more money just because you wear a funny suit, actually gives better ROI to your employer, please feel free to enlighten everyone as to: how. Do your clients pay more money just because the software is written by well dressed civilized Americans? Does anyone actually pay a premium to keep a museum of funny suits in business? 'Cause last I checked, most clients couldn't care less if their system ran on a computer made in Malaysia, with a Chinese chipset, Korean RAM, an IBM hard drive made in Hungary, a Japanese monitor, and with software made in India. Heck, they couldn't care less if it was made by monkeys in a zoo. As Oracle, Sun and a few others have already discovered.
Ussually companies are out there, looking for people with good programming skills and able to be team players. Nobody looks for *soccer stars*. If you can not realize that simple fact, you are in big trouble.
I am not going to even bother with you any more, because:
1. You are never going to change your mind. You do not believe that appearance, professionalism, and good manners are correlated to success. You just don't get it. You believe that people are judged very simply and logically by the work they do only. It's not "who you know", it's "what you know", right? OK, great.
2. You keep answering with excruciatingly long posts that I have no time to read. You need to learn the art of internet posting, keeping things brief. Or is this something else that you do not "believe" in?
3. I need more people like you to keep thinking the way you do, so there is more opportunity for people like me to walk into a company and easily become more valuable than the nerds in the cubicle. Keep it up!
You still keep hammering on the idea that "but I get more money because I'm well dressed". Which noone contested so far. Yes, there are more than enough clueless HR droids hiring based on sock colours. Yes, when selling yourself, if all you want is more money, a suit and a tie help. Now let's get over this part.
But you still have to answer the issue that this thread is about hiring people, not about getting _yourself_ hired by some HR droid. So ok, if (as an example) I were to hire you for a project, why should I pay more money just because you wear a suit? What benefits would your suit bring to my programming project? I actually want to know.
Team playing is good and fine, and indeed you'll want to have that as a priority when hiring someone. It _is_ a professional skill in this line of work. Not the only skill, but it is a very important one. (And even in soccer, though I'm not a big soccer fan, I get the idea that it's a team who wins a game, not one person doing that singlehandedly.) I would argue though that you can't tell that just from someone's clothing, skin colour, car, haircut, etc, either. Same as any other professional skill.
So far I've been in teams with bad haircuts and ugly clothing, which worked excellently together. At the other end, I've also seen well dressed teams whose only team-related occupation was making sure to try to make their co-workers look bad, for whatever irrelevant reasons, in some endless personal quest to be the one who gets the promotion. Somehow those teams didn't seem to work that well. (When Guy1 has the first priority to make Guy2 and Guy3 look bad to the boss, you can safely bet that when Guy2 runs into a problem and Guy1 knows how to solve it, he won't help. Ever.) And various other combinations.
Basically being a team player or a git or a backstabbing snake, is something completely orthogonal to the dressing code. Someone can be either, regardless of whether they dress in the nicest suit or the ugliest heavy metal t-shirt. You _will_ have to test that skill too when hiring, and be prepared to do some firing if you accidentally hired someone who can't work well in that team.
> If I'm looking for an architect-level candidate...
I thought I might start a new thread here based on your comment, Rod, if you don't mind. How different would the interview be if you were looking for an Architect as opposed to a programmer? And to muddle the waters some more, if you had to measure an architect's performance during quarterly reviews, how would you do it?
I appreciate any feedback
You don't need to hire me, okay, by the way I don't work for a Chinese who use their language at the moment he saw another Chinese in lunch table or even in rest room. In California, you guys have some sad mental issues following you from your past. You may think, others came here through their educational qualification but your people came here by running away from a communist country where freedom is not even possible in dreams.
I am not planning to work for either Larry or you. I have a decent job with pay me a 5 digit US $ / month. You guys talk about shirts and shoes. I know people like you never going to change cuz your mind and brain is made from a history of negligence and agony and pain of hunting by others. so when ever you get a chance you try to explore your feeling by making comments on others and hating them. Instead of understanding the limitations you guys tried to hide it with manipulated data and documents, that is all about your life and you going to live in that pain, sorry dude, I can only one thing change for the goodness of humanity and learn from it.
T Q wrote:
> Nowadays, people run company in their backyard too, so there is no wonder a
> person asking questions in an interview about production level experience.
> For them, development, testing, staging and production everything will be a
> same computer.
The backyard days are mostly a thing in past when the dot com era was booming!
Product level experience is where the QA folks start their career. When a bright QA engineer "migrates" to software development, the client focus that the production experience brings into the team helps the project ultimately.
Having worked the otherway around just like what you mention about most development folks, I would value any bit of client-oriented-ness the candidate brings in, more than knowledge about bit-shifting perhaps;-)
A warning sign is: "The way I would do that is .... "
I don't really think that the tense that someone answers questions is a particularly valid way of discriminating between candidates. I would always expect people to have made mistakes on previous projects and learnt something (especially when using new technologies) - I don't think you can write-off a candidate just because they have learnt a better way of doing something and talk about using this new approach in the future tense in their interview. Nobody is perfect (and anybody who thinks their last project was perfect is the last person you would want to hire!) Also projects aren't production lines where each project will use exactly the same technologies as the last - so I would always say that adaptability and intelligence are much more important criteria, especially if you are hiring for the long-term...
My take on interviewing is that there are six important parts to an interview:
1. First Impressions.
Make the candidate feel comfortable. Get them a drink. Ease them in gently by making some small-talk. Then chat with them about their hobbies and interests. This is a good chance to see if they will fit in to the company, and be the sort of peron you want to work with. As far as I am concerned, first impressions count. If a candidate is not well-presented and cannot talk enthusiastically and intelligently about the subjects they love best then this is not a good start...
2. CV Run-through.
Some general questions here on the projects they have listed. Get the candidate to talk about their role, and the break-down of their responsibilites on the project. Get them to talk about the team they worked with, how they communicated, any issues, etc. Get them to talk about the process/methodology used on these projects and how they would improve upon them. Get them to discuss some of the technological problems they (or others) had whilst working on the project and how these were solved. Ask them what they would do differently if they could do it all over again. - I usually find these answers tell you a lot about a candidate's level of involvement / responsibility within a project.
3. General OO, Java, Design Patterns, and Database design questions (/test)
I like to see someone that really understands the basics. I start easy and work up to some real toughies (whilst keeping it firmly in the back of my mind that NOONE knows everything!). If a candidate is hesitating give them a clue. I've heard of so many interviewers who try to catch-out the interviewee with their questions. This is not the way to go! If a candidate doesn't seem to get it, it is quite often just that your question is badly worded or ambiguous. I always think the approach should be to try and squeeze out what someone does know, not what they don't.
Some examples of the tougher questions I like to ask: when to use inheritance versus composition and delegation, what is encapsulation (this should lead on to more probing questions about defensive copying and immutable objects), compare pass-by-value to pass-by-reference, discuss type-safe constants/enums (and any issues with using them in a distributed environemnt), what design patterns did you utilise in your last project (and then probe deeper about why they used each pattern, how they were implemented, and the trade-offs involved). For developer db questions I like to ask about normalisation, inner and outer-joins, nested sub-queries, correlated (repeating) sub-queries, views, stored procedures, optimisation of queries, how transactions are handled in the database they are most familiar with (including transaction isolation levels), multiuser concurreny issues (optimistic and pessimistic locking strategies)
4. Technology specific questions (/test)
I tend towards the view that it only worth asking questions about technologies that they will have to use on your project and which they have stated on their CV. I always think that if it is down on the CV, then it is a licence to grill! But I still like to start with easy questions and then build on these. E.g. asking about execeptions in EJB: To start with I ask about the different types (i.e. Application Exceptions, System Exceptions, Checked Subsystem Exceptions), then I ask tem to go into detail about what these mean and how they are treated by the container and how the developer should handle each of these. It is then informative to ask about how Application Exceptions were handled on their last project - i.e. did they have a base application exception that they extended, how was logging handled, etc. Other questions I'd ask about EJB include: What method of persistence did they use (and go into detail of the implementation issues, alternatives that could have been used, advantages and disadvantages), if they used entity beans I'd ask about inheritence issues and workarounds, what container specific functionality they'd used and why, what J2EE design patterns had they used (and again I'd ask why they used each pattern, how they were implemented, and the trade-offs involved), what restrictions are there on EJBs (and see if they understood why those restrictions were there, and also ask if they thought helper classes had the same restrictions).
5. General logic questions (/test)
I find a logical mind to be possibly the most important criteria for a good developer. Everything else can be learnt (whether through books OR experience - usually a combination is best).
6. Samples of code
I agree with the article that getting a candidate solve a programming problem "on-the-spot" is not a useful excercise because it does not mirror how they would do this in a work situation. Like was said in the article, in a work situation some developers like to think about the problem, try out different solutions, refactor, or even rewrite their solutions. Ideally, I think it is useful if you can get the candidate to bring a sample of code from their previous project as well as to get them to bring in a solution to a programming problem (that you have set them prior to the interview). This gives you a gives you a lot of scope for discussion, and to probe their level of understanding.
I know this probably sounds like a long drawn out process, but I think you very much get out what you put in at the interview stage. And if your company likes to say "our people are our biggest asset" then this is one of the key times to put this in to practice. I would also like to say that we should all remember what it is like to be on the receiving end of an interview, and that the adage "do as you would be done by" is good one. IMO If you are not going to offer an interviewee the job then you should let them know this promptly, and brief them as to why they did not get the job. This is not only good manners (after all the candidate will have put in considerable effort to undertake the interview process) but I think it also reflects well on your company's professionalism and does not leave a potentially customer with a bad taste in their mouth.
Some examples of the tougher questions I like to ask: when to use inheritance versus composition and delegation, what is encapsulation (this should lead on to more probing questions about defensive copying and immutable objects), compare pass-by-value to pass-by-reference, discuss type-safe constants(and any issues with using them in a distributed environemnt), what design patterns did you utilise in your last project (and then probe deeper about why they used each pattern, how they were implemented, and the trade-offs involved). For developer db questions I like to ask about normalisation, inner and outer-joins, nested sub-queries, correlated (repeating) sub-queries, views, stored procedures, optimisation of queries, how transactions are handled in the database they are most familiar with (including transaction isolation levels), multiuser concurreny issues (optimistic and pessimistic locking strategies)
I would say "Huh?".
I would never pass this interview nor would you ever hire me, because I would think that you like to show me your knowledge rather than to proof my own.
If I do an interview with a candidate, I prefer to talk about real problems, stuff the candidate should resolve later once I hire him/her. I have no concept and that might be the reason why I have failed to find the proper candidates most of the times. At the end it was always a very expensive journey...
I did say these were the TOUGHER questions I would ask! These are the ones I would use to really gauge whether someone was an expert in these areas. As I also said, I would start with much easier questions and work my way up to the tough ones.
And "Huh" is a perfectly valid answer to any of these! As I said, if a candidate did not understand the question I would try and rephrase it, and then give them some pointers as to what I am looking for. I would give the candidate as much encouragement as I could. As I said, I am looking to find out how much people DO know (not what they don't), and not (as you suspect) to prove how much I know. However, having said that, I would say that I strive to know as much as I can about the technologies I work with, and I hope for this attitude from those I hire.
I think most people would agree that most of these tougher questions are perfectly reasonable for interviewing lead (or senior) developers working on large EJB-based systems.
I am always looking to improve my interviewing technique though so I am very interested as to which questions in particular you think are unclear or unreasonable?
I would also be interested to hear other peoples' comments on my techniques / questions.
I am always looking to improve my interviewing technique though so I am very interested as to which questions in particular you think are unclear or unreasonable?
Everything is clear and everything is reasonable. However, from my view (as an older developer), I wouldn't like to talk about OO or locking methods. Rather I'd like to talk about the project for which you like to hire me. That has a simple reason: I'd like to know whether this is a job for *me*. You know, my option is also to say "no, thanks". Instead, due to all this general theoretical questions I have to spend effort before you might talk about what I like to know.
In the interviews I have done (where I was the interviewer), I always started with the job. If my impression was that it is worse to talk further, then I talk further. Having said that, I have no concept. And I failed most of the times with my selection.
Currently I think that a test (development, one day or so) would help to select the proper candidate, but I'm not sure. It depends whether the candidate is willing to be tested. I guess, I wouldn't be willing to be tested. ;-)
I have no idea. I'm a developer, not a HR specialist. But I have to do this work as well.
I know what you mean - back a few years ago, when times were good, I turned down several interviews where they wanted me to come in several times to take various tests (psychometric tests, by the way, don't rate very highly in my opinion - has ANYONE found these a useful tool?). But that was a when it was a sellers market and I could cherry-pick my roles. I think, today, many developers will find they have no option but to take any tests that a potential employer asks of them if they want to find work. So employers should use this to their advantage if it can deliver them a better quality employee.
Also, it always left me with a bad feeling if the interviewer did not ask me any difficult questions or if they did not give me any tests to measure the level of my knowledge. I would worry that the person interviewing me might not be that competent and if they were to be my new boss then that troubled me. Also I see an interview as an oportunity for the candidate to shine. If I'm seeing ten candidates then I want to be able to differentiate them and make them appropriate offers (or not). And when I used to look at it from the other side of the desk, when I was being interviewed, I always liked to have the chance to show how good I was - "challenge me" was what I was always thinking. I wanted the chance to show that I was the best candidate and that I was worth paying more than a cheaper candidate. Perhaps that's just my competitive streak coming through, but I strongly believe that talent and hard-work should be rewarded.
I agree with you totally about one thing, and I missed this out of my original mail, the first thing you should do in an interview is to tell the candidate all about the company, the project, and the role they are applying for. Like you say, we should never forget (and many employers do) that this is a two-way process. I always used to use the interview as my way to discriminate between job offers (quite frequently above the contract rate), and even now when times are harder I think this is worth keeping in mind.
I think Lawrie's questions are perfectly reasonable for any senior J2EE developer position.
They also indirectly bring out the point that a 30 minute interview is insufficient. If you are hiring someone who could be with you for years, spend a couple of hours with them - at least. It is an investment, and avoiding a mistake will save a large amount of money.
Additionally, make sure existing team members interview them. Getting the viewpoint of a couple of other people is invaluable. Don't kid yourself that you can spot all potential flaws. A second interview a day or two later can help also.
The bank I'm currently working interviewed me for 2 hours the first time, and about 1.5 hours the second time - this for a contract position. It involved 5 different individual interviewers. The team I'm working with was hired the same way, and it is an excellent team to work with. All my colleagues are sharp, experienced and motivated.
Hands down, the best programmers I have ever worked with are those who *understand business requirements*.
Remember, computer programming is an art. Any OO language is an extension of a person's expressions with regards to programming a computer to do something. If you are smart and can understand how to read between the lines, you will be a good programmer, period.
I have worked with people right out of school who I have trusted more to deliver code requirements than so-called "seasoned developers" who don't mind coding for 16 hours a day on something stupid.
You will know that you have found one of these "smart" people 5 minutes into the interview. She or he will have dressed nicely, groomed nicely, smiled a lot, actually *listened* to your questions and responded with an intelligent answer (whether it's the exact answer you are looking for or not), and has provided evidence that she or he is self-motivated and has a passion for IT. These are the people who ALWAYS get jobs no matter what the state of the economy is like. These are the people who always seem to be the exception to the rule, the edge cases that don't quite fit into a predictable model. These are the people that you feel comfortable leaving hard assignments to, even though you have an A-type personality. They are finishers, meticulous organizers, and even have a life outside of work. They work 8 hours a day and they are worth every penny.
The IT industry is far too complex in its projects nowadays to have us led to the assumption that programmers can be placed into a finite boundaried box and have a predictable curve of learning placed upon them.
Production experience is a great way of rooting out the smart people from the pretenders, but the best way is first impressions.
They are finishers, meticulous organizers, and even have a life outside of work. They work 8 hours a day and they are worth every penny.
Yeah, and they leave after a half year and, again, it was a very expensive journey... ;-)
I'd never hire such people. Too smart!
If smart people are leaving your employ after "a half year", maybe it's not them that is the problem.
I agree with Larry, the people you really want on yout team are the "doers".
There are some people out there that just make stuff happen. They don't come up with excuses (although they might complain, early, if politics or bureaucracy is holding their work back), they just get the work done. This is directly opposed to those developers who always seem to be able to find another excuse for having missed their deadlines, even when you let them set their own deadlines...
Finding this elusive breed, I think, is harder work than Larry makes out. As I said in my earlier post, first impressions do count for quite a bit, as do acheivements outside the work environment as these usually show high levels of self-motivation. Enthusiasm for the technology AND business are also vital qualities. However, I have seen people who can put on a very good show for the interview, but then don't quite live up to this initial promise.
Interviewing can get you a long way to telling you how a new team member will work-out, but unfortunately it can't tell you everything. Having a probationary period, together with assessments and peer reviews is the only way to guarantee quality.
Not to put tickets on myself. But I think I met these requirements. Experience is important but it is not the be all and end all. Some people will not even consider those with anything less then 2 years of experience. Which is a problem. Everyone has to start somewhere.
I'm sure (actually I know a few) there are developers that have been in the industry for 5 years that still do not get; agile process, design patterns, OOA/D, meeting business requirements is the most important part of software, etc.
I think the interviewer has to take each candicate on a case-by-case basis. Some people that have university degrees don't know anything. The worst things to look out for people in this category is that they know all the buzzwords but couldn't write professional software if their life depended on it. Yet some of these people still manage to have a career in IT, usually in a large corporation were it can go unnoticed. Likewise for those that have X number years of experience. So you can go on either education or experience.
Anyway, I think the most important thing is understanding of the basic concepts. Ability to learn new things and adapt to different situations. Reasoning and logical thought are also important.
Just my 2c.
The way you make interviews makes it difficult to new people. In my last 2 projects I have been working building the front end, wich means that I did not do anything with with the EJB or data layer. This doesnt mean that i do not know about OO or J2EE but I will for sure not be able to answer to you in questions about EJB excptions in my old projects....
the way you speack sounds like I will have to build front ends for the rest of my carrier.
My question to all of you is, there is not space for prepared people that whant to move in between application layers/roles or however I should say it
I think that most employers will always look for experience in the specific area which they are recruiting you for. If they want someone to work on EJBs then they will expect experience (or at least sufficient in-depth knowledge to blag the interview...)in that area. However, if I was recruiting someone for web component development then I would not expect EJB skills (although I would require an understanding of using EJB from JSPs). As I said in my post "I tend towards the view that it only worth asking interviewees questions about technologies that they will have to use on your project and which they have stated on their CV".
As to how you gain experience and the ability to move into different areas:
1. Study books, articles, etc on the technology you are hoping to work with. Spend some time experimenting with the technology in your own time (either at home, or at work - most employers will be more than happy for you to use their equipment out of office hours if it is for self-development)
2. Once you have gained sufficient knowledge, you will find on many projects that there are opportunities to work in different areas if you are enthusiastic and can show at basic competence. I'd suggest asking your team-leader / project manager about such opportunities.
But I think you need to be realistic. Unless your employer needs, and is struggling to find, people who have the skills that you are interested in acquiring, then why should he/she take you away from the work area you are familiar with and productive in and instead spend time and effort moving you to an area were you will be less productive initially? The onus is on you to convince them of your ability and enthusiasm.
I think that if anyone wants something they have the opportunity to make it happen. It just takes some effort - don't expect it to just come to you - you have to put in the hard work and be a bit pushy. For example, if there are some problems with the EJB layer in your current project, try and solve some in your own time. This is a sure-fire way to impress your boss!
I hope this helps.
I've heard of so many interviewers who try to catch-out the interviewee with their questions. This is not the way to go! If a candidate doesn't seem to get it, it is quite often just that your question is badly worded or ambiguous. I always think the approach should be to try and squeeze out what someone does know, not what they don't.
For sure the point of an interview is to find out about what the interviewee knows, not show-off what the interviewer knows. It may not be that your question is badly worded for a candidate to miss the answer. IME, people with different backgrounds often use different labels to discribe the same thing. A hint may help the candidate make the connection. Again, the point is to find out what the candidate knows.
> 5. General logic questions (/test)
> I find a logical mind to be possibly the most important criteria for a good developer. Everything else can be learnt (whether through books OR experience - usually a combination is best).
IMHO, the ability to think/work through problems is the most important assest that one should look for. I always try to ask sets of questions that probe the candidate's ability to think through a problem. I like Bruce's suggestion of using a chicken 'cos it is 1) something that everyone knows something about and 2) it's open ended. You can use the open ended property to throw in a problem (not to trick the candidate but to further explore the ability to think) to see how the candiate adapts the model to the new circumstances.
> 6. Samples of code
useful if you can get the candidate to bring a sample of code
One of the best interviews that I ever had was for an organization that required that I prepare a short talk on a technical subject of my choosing. The presentation medium was a white board. At this meeting, the brought in their development staff that after listening to the talk, started asking different questions. The whole thing did not feel like an interview. During the rest of the interviewing process, a computer was always close by and I did end up developing some small code fragments in almost a paired programming style with the interviewer. In this instance, I was given access to all of the tools that I would normally be working with.
When I contrast this style with how 99% of all interviews are conducted were you are asked stupid questions like what methods do you have to implement on a home interface (or worse), it's clear that the later method just doesn't seem like an effective way to evaluate how a person is going to fit into the organization.
> I know this probably sounds like a long drawn out process, but I think you very much get out what you put in at the interview stage.
I would even add that the IME, many (not all) of the instances were people have been released, it is the interviewer that has failed, not the candidate. All the candidate do is come to you and ask you for employment. The candiate will most likely not turn down an offer unless they realize that they are way out of their depth. They will most likely try to do as we all do, learn as you go, which is why I believe that the ability to think and to be motivated to learn new things as Randy Staford has suggested and Dave Thomas advises in his book, the Practical Programmer.
One of the best interviews that I ever had was for an organization that required that I prepare a short talk on a technical subject of my choosing. The presentation medium was a white board. At this meeting, the brought in their development staff that after listening to the talk, started asking different questions. The whole thing did not feel like an interview.
I quite like this idea, but I there are a couple of reasons why I don't think everyone would appreciate this style of interview as much as you did:
1. Programmers as a whole tend towards introversion so standing up in front of a crowd may be the last thing they would like if required to perform at their best. I also think that being interviewed can be felt by many as a somewhat humbling experience - many people do not want to have been put on show in this light in front of all their prospective future team-members before they have had a chance to get to know them.
2. I have had experiences like this where I have come away feeling like I have just given away an hour of consultancy for free. When the people "interviewing" you seem to be more busy making notes on the topics than actually interviewing you, you can't help but wonder...
Again, I think there is a fine line between asking too much of the interviewee (and potentially putting them off) on one side and not finding out enough about them to make a valid decision on the other.
As for the "$15/hour-for-cheap-overseas-labor" issue --- there are some things that just can't be outsourced, and I think that more and more companies are starting to realize that. Companies will pay big bucks for people who actually have the etiquette to:
A) Not speak when others speak.
B) When you do speak, keep your sentences short and succint. If you use the pronoun "I" more than 3 times in a row, your speech will sound arrogant. Arrogance, contrary to popular programmer-belief, is NOT a good trait.
C) When you are asked to attend a luncheon with a client, remember the following for Gawd's sake:
(i) Sock color matches pants, NOT shoes.
(ii) Red wine with Red meat, white wine with white meat and fish.
(iii) Napkin gets folded and placed on your chair when you excuse yourself from the table, not next to your plate where everybody can get a stunning visual of the pig you really are. And by the way, business lunches are NOT for eating, they are for business. Your best approach is to order something light so that you can concentrate on speaking. Another good tactic is to eat something before the lunch so that you are not tempted to order the burger and fries instead of the Caesar salad.
(iv) You pay for the client, ALWAYS. Make yourself look *extra* cool by giving your waiter your credit card before the client even gets there. That way, there is no argument over who covers what.
(v) Chest hair on display is not cool. Nose hair and ear hair on display means that you were once employed within the Politburo. Look in the mirror for Gawd's sake, and have a little humility. You are not Tom Cruise and never will be, now deal with it.
D) Your appearance is everything. If you can afford it, do not shop at K-Mart for your business attire. Go to Brooks Brothers at the very least and take some pride in your appearance. White socks? NEVER!!!!! EVER!!!! EVER EVER EVER!!! Running shoes? Go back to the bridge you crawled from underneath of!
E) Posture at all time is erect and healthy looking. Look people in the eye and smile. Always greet your fellow employees first thing in the morning. If you don't, you are not deemed "mysterious" or "cool" or "too smart and too busy to be bothered". No, you will be considered an outcast who will never get promoted.
Before I even *THINK* about hiring somebody, They have to pass A-E. Otherwise I'm wasting my time. And that's why, with $15/hour, you better pray that your employees are oversees where they won't have the opportunity to embarrass you and make you lose all your business.
You get what you pay for, it's never changed and never will.
Who is the **** are you Larry??? Did your mama ever teach you don't sell your mama for business. Grow up man. This is a technical forum and nobody want to listen to your arrogant fucking comments about your high level mama's body selling business.
Right, thanks for reminding me TQ....
F) Swearing is a sure sign of an infantile demeanor. It reveals to the listener that you are scared of something and wish to provide a smokescreen to this otherwise obvious fear.
G) How you behave in anonymity is ALWAYS a window into your true personality. Although you may get away with all the juvenile behaviour you want on an anonymous message board, the only person you're fooling is yourself. One day, your true personality will slip out in public because you've been "practicing" anonymously for so long.
Oh and by the way TQ, if you don't think the meaning of my previous post has nothing to do with hiring people (no matter WHAT industry), then you must be one of the people whose resume continues to get thrown in the garbage. Judging by your fractured and grammatically incorrect speech, I will venture a guess that you are one of these so-called "Cheap Labor, Cheap Person" candidates that I am talking about.
Please keep it up, you make it all the more easier for people who actually give a damn to get the next job.
Thanks for your insight,
When I am sitting in an interview board, I am looking for a technical person who can understand my customer's "TECHNICAL REQUIREMENTS and deliver the application in a language computer processor can understand efficiently. World has moved up a lot from 16th and 17th century where people look into each others more than their color and personal behavior. There is nothing wrong in being arrogant, if one person is smart and intelligent. If somebody uses "I" and "We" very much in their mouth, if they know what they are talking and it that points have a value, then it is your problem by being against it. You remember me to think about French people who were stealing wealth from all over the world by killing innocent human beings and told in front of world community that colonial systems are for making the world more civilized. You can either go back to 16th century and think about a business or you accept the smartness, intelligence and value of arrogant attitude of a wise technical person. I have seen people like you in most of the metro cities in America such as New York, New Jersey, Philadelphia, Milwaukee, Chicago, San Francisco, Los Angeles, Orange County, Las Vegas and Miami. I took assignments and worked for blue chip firms where they liked to account for my 450/hour billing and at the same time used to call me an H1B visa holder from third world.
I am shame on people like you still working in this world and dreaming about a world where everything on your own way. I CAN SAY ONLY ONE THING, GROW UP.
Ooops sorry for using "I" more than 3 times.
Apology accepted, but you caught it and that's the main thing. You're improving.
Now let's deal with your attempt at a rebuff.
Number one: TQ, you are confusing business etiquette with genocidal examples that, strangely enough, have to do with French colonialization hundreds of years ago. Business etiquette is not about trying to make one person look better than another, it's about defining the scopes of civilized behaviour in the workplace. It has already been agreed upon that part of this civilized behaviour will include no racism, gender-bias, sexual harrassment, or culture bias. Given that, I don't see your rationale that following this etiquette is wrong. In fact, following the rules of business etiquette seems to espouse the 2 or 3 values that you believe in.
Number two: My statement regarding business etiquette pre-supposes that we are dealing with a large unemployed labor force that is becoming generic in its technical abilities. Every year, hundreds of thousands of smart and talented computer science graduates try to enter the global workforce. Like it or not, that $450/hour that you made as an H1B immigrant is gone forever. Now, the market is demanding more from your position. The market is demanding that you possess soft skills and communicative abilities which you have already proven that you lack. This is why I think you are scared and swore at me and insulted my mother, but that's fine, I won't take it personally. I predict that the very people that you despise in America will very quickly be taking your job, and you will forever remain bitter and resentful. You will blame everyone but yourself, not able to peer out from inside your Darth Maul-decorated cubicle and open your mind.
Number three: If you don't think that I am right about business etiquette becoming a dominant factor in who gets hired in the tech industry, you are sadly mistaken. I will not include links to articles that will prove my point because since your are so technically superior, I'm sure you'll find this evidence on your own. Google away...
Oh, and I forgot to add the following:
4) There is a strong argument that an immigrant worker who is well-dressed, well-mannered, and groomed nicely and follows all the points I mentioned above will actually have a *better* chance at getting a job in IT today. This is because employers don't expect immigrants to behave in this manner, and it breaks the stereotypical conventions we hold about immigrants. Therefore, you will actually stand out among a crowd where you may not even be the best technical expert -- ie. this theory works for you too, TQ, not just the Americans.
By the way, I am an immigrant working in the IT industry in the United States.
... (v) Chest hair on display is not cool. Nose hair and ear hair on display means that you were once employed within the Politburo. Look in the mirror for Gawd's sake, and have a little humility. You are not Tom Cruise and never will be, now deal with it.
So you want to be a Larry Ellison of some sort.
But you sound like a cheap like a salesman to me, I wonder if you have anything to do with the tech side of things at all.
Having been born and raised in a country where "Politburo" did actually exist I have worked in a "post-communist" era for an actual member of the "Politburo", which by the way had impeccable manners, perfect English and did fold his napkin "the right way".
He was a gasbag, just like you, and treated us as slaves ("what do you do in front of these TVs all day" - meaning computers).
If I had to choose between equal offers/candidates I'd rather go for the employer/employee or with less impressive manners . This all based on my experiences so far. And
can you imagine, I dont even own white socks.
Dear First Last,
"...So you want to be a Larry Ellison of some sort..."
No, my usage of the name 'Larry Ellison' is an attempt at humor, I do not literally want to be Larry Ellison. I like who I am.
"...But you sound like a cheap like a salesman to me, I wonder if you have anything to do with the tech side of things at all..."
Yes, I am selling a concept to you that you obviously have not bought. No, the concept is not cheap, it takes effort. Yes, I have a great deal of tech experience, but I certainly don't want to start a macho discussion with you to discuss the extent of that experience. Let's just say that I spent a few years as a programmer and architect and I don't feel as if I have anything to prove.
"...Having been born and raised in a country where "Politburo" did actually exist I have worked in a "post-communist" era for an actual member of the "Politburo", which by the way had impeccable manners, perfect English and did fold his napkin "the right way". He was a gasbag, just like you, and treated us as slaves ("what do you do in front of these TVs all day" - meaning computers)...."
At first I thought that you took offence to the term 'Politburo', which is too bad because it was yet another attempt at humor. I guess you and I don't share a similar sense of humor. Oddly enough, you end your statement with the proclamation that your Politburo friend was a 'gasbag' and insinuate that he was a technical imbecile by calling your computer a TV, so to sum, I don't really know which side you're on here.
"...If I had to choose between equal offers/candidates I'd rather go for the employer/employee or with less impressive manners..."
That speaks volumes about you. Looks like first impressions work well!
can you imagine, I dont even own white socks..."
Oh, I'll bet you have a whole drawer full!
..>>Let's just say that I spent a few years as a programmer and architect and I don't feel as if I have anything to prove.
You didn't have to prove anything to me, Larry. Youve reached your peak
you wear matching socks (although I find the "... programmer and architect" re-assurance pitiful).
As for the 'white socks' crack at the end of my posting was manifestation of MY sense of humor, which you obviously didn't get (and you thought you had a sense of humor).
Sure the first impression is important - you made an impression that brought up and memories of many superficial, shallow people I've had to deal with - professionally or not.
I did not call my "Politburo friend" a gasbag for being technically inadequate - he was I gasbag for the way he treated, actually perceived people - just like you, judging a programmer (I believe the thread was started as "how to hire a programmer") by the way they fold their napkin.
So you like the good stuff in life and may be you can afford it. You are a "classy" guy and you think that gives you grounds to look down at a 'K-mart shopping' immigrant, who just made it to the country. Has it ever crossed your mind that, despite the white socks, he might be better than you are and still provide cheap labor (because he just needs a job, he's scared, insecure etc). Or wait, he is not an immigrant - he is just the single breadwinner in a family of five.
But enough drama - to sum up, none of the developers I've met or seen pictures of were dressed up in Canali suits. Nevertheless - the good ones we hired.
Ohhh First Last, you make this far too easy... I will respond to your statements because my original goal was to share ideas on how etiquette can help you in business. I will now demonstrate how easy it is to deal with people without a sufficient amount of etiquette:
"...You didn't have to prove anything to me, Larry. Youve reached your peak
you wear matching socks (although I find the "... programmer and architect" re-assurance pitiful)..."
Reassurance is an interesting choice of words, but you're right; you definitely boxed me in on that one and I took the bait. You challenged my technical expertise, and when I responded that this was not an issue, you simply labelled this information as pathetic. So you ask a question expecting an answer, then criticize the answer you expect. You have an interesting method of debating people; you should know that this kind of predictable style of criticizing people gets old very fast. If you find that people like you at first, but then you find yourself becoming a novelty to them over time, it is this character trait that is to blame. You should try to be more honest in the future -- if you want to call somebody pathetic, just go ahead and do it. For example: You are pathetic. You see? There is no need for me to try and bullwhip you into that statement.
"...As for the 'white socks' crack at the end of my posting was manifestation of MY sense of humor, which you obviously didn't get (and you thought you had a sense of humor)...."
The 'white socks' argument on the other hand, is getting pretty funny right now. My comment regarding you having a "whole drawer full" of white socks was not intended to be read literally. It actually shows that I understood that you were carrying on the joke, and I picked up on that and threw it back at you. But you missed the complexity of the humor. I know this sounds condescending, but your sense of humor is around Andrew Dice Clay and Howard Stern level. If you're jokes are just sarcastic remarks, it doesn't show a whole lot of evolution on that front. You need to start listening to people like Dennis Miller and Jon Stewart more -- their sense of humor requires a person to think. But that's just me, I could be wrong.... (wink)
"...I did not call my "Politburo friend" a gasbag for being technically inadequate - he was I gasbag for the way he treated, actually perceived people - just like you, judging a programmer (I believe the thread was started as "how to hire a programmer") by the way they fold their napkin...."
This explanation doesn't make sense. If you wanted to highlight the Politburo man's inability to treat people nicely, why did you use the example of his calling a computer a TV? Really, you should know when to accept defeat, First Last. If you try to defend everything you say, even when it's obvious that you have lost the argument, you begin to discredit the good points that you have made. This is what is happening to you now.
"..Has it ever crossed your mind that, despite the white socks, he might be better than you are and still provide cheap labor (because he just needs a job, he's scared, insecure etc). .."
Better in what way? I am not the best in everything, I can assure you of that. But wearing white socks to work indicates that you have no sense of business etiquette, so this person is definitely not better than me in that regard. Point being is that you don't wear clothes to show that you are "better" than others, you wear them to signal to the corporate professional world that you take the job seriously and understand the need for a clean cut appearance and how it applies. If you don't agree with that, there is no sense in you providing me with a flowerly, sympathetic-laden statement such as "...what if he's the single breadwinner..." feeding 5 hungry mouths, because there is no excuse for wearing white socks to work. Colored socks cost just as much, I don't see what you are trying to accomplish here with your Oprah stories.
"...But enough drama - to sum up, none of the developers I've met or seen pictures of were dressed up in Canali suits. Nevertheless - the good ones we hired..."
Again, your attempt to discredit my argument by going to extremes suggesting that candidates should wear Canali suits shows the kind of person you are. I understand that this may have been a comment intended for humor, but it's juvenile.
Why don't you take me on, one-on-one, in a serious, non-personal, and non-insulting way? Are you afraid that you might hear a truth about yourself that you don't like? Don't be afraid -- the argument will make you a better man.
YYYEEEEAAAAH!!!!! Sorry but that nails it.
Larry this migt not be the best etiquett but you ROCK DUDE< where did you learn to argue like a god!The come backs are totally cool!also, I think everyones getting a little off topic here.Why is somebody even arguing that appearance and looks dont matter?Obviously it does.Stop provoking reality an get a life.
You challenged my technical expertise, and when I responded that this was not an issue, you simply labelled this information as pathetic.
Why did you feel technically challenged? You weren't. Did I send a test question or something? I did challenge YOUR attitude towards someone (especially a programmer) buying cheap clothing as a basis for dismissal.
I was very specific about it in my last posting.
>This explanation doesn't make sense. If you wanted to highlight the Politburo man's inability to treat >people nicely, why did you use the example of his calling a computer a TV? Really, you should know >when to accept defeat, First Last.
Your attitude and the examples you gave were a perfect match with the persona I was referring to regarding him PERCEIVING people - the TVs statement was a famous one that many of the folks who I worked with and frequent this site will recognize. What he meant was - "this is not much work you are doing, see you are not sweating, being seated all day." He was adamant on us being dressed up and shiny. That was the quality he most appreciated.
It seems you too.
You reading it the way you did and being jumpy about you tech expertise is an issue that you'd have to deal with. My point was and still is your attitude.
>If you try to defend everything you say, even when it's obvious that you have lost the argument, you >begin to discredit the good points that you have made. This is what is happening to you now.
So which were the good points that I made - please do tell I 'll. and I will accept the imaginary "defeat" you've bean yearning for.
>Again, your attempt to discredit my argument by going to extremes suggesting that candidates should >wear Canali suits shows the kind of person you are. I understand that this may have been a comment >intended for humor, but it's juvenile.
"The good candidates we hired" is what I said. Regardless of their appearance.
Your arguments regarding white "K Mart" clothes, socks, jeans or sport shoes is what is being discussed here.
Let me see - how did you put it "
crawled under the bridge".
Who's out of line here?
Again, you continue to err:
"...Why did you feel technically challenged? You weren't..."
Uhhhh, yes I was. If you can remember, you said:
'..I wonder if you have anything to do with the tech side of things at all..'
As for your continued flailing attempts with the Politburo man explanation... please stop. I'm even starting to feel embarrassed for you.
"...So which were the good points that I made - please do tell I 'll. and I will accept the imaginary "defeat" you've bean yearning for...."
If you don't even know what the good points of your argument were, then there are none. Or was this another "joke"? Do you want me to argue for you too?!?!?!
Your entire last email makes no sense.
Larry - that was a posting , not an e-mail.
But, let this not be another "tech" challenge for you - go do some programming, you've spent way too much time in this thread and you are getting cranky.
That is what I am gonna do I have some catching up to do.
And next time someone tells you you sound like
. dont rush trying to convince them about your tech experience.
As for being embarrassed for me you shouldnt. Focus on yourself that Dennis Miller thing not very flattering.
Okay, First Last! Thanks for the advice!
Blimey! Quite a deviation from the original topic but ah well, makes far more interesting reading.
I just wanted to put in my comment on the social vs technical skills and the interviewing process.
As someone put it, the best people in any industry will have horrible interviewing skills, since what they do is real work, not changing jobs every year, because the company they work for is profitable because of them, so managers will not let them leave at any cost. Think about the top 10 players of any sport, their talent says it all, everything else came second. They did not need to know how to interview. Is it a chance that Microsoft and Oracle have managers who practically did not have careers?
Now the interesting part is the social skills part. I have to say that what is socially "right" changes from culture to culture. There is no standard.
Placing your napkin on the chair and other similar things say nothing about the person other than its habits.
If you don't hire me for the way I place my napkin, shame on you because you did not do your reasearch well enough to read on my resume that I lived in 4 different continents for at least a year a shot and my social habits, my language, my terminology and my sense of humour changes depending on the environment. 99% of HR people will never understand what this flexibility gives to a person, because they are not exceptional people, they are just clerks going about their job.
For example in the USA I would never talk about sex or relationships with my interviewer, in Italy I would.
In the USA I would not think bad on a company if the interviewer took me to a horrible restaurant for lunch, for I know (first hand) 99% of american restaurants suck and 99% of americans can't tell the difference between edible and decent food.
You should also always remember that not all people are automas, slave of their jobs. Not all people identify with their jobs.
Just because you interview me it does not mean you have any way of judging me as a person, because there is no way you would ever understand me as a person. I am out for money, and I will give you what you want, unless you over do it.
One big reminder for all HR people:
don't play God, at least half the people you interview are way better than you are, and you will refuse them because you are not smart enough to understand them!
It's intellectually more honest to hire a technical person judging technical skills. It's a project manager's job to build a team out of a bunch of people. In the USA there are very few close knit teams, people help others only when it serves them, that is why people change jobs so often and there is such a high turnout. If you are happy where you work, you will not change even for double the money. If you are on the bench for the Chicago Bulls during MJ's years, you do not change teams unless you are forced, for any sum!
P.S. By the way you should match your socks with your tie!
Well said Marco !
I have come across HR guys who recommend refusing candidates for such frivolous reasons as :
@ The candidate was shaking his legs while solving that problem. Deduction : S/he is nervouse.
@ The candidate was not smiling.
What nonsense ?
Do we want to hire technically competent, and reasonably good people OR do we want to hire Lobby Managers of a 5 Star Hotel, for writing software programs ?
P.S : The Socks should match your underwear or HR people are going to throw you out. Huh !
"The way I would do that is .... "
This is a newbie, with 0 production experience
Mmmh, that's pretty much how I would answer this type of question, I guess I wouldn't pass your interview.
I think you are paying way too much importance to the way the answers are phrased, you need to see beyond that. For example, how about this answer:
"I think I would use a set of hardware-balanced JSP pages, but this might prove too expensive for your needs. Another solution would be to use a software balancer in an application server. How many users to you intend to serve simultaneously and is hosting the database and the server on the same machine an option?".
Follow the line of reasoning of the candidate, not the way they express themselves.
I think one of the most interesting questions I was ever asked in an interview was "tell me how you would approximate the number of gas stations in the USA"?
I have always frowned on making someone write code on the spot. Anything that takes concentration may not come easily under pressure of an interview (many good candidates don't have recent interview experience because the don't need to interview that often!), however you do want to see a certain degree of comfort from the candidate.
I like to ask open-ended questions like: "Tell me about a tool or technique you have come across recently that has improved your work or your productivity". "What issues do you think represent the greatest risks for developing a successful product." "Tell me about some things that went right on your last project, and some things that went wrong, and why?". "Describe and ideal environment for software development". "Tell me about your philosophy for testing software". "Do you read any industry periodicals (and tell me about a recent article)".
And how they will handle scenarios that are possible in your work environment (delving for non-trivial answers): "What would you do when you realize that someone on your team was slipping well behind schedule". "What techniques do you use to estimate the amount of time it will take you to complete a unit of software".
registration name typo: its David Dwin, not David Owens...
<quote>Otherwise, if you just want to hire people who "know of" J2EE, but have no production and operation experience, you can outscore to overseas, like India, I think the rate is less than $15 per hour.
You are right when it comes to $15/hr. But i dont agree with your statement which conveys "India has only people who just know of J2EE".
If that is what you meant then you are on a wrong note.
Vic can't be serious about recruiting people based on their language usage.
I wouldn't disqualify anyone who starts off with "The way I would do it" or the likes...
I would pay more attention (as I should) to what his actual answer is (the part that follows "The way I would do it").
As for outsourcing at 15$ rates from places like India, they are more choosy about companies they consult for with their 15 Dollars than most American companies about whom they outsource to. Rest assured however that they do listen for more than semantic usage like "The way I would do it...".
FYI, you gotta do something about half the J2EE specs , EJB specs teams etc being populated with those 15$ guys from India who "Know of" J2EE. Darn huh?
Every individual on this earth are eligible for all competent. We are here to discuss how to get best out of all.
It is not IIT or American universities or color, sex, religion, age of an individual solve business problems.
Any individual on this earth who understands and solve business problem is a competent.
Let us discuss about it.
Please stop junk postings and those who want, please get out of here.
I just wanted to comment on Vics message "Outscoring to India at 15$ !!"
I can understand the plight of programmers abroad. They do feel bad about the situation where in companies are outsourcing work to India.
Well, lets be clear on one thing, American companies i.e. the management is not out of the minds to think that labour would be cheap and thats it.
They go because they get value for the money and time spent.
I totally disagree with Vic.
Look at Oracle, Sun or IBM for the matter most of the key technical positions are Indians. Looks at the track records of companies like Infosys, Wipro or TCS for the matter..The list can be long. They have excellent guys on J2EE.
Open your eyes buddy..Times have changed!
There is another technique which cannot always be applied with success but proves valuable when applicable: check against message boards. Does your candidate participates to discussions ? If yes, you can read his/her arguments, concerns, which are likely to be more representative of your candidate at work. It is not always applicable as many serious people don't write (or arguably waste time) on public boards. But it can be a very good hint.
This technique can be extended to open source software but it is even less applicable.
I recently read an article (www.ComputerWorld.no). Researchers questioned 130 professionals and 60 students. The conclusion was that 1 year of studying in compuer programming is comparable to 10 years experience in the field.
Companies like Accenture, Cap Gemini, Software Innovation among others took part in the study.
The study was done by the Simula institute here in Norway (no relation to the language since the research was done for Java).
I recently read an article (www.ComputerWorld.no). Researchers questioned 130 professionals and 60 students. The conclusion was that 1 year of studying in compuer programming is comparable to 10 years experience in the field.
God help us all if anybody believes that.
Typical code review with 2-3 year CS coop students start off "This is a hole in the ground, and this over here is your..."
Can you give the exact link to this study?
While I would probably dispute the ratio, my findings so far indicate that experience alone can rarely substitute the kind of knowledge gained with a CS degree. I've come across quite a number of IT professionals with a significant number of years of IT experience that cannot tell you what normalizing a boolean expression is.
I follow a very simple rule when I interview: smart and organised people = good and cost-effective code. And by the way (in reply to somebody's post here about Infosys and the likes): cheap != cost efective. Howgh!
Eamonn, please post the link to the study if you have it!
Sounds like this study was performed by a bunch of unemployed life long students with too many degrees and no jobs.
I generally believe students of computer science tend to make better programmers and adjust to changes in technology better than those without formal training. That said, I can also tell you that I learned more in my first year working than four in school. In addition, I've found that developers with advanced degrees aren't any more capable, and are often less knowledgeable than those with the same time spent in the industry.
"Those who can't do, teach. Those who can't program, go back to school so some sucker will pay them more to do less."
That said, I can also tell you that I learned more in my first year working than four in school.
I have also experienced this. My university course did not cover:
* OOA/D (we did do basic C++ course, with polymorphism and such but not to the same degree as GOF and GRASP patterns)
* Agile Processes
* Design patterns
I have learnt these myself over the last two months.
I agree I've learned 10 times more applicable knowledge in my 5 years of experience then 4 years of school. It's different one is computer scientist and the other is software engineer.
The url to the article: http://www.simula.no/news_one.php?news_id=46
I was one of the participants of the projects and have discussed the early findings with one the authors of the soon to be published article.
They have at least tested the following hypothesises:
1) OO vs. procedural design, which are "easiest" to change. The tests showed that only well-educated (experienced) programmers could to changes to a OO-design as fast as in a procedural design. Why, it might be that the complexity of OO-design outweight the benefit of better structure.
2) Test the effects of pair-programmering. I don't have any comments here.
3) The effetcs of using design patterns. I don't have any comments here.
I beleive that the article in computerworld is biased, and do not think the article written by the reaserchers are that black and white.
What is actually the role of education, I think it works as an eye-opener. E.g. it is relativly easy to learn Java after you have studied Simula (the language) and computer language theory. Why, becaues you know all the language features you should expect from Java.
Another bonus of education is that you have tried to solve the really hard problems, e.g. in database theory. In real life when you are trying to learn SQL-server, you skip the boring parts of the manual and do not care of normal forms in relational theory.
IMHO the answer is: it depends.
If what I want to hire is a cog in a machine, then maybe I'll ask him about previous experience only. But if that's all I do then I don't know anything about that person's future prospects.
If I am interviewing a large number of people for a challenging project, then what I would really like to do is see that person in action first - have a design session with him/her and the rest of my development team, and see if the team "jells" (in the words of Tom DeMarco.) If the team jells it doesn't matter that much if the guy has the requisite experience or not.
Consider the Manhattan Project. Of the phyicists that went there nobody had ever built an atom bomb before. Some knew a lot of nuclear physics (and they had some occasional consultants ;-) ) but mostly they were just smart, focused people.
Just my 2 cents.
Your 2 cents is a penny short :-)I think to hire a best candidate you must assess the individual's ability to work in a team environment with some knowledge of the technologies required for the project. I beleive most people can learn how to design/develop EJBs, JSPs, struts and so on but not many can't learn how to function, interact and communicate in a dynamic team environment.
I ask programmers about OO. Questions like:
"difference between subtyping and subclassing."
"interface and abstraction"
specific questions about the IDE they are going to use.
explain a concept of something like EJB, servlet.
With senior developers I can ask about patterns and so
I have a similar approach. The idea is to make sure the candidate has a firm grasp on the technology that is their bread and butter, and make sure they have potential. On the other hand, I hate it when an interview starts sounding like a java certification exam.
I like the idea of the candidate providing a code portfolio. One of my best interviews happened when I demostrated an entire J2EE example project at the innterview. I use this project for continous prototyping.
The most important thing when figuring out whether to hire someone for the development position is determining whether that person will fit into your team. After many a headache experienced with undisciplined, but otherwise talented developers, I've reached a conclusion that it's much more important to pay attention to the social aspect. In other words, I'd willingly trade chops for maturity.
Most talented developers have a strong knack for running their own show. They are brimming with confidence, have high self-esteem, and consequently don't like being told what to do. However, because we're not a cheritable organization, in order to reach our profit goals we are forced to keep things under control. And that's where the conflict arises -- my talented developers feel violated when I tell them what to do. They'd rather play with something that tickles their fancy.
If you get a less talented, but more mature person on your team, chances are that such person will be more prepared to work towards the common good (i.e. towards reaching the collective goals). Like it or not, the developers are pretty much running the show, so it's much better if they run it responsibly.
Believe it or not, I've had developers blatantly disregarding my explicit instructions on what to do on the project. They just nod, go over to their desk, and do things they find worthwhile doing. They know that if I fire them, they can just walk accross the street and start working at another place the next morning. They are that good, but also that irresponsible. So I'd rather not mess with such people.
Not so talented people are much more amenable to working cooperatively, as they know that they are not prima donnas and cannot get the next job that easily.
I'd rather have a situation where we have a solid skeleton and let mediocre people fill in the blanks, than have a shoddy skeleton and rely on brilliant people to fill in the blanks. That's why our effort is primarily focused on achieving strong quality in the upfront design (strong, industrial strength frameworks), than on hand crafting beautiful piece of code that's a marvel to look at, but sits in the midst of a disatrous product.
So how do I go about interviewing candidates to determine if they have such qualities? Among other things, I ask them the following question:
Suppose someone comes to you and asks you to build them a product. They give you their specs, saying that the product must consist of:
1. Internal combustion engine
2. Four rubber wheels attached to a metal chasis
3. A steering wheel
4. A transmission mechanism
Describe what would you build.
Based on the description they come up with, I have a pretty good idea whether they are responsible team oriented workers, or overconfident loners.
alex sorry to say that you should have become a psychologist.
I strongly agree with the concept of picking an area where a developer feels strong and masterful. If they are the inquisitive type of developer who needs and wants to understand the "behind the scenes" and provides logical and comprehensive answers, this is the type of individual you want.
<quote from the article>
"One of the biggest mistakes companies make is to recruit from a shopping list: I need a programmer with six years Java, three years Oracle, and two years EJBs"
from the article>
I could not agree more. You only need to have a search on www.jobserve.co.uk to see this taken to quite ridiculous extremes, some with lists of mandatory skills that run to 10-20 items. Nobody can be possibly be an expert at all of these, and I can't imagine a situation where someone would need to be. Companies would be so much better off if they just focused on what skills were really important and made sure that the interviewee had a good understanding of these core skills.
Even more pointless, IMO, are job adverts that require x years of experience in a particular business sector. The investment banking sector seems to be the worst for this - probably more due to them wanting to keep it "in the family" as an exclusive, old boys' club rather than any real need (from my experience the business requirements of investment banking projects rank among the simplest - it is usually the security (and other non-business) issues that are the most complicated and crucial aspects of these projects). Have a look at jobserve and you will see what I mean. Does a developer really need three years' experience of derivates or settlements? I can see the potential advantage for an architect or lead developer to have had previous experience in a domain if that domain is complex, but a plain developer???
This is just nonsense. Please do not believe such misinformations.
German laws governing cancelation of employment contracts do surely differ
from laws in the US, France, Japan or any other country on this planet, but
all in all german employees get layed off like anywhere else.
for an excerpt from Weinbergs book "The Psychology of Computer Programming" - think its relevant to the discussion.
Thank you for that link --- it was quite valuable in supporting the higher premise of this current debate in that intangible qualities - such as personality, character, sense of humor, and humility - are considered more important than intelligence by this author.
Nice to learn something new on the topic, thanks again. I recommend that others hit your link as well.
Makes interesting reading, Binal. Not sure about the effectiveness of 'choosing a candidate who turns in the neatest paper' part though.
"If you were part of the team that wrote or revised EJB (replace this with the tech you are most keen to question about)specs. What would you change?"
Sometimes the q is overwhelming that some candidates cant even comprehend and some are unable to think anything
If anyone is able to give me one point - for me he is a winner!!!
I never ever want to treat people different. I always stood for the best and accept it. In my professional life, I have worked firms from small size to big size, who are leaders in Middleware technology. I always learned that some people never change even though there is a chance to change and improve. When ever they stand up and talk nonsense using their local power, I can only be rude to them. In my professional life as I explained in one thread, a big firm's lawyer addressed me as a H1 B visa holder from third world when I was facing a legal crisis during my assignment in Germany from USA. This firm had to send me to Germany from USA cuz of my technical qualification and the confidence of German customers on my work. The lawyer's firm gets paid from my hourly bill, which makes the income for my American employer. I do not want to specify the company names cuz of some personal reason. All J2EE or Java guys may shock if you ever hear that firms name.
Anyway I left that company cuz of people who think like Larry. Today I have a better job than what I had in that firm.
I always respect a good mom and good sister who will look into humanity and civilization without non-colored eyes. Since I am an immigrant from India and I can do software jobs at least better than some one else, I do not have to deal with their bad attitude to me or to some one else I care and work with.
Education is not just paper certificates, it is some thing I considered as a lights to human heart where feeling and civilization build up. It should help an individual to look into people more than what they might have learned from their home.
I hope one day Larry or some one like him coming to this news group will learn that and change.
I know this is not a place to discuss all these, but I have noticed, recently after the bad economic situation around us, people some time come here and blame others for all their problems.
My first team leader in US project was a truck driver. The recent changes in software industry during 90s forced him to leave the truck driving business and attend a computer diploma and join with a consulting firm in mid-west.
I became an architect through different stages. A degree in engineering -> two years training in a CMM level 5 company -> a software engineer -> programmer -> Developer -> Team leader + Mentor -> part of a big consulting firm's professional service -> proven project records and over all hard work and reading more than 30 technical books in an year. Nobody have any right to insult others cuz he/she lost his/her job in a tough financial situations. Those who are talented they will survive. Those who are ready to go with situations they will success.
I don't want to go to much details, instead of talking about others it is always better to know more about what is ugly in each of us and what is the limitations on us.
I am having a job cuz i am good for that, if you don't have a chance, it is your problems and if there is a solution for that look for it, improve the skills be more polite and wide acceptable, ride small car instead of SUVs and live a normal life instead of living in dreams. Resources are limited and more qualified people will take it, nothing wrong with that according to Darwin's theory. But instead of blaming others there is a better way for any problems.
Thanks guys and I will not reply on this thread any more
I am happy that you are not going to write in this thread anymore.I appreciate it.
When I read your messages, I don't feel comfortable and mark all your threads "noisy"
Hello T Q:
You say you are getting a 5 digit salary / month, but write like someone who gets a 5 digit salary in 10 years. Get help... Aren't we glad that you won't be back on this thread again?
One guy writes: "Etiquette and color of socks" are the most important factor when hiring someone. Another guy writes: "It is the pure technical skill that matters". In my view, all of these guys are extremists.
Do you know that all our opinions are biased, skewed towards whatever they are good at? Get real guys... What one should look for instead is a good balance of technical and non-technical skills, weighted towards the type of position at hand.
My question is: How to Interview an Analyst ?
You don't hire good people you make them good. Otherwise you go with the pot luck of your interviewer's skills...which may be questionable since you probably didn't train them either.
HR People Wanted:
5 years experience asking questions and interpreting answers.
3 years experience being able to tell good people from bad people.
2 years experience writing help wanted ads.
8 years experience dealing with recruiting agencies.
4 years experience budgeting recruiting agency fees.
Desirable skills: Knowing how to tell a good programmer from a bad one.
Using TSS for such racist comments is discernible. I have worked in China, US, India & Malaysia. I met some excellent people in all parts of world. Everyone has brains & all r equal. I believe the etiquette depends on cultural background. That has nothing to do with skills. We all forget that American is built by immigrants. We Americans accept Chinese more than Indians because they have light skin. Its a truth & we must accept it. Thats enough of digression BTW. Lets get back to the techincal discussion.
P.S: I am an American. And American does have the BEST institutions in the world.
IBM once had a programming aptitude test that was very effective at separating out the chaff. No longer used.
A few tips: Someone who does not understand simple syllogistic logic (a implies b and b implies c so what is implied?) is NOT a programmer.
Anyone who watches "Friends" on tv and can recite verbatim their favorite episode is NOT a programmer.
Actually, there are 2 types of programmers: People who program computers and people who program other people. Virtually all "programmers" these days are the latter. Therefore, another tip:
The guy NO one likes, the guy who is NOT a Tom Cruise celebrity or a sports nut, just MIGHT be a computer programmer.
On the other hand, the guy that management just loves is NOT a computer programmer.
Actually, the generalization that anyone who can memorize a TV series is not a programmer is just as false as anything else. I definitely have a memory full of stuff including medieval weaponry and armour (a sword was not the 20 pound monster from phantasy games), other history, computer games, board games, a lot of physics and maths stuff, novels, and various other stuff that at one point or another just found interesting. I hope that doesn't mean all of a sudden my extensive programming experience and coding speed no longer matter, and I just disqualified myself because of those broader interests.
But I'm thinking you didn't mean that literally anyway, and it's refreshing to see that there still are people who can think with their head.
It got a bit depressing reading through the whole thread of "forget about tech skills, and hire the (typically utterly incompetent) guy who comes in a two piece suit, and smiles and nods." That just means setting your priorities awfully wrong. That's what smiling nodding incompetents do: hire other smiling nodding incompetents, just because they like them, not because they show any technical skills. Then wonder why the project runs astray, and all those nice sociable persons can't actually churn out working code.
I've had more than my fair share of working with those, and it's not only unproductive by itself, it doesn't help the team morale either: unlike that HR droid who likes nice suits and smiles, actual geeks like technical skills above all. Between the nice (but totally incompetent) person who singlehandedly caused a man-month of damage in one project I've actually been in, and some anti-social goths with bad haircuts and t-shirts but which can write good code and make it fit with the rest of the team's code, guess which one I'll prefer as a co-worker? Right. Believe it or not, the second will actually help the team morale more.
To elaborate your point, the way I'd phrase this advice to the people doing the hiring: have your priorities straight. Know exactly what job you're hiring for. Do you want someone who can program a computer, or a marketing guy who can take the client to lunch? No, I don't think that marketing is a swear word, nor the enemy. But it's a different job. For that, you'll want someone who studied marketing, not someone who studied CS. They're two completely unrelated skills. Very few people master both. (Just as is the case with any other two unrelated skills. It's like wanting to hire someone who can pilot a helicopter _and_ is an expert in ancient Egyptian hyeroglyphs.) Unless you're willing to pay a whole lot for someone extremely qualified in both, chances are you'll actually settle for one who actually knows only one of the two skills. Typically the wrong skill for what that job is all about. You'll have hired a marketing guy for a programmer job.
Actually, some of that was from a book of humor that I might write someday, _You MIGHT be a Computer Programmer If..._ Other lines:
You MIGHT be a computer programmer if you know the difference between left and right (it's 0 and 1).
You MIGHT be a computer programmer if at a street intersection you look ahead left and then right.
In seriousness, though, the distinction between people programmers and computer programmers is one that management never seems to understand. In our Enron era, the people programmers rule just as management does through lies, deceit and corruption. Like when management retires with a 750 million dollar golden parachute, leaving behind a corporation in bankruptcy, the people programmer leaves behind a big mess for someone else to clean up and to be blamed for. But then that seems to be what everyone wants or has been told to want.
Yep, I hear you. That's my main beef too with the sad joke that this industry has turned into. That it's turned into one big snake oil industry. Billions of dollars each year are spent on snake oil. Digital high-tech snake oil, for sure, but snake oil nevertheless.
Clueless pointy haired managers buy snake oil products (or sign contracts for making a snake oil product) just because they liked the powerpoint pictures. I know of one who _literally_ decided between two products -- and somehow picked the unfinished unusable one -- based on which powerpoint presentation is prettier. That's all. The sole criterium. Or someone who singlehandedly decided to use a single user "database" (like Microsoft Access) and put the database file on the file server, instead of buying a database server, for an enterprise multi-user database application. Hey, a database is a database, right? Wrong.
And predictably enough this has spawned thousands of parasite companies whose only purpose in life is to sell snake oil to those guys. And maybe then get a big fat consultancy contract to make it work.
And there you have one reason why they really need marketers, not programmers. They don't need someone who can actually make a good product, they need someone they can show to a clueless customer to sell him snake oil.
But the deepest reason is what I perceive as contempt for this profession. People who can't even program their VCR insist that "bah, anyone can program a computer. Even I could, I just... uh.. don't have the time." People who wouldn't just take the first guy off the street to diagnose and treat their dog, would cheerfully take just about any clueless moron off the street to design and program a multi-million dollar enterprise project.
Never mind that half the projects still fail. Nevermind that according to a study I've read, the majority (I think as much as 3 out of 4) of those paid as programmers, can't actually program. Nevermind that even project which didn't officially "fail" are full of security holes. (Because that guy off the street might have learned how to get a HTTP parameter, but never learned elementary security ideas like "never trust the user to only click on your links, and actually expect him to try to type in new parameters in the URL.") Never mind that most projects which didn't officially "fail", are a maintenance nightmare, and will eventually need to be rewritten from scratch. (Because that guy off the street never learned that 100k of code in a single monolythic JSP page is bad.) Etc.
Never mind all that. Surely _anyone_ can be a master programmer if you only give him 1 or 2 weeks, so you might as well just hire the one with the nicest smile and best matched socks. And next time a project is a disaster, well, they'll just hire more smiling incompetents with nice socks. And wonder why it didn't work.
Just in case someone is wondering what I'm smoking, let me give just two examples of projects went awfully wrong, and some of the main problems in them. Problems which, I might add, boil down to plain old lack of experience.
1. A large corporation which shall remain unnamed (but think BIG) builds a user management system for one of our clients. (Again, think BIG.) The project eventually grew to be more than 1 year late and still non-functional, and finally was scrapped. Among the many problems with it:
1.a. It was possible to edit the user id in the URL string, so instead of getting to the page where you'd edit your own password, you'd get to the password changing page for any other user, including the admin. Basically you could escalate your rights all the way. Why? Because those programmers thought that surely noone will try anything with the URL's, and if they don't explicitly link to something, surely noone else might find that page, and they don't need to check the rights again on each page.
1.b. It was possible to embed any HTML or Java Script in your submitted text, which was then faithfully embedded in the HTML text shown to another user, or even to an admin. Effectively being able to execute any script on another computer. With Internet Explorer, even ActiveX code.
1.c. Deleted users were effectively deleted from the database, together with any and all records which referenced that user id in any way. Not only that was a problem when importing the client's old data (which did correctly contain a "deleted" flag), it effectively violated the non-repudiation philosophy. Someone could log into the site, create all kinds of havoc, then delete their user and *poof* that user never existed, their actions never existed, no trace to them ever existed.
1.d. The whole system took literally _hours_ to start up or shutdown, and needed _unholy_ CPU power and memory. In fact, it needed a whole cluster.
2. At the previous company, we land a contract to maintain a nightmare project developped by someone else, and which had got to the point that even its authors didn't want to touch it any more. Among the many problems:
2.a. The database design, while looking good on paper, was a totally inefficient design which took around a minute to show just the directory page. That with only 3000 records or so.
2.b. The original database design also effectively was a nightmare to search through or filter, so eventually they added more tables which duplicated some of that data in a more search-friendly way. Only the code to keep the two in sync never worked right, and never supported transactions anyway, and some different parts of the program had grown to take their data from a different set of those duplicated tables. You guessed, inconsistent data at its finest.
2.c. The session context is a fine thing, but is also a double edged sword if you're clueless. Think: what happens if the user opens a link in a new window, and now effectively has two browser windows which share the same session? What happens if from that point on, he uses the two windows independently? E.g., in one window he edits a user, and in the other window he edits an offer form? Well, in their case, it resulted in mixed data between the two windows. They had users with "accepted offer" status, and offers with "new user" status, and so on.
2.d. The whole thing was in PHP, which has a peculiar quirk. It does its best to auto-convert between strings, numbers and everything else, as not to bother the programmer with such details. So for example "if (x == 0)" also returns _true_ if x is the empty string, or a non-initialized variable, or a missing form parameter. Also "if (x == "")" returns true if x equals 0 (zero.) And you can guess that their code used 0 as a valid value in every single drop down box and list box and so on, which effectively made it impossible to check that a parameter was received or not, or if a function was called with the wrong parameters.
Best of all, these faults were spread in the whole source code for the whole project, presumably thanks to copy-and-paste programming. Every single page made the same mistakes about session usage, though sometimes with subtle differences.
So, well, if you were wondering exactly what can an experienced programmer bring to your project that a newbie can't learn from a Java tutorial, now you know. Exactly this kind of knowledge. The experience not to make newbie mistakes like the ones above. And most importantly: not to allow a project to go all the way to the end before discovering that these mistakes are blindly copied-and-pasted in 100 places all over the code.
For several years, I worked as a DOD contractor. Out of an office of 30 "programmers", a Vietnamese guy and I were the only ones who ever wrote a working program. Both of us came in for a lot of flak (all kinds of reprimands for "bad attitude" type problems) from the central office because the other "programmers" constantly complained. Neither of us could get a recommendation for our next jobs. I didn't need one anyway, but 3 months after I left, I got a telephone call threatening legal action because the lead "programmer" could not understand the program (about 6,000 lines of C++ code that replaced 100,000+ lines of COBOL). This even though I had filled out several binders with documentation and even though he was supposed to be an expert C programmer (actually, I once dug up the oldest version of the program that he was credited with doing--it had someone else's name on it).
Before that, I worked for a large entertainment company. They had an accounting system that duplicated Accounting 101: A general ledger file, for example, along with other small accounting files, each less than 5,000 lines. The general ledger was set up as sequential, the small files as random read. For each line in the general ledger, random reads were made on a couple hundred of these small files. As each month's data was added to the general ledger, it became predictably huge until toward the end of the year, it would require approximately a week worth of processing just to read through it. One year, the year's end processing that began in February was not completed until May because the system kept crashing in the middle of the year-end processing. The only reason the processing ever was completed is because accounting temps were hired to do it by hand. And ALL that the year end processing did was carryover some totals from the previous year for the initial balances in the general ledger and other files.
I could go on and on and on. It is good to know that I'm not the only one who thinks that there's something screwy about an industry where this is the norm--and where you get punished for honest, high-quality programming. All while everyone says that they are puzzled why software is so bad and why it is so difficult to hire competent programmers, even holding special conferences on the subject and trading bogus tips with each other. It does have a humorous aspect, like the three stooges do, but the real stooges in this industry sadly hurt everyone including themselves just as the three stooges in real life would have.
Well, I must say, sounds like you had it worse than I ever had it.
In fact, probably I shouldn't even be complaining. Though I would criticize a lot of decisions that our clients have made, a lot of them along the lines of buying the snake oil with the prettiest powerpoint presentation or with the most buzzwords, without ever asking advice from one of their own competent people (if they even hired any)... I was fortunate enough to work with nice people myself. Well, most of my co-workers were anyway. (We did have some flaming idiots as clients, but it should be mentioned: not always.) Now those co-workers were not always the most super-competent gurus, not always the quickest coders, but they were at least willing to learn and to try to do things right. Goes a long way in a team of geeks.
And currently I do have the pleasant surprise to work as a contractor in a team of actually competent people. For a change one boss from one client actually picked people based on experience, not just the lowest bidders or the ones with the right colour socks. It renews my faith in humanity.
I'm still getting the idea that it's an exception rather than a rule, though. (Especially when reading advice like "just hire and promote the ones who smile, nod and have the right suit." And not only on this forum.)
Probably the whole secret is: I'm cheap. I'm not very ambitious, or rather: not ambitious for money. (I do like to know that my programs are finished, working and useful, though.) That tends to broaden the spectrum of jobs I can take, and gives me more freedom to take one I can at least partially enjoy. I'd rather take a lower paid job at someone smart and nice and at least half-way honest, who just lets me do my job, than a top paying job for a flaming idiot. Doubly so if it's actually a job which looks useful, not coding snake oil. Once I found a job which fits that bill, I'll just stick with that job.
I strongly suspect I'm not the only one. One of our clients was a flaming idiot who liked to repeat that because he has the gold, everyone else must do exactly as he says. If he says you stay here 24 hours a day, you bring a sleeping bag and stay here 24 hours a day. Not ask nicely if you could maybe just today do a little overtime to finish this project. Just he orders and you say "yes, SIR!" Not surprisingly, all his programmers and designers resigned en masse at one point, which is why now the programming company he was leading, was sub-contracting its contracts to other companies. And the few people he's managed to hire after that, well, think Wally from the Dilbert comics, only half as productive and _really_ good at being a yes-man.
I suppose that's the point that some people miss. That people are actually addaptable beings, and have a natural instinct of seeking some comfort and reward.
If a boss at least acknowledges competence (yes, including showing an interest in that at the job interview) and gives credit where credit is due, people will either at least try to be more competent, or move on to another job if they can't. He doesn't even have to dish out big monetary bonuses for that competence: even just a nice word goes a long way. Being asked now and then what I think, how long will this take, and how could we best go about making it, instead of getting a case of "you, the peon over there! get there and start ploughing!" goes a long way too. Shows that someone is at least aware of my experience. Maybe he's just faking it, but still, it makes me actually want to help and do the best work I can. Don't assume that just because someone is an asocial introvert, he's your sworn enemy, nor that he won't respond to positive stimuli too.
On the other hand, if he rewards yes-men, he ends up with those who are only competent as yes-men, not at doing their job. If he promotes a dog-eats-dog, always-find-a-scapegoat and backstab-for-promotion atmosphere, he'll end up with those whose main skill is office intrigue, not programming. (And now that's a great way to ruin the workplace morale and atmosphere.) If he dishes out abuse, he ends up with those who can only keep a job by accepting abuse, not by being good professionals, and they know it. Even a dog runs away if you mis-treat him once too often. If he rewards faking competence and wild claims like "I invented Unix _and_ Windows, and had 50 years of experience already when I was 20 years old", well, he gets that kind of liars and fakes on the team. (And yes, that starts at the job interview. Don't just hire the one with the wildest claims. Do ask for details.) If he treats people like expendable unskilled labour force, he ends up mostly with those who _are_ unskilled expendable workers and they know it. Sure, once in a while there'll be someone among them like you or the Vietnamese guy you mention, but they'll be a minority. Again, just like you mention was the case there.
Sure, it's easier to blame the workplace morale on the introvert programmer with the bad haircut and the wrong socks, and I guess that "a** covering 101" is one of the fundamentals of management these days anyway, but it's apparently hard to understand that _you_, the boss, are the one who has far more influence on that morale and atmosphere than the worst half of the team combined.
There are just a couple of basic principles involved that no one seems to understand.
One basic principle is that people do best what they spend most time doing. Some guy who is very good at not being "introverted" has spent a lot of time interacting with other people. That's what he's good at. The guy who is most convincing in job interview will ALWAYS be the one who has spent a lot of time convincing other people. These are "people programmers". They wouldn't be much good at programming a computer because they don't spend that much time or effort with programming. Those who actually are good at programming computers will ALWAYS seem introverted and unconvincing. This implies that "people programmers" rather than "computer programmers" ALWAYS dominate the workplace.
Another basic principle is the lowest common denominator. Computer science stuff is way beyond the reasoning ability of most people. In other professions, such as medicine, associations exist such that the lowest common denominator is still at a reasonably high level. In the computer world, the lowest common denominator is basically any bum off the street who knows a few catch phrases and has the talent and ability of a used-car salesman.
Another basic principle is that software is ALWAYS hidden from view. Only the socially unpopular "introvert" who has spent a lot of time studying computer science and programming computers will actually understand it. Anything that is hidden from view will ALWAYS be a prime subject for lies and deception.
The interaction of the three forms another basic principle (call it the "Dan" principle): Managers will ALWAYS prefer people who are like themselves, "people programmers", and managers ARE themselves "people programmers" because that is how they got to BE managers (just as politicians get to be politicians because they are political). At the same time, because the leader is ALWAYS the most adept follower, managers will always accept as true what the lowest common denominator declares to be true. And because software is hidden from view, there is nothing to contradict anything that the lowest common denominator would say. And this person is likely to say that which benefits himself the most, even if it involves lies and deception, skills that he already possesses in a high degree.
What about the "computer programmer" who actually knows the truth about the software? Well, as you pointed out, he is considered to be an "introvert", a "square", completely out of the social picture. He has absolutely no political clout--after all he is just a social outcast, an "introvert". The drone is lucky to have a job at all.
The question really isn't why is there so much bad software. The question ought to be why is there some software that actually does work? The question isn't how to hire competent programmers. Managers don't really want to know that anyway, because they don't like "introvert" or social outcasts who are unlike themselves. What managers really want to know is how they can hire someone they do like, someone capable of lies and deception, someone very pleasing socially and very politically attuned, someone just like themselves who also knows how to write high-quality programs.
The answer: You can't hire such a person. If you think that you have, you have been lied to. The skills to be a "people programmer" are in complete disjunction from the skills to be a competent "computer programmer." Why? See above where we started. There are just a finite number of hours in a lifetime. You can spend your time learning to be highly competent at one or the other, but unfortunately the allotment of hours is not enough to be highly competent at both at the same time.
Dan > I like your post very much. You say the truth, without mincing words.
Actually, the main advice _I_ would give to anyone hiring is: use your own head, don't just mechanically apply a list of rules, like a droid. The moment you get stuck in doing checkboxes like "had matched socks and pants" and "used the word 'would' instead of 'did'", then you're the one too incompetent do be doing the judging.
Yes, someone may use "how I would do it" instead of "how I did it", and actually be the better candidate. Why? Because the environment is changing. Computing power is changing, the client's problems and needs are changing, available frameworks and libraries are changing. You'll want someone with experience, yes, but also who understands the differences and can addapt to the new. How I _did_ this 4 years ago was to write my own framework, because nothing better was available in Java 1.0, but how I _would_ do it today is a whole other story. How I _did_ that other thing 5 years ago was in hand optimized assembly, but how I _would_ do it today with today's computers is in Java. Etc. Precisely because I _do_ have the experience, but I also understand what has changed in the meantime, and what is different between then and now. I also can look back and see what I _did_ wrong or less than perfect, and think about how I _would_ do it better.
Yeah, someone may favour doing a framework jar. Not for the sake of reinventing the square wheel, but because some parts of the application can be isolated that way for potential reuse. Yes, please do use existing frameworks when they fit, but be prepared to write your own when the existing ones fit worse than a square peg in a round hole. And it's an actual skill to be able to slice a large project into clearly defined modules and to be able to say "this goes into its individual jar file, with clearly defined interfaces". If you start kicking those people out by blindly obeying a checklist in which "said he'd make a separate jar" equals "disqualified", you've just kicked out the wrong people, the people with a valuable skill, and are left with those who'll write a monolythic servlet instead.
Etc. And those are just examples. The message, again, is: use your own head, don't blindly follow a checklist of what other people said. Don't even blindly take for granted what _I_ say. Try to understand what those people you're interviewing are trying to say, and _why_. Don't just have a list of words they must use, and one of words they must not use. And if you don't understand what they're getting at, don't fall back to the list of words. Don't be affraid to ask for clarifications: someone who knows his trade will make it clearer, someone who's just faking expertise, will just put his foot in his mouth even more.
I am looking for a job and I was looking for some interview tips in this forum but 70% of the comments seem to be more of the mutual bashing kind. I totally agree though with the fact that communication skills and etiquette are as important as technical skills.You have to have a well rounded personality to succeed in any job. As for the IIT debate, I have seen cases where guys with degrees from unknown universities doing excellent work than the so-called IIT geniuses. IIT is certainly a great institution no doubt about that but wouldn't you be rather judged by your current output rather than the fact that you went to so and so school.
As for the argument IIT being far superior to chinese or american institutions,its totally absurd to make such generalizations.
And for the record I am an Indian who has worked in both US and India.
What harinee mosur said is quite right.
I have seen that some people feel that a IITian is always better than someone else. No doubt that most IIT graduates are brilliant, but that one needs to be unbiased when one views performance...
I'm currently looking for a new contract and a lot of what I've seen in this thread makes me laugh, because I've been there and burnt the t-shirt. Being interviewed sucks huh?
The worst interview I've had in recent memory was down to one thing: the interviewer wasn't asking relevant questions. I'm no guru, but when I'm being interviewed for a development role I don't expect to be quizzed about minutiae regarding installation of IDEs and providing definitions for obscure acronyms.
The best interview I had recently was full of a lot of the good stuff in this thread - describing my recent projects, the challenges I faced and how I overcame them. I didn't get the position, but I came away from that interview feeling that they had an accurate picture of my skills, not like the interviewer had picked up a Redbook 10 minutes before the interview and chosen a few obscure bits to quiz me on.
I've also been on the other side of the table and I can guarantee that the best candidates are not necessarily the ones that can wax lyrical about the latest development fad or open source project, nor are they generally the ones with the first-class CS honours. I've known developers that were so cutting edge that they were incapable of knuckling down to cut code within a specified framework, because they were always suggesting something new ("yes, I know that we have an established Oracle environment, but this new Object database is the BIZNESS!"). Or what about the dev who has every Sun cert available but can't figure out how JDBC works? No, the best people are the balanced ones - not experts or evangelists, but decent, hardworking and smart people that learn quickly and can happily follow directions, but will stand their ground when they know they're right.
Very interesting thread!
I can't agree more.
But I go even further. I will never work for a company who starts quizzing me.
For me there are 2 possibilities for quizzing me.
1. They seek free consultancy. I have to work for a living, so pay me and I will answer the questions the best I can.
2. They are insulting me. They are saying that my resume is a lot of crap, my teachers are liars and in generally I am a fraud until I prove in a quiz that I have the knowledge I claim to have. If a company does feel that way, why invite me in the first place.