View Full Version : Starting C,C++,C# (mainly C++)
Vanquish+
08-04-2002, 04:53 PM
i am planning on starting the above programming languages what kind of things do i need .. is there any books you can recomend ? and sites to get them from the deluver to the uk ?
- Thanks
inkedmn
08-04-2002, 06:41 PM
<clueless>
i don't thing C# is anything like C(++).
but i could be wrong :)
</clueless>
Strike
08-04-2002, 09:14 PM
The C++ Programming Language by Bjarne Stroustrup is an excellent reference but perhaps not so good a beginner's book. I don't know of any good beginner's books, to tell the truth. But, someone else does, hopefully.
And inkedmn, C# is pretty close to C++.
Vanquish+
08-05-2002, 01:28 PM
yeah hopefully ....
Kamikaze!
08-05-2002, 02:48 PM
Download Thinking in C++ 2nd Edition (volume I & II) from http://www.mindview.net/Books. It's a good book and free. You can also download Thinking in C#.
Vanquish+
08-06-2002, 01:39 PM
i have been told Dietel and Dietel : How to program in C++ is a good bok ?
Dru Lee Parsec
08-06-2002, 01:58 PM
i have been told Dietel and Dietel : How to program in C++ is a good book
I have that book and yes, it is very good. When I was learning I just dove straight into Bjarne Stroustrup's book "The C++ Programming Language" and to be honest, if I wasn't already a C programmer at the time then it would have been overwhelming.
The Dietel and Dietel book takes it much slower and explains a lot more of the "Why" part of the language as opposed to simply the "How" part of the language.
Vanquish+
08-06-2002, 02:27 PM
i am Z0n3
..
i am no longer learning C++ its gonna be python
sicarius
08-07-2002, 11:29 AM
Aside from references like "The C Reference Manual" by Guy L. Steele. The only book you will ever need to learn C is "The C programming Language" by Kernigahn, and Ritchie (hope I didn't murder their names). I agree with Strike's post about "The C++ Programming Language", but if you read through K&R(The C programming Language) then Stroustrup's book is cake. K&R should take you about 3 days to read, and the examples they give are excellent.
Other things you will certainly need are compilers for the various languages. I use Linux myself, so gcc is the way to go. I am not too sure about all your options on a Win32 box. I know that gcc has a port, but I have know idea what it would entail to set that up.
LonelyKing
08-07-2002, 05:07 PM
Dev-C++ will do C code as well... and I still recommend it highly over any other compiler/IDE I've seen.
Dark-Dragon
08-08-2002, 05:09 AM
There's a free book online. Sams Teachyourself C++ In 21 Days. I guess you should start with that. And get a free C++ Compiler. Dev or something like it.
:cat:
El Paso
09-29-2002, 08:12 AM
Originally posted by Vanquish+
i am no longer learning C++ its gonna be python
That's a shame. While Python is a good scripting language, C++ still holds the rights to a full-fledged, industry-strength programming language. With it, you can do both procedural (a la C-style) programs or object-oriented programs. The C++ syntax spreads itself wide in the world of computer programming as the languages C, PHP, Perl, Java, and C# all share syntactic commonalities with C++.
Also, the skills you learn and challenges you overcome by learning something like C++ will transfer to almost any other language you decide to pick up; picking a programming language (as opposed to a scripting language) to learn will expose you to all possible avenues of solving problems programatically, i.e. the not-so-easy way. After that, you could most likely pick up a scripting language in a day or two.
But it's all up to you.
Where do you start with C++? If you're broke, check out your library or a half-priced book store for something you like. If you've got some money, go to a bookstore and spend some time there, reading all the C++ books and buy the one that you think can teach you the most.
Python is not just a scripting language. Python is a "full-fledged, industry-strength programming language." Just how familiar with Python are you?
El Paso
09-29-2002, 04:31 PM
Originally posted by kmj
Python is not just a scripting language. Python is a "full-fledged, industry-strength programming language." Just how familiar with Python are you?
Hm. That may be true, but according to http://www.python.org/cgi-bin/faqw.py?req=all#1.1, Python is an interpreted language. Maybe I made the (incorrect) jump of logic in my late night posting that since Python is interpreted, it's a scripting language.
The link goes on to explain what Python is. The only bits of useful information I can gather are that it's object-oriented and supports exceptions. Of course it's going to support modules; a programming language would be unwise to not do so. However, what is dynamic typing? And why does the author say that, in sucession, Python supports "dynamic typing, very high level dynamic data types?" That doesn't help me much in determining if I should use Python; it actually deters me from doing so because the author states the same thing twice in describing what the language is?
I was just giving my two cents. If I need a programming language, I'll use a programming language. If I need a scripting language, I'll use a scripting language. The bottom line is that Python is interpreted and does not appear to be readily compiled; of course you could download a Python compiler to use, but that would take time to learn and configure, since there's quite a few to use. So why not use a compiled language in the first place (C++)?
Also, one of the strengths of Python, it seems, is that it has, "a good C interface [and] dynamic loading of C modules." (http://www.idiom.com/free-compilers/LANG/Python-1.html)
Since all of that is true (Python is object-oriented through classes, can load modules of C code, has C-like syntax), why would you learn this language instead of the language it "glues" together? Instead of learning something that ties together other languages, why don't you learn those constituent languages first (in this case, being C++)?
Be that as it may, to me it sounds like all roads point to C++. But the original poster and you should go on using Python since you seem to like it so much (I'll keep using C++).
Strike
09-29-2002, 06:37 PM
Originally posted by El Paso
Hm. That may be true, but according to http://www.python.org/cgi-bin/faqw.py?req=all#1.1, Python is an interpreted language. Maybe I made the (incorrect) jump of logic in my late night posting that since Python is interpreted, it's a scripting language.
The link goes on to explain what Python is. The only bits of useful information I can gather are that it's object-oriented and supports exceptions. Of course it's going to support modules; a programming language would be unwise to not do so. However, what is dynamic typing? And why does the author say that, in sucession, Python supports "dynamic typing, very high level dynamic data types?" That doesn't help me much in determining if I should use Python; it actually deters me from doing so because the author states the same thing twice in describing what the language is?
I was just giving my two cents. If I need a programming language, I'll use a programming language. If I need a scripting language, I'll use a scripting language. The bottom line is that Python is interpreted and does not appear to be readily compiled; of course you could download a Python compiler to use, but that would take time to learn and configure, since there's quite a few to use. So why not use a compiled language in the first place (C++)?
Also, one of the strengths of Python, it seems, is that it has, "a good C interface [and] dynamic loading of C modules." (http://www.idiom.com/free-compilers/LANG/Python-1.html)
Since all of that is true (Python is object-oriented through classes, can load modules of C code, has C-like syntax), why would you learn this language instead of the language it "glues" together? Instead of learning something that ties together other languages, why don't you learn those constituent languages first (in this case, being C++)?
Be that as it may, to me it sounds like all roads point to C++. But the original poster and you should go on using Python since you seem to like it so much (I'll keep using C++).
Python actually has a lot going for it that C/C++ does not, and lacks little that C/C++ can offer. Being higher-level, development is much much faster in Python than in C/C++. It also is free from memory leaks as well. It has a robust STANDARD set of libraries that are used for every implementation of Python, versus the jumble of libraries for any given task done in C/C++. It is fully object-oriented. It allows programming paradigms to be used that C/C++ don't lend themselves to, like functional programming. Python is also getting faster and faster with every release, and things like Psyco (http://psyco.sf.net) bring Python performance to half-C speed in some cases.
Hm. That may be true, but according to http://www.python.org/cgi-bin/faqw.py?req=all#1.1, Python is an interpreted language. Maybe I made the (incorrect) jump of logic in my late night posting that since Python is interpreted, it's a scripting language.
Lisp is interpreted, too. Interpreted doesn't always mean scripting.
However, what is dynamic typing?
Essentially, by my understanding, it means that the object being referenced by the variable has a specific type, not the variable itself. A google search for 'dynamic typing' gets plenty of hits if you'd like to delve further. You can compare it to strong typing, static typing, and weak typing.
And why does the author say that, in sucession, Python supports "dynamic typing, very high level dynamic data types?"
I would guess his point is that the basic data types python supports are very high level and dynamic, just like any classes you might define on your own. For instance, python inherently supports lists and dictionaries; also, all types in python can be subclassed, even 'int', and 'str' (string).
I was just giving my two cents. If I need a programming language, I'll use a programming language. If I need a scripting language, I'll use a scripting language.
.. I'll get to this in a minute. :)
The bottom line is that Python is interpreted and does not appear to be readily compiled; of course you could download a Python compiler to use, but that would take time to learn and configure, since there's quite a few to use. So why not use a compiled language in the first place (C++)?
I don't understand what you're trying to say here. If there were a python compiler, it would take no more time to learn than a C(++) compiler, and considering that all python compilers are the same (as opposed to C++ compilers, with their extensions and pragmas), it should be easier for python. Not that there are any "real" python compilers; there is psyco, as strike mentioned. Python compiles source to bytecode, like java, btw.
Also, one of the strengths of Python, it seems, is that it has, "a good C interface [and] dynamic loading of C modules." (http://www.idiom.com/free-compilers/LANG/Python-1.html)
Sure, it's a perk; I wouldn't use this as a selling point unless you wanted to integrate with currently existing apps/libraries, though.
Since all of that is true (Python is object-oriented through classes, can load modules of C code, has C-like syntax),
Whoah, whoah! Stop the bus! Have you seen a line of python? It does not have C syntax at all, whatsoever.. again, I'll get back to this.
why would you learn this language instead of the language it "glues" together? Instead of learning something that ties together other languages, why don't you learn those constituent languages first (in this case, being C++)?
I don't see python as a "glue" language, and again, I don't consider that a selling point.
Be that as it may, to me it sounds like all roads point to C++. But the original poster and you should go on using Python since you seem to like it so much (I'll keep using C++).
I'll have you know, I use C++ every day at my job, and almost every evening for my school projects. I generally, only use python for my own projects, which lately, I've had little time for.
Now, I'll give you my explanation for why I recommended python to Vanquish+.. plain and simple, I believe python is infinitely better for learning to program than C,C++, or Java; and better than any other language I've used. It's clean, it's simple, and it doesn't look like much more than pseudocode. On top of that, moreso than any other language I've used, it's fun. It's just plain fun. This isn't something I can explain, you have to do it to understand. It's syntax is more natural than any other language I've seen. It keeps itself compact (i.e. fewer keywords), so you hardly ever need a reference; and if you do, you know where to look. It's garbage collected; beginner programmers shouldn't need to deal with all that.
Of course, we can sit here and debate back and forth all day long about the relative benefits of these languages; I just felt that I needed to respond when you said that it was a shame that someone was learning python, especially since you have no experience with it (and judging from the above, you still don't really know much about it). I'm not going to tell anyone that the best thing they can have on their resume; there are many more C++ and Java jobs out there, no doubt. But please, don't bash a language that you don't even know. And hey, why don't you give it a shot. Write a few small things in python. Then write something a bit bigger, see for yourself how capable it is. Until you do, you have no right to say that it isn't .
Strike
09-30-2002, 01:40 PM
Bravo, kmj.
inkedmn
09-30-2002, 01:51 PM
agreed, well said :)
El Paso
09-30-2002, 02:13 PM
Originally posted by kmj
Of course, we can sit here and debate back and forth all day long about the relative benefits of these languages; I just felt that I needed to respond when you said that it was a shame that someone was learning python, especially since you have no experience with it (and judging from the above, you still don't really know much about it). I'm not going to tell anyone that the best thing they can have on their resume; there are many more C++ and Java jobs out there, no doubt. But please, don't bash a language that you don't even know. And hey, why don't you give it a shot. Write a few small things in python. Then write something a bit bigger, see for yourself how capable it is. Until you do, you have no right to say that it isn't .
In my defense sir, I was neither bashing the Python language, nor did I use good wording in my original statement. What I meant to express is that they, the original poster, should've (based on my experience and knowledge) stuck with C++.
Also sir, I have worked with Python to an extent to which I see no reason to use it for my own purposes.
Overall, I believe that this board is here for all programmers to learn and to keep learning. This has been a learning experience; You (kmj) have prompted me to refresh my knowledge on the Python language, but I still stand firm in my belief that I have no need for it.
That's fine. I won't argue with you on that point; after all, I can't imagine any person needs any given language.. even assembler isn't taught as much any more, because so few people actually need to know it.
vBulletin® v3.7.0, Copyright ©2000-2009, Jelsoft Enterprises Ltd.