Fog Creek Software
Discussion Board




Fresh "good" programmer vs. experienced "bad" one

I'd like to solicit opinions on this subject.

I am in a field which is heavily science focused. Pretty much everybody who works in this area has PhD. The programing skills are also important, because the ideas need to be implemented. Such jobs are constantly evolving due to the need to take into account new ideas/methods/etc.

Recently, I had an interesting experience. I tried to apply for jobs where I did not fit the description perfectly. I would lack the experience with a specific software tool or computer language while having a lot of experience with a variety of other similar things. To ensure that people look at my resume at least once, I went to the trouble to locate those contacts who are outside of the HR and would actually do the hiring. Then I sent my resume directly to them. The response rate was very high.

What I found was that the hiring managers-PhDs are no more open minded that the HR itself. In fact, in some ways they are even more narrow minded than the HR!
They do not seem to care much about problem-solving/fast learner/past accomplishments and other promising longer term things. The mismatch in the languages/software tools immediately made me a "no-go" in their eyes.

As "Peopleware" claims it takes about 2 years to get really good at something. That is certainly a quite realistic estimate. Also they claim that the difference between good and bad programmer's productivities is about an order of magnitude.

Now, given a strong background, an acceptable level of proficiency in other programming language can certainly be reached a lot faster, as little as few weeks. This is what even people without strong background did in the dot-com era.

Let's say a "good" programmer will aquire decent profficiency in a new language in 6 weeks.  At full level he'd be 10 times faster than an experienced "bad" one, however, with only few weeks training he is probably only 2x better. And, at that level, he is probably as effective as the majority of average programmers in this language.

Why is then a lack of a lot of experience with a language becomes such a stumbling block? Especially when it is scientific programming where understanding ideas being implemented is a lot more important. Is it because the people who do the hiring are extremely risk averse? Or is it because they lack their own experience with fast learning? Is it the economy and they hope to find a perfect match?

  Now, when there is so little acceptance toward different programming languages within the scientific types, what is then the hope for "good" pure programmers who can't put a lot of experince with a particular tool on their resume? Within short timeframe they could be more productive than average, but they won't get hired!

Could you, please, share your experiences?

Mr Curiousity
Monday, June 23, 2003

"They do not seem to care much about problem-solving/fast learner/past accomplishments and other promising longer term things. The mismatch in the languages/software tools immediately made me a "no-go" in their eyes."

no offence meant but based on this posting I dont believe for a second that you are the obviously correct choice you make yourself out to be :)
I would have to know more about your _actual_ experience and exactly what their requirements were before I could be sure but here are a few observations.


" This is what even people without strong background did in the dot-com era"

no, they didn't :)  as a rule all they did was _attempt_ to reach a useful level of proficiency.

"Let's say a "good" programmer will aquire decent profficiency in a new language in 6 weeks."

wow :)  this is a can of worms.
For every computer language there are basic things to learn.
(1) The syntax
(2) the api
(2.5) the IDE or development environment
and
(3) The best designs for the language
which is pretty much mixed with
(4) The most likely position & cause of bugs

a inexperienced "good" programmer (I have _never_ yet seen one of these mythical beasts) will prolly learn the first 3 in 6 weeks, maybe quicker.
but until they learn the last 2, even if they are actually writing code whut does stuff, they are still very likely to be creating future pain for their fellow developers.

An _experienced_ developer, even if they have to learn the first 3, will come up to speed much more quickly on the last 2 just because they understand at least some of the concepts, but they will _still_ take considerably longer than 6 weeks to internalise the lessons and adjust their coding practices to suit.

FullNameRequired
Monday, June 23, 2003

Don't hire bad programmers, no matter how experienced.

Never hire anyone that think they could become proficient in a language in 6 weeks.

fubared
Monday, June 23, 2003

"Don't hire bad programmers, no matter how experienced."

right.

"Never hire anyone that think they could become proficient in a language in 6 weeks. "

:)  exactly.

FullNameRequired
Monday, June 23, 2003

I'd never hire anyone who didn't think they could become proficient in a programming language in 6 weeks.

It's due to the rule about not hiring bad programmers - a good programmer can and will manage it in 6 weeks.

And the horse you rode in on
Monday, June 23, 2003

