I find this very interesting Jon.
Great way to spend a saturday night.
(23:29 in sweden now, 00:26 when finished)
Jon Skeet said:
You might be surprised, actually...
... that you work for Apple,
and are working on the macintiosh core in RISC-assembler? *s*
CISC = Complex Instruction Set Computer
RISC = Reduced into Silly Code
Well, there's more to it than that - there's seeing how someone thinks
and solve problems. That doesn't show you their object orientation
skills, but it shows a few interesting things.
And communicate a solution, or a problem.
While I am not a great fan of eXtreme programming,
being able to communicate, and work with other people,
is much more valuable in my business, than actual coding-skillz.
Back in the old days, Joels test was cruical for knowing if
a coder was worth hiring. But for C# and Java, and also for C++,
I think the business of system development has moved from magic,
and personal coding-styles,
into mature best practices.
So if a dev wants a job, you can expect that he or she has the skill
to write good code. If not, they comform and learn really fast.
Ha - you have high standards. If someone can tell me the different
between a value type and a reference type, what the "using" statement
is for, and when they'd use StringBuilder, they're better than most
candidates. Sad, isn't it?
Well, I'd say way too high standard.
I would not actually ask those questions at an interview,
or not so many questions at one session,
as it would probably just make the coder feel uncomfortable,
and we can't have the interview take 3 days, now can we? *s*
So maybe my bullets above is something that any see-sharper should ask
themselves.
Heck, I'll try that next time we need a .NET developer.
- These are my 12 questions that I need you to think about when you work
here.
- Do you find them interesting or boring? If the latter, you don't want to
work here.
To be honest, what I look for in a candidate is a spark (once I've
satisfied myself that they're at all competent). The questions that are
appropriate to find that spark are open-ended, and depend on the
experience of the candidate, but things like:
Yes. The spark!
That is excactly what I am looking for when interviewing a candidate,.
I refer to the old idiom of:
- Nothing is easy or hard, just fun or boring, or not worth the effort
learning.
This is also why the original post, and this whole thread started
out wrong, or from the wrong perspective;
as it started with a bias of trying to weed out bad coders,
while most coders really wants to do a great job.
- Managing programmers is like herding cats!
While that statement is all so true, *s*
Programmers today are really great cats.
They really wants to do The Right Thing(tm).
If they are newbies, and you correct them, like:
- While a public field is not as bad in C# as in Java, it is still better to
use a property.
... my experience is that people listen to such advice, or call it a militant
order,
and you won't see a public field in the coders code no more.
I default to think coders are proud of their work,
but want to improve themselves, always!
I call that the spark!
But now I am going to answer your questions below.
o What do you like most about C# 2 over C# 1?
- Generics! That made C# a complete and mature language.
I'd also says C# 3 outshines C++,
while C# 1 is a poor excuse for a Java/Delphi langauge.
I had a breif conversation with a C++ dude,
that said that C++ will revive the c keyword of 'auto' to be like 'var'.
Anyone know more on this?
If C++ is following C#,
I know I am coding in the best language ever invented!
o What would you change in C# if you could?
Being able to have multiple indexers.
the this[int i] property thingy is just a silly restriction.
VB.NET can have multiple indexers, Delphi has them.
Sporting a Items[string s], Items[int i], Items[MyType mt] makes
for some complex nested inner classes,
that is simplex as in Java, and not simple as in C#.
Also, the old famous with keyword.
Coming from Delphi, and have been forced to do some VB,
I think a with-keyword would not hurt.
I know you don't like the keyword Jon,
but why not have it, and if you don't want it, then don't use it.
It is as simple as that. =)
And the benefit would be scope, and better intellisense.
If I can work with an object, using the with-keyword,
Intellisense could sport pme on that object,
and not the entire .net framework
You get something like that with initalization in C# 3.0,
but why not go the full monty and give us the with-keyword.
o What benefits does C# have over Java and vice versa?
PME!
I have been following Anders Hejlsberg sinse Turbo Pascal.
That is why I learned most of the .NET framework, in like a week.
I know and can code Delphi very well!
Microsoft bought the entire VCL for $125 mill,
if I remember correctly. Part of that was other patent-infringements.
But Whooops, now I am see-sharper, that was easy. =)
Any other Delphite reading this that also thought .NET was easy to learn?
- You should have a look at Delphi Jon,
as that would give you some insights
of the Homo Neanderthalis of C#. *s*
But if I remember the rumours correctly,
Anders stole/borrowed the idea of PME from
Visual Basic and COM.
PME:
- Properties
- Methods
- Events
I read an article/interview where AH says everything is sugar,
and he says that while Javaits don't think you need property and events,
then by slippery slope, you don't need the keyword class neither,
Not correct qoute by me
(using my poor memory)
(and I am pretty sure AH didn't use the word Heck *s*)
var ah = @"
Heck, we could do OO in pure c or assembler.
But rolling out your own VMTables would be simplexity, not simplicity
";
That is what I love with C#: The simplicity aspect.
While Java can only do simplexity.
I found the link, but let the above qoute stand, as a summary
http://www.artima.com/intv/simplexity.html
Agreed. People could claim I'm biased though, never having taken any
certification myself
Trust me, you don't need no stinking certificate.
Also, your MVP makes other MVPs read books, to try catch up. =)
But what I think most people love the most about you,
is your humble way of dealing with simple and simplex questions
in a nice low key, caring way.
What we don't like about you, and even hate,
is that you are seldom wrong.
Please make a post where you make a complete tit of yourself,
so lesser beings can go: - Ha! I corrected Jon Skeet.
=)
With Love
- Michael Starberg