OT: Binary Search - Should They Know It?

C

Cor Ligthert[MVP]

Arne,


System.Collections.Generic.Dictionary (even though I would
be a bit skeptical about a .NET programmer that did not remember
the name, because it is such a common class).
First I had the idea to write only,

Arne what is a generic dictionary and why has it to be generic?

You wrote as a reply to me, that you had doubt if 99% of programming was
currently done around graphics.

It is something I didn't investigate and I think it can even not be
worldwide investigated, because as it is not like that it is rapidly going
in that direction.
Keep in mind that Internet and games are as well all around graphics and
that is currently a main part of the industry.

It can be that for games a binary search can be important, but guys like me
who are mainly working with databases are not using all kind of
intermediates. They rely on the tools they get like Linq or AdoNet which
give us enough . Using extras, which seems to make things faster slow in
fact only things down.

Don't misunderstand me, I know what they are, but I wont tell that it is for
everybody a must to know.
I just know it because that I can place all those things in their historical
evolution, from courses I have done and have seen persons endless discussing
about that.

But you should be happy that you don't have to learn all those things I had
to learn in this business and have never used.

Cor
 
P

Paul

I disagree. It is enough for a .NET developer to understand the
System.Collection namespace and be able to aply a good 50% of that namespace
to solving business issues.

Anyone can sit down and spend time understanding something they will
probably never need to know in their programming career, but I guarantee you
cannot learn how to apply those skills to businees problems as easy!

I readily admit Binary Search means little to me, I could explain Binary
Search Trees however well at a top down level. ;-)
 
P

Paul

I disagree. It is enough for a .NET developer to understand the
System.Collection namespace and be able to aply a good 50% of that namespace
to solving business issues.

Anyone can sit down and spend time understanding something they will
probably never need to know in their programming career, but I guarantee you
cannot learn how to apply those skills to businees problems as easy!

I readily admit Binary Search means little to me, I could explain Binary
Search Trees however well at a top down level. ;-)
 
P

Paul

Why not mix your questions up. Techie questions are ok but you also need to
be shown that someone can apply that knowledge. Why not create scenario's in
which applying the system.collections namespace is required. Now there are
always more than one way to skin a cat, so get their solutions and ask them
to explain it to you. You may find they have found issues in the scenario
even you did not consider.

IMHO you can always teach people .net or patterns by laying the foundations
for them and nurturing them, in fact how many of us have the time to learn
all the new Framework additions. What you cannot do is impart business
acumen, IMHO design is a Lead Developers role and not a junior/developer
role and there should always be a lead developer with these skills in a
team.
 
P

Paul

Why not mix your questions up. Techie questions are ok but you also need to
be shown that someone can apply that knowledge. Why not create scenario's in
which applying the system.collections namespace is required. Now there are
always more than one way to skin a cat, so get their solutions and ask them
to explain it to you. You may find they have found issues in the scenario
even you did not consider.

IMHO you can always teach people .net or patterns by laying the foundations
for them and nurturing them, in fact how many of us have the time to learn
all the new Framework additions. What you cannot do is impart business
acumen, IMHO design is a Lead Developers role and not a junior/developer
role and there should always be a lead developer with these skills in a
team.
 
L

Larry Smith

and there should always be a lead developer with these skills in a team.

