What is the most important language?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Fabio

What is the most important language?

Post 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.
Tim

Re:What is the most important language?

Post by Tim »

Learn both assembly and C. But don't think about doing OS development until you're much more experienced at programming.
jrfritz

Re:What is the most important language?

Post 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++ )
Schol-R-LEA

Re:What is the most important language?

Post 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!!!
Stealth

Re:What is the most important language?

Post 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
Schol-R-LEA

Re:What is the most important language?

Post 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.
pskyboy

Re:What is the most important language?

Post 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
Post Reply