Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

How Experienced And Novice Programmers See Code

Unknown Lamer posted about 2 years ago | from the m-x-run-direct-neural-interface dept.

Programming 238

Esther Schindler writes "We always talk about how programmers improve their skill by reading others' code. But the newbies aren't going to be as good at even doing that, when they start. There's some cool research underway, using eye tracking to compare how an experienced programmer looks at code compared to a novice. Seems to be early days, but worth a nod and a smile." Reader Necroman points out that if the above link is unreachable, try this one. The videos are also available on YouTube: Expert, Novice.

cancel ×

238 comments

Sorry! There are no comments related to the filter you selected.

Code? (5, Funny)

Anonymous Coward | about 2 years ago | (#42338547)

I see Blonde, Brunette,...

Re:Code? (4, Insightful)

Rockoon (1252108) | about 2 years ago | (#42338609)

I see lack of comments, lack of comments, and god damned polish notation.

Re:Code? (2)

NeoMorphy (576507) | about 2 years ago | (#42338781)

I see lack of comments, lack of comments, and god damned polish notation.

Hungarian notation? I assume because of the "lack of comments".

Re:Code? (5, Funny)

Beardo the Bearded (321478) | about 2 years ago | (#42338839)

I see lack of comments, lack of comments, and god damned polish notation.

Hungarian notation? I assume because of the "lack of comments".

aHungarian nnotation? nI vassume abecause cof cthe alack cof ncomments

FTFY

Re:Code? (2)

t4ng* (1092951) | about 2 years ago | (#42339521)

CamelNotation ? IAssumeBecauseOfTheLackOfComments : '';

Re:Code? (1)

mccrew (62494) | about 2 years ago | (#42339769)

aHungarian nnotation? nI vassume abecause cof cthe alack cof ncomments

FTFY

Did you mean:

aHungarian nnotation? nI vassume abecause pof a'the nlack pof ncomments

Re:Code? (1)

mcgrew (92797) | about 2 years ago | (#42339243)

I see lack of comments, lack of comments, and god damned polish notation.

Hungarian notation? I assume because of the "lack of comments".

This [wikipedia.org] is what he's talking about.

About fifteen years ago one of the PC (politically correct) clowns ragged my boss at a lunch for saying something about reverse polish notation because she thought it was a pollack joke! He and I had a good laugh about that one.

Re:Code? (1)

X0563511 (793323) | about 2 years ago | (#42338827)

What is polish notation? Did you mean Polish notation?

Re:Code? (0)

Anonymous Coward | about 2 years ago | (#42338969)

What is polish notation? Did you mean Polish notation?

Only if you like choking on penises.

Re:Code? (0)

Anonymous Coward | about 2 years ago | (#42338993)

What was the point of your question? Yes he meant polish notation. That's why he typed that.

Re:Code? (1)

X0563511 (793323) | about 2 years ago | (#42339269)

polish: what you do to make wood shine
Polish: having to do with people or things from Poland

Re:Code? (3, Insightful)

boristdog (133725) | about 2 years ago | (#42339497)

Polish: Making wood shine at the beginning of a sentence.

Re:Code? (1)

X0563511 (793323) | about 2 years ago | (#42339783)

True. However, the word in question was in the middle of a sentence:
"... and god damned polish notation."

Re:Code? (1)

Impy the Impiuos Imp (442658) | about 2 years ago | (#42338833)

From this description, I will predict my experienced response will be "beat someone".

Re:Code? (5, Insightful)

Anonymous Coward | about 2 years ago | (#42338855)

An inexperienced coder sees code they have written, and everything else is unintelligible crap that only a moron would have written.

An experienced coder just sees everything as unintelligible crap that only a moron would write.

Re:Code? (3, Insightful)

Anonymous Coward | about 2 years ago | (#42339665)

I feel immense shame, horror and bewilderment when I look at my old code. Did I really write this rubbish?

You forgot... (1)

MatrixCubed (583402) | about 2 years ago | (#42339559)

...redhead.

Re:You forgot... (0)

Anonymous Coward | about 2 years ago | (#42339721)

...redhead.

It doesn't take a l33t hax0r to read if(person.soul == null) { ... }

Coding and programming... (-1)

Anonymous Coward | about 2 years ago | (#42338553)

is boring ! I prefer dancing ! Britons dance [youtube.com]

Re:Coding and programming... (1)

loufoque (1400831) | about 2 years ago | (#42338641)

That's actually pretty scary.

Slashdotted (0)

Anonymous Coward | about 2 years ago | (#42338581)

Page won't load :/

Contacting Server... (5, Funny)

localman57 (1340533) | about 2 years ago | (#42338587)

At this moment, novice programmers think the network is down. Experienced programmers know the site from TFA has been slashdotted.

Re:Contacting Server... (1)

techstar25 (556988) | about 2 years ago | (#42338623)

The network is down right now, apparently.

Re:Contacting Server... (4, Funny)

SirGarlon (845873) | about 2 years ago | (#42338657)

So much for the idea that Slashdot readers never look at TFA. However, I remain undaunted, and will now proceed to discuss the article even though no one can read it! :-)

Re:Contacting Server... (5, Funny)

tool462 (677306) | about 2 years ago | (#42339315)

We read the article, just not before we comment. Usually I middle-click to open the article in a new tab, then read the comments. That way I know which parts of the article to indignant about when I get to them.

Re:Contacting Server... (0)

Anonymous Coward | about 2 years ago | (#42338659)

Hahaha. Good point!
@OP Thanks for sharing the link.

Re:Contacting Server... (1)

Anonymous Coward | about 2 years ago | (#42338693)

So it's not a problem with my Netscape browser?

Re:Contacting Server... (0)

Anonymous Coward | about 2 years ago | (#42338793)

The problem is you're not using IE4.

Re:Contacting Server... (1)

stvyrayvhn (641824) | about 2 years ago | (#42338825)

Oh ok, I'll see if I can upgrade.

Re:Contacting Server... (0)

Anonymous Coward | about 2 years ago | (#42338979)

Better just stick to NCSA Mosaic.

Re:Contacting Server... (2)

geophile (16995) | about 2 years ago | (#42338705)

Heh heh heh.

And then there are dumb programmers. I was working on a server product, which could be accessed by a browser. IE something.something used to put up a generic "... or contact Microsoft support" message when the server being contacted wasn't responsive. We were debugging a server, so of course it wasn't responsive. This dummy was seriously arguing with me that the right course of action was to call Microsoft support.

(He wan't a novice. He was experienced, in the sense that he has been pressing buttons attached to a computer for many years. But a dummy.)

Re:Contacting Server... (0)

Anonymous Coward | about 2 years ago | (#42339003)

tons attached to a computer for many years

Now that's a CPU under heavy load.

Re:Contacting Server... (0)

I Mean, What (2778851) | about 2 years ago | (#42339167)

fail. you just fail. so much fail. fail hard 3. faaaayyyyyyyelllllllllllll. fail. tuck your fail between your legs because you fail.

Re:Contacting Server... (5, Funny)

Ibiwan (763664) | about 2 years ago | (#42338799)

Experienced programmers know the ENEMY'S network is down.

Re:Contacting Server... (0)

Anonymous Coward | about 2 years ago | (#42339289)

My ansible for mod points!

Re:Contacting Server... (1)

Hatta (162192) | about 2 years ago | (#42338819)

Holy crap, a Slashdotting. I thought those days were long gone.

Re:Contacting Server... (0)

Anonymous Coward | about 2 years ago | (#42338857)

At this moment, novice programmers think the network is down. Experienced programmers know the site from TFA has been slashdotted.

And the most experienced know that you can type cache:http://synesthesiam.com/?p=218 to see a google cache of the page. No fancy markup, but at least you can RTFA.

Re:Contacting Server... (2)

N!k0N (883435) | about 2 years ago | (#42338899)

which is also slashdotted apparently...

Re:Contacting Server... (0)

Anonymous Coward | about 2 years ago | (#42339213)

Damn! The firewall in my job is blocking me and using Tor I get a "Sorry... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now". :'(

It seems I won't be able to read the article. >:|

Re:Contacting Server... (0)

Anonymous Coward | about 2 years ago | (#42339187)

actually, novice programmers think the site is slashdotted; experienced programmers already start hacking off the bandwidth issue.

Re:Contacting Server... (1)

andyn (689342) | about 2 years ago | (#42339703)

Now that you mentioned it, I just noticed that Chrome gave an error message I hadn't noticed before:
Other users are also experiencing difficulties connecting to this site, so you may have to wait a few minutes.

The real news, however, might be that someone on Slashdot uses a browser that actively spies its users' browsing habits.

First post... (-1)

Anonymous Coward | about 2 years ago | (#42338607)

...and already slashdotted

Comments (5, Interesting)

JesseMcDonald (536341) | about 2 years ago | (#42338619)

I imagine one of the first things a programmer learns about reading code, if they're going to be any good at it, is to skip over the inline comments. Reading them will only prejudice your interpretation of the code in favor of the original authors expectations, preventing you from seeing what the code is actually doing.

Comments are useful when you come across a block of code you can't otherwise understand, but the rest of the time they tend to either duplicate information which is already in the code, or confuse matters by being vague, misleading, or just plain wrong.

High-level documentation of modules and functions is invaluable, of course, but those comments should be in a block of their own, or even a separate file, and not be mixed in with the rest of the code.

Re:Comments (5, Insightful)

Anonymous Coward | about 2 years ago | (#42338703)

Comments that describe what the code is doing are useless. Comments that describe why the code does what it does are invaluable.

Re:Comments (4, Insightful)

dgatwood (11270) | about 2 years ago | (#42338859)

Comments that describe what the code is doing are useless. Comments that describe why the code does what it does are invaluable.

Depends on the level of granularity. Comments that describe what a single line of code does (or even a small number of lines of code in many cases) are useless.

Comments that describe the behavior of a suitably large block of code (e.g. a function or a block within a particularly complicated function) can help you quickly understand the structure of a program as a whole. This is critical when working with sufficiently large bodies of code, because you're unlikely to have time to read every line of code before you start hacking away at it. For sufficiently complex projects, they can also be pulled out by tools such as HeaderDoc or Doxygen and converted into documentation.

At a semi-coarse granularity, comments that tell you what a block of code within a function does can make it much easier to find the code you need to change when something doesn't work. Thus, even those comments can be useful, so long as each comment covers at least a handful of lines of code and so long as the "what" isn't instantly obvious at a glance.

Re:Comments (2)

bws111 (1216812) | about 2 years ago | (#42339297)

I think there are cases where a comment on a single line is very worthwhile. In particular, when it is not obvious why such a line would be there (eg This is here because sometimes device xxx produces incorrect input - don't mess with it).

Re:Comments (0)

Anonymous Coward | about 2 years ago | (#42339645)

As a general rule, if someone else would have to ask why you did something you should add a comment so they don't have to email you 6 months later when they're stuck maintaining your software.

Re:Comments (5, Funny)

Sperbels (1008585) | about 2 years ago | (#42338865)

You don't find this useful?

//if Foos is empty don't do anything
if (Foos != null)
//let's go through the collection and increment the counter
foreach (Foo foo in Foos)
//increment the count
foo.count++;

Re:Comments (0)

A little Frenchie (715758) | about 2 years ago | (#42338965)

if (Foos != null)
____ (Foo foo in Foos)
________ foo.count++;

less text to read, easy to understand

Re:Comments (1)

I Mean, What (2778851) | about 2 years ago | (#42339199)

Way to raise the bar.

Re:Comments (1)

Anonymous Coward | about 2 years ago | (#42339575)

if (Foos != null)

____ (Foo foo in Foos)

________ pity(foo);

Re:Comments (5, Insightful)

Trepidity (597) | about 2 years ago | (#42338721)

If I'm reviewing untrusted third-party code, or code which is suspected to be buggy, I agree, but it really slows things down, even at an expert level, to completely ignore comments, if it's a setting where I'm working with people I know to be good engineers, and am not actively debugging/auditing their code. There has to be some amount of trust to make large projects work, and trusting that my colleagues are writing sane and reasonably accurate comments is one form of it. If it turns out to be wrong in a certain case, well, that's what tests are there to discover.

Re:Comments (2)

JesseMcDonald (536341) | about 2 years ago | (#42338949)

It depends on how well structured the code is. If the functions are small and simple, then the function-level comments should be sufficient in most cases. It's OK to rely on a function doing what the comments claim it should do while reading higher-level code. I don't expect people to review the code for strcpy() every time it's used.

On the other hand, if you're reviewing code with large, monolithic functions, it may need some comments inside the function (roughly where the function boundaries should be) to help readers keep track of what's going on. I would still look at such comments with a measure of distrust, however, since you don't have the benefit of each part being reviewed and tested in isolation.

Descriptive function and variable names are also a form of commenting, and one which is much more effective when combined with tightly-scoped variables and small, single-purpose functions.

Re:Comments (0)

Anonymous Coward | about 2 years ago | (#42338775)

I don't skip inline comments. I validate them. A lot of times I find that someone wrote a comment, then another changed the implementation and left the comment, and you can figure out the genesis of the code. Gives you more of an understanding of what was the original intent, and then what was the 2nd/3rd/4th attempt trying to do.

Makes for quality tdwtf material.

Re:Comments (4, Insightful)

Anrego (830717) | about 2 years ago | (#42338809)

Those inline comments are good (when done properly) when trying to quickly grok through a large codebase. That "done properly" bit is important. Obviously a comment that just states what the following line does is pointless.. but a one liner generalizing a 9 or 10 line block of code means 9 or 10 lines of code you can skim over.

Obviously if troubleshooting code or auditing you want to focus on the code, but then the comments still serve as a good tool to indicate potential problems by as you said, showing what the authors intention was. If the code doesn't match the comment.. the code might very wlel be wrong.

Re:Comments (1)

JesseMcDonald (536341) | about 2 years ago | (#42339109)

Those inline comments are good (when done properly) when trying to quickly grok through a large codebase. ... a one liner generalizing a 9 or 10 line block of code means 9 or 10 lines of code you can skim over.

Agreed, but often those 9 or 10 lines could be refactored into a separate function, which would allow the inline comments to be replaced with function-level documentation. The general rule is to break up functions at no more than twice that size, where feasible.

Re:Comments (1)

i kan reed (749298) | about 2 years ago | (#42339451)

A comment explaining why a line of code is commented out also never hurts.

Re:Comments (1)

cdrudge (68377) | about 2 years ago | (#42339685)

It's commented out because it has //, /* */, or whatever the particular language uses for comments. Duh.

Re:Comments (1)

Sperbels (1008585) | about 2 years ago | (#42339723)

//don't need this line anymore.

Re:Comments (2)

jellomizer (103300) | about 2 years ago | (#42339151)

Comments Lie, Code Doesn't

Every once in a while I see some well commented code, and it leads to to a massive blunder because the comments are wrong.

Some of the ones have got me. /**
Save Starts Here
**/

Which I figured would be a good part to add save my changes.
After testing and realized it didn't work correctly I changed the comment to. /**
Real time check to insure data is correct
**/

In an other function 500 lines down. I added /**
Saves data after authenticated as formatted correctly
**/

Another good one was in essence saying this was part of such and such section. Where it wasn't.

Comments don't help as much as people think they do. Unless you know the coder, comments cannot be trusted and you will normally need to go by what the code says far more than what the comments say.

Re:Comments (1)

Dixie_Flatline (5077) | about 2 years ago | (#42339705)

This only happens because people ignore that comments are important.

Or, put another way: the code isn't finished until it's documented. Sure, it runs, but it's not COMPLETE.

A sloppy programmer that programs bugs into code is the same a sloppy programmer that doesn't update the comments.

In any case, comments aren't a replacement for reading the code, they're to help you quickly interpret the code and the INTENT of the programmer that put it there. Documenting the algorithm is much more useful than documenting each bit of the implementation.

Re:Comments (1)

bob8766 (1075053) | about 2 years ago | (#42339487)

I disagree with this to an extent. Comments in the code answer an important question:
What was the author trying to do here.

From there I can answer two other questions:
Is this a logically correct solution to the problem?
Is the author's code doing what he intended it to do?

I find it much easier to analyze code if I can get inside not only the original author's head, but the heads of the two other people who came after him and spliced in updates

Re:Comments (2)

purplie (610402) | about 2 years ago | (#42339563)

Comments aren't supposed to (redundantly) tell you what the code does. They're to tell you why the code had to be written, or the reason one coding choice was made over another, or known issues and todos.

Motivation and experience make the difference (5, Interesting)

davidwr (791652) | about 2 years ago | (#42338635)

My personal story:

When I was but but a wee lad skill-wise, I read other people's code so I could figure out how it worked. I knew WHAT it was doing, just not HOW.

Now when I read other's code it's usually either to figure out what it's doing or, more likely, what it's NOT doing that it's supposed to be doing.

There's another difference:

Now I can skip over the code that isn't "interesting" and zero in on where I think the bug is or where I think the "undocumented feature" is. My younger self had the luxury of time to study every line and learn as he did so.

By the way, when I'm trying to learn something totally new, I do revert to "the way of the young learner." Why? Because it works when I'm starting nearly from scratch.

Novice programmers overwhelmed (3, Insightful)

loufoque (1400831) | about 2 years ago | (#42338661)

Novice programmers are simply overwhelmed by vast amounts of code, and have no idea how to do large-scale software development.
When you teach them about tools that allow you to find your way through the code, they're all impressed.

Universities simply aren't teaching these boys right.

Re:Novice programmers overwhelmed (2)

Anrego (830717) | about 2 years ago | (#42338871)

I'll agree this is something I've seen.

Even simple stuff like version control and bug tracking.. a lot of guys coming out of school who have never even heard the terms, much less learnt how to employ them effectively.

But then it comes down to the whole "university isn't a trade school" thing, even though most people taking computer science are aiming to be coders.

Re:Novice programmers overwhelmed (1)

Yetihehe (971185) | about 2 years ago | (#42339087)

Most of them didn't even heard about diff...

Re:Novice programmers overwhelmed (4, Insightful)

Ignacio (1465) | about 2 years ago | (#42338919)

Unfortunately if you give them the most advanced tools possible then they never actually *leave* the novice state since they're too used to their tools doing all the work for them.

Re:Novice programmers overwhelmed (1)

loufoque (1400831) | about 2 years ago | (#42339727)

Then that means they're bad tools.
Good tools are loosely-coupled, easily combined, scalable, adaptable and programmable.

An IDE, if that's what you meant, is definitely not a good tool.

Re:Novice programmers overwhelmed (1)

jellomizer (103300) | about 2 years ago | (#42339409)

Many of these tools will overwhelm the novice by themselves.

You give a novice a debugger they will put their break point on line 1 (or int main(char argc, char **argv) )
and step through every freaking line in the program until completion. You give the tool to an expert even if they have never used a debugger before (they probably got by by putting random print statements in) they will put break points right where they expect the code to break, or to a function that they are unable to handle in their heads.

The only thing that universities should really do is give them more assignments with larger code sets some of it already existing so they learn how to fix code.

Obligitory (1, Funny)

0racle (667029) | about 2 years ago | (#42338719)

I don't even see code anymore. All I see is Blond, Brunette, Redhead ...

Re:Obligitory (0)

Anonymous Coward | about 2 years ago | (#42338845)

That was my first thought too

Re:Obligitory (0)

Anonymous Coward | about 2 years ago | (#42339291)

And my first post.

Matter of perspective (4, Interesting)

sl4shd0rk (755837) | about 2 years ago | (#42338737)

A Novice sees it done wrong
A Master sees it done differently

Re:Matter of perspective (1)

frosty_tsm (933163) | about 2 years ago | (#42338903)

A Novice sees it done

A Master sees it done differently or done very wrong

This has been my experience working with a wide range of experience levels (although the transition isn't quite linear). There are many ways to do things that are still good, but sometimes that code should never have existed.

Re:Matter of perspective (2)

Aaden42 (198257) | about 2 years ago | (#42339569)

A veteran sees it done OMGWTF were you thinking you fskck343ing moron!???!???

Alternate blog post (4, Informative)

Necroman (61604) | about 2 years ago | (#42338741)

The guy who was tested in the video has a blog post up (and his server actually works): http://blog.theincredibleholk.org/blog/2012/12/18/how-do-we-read-code/ [theincredibleholk.org]

Direct youtube links to the videos:
Video 1 [youtube.com]
Video 2 (Novice) [youtube.com]

Re:Alternate blog post (2)

Ibiwan (763664) | about 2 years ago | (#42338853)

How weird. You'd think they'd use the same code for each category, in order to make a valid comparison...
...or if they did that, they'd post youtube videos properly reflecting that!

Remember, folks (0)

Anonymous Coward | about 2 years ago | (#42338743)

There's no difference between assuming a newbie doesn't know what he's doing and assuming an older programmer is past his prime and can't handle anything but 80s era C.

Back in the day .... (0, Offtopic)

Anonymous Coward | about 2 years ago | (#42338763)

Back in the day - 1990s - businesses where going from mainframes to distributed to internet.

It was all the same shit.

Then Java came out, and us old farts said, "Same old shit."

We were told that we had outdated thoughts and whatever ....

We said, "This was done before."

"NOPE!" was yelled by the peanut gallery. THIS IS DIFFERENT!

OK.

"You're old!"

Yep. No argument. I just want to see some REAL innovation.

But bu...bu..bu..bu..Apple.

Yawn. Yes, bu...bu..bu..bu.. Apple Newton and Palm.

But.. bu...but...but...CLOUD!

But... bu...bu..but... mainframe.

But..bu..bu..but...not the same technolgy!

You got me there, young'in. BUT the algorithms are quite similar. Bunch of machines connectiing to the cloud or a bunch of termials. It's different becuase?

Re:Back in the day .... (1)

Anonymous Coward | about 2 years ago | (#42338887)

The algorithms required to make a mainframe work vs. a distributed system are vastly different. Your failure to recognize this is probably why your thoughts are outdated.

Re:Back in the day .... (0)

Anonymous Coward | about 2 years ago | (#42339021)

That's true, but he was talking about "clouds" vs mainframes/terminals, not mainframes vs. data centers.

Re:Back in the day .... (0)

Anonymous Coward | about 2 years ago | (#42338893)

The same old architecture might be new again but the motives are different; in the old days it just wasnt possible to put a fully functional system in every person's office. Now that it is possible, they don't want to bother because it is too complex to administrate.

Re:Back in the day .... (0)

Anonymous Coward | about 2 years ago | (#42338945)

We're not even on your lawn. We're in the park down the street. Go back to sleep, gramps.

Re:Back in the day .... (0)

Anonymous Coward | about 2 years ago | (#42339295)

For an out of work programmer, the park down the street is his lawn. Benchmarks are the stains he leaves when you wake him up and he wanders off. Ain't student loans a bitch?

Re:Back in the day .... (1)

Aaden42 (198257) | about 2 years ago | (#42339623)

It's different because significantly more of the processing and display logic is distributed to the clients. Additionally clients have local storage and processing capacity which if programmed correctly may continue to operate in some fashion in the face of network failure.

Also, it's not freaking COBOL, not that I find Ruby or Python much preferable (Aaaaand there goes my good karma)

I'll hazard a guess: (3, Insightful)

obarthelemy (160321) | about 2 years ago | (#42338885)

Young programmers see code as a way to show how good they are

Old programmers see code as something that puts money in the bank.

What off topic ?

Skipping (4, Informative)

assertation (1255714) | about 2 years ago | (#42338917)

I don't know if this correct or PC, but when I first started I read code like a book. Every single word, left to right, down to the next line.

Now I skip.

I look where arguments go in, where they come out, where functions are called.

If I go into a code block, I look where the result is first and back track as needed

I look at the connections and only go deeper when I need to.

If I have to read legacy procedural code, I do what I do when I read the web. I ignore sub levels of information until I finish a level. On a web page I read the content, ignore the side bars and I don't click on links until I am done with that page. In procedural code I read top down and ignore nested blocks until I see what is going on the first level.

Re:Skipping (0)

Anonymous Coward | about 2 years ago | (#42339509)

I don't know if this correct or PC

 
Scratching head...What in your post is not PC?

(Unless, perchance, PC does not mean Politically Correct.)

Re:Skipping (3, Insightful)

andy16666 (1592393) | about 2 years ago | (#42339607)

I wouldn't trust anyone to know what they look at when they read code. Not because I think they're lying, but because other research shows that people often have no idea how they perform complex tasks. So I'd be very skeptical if even your most candid account of how you code or how you read code showed much correlation to how what you actually do when you perform these tasks.

This is one of the things that makes teaching so difficult. If it were just a matter of explaining what you do, it would be simple, but for many tasks you don't actually know. You have to learn all over again when it comes time to teach it.

Flawed From The Start (0)

Anonymous Coward | about 2 years ago | (#42338921)

He's talking about tiny programs you can sit down and quickly read and completely understand. I doubt how many experienced programmers work on such code. Even inexperienced programmers work on larger code bases and projects. There's a huge difference between a program you can sit down and read and one with hundreds of large files. At the least he should be asking people to study both types of projects.

The Inlined code is more difficult to read. (4, Funny)

idealistw (2798599) | about 2 years ago | (#42339085)

Just a FYI, the test is really poorly done because the code that the novice and the expert are looking at are different. I can read the Expert's code and figure out what the output should read in no time. The inlined code, on the other hand, I have to do the full iteration for each loop. It's really a test fail.

Gimme a break... (3, Interesting)

Elminster Aumar (2668365) | about 2 years ago | (#42339179)

Any tutorials or articles, etc. that start out referring to someone as "newbie", "newb", etc. should be automatically labeled as worthless. Every team of programmers--it doesn't matter if it's a team of 2, 10, 50...--always has someone that can be called a "weak link" simply because you're always going to have someone who just isn't as fast or efficient as everyone else. And if programming is more of an art form (which I personally believe it is due to having millions of ways to skin cats), then it's apt to claim that nobody can be as good as everybody. Everything depends on what exactly is being done, what technologies are being used, frameworks, functions, who's involved, what business logic is required, what data is being worked with, etc., etc., etc. I've seen people who sucked at back-end stuff rock it out with front-end and others, vice-versa. I've seen people excel with certain technologies turn around and completely blow with others but one reason some of these supposed GODS suddenly sucked has nothing to do with their understanding or capabilities but instead almost always had to do with how their resources were being used... There is no such thing as a newbie. It's an epiphany brought about by someone's nerby boner culture. Constantly using the phrase "newbie" and all that other juvenile bullshit is old news and something someone does when they're bored and looking to put people down just to make themselves feel better about their world. Stop referring to people like this because some of the most seasoned people could be painted with that brush depending on how you view things...

such a shame (3, Funny)

Dark$ide (732508) | about 2 years ago | (#42339225)

An article that could have been astounding is on a site that got Slashdotted. Perhaps they need some experienced web programmers.

Error in article... (0)

Anonymous Coward | about 2 years ago | (#42339341)

I must point out that the novice programmer is a "she" so the whole experiment must be a lie! A woman wouldn't be found within 100 yards of an experienced programmer. The experienced programmer should be easy to find by smell.

TPS (2)

Lab Rat Jason (2495638) | about 2 years ago | (#42339657)

This was written [threepanelsoul.com] about maintaining old code, but I'd argue it's application is broader
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>