Link Details

Link 7771 thumbnail
User 210358 avatar

By jfsugrue
via softwarex-nz.blogspot.com
Published: Nov 26 2006 / 21:20

Comments

Add your comment
User 205047 avatar

Lowell Heddings replied ago:

1 votes Vote down Vote up Reply

I completely disagree... Learning C is an important step for programmers so that they can better understand the underlying architectures and fundamentals of programming.



User 206717 avatar

Dan Atkinson replied ago:

1 votes Vote down Vote up Reply

Then lets all go out and learn assembler, shall we?!

Just because somebody understands a language like C#, doesn't mean that they need to know about C, or even C++ to be a good programmer. Your logic is flawed, and you actually sound bitter (I guess you learnt C, huh?!).

User 181930 avatar

jwenting replied ago:

2 votes Vote down Vote up Reply

Assembler was actually the 2nd language I learned, right after Pascal.
Rarely used it in anger, but knowing it certainly helps a lot in debugging (and more importantly in anticipating problems before they happen).

User 205047 avatar

Lowell Heddings replied ago:

1 votes Vote down Vote up Reply

Bitter ?

I'm not bitter at all. I enjoy programming in C/C++. I regret that I never took the time to master assembler... only tinkered with it.

Every language has it's place, but the well-rounded programmer is the best, regardless of what language they are using.

User 179375 avatar

Ricky Clarkson replied ago:

1 votes Vote down Vote up Reply

It's hard to argue that every programmer needs to, though. If you count the average PHP-based web designer as a programmer, it's hard to relate what they do to C.

I'd say that every programmer with an interest in programming knows C, or will learn C, at least to the level of being familiar with the concepts.

Lowell, it's odd how you still voted for this link. ;)

User 205047 avatar

Lowell Heddings replied ago:

1 votes Vote down Vote up Reply

I voted for it because it's controversal, and would generate some good comments... =)

User 181930 avatar

jwenting replied ago:

0 votes Vote down Vote up Reply

which just goes to show that php users aren't to be classed as programmers (at least most of them) :)

User 202522 avatar

gfxmonk replied ago:

0 votes Vote down Vote up Reply

I learnt a lot of programming before I went to uni, where the first language I learnt was C. You could probably get by without knowing C, but I wouldn't want to. C gives you a solid understanding of how computers work, and without that you're likely to do some really stupid and inefficient things.
Learning good ways to do things isn't enough - you need to know why they are good so you can aply them to new situations.

I think the biggest benefit is knowing about pointers, really...

User 204089 avatar

hiveminds replied ago:

0 votes Vote down Vote up Reply

The list contains some validity in its reasoning though the examples are a bit far reaching.

The arguements used against while passionate lack logic and substance. The whole arguement could have been as simple as the last paragraph.

User 120940 avatar

hf48922 replied ago:

1 votes Vote down Vote up Reply

Not so long ago, what is said of C today was said of the Assembly language. You couldn't be a serious programmer without mastering Assembly. Tomorrow, the same will be said of Java.
Don't get me wrong. C is an very important language. But pretending that every programmer should know it is going too far.
Actually, I know really good Java programmers who don't know C. And you know what? The reason they are so good at Java is maybe _because_ they don't know C (they concentrated on one language, they learned OOP straight away etc.)

User 0 avatar

Scoundrel replied ago:

1 votes Vote down Vote up Reply

Firstly, hf48922, I think that saying C will go the way of Assembly is a bit unfounded, because C offers (basically) everything Asm offers (compiles to native, low level pointers) - in other words you can write an OS in C and it therefore replaces Assembly. C++ is the same, so could replace C. However, you can't do these things in higher level languages like Java or C#.

Now, to the "rebuttal" - it's complete dung. Firstly, it's horribly immature. Secondly, the author misunderstands almost all of the original points the author was making (let me know if you want me to rebut anything he said).

But more importantly, I hate the way the author says:
"Oh hold on. Games. They are predominately written in C++. Some could argue that is C, although comparing C++ with C is like comparing C# with C. Sure they may *look* the same but they are about as similar as a Daewoo and a Ferrari."

That's crap. I do argue that C++ is C for the purposes of this discussion; you can't program in C++ unless you understand all the concepts of C. While C#, you can. I see no arguments here for why C++ is to C as C# is to C.

Yet later on, the author actually says "Device drivers are written in C++ these days (remember C++ is no closer to C than C#)." I would really like to see you try to write a device driver in C#! (Note: I don't care if you have an OS with the kernel written in C# - it's just not possible to write drivers for useful operating systems like Linux/OSX/Windows in C#).

Note: The rebutter also made a follow-up blogpost with further arguments, and I made a further comment there as Eat_My_Shortz.
http://softwarex-nz.blogspot.com/2006/11/why-should-you-learn-c.html

User 209613 avatar

MattGiuca replied ago:

0 votes Vote down Vote up Reply

What the hell... I thought I was logged in. The above "Scoundrel" post was me.

Add your comment


Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.