Fog Creek Software
Discussion Board




Pretenders for senior dev positions

Anybody ever come across pretenders at job interviews with 5+ years  experience, having trouble coding simple searches and pointer manipulation?I find there are a few people in the job market currently, many "senior" people not even managing to put a line of code on their solutions.No wander they say the state of the industry is bad.

Peter C.
Tuesday, March 18, 2003

Simple search:
Select field FROM table WHERE condition

Were you looking for something more? [grin]

Philo

Philo
Tuesday, March 18, 2003

Have you noticed that companies post job openings that are not realistic.Then if you get the job you come in and barely do anything. Most IT jobs are a company's insurance policy.

bdw
Tuesday, March 18, 2003

I've had 10+ years of experience as a developer and to be honest if you asked me to write some pointer manipulation routine right at this moment of time I'd probably struggle a bit. Of course if you asked me to do it at a moment in time when it was all at my fingertips (I am extremely good at it) the simplicity of your question would probably cause you embarrasment.

It's not about what's at your fingertips, it's all about the comprehension ability you have and your adaptive/creative abilities.

Most interview questions are the equivalent of asking a chef what technique they'd use to wash a pot.

Chef
Tuesday, March 18, 2003

Chef, you are given more than an hour to do the pointer manipulation routine, and it's divided into parts,
some are legit questions like-
1. what is diff between char* const p,const char*p
2. Can u do multipliation and div of pointers,
etc.. questions like that, but
if you end up getting 1 out of 10, some getting zeros...
given an hour, some people actually twiddle fingers...

surely somebody with 10 years exp. should posses such knowledge

Peter C.
Tuesday, March 18, 2003

The vast pantheon of computer knowledge, and you've decided this one particle is ubiquitous and indispensible because...?

Because "dammit, I had to learn it, so you'd better know it too!!" ?

Now perhaps pointers are essential for the line of work you're in, but I beg to differ that not knowing pointer math means one cannot be a senior dev.

Philo

Philo
Tuesday, March 18, 2003

Whee! A quiz!

1. what is diff between char* const p,
p is a constant pointer to mutable char

const char*p
p is a mutable pointer to constant char

Trick is to read them backwards and know that the second is equivalent to char const * p, which is a bit better format.

2. Can u do multipliation and div of pointers,

No but you can do addition and subtraction of pointers.

etc.. questions like that, but

Come on bring them on this is fun.

X. J. Scott
Tuesday, March 18, 2003

Well it's a specific C++ position, otherwise I would not have bothered with pointers, but if the guy will use it in his work(basic pointer concepts) they better know it.

Peter C.
Tuesday, March 18, 2003

<sincere>
Well then I'd be the last to suggest that if one is applying for a Senior C++ Dev position, one had best have one's pointers in order.
</sincere>

Philo

Philo
Tuesday, March 18, 2003

Arg! Wait! No you can not add two pointers. You can only subtract them. Dang, I was looking to get some shuffleboard time in. Guess I blew it.

X. J. Scott
Tuesday, March 18, 2003

X J , there goes your senior dev position.

Prakash S
Tuesday, March 18, 2003

Hey Prakash, here's something I think you'll get a kik out of if you didn't already know it.

The array operator is 100% equivalent to addition when applied to a pointer and an integer. Lest you doubt this, check out the fact that the er what is that property - reflexivity? - holds.

What this all means is you can do this:

char c = "0123456789"[n]; /* so? */

or this

char c = n["0123456789"]; /* ooh la la! */

X. J. Scott
Wednesday, March 19, 2003

100% equivalent to dereferencing of addition I mean of course...

X. J. Scott
Wednesday, March 19, 2003

incrementing and decrementing pointers is all that is needed, anything else doesnt make sense.

Now can I have that senior developers job?

Realist
Wednesday, March 19, 2003

The name of the property is commutivity.  a[b] == *(a+b)== *(b+a)  == b[a] when one of {a,b} is a pointer and the other is an integer.  The only reason to write the int[pointer] version is for an obfuscated code contest.

>>incrementing and decrementing pointers is all that is needed, anything else doesnt make sense.

Pointer + integer makes perfect sense - random access into an array.  You implicitly use it any time you use pointer[int].

You can subtract pointers only when they point into the same array of objects.  You can compare any two pointers (== and <, for std::set<Foo*>).

Then there is the obsolete-except-for-insanely-memory-contrained-systems and never portable xor-ing of pointers to save a pointer storage in a doubly linked list:
struct ListNode
{
    ListNode* m_pPtr;  /* = pNext ^ pPrev instead of two pointers */
    Foo m_someData;
};

ListNode *pOne, *pTwo;
// ...
ListNode* pPrev = pOne->m_pPtr ^ pTwo;
ListNode* pNext = pTwo->m_pPtr ^ pOne;

If knowing this hack gets me a job, I decline.

Brian
Wednesday, March 19, 2003

"2. Can u do multipliation and div of pointers"

Of course:
int i = 123;
int*    p0 = &i,
  *    p1 = p0,
  *    p2 = p1;
p0 = (int*)((unsigned long)p1 / (unsigned long)p2);


Wednesday, March 19, 2003

I always felt that C++ was a language that not only gave you enough rope to hang yourself, but also tied the noose and escorted you up the stairs...

Now I'm convinced.

Unless you're creating software which demands the ultimate in performance why on Earth code in C++? I keep seeing adverts for Visual C++ programmer to work on business applications and I just shudder ....

By the way, just so that you all know that I really am an old f**t, I started my career before computer science was a recognised discipline by learning BASIC, then ICL FORTRAN, then Algol 68 (bet you've never used that!) because it had things called REF REF INT which sounded real funcky and let you do cool things, followed rapidly by PL/1 (nice 'interactive compiler' under TSO is about all I remember about that), more FORTRAN (DEC this time), and finally many, many years of C flavoured with a great gob of SQL (please, no more, I'll talk, just don't....! Arghhhh!)

Now, in the fading sunset, I can at last look for personal satisfaction rather than squalid financial gain (and you can believe that if you like) my quest is for a language that doesn't make me learn stuff like this ever again ...

Anyone for Smalltalk?

David Roper
Wednesday, March 19, 2003

Resume inflation is a widespread problem in IT.  But so is job requirements inflation.  Those factors tend to make the job market look worse than it really is. And unfortunately it makes it very difficult for you if you are an honest job applicant or employer.

T. Norman
Wednesday, March 19, 2003

I'm so glad that I've chosen to learn languages other than C++!

John Topley
Wednesday, March 19, 2003

"I always felt that C++ was a language that not only gave you enough rope to hang yourself, but also tied the noose and escorted you up the stairs...

Now I'm convinced"

But you can do that in C too, no?


Wednesday, March 19, 2003

Nice point, Norman. For those of you who want to see how ridiculous job postings can get, have a look at:
http://www.salon.com/tech/feature/2003/03/13/tech_workers/index.html

Marcos Rubinelli
Wednesday, March 19, 2003

As someone who has only 2 years of experience (but gets sh*t done), it angers me to see the calls for 5+ years of experience when I work with someone with more experience than that but has no dedication to the profession.  i.e. hasn't learned anything new in 4+ years, wouldn't know what a pointer was if it bit her in the face and she makes alot more than I do.  *sigh*

this economy stinks.
Wednesday, March 19, 2003

Hey, as someone with 11 years experience (who gets things done) and no degree, it annoys me when I see job postings requiring a degree.

Understand that the requirements are a filter for people who have no other way to filter you: the HR department. Being an "unconventional" candidate sometimes requires getting into job interviews by the better route, through the manager that's doing the hiring.

Brad (dotnetguy.techieswithcats.com)
Wednesday, March 19, 2003

As a 10+ years dev, I would say that any pointer code should be crystal clear for maintenance reasons.
Using all possible variations for the sake of it is really not useful.

BTW, C++ coders should use &, not *... oh, well, it's Windows/MFC coding... duh

Java has it okay with references, what a shame Sun messed with MS. We wouldn't have C# and stuff.

Phil
Wednesday, March 19, 2003

Actually, there are times when * is what you want, not &. But then again, 99% of the time you are using * what you really want is auto_ptr<>&.

regards, treefrog

treefrog
Wednesday, March 19, 2003

Back on the original topic, CV inflation is a definite problem. I have a job (and a good one), but I am looking to switch jobs (I don't like the commute).

However, I refuse to inflate my CV, because it is unethical, and one day I will come a cropper at an interview.

The problem is that in this market I am just not getting the interviews, because my CV doen't look good enough.

regards, treefrog

treefrog
Wednesday, March 19, 2003

The problem is that in this market I am just not getting the interviews, because my CV doen't look good enough.

That's your excuse. And if it makes you feel better then fine. HR people are flooded with CVs for positions that they know nothing about. HR is given a laundry list of technologies that a department uses and tries to get a match. They do not know that you can learn alot of this stuff in a week or month. They don't know that a oneline sed script is better than a half page C++ manipulation. If your CV doesn't look good enough then change it.

bdw
Wednesday, March 19, 2003

"2. Can u do multipliation and div of pointers"

This question might be good or bad, depending on what's really being asked.

"Will the compiler let you do mult and/or div of pointers?" -- BAD question. Who cares? I can look it up or try it in 5 seconds.

"Does mult and div of pointers make any sense? Why (or why not)?" -- GOOD question. Tests understanding of what a pointer actually is in C++ (ie an address in memory).

Andrew Reid
Wednesday, March 19, 2003

bdw,
It's not that my CV doesn't look good enough. It is kept up to date, it is proof-read by my wife (who could spin anything), and it is clear and attractive.

I just refuse to lie on it. I'm not going to put down OPNET (I did a 4 day course 3 years ago), or perl (I used it for about a month, before discovering ruby). It is accurate and honest. On the other hand, when I say 8 years C++, I mean it. When I say  4 years telecoms systems engineering, I mean it.

I'd rather have an honest CV and be stuck in my present job (which pays quite nicely, although I hate the commute) than lie on my CV.

Part of the problem is that in a tight job market, those who are prepared to lie and bluff have an advantage that the truthful do not have. When did you last hear of someone being sacked for lying on their CV ?

treefrog
Thursday, March 20, 2003

treefrog,
If you used perl for a month then put that you used perl. That is the truth. If you think that's untruthful then add that you are a 1 out of 5. You are probably leaving stuff off your resume that you think is second nature but the HR person has no clue about.

bdw
Thursday, March 20, 2003

*  Recent Topics

*  Fog Creek Home