It's nice to see that the kind of people who are often in similar hiring positions hiring the same kind of programmers can often have exactly opposite opinions.

Ugh.

Warren Henning
Monday, June 23, 2003

"a good programmer can and will manage it in 6 weeks. "

Oh god.  I hope you're not serious.  I doubt anyone could really understand the ins and outs of html in 6 weeks.

fubared
Monday, June 23, 2003

The problem with programmers is every single one of them is above average -- or at least believe themselves to be.  Not many will admit to being bad at what they do for a living.  This is why it's hard for a truly outstanding programmer to get a good hearing in front of an HR agent or nontechnical manager -- their voices can't be heard above the din of so many pretenders.

Recruiters need a reason to believe that you're a good developer -- they need hard, quantifiable data, not some wishy-washy, "well, a smart programmer such as myself could learn that in a few weeks".  Most recruiters and hiring managers simply don't have the background or knowledge to give you a pop quiz and to understand the answers you give them.  They usually don't have the knowledge to determine which skill sets are related, or how much study is REALLY needed to become proficient at any one skill. 

So, failing that, they look for quantifiable experience in any way that they can -- actual hands-on experience that shows up in your resume, or trusted references that can vouch for your abilities.  That's the only evidence that they will accept.

Alyosha`
Monday, June 23, 2003

Ladies, if this were natural language, or language paradigms, I would agree.

However, Java is so close to C++ (you just have to cut off your arms, and you'll be at home with Java), Scheme is so close to Lisp, C# is so close to Java, etc. that it IS possible to become proficient in a language within 6 weeks.

It takes time to really get the language's specific idioms, but most people don't get various C idioms after 5 years, and that's rarely something you test when recruiting.

Test yourself: How many of you know the multiple-case ?: idiom in C? How many of you know the preprocessor tuple idiom in C? How many of you can write a metaprogram in C++? (Not that anyone ever should).

He-who-would-not-be-named
Monday, June 23, 2003

Re: Java is so close to C++

You can go C++ -> java probably without a big problem, but not the other way around.  Learning pointers, templates, destructors, etc. is going to take a lot more than 6 weeks.

I'm with the people that say they WOULDN'T hire anyone who thought they could learn a language in 6 weeks.  Chances are, someone like that has 6 weeks worth of experience with a bunch of things.  That is, they never got to the point where they are totally fluent and understand how long it takes to be good at using a specific tool.  It might take you 6 weeks to understand the basics of a language, but to be PRODUCTIVE in that language is what counts, and that's a totally different story.

Java to C# might be okay, except that most of C# programming is using the .NET library.  Try learning that in 6 weeks.  Try learning the C++ standard library in 6 weeks, even if you already know C and C++ pretty well.  If you think you can do that, then I've got a quiz for you.

BTW: your choice of C/C++ idioms shows that you don't really program in C/C++ that much.

Andy
Monday, June 23, 2003

From the post by <<FullNameRequired>>,  and other posts  it seems a good programmer can learn syntax of a new langauge fairly fast.  However, it takes longer time to lean the libraries.  What the original poster did not tell us is whether the jobs required him to understand those libraries.  The industry he was trying to get a job in seems highly specialized and might be possible that they do not use libraries alot.

Ling
Monday, June 23, 2003

>>> Java to C# might be okay, except that most of C# programming is using the .NET library.  Try learning that in 6 weeks.  Try learning the C++ standard library in 6 weeks, even if you already know C and C++ pretty well.  If you think you can do that, then I've got a quiz for you.


You don't have to learn the entire .NET library or the STL within six weeks, but you have to learn what you can expect from them, and how to use the documentation. And that's possible in six weeks.

I am ready for your quiz.

char* full_name()
Monday, June 23, 2003

The worst programmers are those that have an unjustifiably high opinion of their abilities.  You might think you can jump from Java to C# in six weeks, it's virtually identical right?  You could probably whip up some decent apps fairly quickly too.  But the fact is that once you get into a project of consequence there are subtleties, obscure problems and new apis to deal with.  If you think you can do 4 years C++ and be as equally proficient in VB.Net with six weeks of cramming, then you're either really ubelievably good or full of you know what.

fubared
Monday, June 23, 2003

Who are you trying to fool? Six weeks to learn C# and the .NET library? What kind of employer is that? I only had one week!

no kidding
Monday, June 23, 2003

"You don't have to learn the entire .NET library or the STL within six weeks, but you have to learn what you can expect from them, and how to use the documentation. And that's possible in six weeks. "

no its not :)


seriously.  I have played the same game most of us programmers have....applescript this week, installshield scripting next week, learning some basic css to do drag n drop for a website, then across for a month of c++ before being asked whether I can whip up a thingie in perl, writing a quick wee app in cocoa (specially requested by a client who thought it was the best thing since slice bread), then some shell scripts for a unix cron job whatsit and then a java applet that needs to use jdbc to pull info out of a filemaker database...and then...

<g> Im a programmer, I _love_ solving problems and learning languages.  Its _what I do_

but despite all the code Ive written in all kinds of scripting and programming languages, there are very few that I actually claim to be good at, and none of those did I get that way in 6 weeks.

Learning what to expect from a language is a process that involves discovering that in general its libraries are (a) buggy, (b) more limited than expected (c) marvelous creations capable of doing everything I desire in the way I want to do it (d) etc (e) etc
it involves reading mailing lists and taking note of potential trouble areas long before you get to them so that when your boss or a client asks about doing x in language y you can give a quick answer (either yes, no, or "Ill have to look study before answering, I recall reading somethign about problems doing z"

Learning how to be good in a language means knowing that you should use design a rather than b even though in the generic sense b is better because in _this_ language its not.

it means knowing that although the docs say that you can use simple and painless method a to achieve your goal you actually need to put aside 2 months and use method b because the docs are wrong and dont mention bug #2381237

I could go on and on, but the basic idea is that anyone monkey can write code in a language after no more than 6 weeks study, the code will prolly even do useful stuff, _but_ its not going to be good code, its not going to be easy to debug (in that language) its not going to do things in the best way (for that language) and its very likely to cause your coding colleagues pain when they try to modify or debug it later on.

FullNameRequired
Monday, June 23, 2003

Fact is, there are good programmers and there
are bad programmers.

Bad programmers can get into hiring positions,
and they still stay bad, so unless they have
pressure, they will hire other bad programmers.
Even under pressure, since they think a certain
way and are bad because of that, it is not
clear they CAN hire somebody good.

You can only hire somebody a little better
than you, not a lot better.  The lot better
one (e.g. someone who could learn in six
weeks what would take you two years)
will sound like a total fake.  And face it,
very often will be -- if you are bad yourself, you
just have no way to tell the real from the fake.
So you end up hiring within your own range.

mp
Monday, June 23, 2003

:) interesting...I have a vague feeling Ive been insulted but Im not sure why...

Im not sure I agree with the general point however.  I am _good_ at recognising people who are better than me. 
Wherever possible I even hire them.

OTOH its important to be able to judge these people based on what they actually _do_, not what they say they can do.

why?  because in my experience people who actually have experience in an area understand the pitfalls, the parts where they do not have as much depth of knowledge, and just how far their knowledge goes.  (ie, they tend to have a much better idea of what they actually _know_ compared to what they _do not know_)

OTOH people who cannot find their ass with both hands and a mirror, but know where it is in theory, tend to wax lyrical about how simple it would be to find if they felt like doing so.

All of which means that if a young, aggressive chappie walked in and told me he had studied c++ in depth and felt that he could pick up everything he needed to know to be able to write good, clean java code in six weeks Id grin to myself, take him though some tests and ask some questions to get a grasp on what he actually knew and (maybe) hire him under the assumption that it would take a fair bit longer before he began paying his own way...

(and if that same chap made a habit of posting under diffferent names to the same topic in a particular forum Id wonder what other areas he was dishonest in :)

FullNameRequired
Monday, June 23, 2003

Seems like everyone on this thread is missing the forest for the trees.  Okay, maybe even a great programmer can't become proficient in a new language in six weeks.  But he'll surely be more proficient than Mr. IT Buzzword after six months - much, much more proficient.  Why is this industry so fixated on alphabet soup?

bob
Monday, June 23, 2003

If you say that one can't become productive with a new language in 6 weeks, then how long is it?

[1,2,5,10,20,50,100] [weeks,months, years]?

--
ee

eclectic_echidna
Monday, June 23, 2003

What I detect in these posts is that people in chaotic, interrupt-driven work environments refuse to believe someone can learn something well in six weeks. There also seems to be a nasty theme of trying to undermine those, possibly very good, developers who claim otherwise.

Yet, in software houses and research groups, people do have time to learn, and are able to master new languages quickly - say, in six weeks - and to a depth suitable for developing first class software. This presumes they are already accomplished developers.

Apart from this, about 80 percent of the capability for developing software lies in the ability to analyse abstract complexity and devise solutions, including understanding general design patterns. If the person is strong in those core skills, then having to learn a new language is not a significant issue.

Regarding a few posters' incredulity at learning the .Net framework quickly, it's worth bearing in mind that the patterns in those libraries are familiar to experienced Windows developers, whatever their earlier languages. This bears out the original poster's theme that general capability translates quickly to different languages.

Must be a manager
Monday, June 23, 2003

Yes, you can learn a new technology in six weeks time, especialy one that is well documented.
What you can't get in that time is experience. Most of the time when you run into "issues" in development, it is not that you didn't "learn" something well enough, it is that you are building up experience.

http://www.artsci.wustl.edu/~philos/MindDict/tacitknowledge.html

Just me (Sir to you)
Monday, June 23, 2003

Not to start a flame war, but this thread is full of "rosey colored glasses" well meaning hogwash.

"Ladies."

The fact is - while many things being said about programmer learning curves and bell curve distributions of programmers are true... the fact is this:

You can approach many companies and most recruiters with a freaking PILE of your accomplishments, and get absolutely nowhere.  Many companies will discount anything a developed did in the past as not being applicable good experience and not being adequate proof of that person's ability to contribute, whether using the current tool that person knows or a different tool.


You can present abundant hard evidence in absolute vain. In my case: developed several commercial shrink wrap apps from conceptual design, through guts to full working deployable application; mentored entire small company in moving from DOS to Windows; able to use this, that and the other language with hard, true, real delivered products and happy clients. And have it ALL shot down and diminished with lines like "but we're an engineering firm and those are application vendors so the work wasn't as hard". "But you were on your own so how could you possibly have approached the work with any wisdom or understanding?" "Ohhhh... you did some C++ in the past, now you're using this Delpi, you have lots of Delphi, you think you can come back up to speed?"


The point is, many hiring entities are run by prima donnas who think they're the universe's nexus of good software craft, and anyone approaching them for a position is an unwashed heathen. No matter what your background is larded up with, nobody will listen unless they're receptive. And forget that any past accomlishments of yours will be taken as evidence of future performance.

OK, my rant aside (partially) - I only work contract because no permanent job I've seen in the last 10 years is worth taking. So I'm probably hearing mounds of FUD rationales piled on to justify hiring the less qualifed and cheaper types that the clients are really holding out for...

Bored Bystander
Monday, June 23, 2003

---" I doubt anyone could really understand the ins and outs of html in 6 weeks. "-----

My book says you can do it in 24 Hours.

Stephen Jones
Monday, June 23, 2003

Didn't mean to say people cannot hire a certain
level better than themselves, they do it
all the time!

But I think there is a "range".  If I see
a spam promising to make lots of
money for me in stock market in
six months, I only have my general
world experience that helps me
(automatically) conclude it is junk.

But if somebody who really was an unknown
genius at stock picking came along,
and out of the goodness of his heart
offered to share his secrets with the world
(or even just me for some reason,) I am afraid I
would have to lose the opportunity.  That
person would be out of my "range".  I
have no good way to judge if the person
is really a stock picking genius or not.

mp
Monday, June 23, 2003

I'd like to clarify, what I meant by fresh "good" programmer was somebody with a lot of programming experience just not in the particular language.

The quotes I've extracted below highlight one thing, which is that everybody pretty much takes his/her own limitations as the absolute ones. That is exactly what I expected. Give me a break, "it is hard to learn HTML in 6 (!!!) weeks" ??? 6 bloody weeks ?!?

It is actually pretty tough to be above average and trying to explain to others what *your* limitations are. Being a minority in the system designed for majority causes all kinds of mismatches ...

Few quotes:

"Never hire anyone that think they could become proficient in a language in 6 weeks."

"I'd never hire anyone who didn't think they could become proficient in a programming language in 6 weeks."

"Oh god.  I hope you're not serious.  I doubt anyone could really understand the ins and outs of html in 6 weeks."

" it seems a good programmer can learn syntax of a new langauge fairly fast.  However, it takes longer time to lean the libraries."

"anyone monkey can write code in a language after no more than 6 weeks study, the code will prolly even do useful stuff, _but_ its not going to be good code, its not going to be easy to debug (in that language) its not going to do things in the best way (for that language) and its very likely to cause your coding colleagues pain when they try to modify or debug it later on. "

"Okay, maybe even a great programmer can't become proficient in a new language in six weeks.  But he'll surely be more proficient than Mr. IT Buzzword after six months - much, much more proficient."

Mr Curiousity
Monday, June 23, 2003

Going back to the original topic, I think the hirer's problem is how the heck do you tell?

Candidate A: knows programming tool X good

Candidate B: knows X, bad

Candidate C: doesn't know X, but might or might not be very good


For Candidate C, it is very hard for the hirer to know whether they are really very good, as you're not even speaking the same language as him.

S. Tanna
Monday, June 23, 2003

Mr Curiousity (sic).  Spoken like a true inexperienced primadonna programmer.  The html comment, which you saw fit to misinterpret, merely highlights the fact that even with the simplest of technologies there are deeper aspects to be considered. 

Once again, you are not going to come to grips with the deeper aspects of a language within six weeks.  Anybody claiming to be able to do so is either a fool or pulling your chain.

It's all about experience, not ability.  You might think you are gods gift to programming, but you sound like just another naive dotbomber to me.

fubared
Monday, June 23, 2003

The way I see it, there are two types of programmers.

Type a gets off their butt and learns the language in 6 weeks.

Type b bitches about how nobody can possibly learn it in 6 weeks (probably because they can't themselves), in order to put others down so that they can equal the playing field for themselves.

;)

Anyone who's saying that you can't know absolutely everything about a language in 6 weeks - duh. You can't know absolutely everything about a language in 6 lifetimes. The thing is that you don't need to. You can be productive in 6 weeks. You don't need to know everything to be productive. If you did, how would anyone ever write a program?

I certainly think that if programmer A has twice the ability than programmer B, then programmer A will be significantly more productive after 6 weeks than programmer B will be after 6 years, all other things being equal (domain/product knowledge etc).

Belive all the buzzwords and bullshit bingo all you like. A good programmer is still a good programmer. THE TOOLS DONT CHANGE THAT. Does anyone honestly think that if you gave Mozart a musical instrument he'd never seen he couldn't compose something for it after a few weeks, that sounded better than the average composer would ever manage in a lifetime?

And the horse you rode in on
Monday, June 23, 2003

"Type a gets off their butt and learns the language in 6 weeks.
Type b bitches about how nobody can possibly learn it in 6 weeks (probably because they can't themselves)"

LOL

thats beautiful.

and its mostly true ;)  I did _not_ learn c++ in 6 weeks, I did _not_ learn java in 6 weeks, I did _not_ learn applescript, html, css, winbatch, installshield scripting (shudder), cocoa, visual basic, or c in 6 weeks.
I did not learn perl, shell scripting, filemaker scripting, sql, javascript or REALbasic in 6 weeks.
I _have_ OTOH completed paid-for projects in all of those areas.
and in many, many cases my first introduction to each of them were projects that had to be completed in much less than 6 weeks, perl for instance I initially had to grasp and become useful in approx 6 hours so I could fix some bugs a contract programmer had left behind half a day before it went online.  (and _yes_ I did mention before starting that trying to do so was silly, so you could say that I 'whinged' about how it was impossible.  as it turned out the bugs were relatively obvious)

Yet in nearly every language my ignorance is _much_ greater than my knowledge.  There are entire areas in each that Ive never touched.

Ill say it again, _any_ monkey can write useful code in a new language in less than 6 weeks.  but only a person of great inexperience would claim to have "learnt" that language because they had done so.

OTOH I have certainly never claimed to be a 'great' programmer :)


"You can be productive in 6 weeks."

ahh, now _thats_ a different statement.

I agree, it is possible to be productive in 6 weeks.  But (I state again) it is _not_ possibly to have 'learnt' a language in less than 6 weeks for any useful definition of the word 'learnt'.

FullNameRequired
Monday, June 23, 2003

Horsie, you don't have to know everything under the sun.  How could you honestly consider anybody to be proficient within six weeks is beyond words.

If some people want to live in a dream world in which they're the worlds greatest programmer, that's their problem.  Just don't expect me to hire them or take them seriously.

http://dictionary.reference.com/search?q=proficient

"Having or marked by an advanced degree of competence, as in an art, vocation, profession, or branch of learning."

fubared
Monday, June 23, 2003

"Does anyone honestly think that if you gave Mozart a musical instrument he'd never seen he couldn't compose something for it after a few weeks, that sounded better than the average composer would ever manage in a lifetime?"

you have to admit though that composing music is a _lot_ harder than writing code.

I know its trendy at the moment to pretend that coding is an art and not a craft, but in all honesty coding is a _lot_ easier and less artistic than composing or painting.

Although it is equivalent to neither I think of it as being closer by a long way to engineering than it is to art.

backdraft
Monday, June 23, 2003

"Once again, you are not going to come to grips with the deeper aspects of a language within six weeks.  Anybody claiming to be able to do so is either a fool or pulling your chain."

Fubared, you seem to imply that understanding "deeper" aspects of a language is absolutely necessary to be productive. No, no, and one more time no. I have the following observation about the things that I did develop better understanding with after the mandatory 2 years. When I look back at what I've done when I was "fresh" it still is most of the time very good and in fact is invariant to more shallow or deep understanding. You do not need brain surgery type of skills to give somebody a flu shot.

"It's all about experience, not ability.  You might think you are gods gift to programming, but you sound like just another naive dotbomber to me."

Never participated in the dotbomb thing. And again, programming for me is a tool to apply my specialized knowledge. I am pretty confident about my abilities since I've done a lot of comparisons with the people around me and I know where I stand.

Mr Curiousity
Monday, June 23, 2003

"When I look back at what I've done when I was "fresh" it still is most of the time very good and in fact is invariant to more shallow or deep understanding"

wow.

thats pretty impressive, when I look back at stuff Ive done when I was 'fresh' it tends to make me cringe.

congratulations :)

FullNameRequired
Monday, June 23, 2003

or that could mean he has failed to learn anything new about what he is doing in over 2 years.

Makes him either brilliant or a total moron...

backdraft
Monday, June 23, 2003

...I have a theory on that...

FullNameRequired
Monday, June 23, 2003

Well, according the http://www.m-w.com/

learnt: to come to be able <learn to dance>

I maintain that there are many programmers who "come to be able" to program in a language in under 6 weeks.

I would not hire anyone who was useless with a new language or tool for over 6 weeks from first contact.

Personally, I don't think it's unreasonable for them to be able to start programming in a new language they've never seen before that very day.

Why? Because it's mostly syntactic sugar. The concepts remain the same. Sure, they may not produce the most "idiomatic" code (I dislike the word idiomatic - since by definition, the way you code is your own idiom, but I digress). Who cares? They don't have to. You don't have to get things perfect, you just have to get things done.

You can produce idiomatic shit too. I've seen it. Code that used all the language features in a textbook manner and still stunk up the house. I'd take code that was a bit less pure but done by someone who actually understood programming any day.

And the horse you rode in on
Monday, June 23, 2003

"I maintain that there are many programmers who "come to be able" to program in a language in under 6 weeks."

ok, lets take that as the definition :)

My only problem now is that that this definition does _not_ match the original posters claims.
which were:
"Let's say a "good" programmer will aquire decent profficiency in a new language in 6 weeks.  At full level he'd be 10 times faster than an experienced "bad" one, however, with only few weeks training he is probably only 2x better. And, at that level, he is probably as effective as the majority of average programmers in this language."

so, if you like, we were _really_ discussing the ability of a programmer to reach _proficiency_ in a given language within 6 weeks.
(and as a side issue, whether even a great programmer could really become as effective as an average programmer _with experience_ inside of 6 weeks.)

For the second part I guess the obvious answer is "yes for a sufficiently high defiition of the work 'great'"
ie, a mozart of the programming world possibly could...but lets face it, they are rare enough even in the musical world...

"I would not hire anyone who was useless with a new language or tool for over 6 weeks from first contact."

agreed.


"Personally, I don't think it's unreasonable for them to be able to start programming in a new language they've never seen before that very day. "

again, this depends entirely on the meaning of the word 'unreasonable'
prolly like most programmers I have done exactly this surprisingly often.
...and some IDE's (realbasic for instance) positively encourage the idea that this is not only possible, but desirable.
But lets face it, its a bloody stupid idea really.....something thats only necessary because of extreme time constraints and because of that often results in some daft code...

<g> OTOH I _do_ rather enjoy doing it.....

FullNameRequired
Monday, June 23, 2003

Agreed, it can result in some daft code. I'm sure Mozart hit the wrong notes sometimes too. ;)

Anyways, I'd rather daft code written by people who will eventually realise and fix it than daft code written by people who will always be too dumb to see the error of their ways.

Mozart was a bad example because he was so brilliant. My point really was that a tallented programmer is a talented programmer no matter what the tool. They don't have to be the freakish once in a lifetime talent of a Mozart, just a cut above the average.

As far as language experts go, I've worked somewhere where the person who knew the most about the language was the worst coder. I'm not sure if he even knew the meaning of the word "algorithm". But if you needed to know which API call did something, he'd be able to tell you.

You know how much he was worth to the company? About $50 US, for which price one could buy a decent reference manual. As a side note, he was ultimately fired after he turned working code into pea soup one too many times, so I suppose you really can't get by on being a language expert but nothing else forever. :)

And the horse you rode in on
Monday, June 23, 2003

6 weeks = 6 * 6 days per week * 4 hours per day = 144 hours.

If someone can't learn a new language in less than 144 hours, of course it is time to abandon the profession. Nobody may be so dumb.

sure thing
Monday, June 23, 2003

"If someone can't learn a new language in less than 144 hours, of course it is time to abandon the profession. Nobody may be so dumb. "


LOL

well according to Test The Nation my IQ is only 117, so maybe I _am_ that dumb.

certainly I have never learnt _any_ language in 6 weeks ;) 

Ill wait until my clients discover this before I actually quit of course, at the moment they have no idea and continue to pay me :)

FullnameRequired
Monday, June 23, 2003

Quote:
"You don't have to learn the entire .NET library or the STL within six weeks, but you have to learn what you can expect from them, and how to use the documentation. And that's possible in six weeks.

I am ready for your quiz. "

At the risk of beating a dead horse... Learn "what to expect' and "how to use the documentation"?  Sure I could do that in 6 weeks.  I could learn how to use documentation in about 2 minutes.  But that doesn't mean I'll be productive in 6 weeks, and that's the whole point.

If you knew STL, then you wouldn't think you could be productive with it in 6 weeks.  ; )  You might be able to get something done, but your code would probably have to be thrown out.  And writing code to be thrown out is the opposite of productive.  It would probably be poorly maintained for a few project cycles, and cause a bunch of bugs, and then someone would finally rewrite it.

That is maybe an extreme example, on the harder side of things.  I would agree that some languages are more or less interchangeable.  Supposedly from other posts on this site, if you know VB.NET with the .NET library, then C# with the .NET library is a piece of cake.

But some technologies require new concepts.  Another example is if you have never programmed in a lisp-type language then there's no way you're going to write code that lasts in 6 weeks, no matter how much Java and C++ you know.

My quiz remark was rhetorical.  I could definitely give you a quiz, but it would involve non-trivial programming that might take a few hours, and I dunno why you'd want to do that.

Andy
Tuesday, June 24, 2003

To answer one of Mr Curiousity's actual questions:

1. The reason university research departments might concentrate too strongly on a candidate having a particular language is that university research groups and staff generally lack the extensive experience in software development that professional developers have.

Thus, universities often resemble less intelligent businesses in their software development projects. Scientific and research software is often poorly constructed.

2. As an aside, this lack of expertise sometimes extends to specific software-engineering courses, which is a worry.

.
Tuesday, June 24, 2003

Heh, here's an STL quiz:

Name 5 STL container types without using the word "multi".

Less that 50% of the people I have interviewed who "know" the STL and supposedly have many years of experience with it cannot answer that question.

Of course if you feel you can't get past that level within 6 weeks, then who am I to argue?

punter
Thursday, June 26, 2003

html in 6 weeks? come on guys..

programmingIsEasy
Thursday, June 03, 2004

*  Recent Topics

*  Fog Creek Home