The problem is that you need to interview a 100 people just to find 5 who
are potentially qualified (if you're lucky). It's very expensive but far
less than the expense of supporting poorly written software. In the real
world however most programmers just don't make the cut. It's really a no-win
situation for employers. They need to hire skilled developers but the pool
of available developers are mostly mediocre or much worse (including most
"senior" developers).
 
L

Larry Smith

and there should always be a lead developer with these skills in a team.

The problem is that you need to interview a 100 people just to find 5 who
are potentially qualified (if you're lucky). It's very expensive but far
less than the expense of supporting poorly written software. In the real
world however most programmers just don't make the cut. It's really a no-win
situation for employers. They need to hire skilled developers but the pool
of available developers are mostly mediocre or much worse (including most
"senior" developers).
 
P

Paul

I know a number of Senior/ Development Team leaders who are very good and
out of work in the UK at the minute. Which is my point, interview processes
at a lot of places focus on the wrong skill sets, and poor developers seem
to get a better run sometimes in the interview process than the people who
can actually get stuff done. Not saying that is for your case, but if you
are struggling maybe you should take a step back and try to identify traits
that make a good developer. Certainly for me I would never recruit on
knowledge alone. I have met so many people in my IT career steming from
Support - Product Development Manager that have all the qualifications and
know all the buzz words but cannot apply it.

Lets also face facts that we are all learning and probably the day we stop
will be the day we get fed up of our jobs. Yeah it will never happen.

Good luck BTW hope you find someone, and when you do nurture them.
 
P

Paul

I know a number of Senior/ Development Team leaders who are very good and
out of work in the UK at the minute. Which is my point, interview processes
at a lot of places focus on the wrong skill sets, and poor developers seem
to get a better run sometimes in the interview process than the people who
can actually get stuff done. Not saying that is for your case, but if you
are struggling maybe you should take a step back and try to identify traits
that make a good developer. Certainly for me I would never recruit on
knowledge alone. I have met so many people in my IT career steming from
Support - Product Development Manager that have all the qualifications and
know all the buzz words but cannot apply it.

Lets also face facts that we are all learning and probably the day we stop
will be the day we get fed up of our jobs. Yeah it will never happen.

Good luck BTW hope you find someone, and when you do nurture them.
 
L

Larry Smith

I know a number of Senior/ Development Team leaders who are very good

I don't know these people so I can't say otherwise. I am very doubtful
however. I've been in the field since the early 80s and rarely do you ever
come across anyone who's "good". It's not that they aren't out there, it's
just that they're very rare commodities. I've heard many people over the
years refer to their colleagues using positive adjectives but their work
almost never lives up to the billing. It's not a matter of arrogance or
impossibly high standards. An objective assessment of most people's skills
will clearly show that they aren't "good" (based on reasonable standards).
Which is my point, interview processes at a lot of places focus on the
wrong skill sets, and poor developers seem to get a better run sometimes
in the interview process than the people who can actually get stuff done.

Most people *can't* get stuff done however - not cleanly anyway. This is the
crux of the issue. Better interviewing techniques would certainly help but
since most developers aren't very good (and often far worse), the math is
ultimately against you.
 
L

Larry Smith

I know a number of Senior/ Development Team leaders who are very good

I don't know these people so I can't say otherwise. I am very doubtful
however. I've been in the field since the early 80s and rarely do you ever
come across anyone who's "good". It's not that they aren't out there, it's
just that they're very rare commodities. I've heard many people over the
years refer to their colleagues using positive adjectives but their work
almost never lives up to the billing. It's not a matter of arrogance or
impossibly high standards. An objective assessment of most people's skills
will clearly show that they aren't "good" (based on reasonable standards).
Which is my point, interview processes at a lot of places focus on the
wrong skill sets, and poor developers seem to get a better run sometimes
in the interview process than the people who can actually get stuff done.

Most people *can't* get stuff done however - not cleanly anyway. This is the
crux of the issue. Better interviewing techniques would certainly help but
since most developers aren't very good (and often far worse), the math is
ultimately against you.
 
P

Paul

I think you need to ask yourself what meets your standard of good. To
suggest only 5% of developers are good suggests to me there is some flaw in
the way you percieve people, although it may be that you are that good we
all look poor.

To me someone is good when they time and time again deliver software to spec
and software that is relatively maintenance free. I have seen many people
that can do this, and not all of them guru's if you want to put it that way.

Lets put it this way what % of the .net framework do you need to know to
solve most day to day business problems. Companies got by for years on
software written using VB. What ever you say about VB it solved lots of
problems for businesses globally and they got by very well, now look at the
functionality the .NET framework gives us we could get by probably by using
10-20% of that and solve most issues thrown at us.
Most people *can't* get stuff done however - not cleanly anyway. This is
the crux of the issue. Better interviewing techniques would certainly help
but since most developers aren't very good (and often far worse), the math
is ultimately against you.

I'm starting to think your just trolling.
 
P

Paul

I think you need to ask yourself what meets your standard of good. To
suggest only 5% of developers are good suggests to me there is some flaw in
the way you percieve people, although it may be that you are that good we
all look poor.

To me someone is good when they time and time again deliver software to spec
and software that is relatively maintenance free. I have seen many people
that can do this, and not all of them guru's if you want to put it that way.

Lets put it this way what % of the .net framework do you need to know to
solve most day to day business problems. Companies got by for years on
software written using VB. What ever you say about VB it solved lots of
problems for businesses globally and they got by very well, now look at the
functionality the .NET framework gives us we could get by probably by using
10-20% of that and solve most issues thrown at us.
Most people *can't* get stuff done however - not cleanly anyway. This is
the crux of the issue. Better interviewing techniques would certainly help
but since most developers aren't very good (and often far worse), the math
is ultimately against you.

I'm starting to think your just trolling.
 
J

jehugaleahsa

Why not mix your questions up. Techie questions are ok but you also need to
be shown that someone can apply that knowledge. Why not create scenario'sin
which applying the system.collections namespace is required. Now there are
always more than one way to skin a cat, so get their solutions and ask them
to explain it to you. You may find they have found issues in the scenario
even you did not consider.

The problem is that we hire through a contractor, to do the filtering.
Most of our conversations take place over the phone. It is really hard
to know whether you should even both with an in-person interview. We
are pretty remote and very busy, so flying people in and taking a day
to test them needs to be done with caution.
IMHO you can always teach people .net or patterns by laying the foundations
for them and nurturing them, in fact how many of us have the time to learn
all the new Framework additions. What you cannot do is impart business
acumen, IMHO design is a Lead Developers role and not a junior/developer
role and there should always be a lead developer with these skills in a
team.

Our system is currently preparring to enter a new phase. Currently, it
only serves one region and there are only 10-12 users who input all
the data, which is generated by other large groups. It will soon be
serving the entire company, serving closer to a hundred users. There
are also some new business rules coming down the line changing how we
charge our customers, which will require a new calculation engine.

With all the extra work just a few months away, we really don't have
time to teach someone good programming practices along with the
business and .NET. I've be here for 3 years and I still don't have all
of the process figured out, let alone the business. My lead developer
has a much better grasp than I do, but he's not a hard-core programmer
either. We need support - good support.
 
J

jehugaleahsa

Why not mix your questions up. Techie questions are ok but you also need to
be shown that someone can apply that knowledge. Why not create scenario'sin
which applying the system.collections namespace is required. Now there are
always more than one way to skin a cat, so get their solutions and ask them
to explain it to you. You may find they have found issues in the scenario
even you did not consider.

The problem is that we hire through a contractor, to do the filtering.
Most of our conversations take place over the phone. It is really hard
to know whether you should even both with an in-person interview. We
are pretty remote and very busy, so flying people in and taking a day
to test them needs to be done with caution.
IMHO you can always teach people .net or patterns by laying the foundations
for them and nurturing them, in fact how many of us have the time to learn
all the new Framework additions. What you cannot do is impart business
acumen, IMHO design is a Lead Developers role and not a junior/developer
role and there should always be a lead developer with these skills in a
team.

Our system is currently preparring to enter a new phase. Currently, it
only serves one region and there are only 10-12 users who input all
the data, which is generated by other large groups. It will soon be
serving the entire company, serving closer to a hundred users. There
are also some new business rules coming down the line changing how we
charge our customers, which will require a new calculation engine.

With all the extra work just a few months away, we really don't have
time to teach someone good programming practices along with the
business and .NET. I've be here for 3 years and I still don't have all
of the process figured out, let alone the business. My lead developer
has a much better grasp than I do, but he's not a hard-core programmer
either. We need support - good support.
 
J

jehugaleahsa

I know a number of Senior/ Development Team leaders who are very good and
out of work in the UK at the  minute. Which is my point, interview processes
at a lot of places focus on the wrong skill sets, and poor developers seem
to get a better run sometimes in the interview process than the people who
can actually get stuff done. Not saying that is for your case, but if you
are struggling maybe you should take a step back and try to identify traits
that make a good developer. Certainly for me I would never recruit on
knowledge alone. I have met so many people in my IT career steming from
Support - Product Development Manager that have all the qualifications and
know all the buzz words but cannot apply it.

It is very hard to find the right questions. The question I hate is
this: What is Object-Oriented Programming?

It is so generic. Even a lot of really good object oriented
programmers have a hard time defining it. I work with architectural
and design patterns all day and I still have a hard time defining it
in a single sentence. I want to hear about encapsulating data behind
functionality, design patterns, single responsibility, blah, blah,
blah. I usually don't get this.
Lets also face facts that we are all learning and probably the day we stop
will be the day we get fed up of our jobs. Yeah it will never happen.

Learning is our job.
Good luck BTW hope you find someone, and when you do nurture them.

Thanks. Nurturing is very important to me; it is the only reason I
have the job I do.
 
J

jehugaleahsa

I know a number of Senior/ Development Team leaders who are very good and
out of work in the UK at the  minute. Which is my point, interview processes
at a lot of places focus on the wrong skill sets, and poor developers seem
to get a better run sometimes in the interview process than the people who
can actually get stuff done. Not saying that is for your case, but if you
are struggling maybe you should take a step back and try to identify traits
that make a good developer. Certainly for me I would never recruit on
knowledge alone. I have met so many people in my IT career steming from
Support - Product Development Manager that have all the qualifications and
know all the buzz words but cannot apply it.

It is very hard to find the right questions. The question I hate is
this: What is Object-Oriented Programming?

It is so generic. Even a lot of really good object oriented
programmers have a hard time defining it. I work with architectural
and design patterns all day and I still have a hard time defining it
in a single sentence. I want to hear about encapsulating data behind
functionality, design patterns, single responsibility, blah, blah,
blah. I usually don't get this.
Lets also face facts that we are all learning and probably the day we stop
will be the day we get fed up of our jobs. Yeah it will never happen.

Learning is our job.
Good luck BTW hope you find someone, and when you do nurture them.

Thanks. Nurturing is very important to me; it is the only reason I
have the job I do.
 
J

jehugaleahsa

I don't know these people so I can't say otherwise. I am very doubtful
however. I've been in the field since the early 80s and rarely do you ever
come across anyone who's "good". It's not that they aren't out there, it's
just that they're very rare commodities. I've heard many people over the
years refer to their colleagues using positive adjectives but their work
almost never lives up to the billing. It's not a matter of arrogance or
impossibly high standards. An objective assessment of most people's skills
will clearly show that they aren't "good" (based on reasonable standards)..


Most people *can't* get stuff done however - not cleanly anyway. This is the
crux of the issue. Better interviewing techniques would certainly help but
since most developers aren't very good (and often far worse), the math is
ultimately against you.

I hate to say it, but you are right in a sense. 50% of programmers are
not formally trained. How many of those simply haven't taken the time
to keep educated? You have to read, be part of forum discussions,
search on new techniques and technologies, etc.. Most people aren't
willing to do this and would rather spend their evenings playing WOW.

When I was in college, most of the other students were not "good"
programmers. By my senior year, I was the _only_ student who got all
of the assignments done. Some were damn near impossible for me at the
time. I was out-programming seniors when I was a sophmore. I was
better than half of the staff before I was a senior. Certain people
are simply better at programming. There were maybe two other people at
that rather small college I would even feel comfortable writing a
program with.

When I was first started working here, I was a hot shot who'd go home,
read GoF and try to implement a bridge pattern in a totally
inappropriate place. The sad thing was that the crappy code I was
writing was an improvement. I have a personal urge to improve myself,
to be honest about my faults and overcome them. It wasn't until I
failed to write a descent ORM library (3 times now, working on the
4th) that I started getting a better feeling for design patterns,
helpful practices, unit testing, etc.

So, I agree that there simply aren't that many good programmers. I
believe that you need to find those hot shot, language lawyers with
the aptitude to learn from their mistakes. You don't give them free
reign right off the bat, however. You give them the outline of a class
and have them fill in the implementation. Sit down with them and teach
them how to write good tests and get them to fix their own code. As
this person gets better at taking this onto themselves, you let them
take on larger portions of the code. That's really all you can do...
or maybe I'm off my rocker.
 
J

jehugaleahsa

I don't know these people so I can't say otherwise. I am very doubtful
however. I've been in the field since the early 80s and rarely do you ever
come across anyone who's "good". It's not that they aren't out there, it's
just that they're very rare commodities. I've heard many people over the
years refer to their colleagues using positive adjectives but their work
almost never lives up to the billing. It's not a matter of arrogance or
impossibly high standards. An objective assessment of most people's skills
will clearly show that they aren't "good" (based on reasonable standards)..


Most people *can't* get stuff done however - not cleanly anyway. This is the
crux of the issue. Better interviewing techniques would certainly help but
since most developers aren't very good (and often far worse), the math is
ultimately against you.

I hate to say it, but you are right in a sense. 50% of programmers are
not formally trained. How many of those simply haven't taken the time
to keep educated? You have to read, be part of forum discussions,
search on new techniques and technologies, etc.. Most people aren't
willing to do this and would rather spend their evenings playing WOW.

When I was in college, most of the other students were not "good"
programmers. By my senior year, I was the _only_ student who got all
of the assignments done. Some were damn near impossible for me at the
time. I was out-programming seniors when I was a sophmore. I was
better than half of the staff before I was a senior. Certain people
are simply better at programming. There were maybe two other people at
that rather small college I would even feel comfortable writing a
program with.

When I was first started working here, I was a hot shot who'd go home,
read GoF and try to implement a bridge pattern in a totally
inappropriate place. The sad thing was that the crappy code I was
writing was an improvement. I have a personal urge to improve myself,
to be honest about my faults and overcome them. It wasn't until I
failed to write a descent ORM library (3 times now, working on the
4th) that I started getting a better feeling for design patterns,
helpful practices, unit testing, etc.

So, I agree that there simply aren't that many good programmers. I
believe that you need to find those hot shot, language lawyers with
the aptitude to learn from their mistakes. You don't give them free
reign right off the bat, however. You give them the outline of a class
and have them fill in the implementation. Sit down with them and teach
them how to write good tests and get them to fix their own code. As
this person gets better at taking this onto themselves, you let them
take on larger portions of the code. That's really all you can do...
or maybe I'm off my rocker.
 
N

not_a_commie

Applying UML and Patterns (preferrably)

I confess that I don't consider a knowledge of UML necessary. It's
something that can be looked up when needed. And most companies simply
don't use it or anything like it. I do, however, consider search and
sort algorithms, dictionaries, virtual method lookups, and pointer vs.
value vs. reference types as essential knowledge for any C# coder I
would hire.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top