LWN.net Logo

Where have the universities gone?

Where have the universities gone?

Posted Jul 25, 2007 7:01 UTC (Wed) by ms (subscriber, #41272)
In reply to: Where have the universities gone? by roelofs
Parent article: Where have the universities gone?

if you don't have a clue what the compiler is doing under the covers, how are you going to understand even basic performance issues like branch (mis)prediction and so forth? Hearing about them in some lecture is one thing; understanding what's going on at a gut level is entirely another.

I fail to see how that has anything to do with C. I've done two courses on hardware - I have the P&H and the H&P books on my shelf and I've read them. I can talk for hours about the different types of branch prediction, superscalar design, different tradeoffs in cache design etc etc etc. I've written compilers. I can recite algorithms for garbage collection.

But I would not claim to have any knowledge of C. Some of the brightest programmers I know are similarly inclined. The London Banks certainly don't care about knowledge of C and I can't think of many companies in London that really do...


(Log in to post comments)

Where have the universities gone?

Posted Jul 25, 2007 16:53 UTC (Wed) by mikov (subscriber, #33179) [Link]

There are exceptions, of course. Perhaps for financial programming in Cobol, or for mainframe development, or simply for very smart people who can grasp the principles without actually using them, etc.

But look at it this way: 99% of all PC software, not to mention _all_ PC OS-es, system libraries, etc, are written in C or C++. Can you explain how someone can understand and program reasonably in this environment without knowing C ?

Additionally, C is not _that_ hard. Refusing (or worse - not being able) to learn it, strikes me as very surprising given C's absolute dominance. One doesn't really need to be a C wizard. It is like not being able to read, because there are audio books. Or like developing software without having any knowledge of English. Simply cannot happen.

You say that you don't know C yourself, but I strongly suspect you actually do. Even if you don't actually develop software in C, you probably can read and understand C source code, no ?

On a practical note, what language would a hypothetical professional programmer in a PC environment use ? There are not that many choices. Further, it is actually impossible to develop any sufficiently complex piece of software in a different language without ever falling back to C. C#, Java, Python, Lisp, Haskel, ML, whatever - none of them have 100% of libraries and operations that would ever be needed.

Where have the universities gone?

Posted Jul 26, 2007 4:29 UTC (Thu) by roelofs (subscriber, #2599) [Link]

I fail to see how that has anything to do with C.

Perhaps you missed the first response to your comment: C is pretty much high-level assembly language. I further opinionized that assembler itself is a highly useful thing to know, and then connected that to a more fundamental understanding of the underlying hardware.

I can talk for hours about the different types of branch prediction, superscalar design, different tradeoffs in cache design etc etc etc.

That's wonderful, but it's also highly unusual, in my experience. Most CS grads (or whatever, but looking for a job that includes doing high-performance system programming) do not have that background--or, if they do, it's all theoretical, and they're unable to make the connection between the hardware concepts and actual code. It's lamentable, but I can't say I'm terribly surprised; others have written about it over the years, and I've personally witnessed an analogous phenomenon with EEs (i.e., graduating without ever experiencing a hands-on, Horowitz-and-Hill-style lab course).

The London Banks certainly don't care about knowledge of C and I can't think of many companies in London that really do...

Banks are a world unto themselves, so that doesn't surprise me. Other companies? That does, but perhaps London really is unusual in that respect. Silicon Valley jobs (beyond scripting/web development) tend to emphasize C/C++ and/or Java experience, with less-frequent mention of C# and other languages. (Of course, maybe we're the weird ones...)

Greg

Where have the universities gone?

Posted Jul 26, 2007 11:08 UTC (Thu) by nix (subscriber, #2304) [Link]

London banks definitely do care about C. A lot of new code is written in Java, but C is still heavily used (and not just for legacy stuff, either).

The employment phase often emphasises Java because it's a buzzword, but get down to the actual work and C is still everywhere.

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds