Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

From Joel: Where do they learn to write a program longer than 20 lines?

Oh man, if I never had to write a program longer than 20 lines for my CS degree, life would have been a lot less hectic (and I also wouldn't have learned shit, which is not the case at all).



Joel's statement was hyperbolic. The average assignment might amount to 1000 - 3000 lines of code for the more advanced courses, but his point still stands.

Real products (products that actually make money) consist of a few thousand lines of "fun" algorithm code and hundreds of thousands of lines of "boring" code.

But code length wasn't even the main point of his essay - time management was.


Most classes I took beyond the sophomore year required rather involved projects to be delivered. Be it a creating a compiler, a mini OS or a peer-to-peer chat client. All of those had requirements discovery, deadlines and checkpoints. We also worked with a partner which meant dealing with integration issues and debugging other person's code, which made me appreciate value of a source code control system.

The classes I regret taking had to do with "hot" industry technologies such as Data Warehousing, Applets, JSP. Spending those credits on something like Graph Theory or deeper dives into Operating Systems/Computer Language design would have been more rewarding.


How many of those hundreds of thousands of lines of boilerplate code have concepts in them that the average CS student isn't taught in their "fun" algorithm code?

None.

The simple fact is that with the amount of things to teach in a CS course, boilerplate code is just not a good use of time to teach. Students come across it in any major project and know it exists in the rest of the course - but spending equal time on boilerplate and on algorithm code would be like teaching an artist a degree course in chemistry before letting him buy his first tube of paint. He'd be a great chemist, but a lousy artist.

As to time management, Joel's point was nonexistant there. He spent the entire article berating student's time management skills, suggested Scrum supported by his product could fix the problem, then quickly blurted out that industrial programmers have equally poor time management skills and in fact are solely differentiated from college students by the point that industrial programmers have managers to enforce time management on them, and that neither Joel's product nor Scrum can help that.

Leaving aside the point that he's not actually correct about time management skills (long-term time management isn't just down to the programmer, but to how stable project requirements are and other such factors), and leaving aside the query of just how bad the programmers he works with in industry are (because in six years of industry work, I never came across a programmer who both kept their job and had poor time management skills), there's the query of what the hell his post was about at all in the first place if all it did was to create FUD, hawk his product as a solution, then indemnify himself from any failure by saying it probably wouldn't work (in a sufficiently roundabout way that it didn't discourage the sale)?


How many of those hundreds of thousands of lines of boilerplate code have concepts in them that the average CS student isn't taught in their "fun" algorithm code?

Remember, his article was about time management. The whole basis of his argument is that college kids assume "boring" code can be done quickly and thus can be delayed to last possible second.

The truth is "boring" code usually means API code, user interface code, and input processing code. They may involve concepts that CS students have already learned, but it certainly isn't a breeze. It's not whether or not a student can do it - it's how fast they can ship a working product.

As for the rest of what you wrote, you seem to have some grudge against Joel. Maybe it's just manufactured to produce traffic. But that's just my cynicism leaking through.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: