Page 1 of 1

What is the most important language?

Posted: Tue Dec 17, 2002 5:08 pm
by Fabio
Hey i was wondering what you guys thought was more important to learn first, Assembly or C++ or any other language you guys might suggest. I already now Basic and Perl but i guess those are kinda useless when it comes to os dev. Any suggestions would help.

Re:What is the most important language?

Posted: Tue Dec 17, 2002 5:49 pm
by Tim
Learn both assembly and C. But don't think about doing OS development until you're much more experienced at programming.

Re:What is the most important language?

Posted: Tue Dec 17, 2002 5:52 pm
by jrfritz
Yep. C is best for OS programming...and then learn asm when your done with C ( i.e. can make fairly complicated programs with C/C++ )

Re:What is the most important language?

Posted: Tue Dec 17, 2002 7:07 pm
by Schol-R-LEA
If you can undertstand assembly first, it will make it much easier to understand certain aspects of C - but assembly language is much more difficult to learn, and much more time-consuming, than C is. Virtually anyone would tell you that it would be better to get a solid grasp of C before going into assembly language.

However, crank that I am, I would suggest assembly first - but only if you can get a particular book, Assembly Language Step by Step by Jeff Duntemann. It is an unusually well-written introductory book, better than just about any book I know of for any programming language. It isn't a very complete book - it ends just at the point where it seems to be taking off, in fact - but it does give excellent explanations of several difficult concepts, especially the x86 memory segmentation scheme.

One of the problems with C is that there are a lot of lousy books out there about it. The ones I'd recommend are The Waite Group's C Primer Plus (the book I first learned from, back in the first edition; I can't speak for the later editions, and it's now out of print anyway), and Practical C Programming, with K&R as a reference. I'm sure you'll get plenty of other recommendations, one or more of which will probably be a good fit for you.

For more advice, check the book thread. Don't forget to look into other styles of language, too - though if you already know some Perl, then you're on to a good start with that already. The more different languages and styles you know, IMAO, the better an programmer you are overall.

I'd better wrap this up before I start rambling on about Scheme, Smaltalk and Python... oops, too late. Hey, at least I didn't mention the Jargon File yet...DAMN!!!

Re:What is the most important language?

Posted: Wed Dec 18, 2002 12:26 am
by Stealth
Machine code ;D
Well, just joking..

When I first learned to code seriously (a long time ago), I first learned assembly, and then C++, and I agree with Schol-R-LEA.
It's better to understand low-level stuff first, and then, when moving to higher levels, everything seems very easy.

And anyway if you want a code an OS from the beginning, you need to be a good asm coder.

-Stealth
3D game/demo/OS/app programmer

Re:What is the most important language?

Posted: Wed Dec 18, 2002 12:48 am
by Schol-R-LEA
Correction to what I said above: I just found that the fourth edition of the C Primer Plus and it's sister volume C++ Primer Plus are now available. I'll have take a look and see if they are as good as I remember them being, but a quick glance at some of the sample pages on Amazon looks promising. It certainly seems to have held on to the dry humor of the original.

Re:What is the most important language?

Posted: Fri Dec 20, 2002 1:34 pm
by pskyboy
I disagree i think it is more importnat to learn C or C++ first as this gets you into thinking about how to get your program to work and how to lay it out and structure it. If you learn assembly first you won't fully grasp laying out your program as you spend most your time fiddling in order to get the machine to do something and forget what you are trying to achieve.

Also if you learn assembly you know machine code all you have to do is go through your source and convert the symbols to operands and opcodes ie what an assembler does.

Peter