473,322 Members | 1,379 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,322 software developers and data experts.

What can C++ achieve and how to learn C++?

TB
Hi Everyone on comp.lang.c++:

I am thinking about learning a programming language and I want to
decide whether it is worthwhile spending my time learning the C++
programming language.

I am a starting C++ programmer. By that I mean that I have written one
small application in C++ on a real job that required some modular
programming. I am also familiar with the Object-Oriented Programming
techniques although I haven't used them extensively with C++. I have no
experience with the STLs, the MFCs, COM/DCOM, or CORBA.

I have a few questions regarding what it takes to pick up C++ and
regarding what good the language is for. Basically, I want to know -
1) what are the top five ways to learn the language and the associated
platforms and how long does it take to progress from the beginner's
stage to an intermediate or expert stage?
2) what can be achieved using the language that is difficult to achieve
using other languages (for example, Java)?
3) What are the areas where the language is found useful and what are
those uses (again, say, in comparison to Java)?

Your reply will be much appreciated,
TB

Jun 14 '06 #1
6 2530
TB wrote:
Hi Everyone on comp.lang.c++:

I am thinking about learning a programming language and I want to
decide whether it is worthwhile spending my time learning the C++
programming language.

I am a starting C++ programmer. By that I mean that I have written one
small application in C++ on a real job that required some modular
programming. I am also familiar with the Object-Oriented Programming
techniques although I haven't used them extensively with C++.
Have you used them in some other language? Which ones? See these FAQs
on learning C++:

http://www.parashift.com/c++-faq-lit...learn-cpp.html
I have no
experience with the STLs, the MFCs, COM/DCOM, or CORBA.
There's only one STL, and MFC is generally taken to be an abbreviation
already in the plural. In any case, MFC, COM/DCOM, and CORBA are all
off-topic here. See this FAQ for what this newsgroup is about:

http://www.parashift.com/c++-faq-lit...t.html#faq-5.9
I have a few questions regarding what it takes to pick up C++ and
regarding what good the language is for. Basically, I want to know -
1) what are the top five ways to learn the language
Get a good book (e.g. _Accelerated C++_ by Koenig and Moo), and read
and absorb the teaching of that book. And practice, practice, and
practice. See also the Creator's advice:

http://www.research.att.com/~bs/bs_f...l#how-to-start
and the associated platforms
Off-topic and too broad. There are far too many platforms that support
C++ to even begin to answer your question.
and how long does it take to progress from the beginner's
stage to an intermediate or expert stage?
It entirely depends on your abilities, your ambition, and your
opportunities.
2) what can be achieved using the language that is difficult to achieve
using other languages (for example, Java)?
Search the archive of this group for tons of discussion on this topic.
There's no need to rehash it all here. See also:

http://www.research.att.com/~bs/bs_faq.html#compare
3) What are the areas where the language is found useful and what are
those uses (again, say, in comparison to Java)?


See, e.g.,

http://www.research.att.com/~bs/applications.html

Cheers! --M

Jun 14 '06 #2
TB wrote:
I am thinking about learning a programming language and I want to
decide whether it is worthwhile spending my time learning the C++
programming language.
You must choose very carefully, because learning one language will ossify
your brain, and make you incapable of learning any other language.

Especially C++!
1) what are the top five ways to learn the language and the associated
platforms..?


1. write unit tests for all your features
2. write unit tests for all your features
3. write unit tests for all your features
4. write unit tests for all your features
5. write unit tests for all your features

(They will cure the cranial ossification;)

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
Jun 14 '06 #3
TB wrote:
I am thinking about learning a programming language and I want to
decide whether it is worthwhile spending my time learning the C++
programming language.

I am a starting C++ programmer. By that I mean that I have written one
small application in C++ on a real job that required some modular
programming.
Let me get this straight... You've already done some work, got paid
for it (hopefully that's what "on a real job" means), and you still
don't know if "it is worhtwhile" to learn the language?

I think this is the situation described best by "If you have to ask,
the answer is <<no>>".
I am also familiar with the Object-Oriented Programming
techniques although I haven't used them extensively with C++. I have
no experience with the STLs, the MFCs, COM/DCOM, or CORBA.
Not sure what you mean by the 's' in "STLs", there is one Standard C++
Library (sometimes referred to as 'STL') and there are many implementations
of it, all striving to adhere to the definition. MFC, [D]COM, CORBA, have
really nothing to do with the language itself.
I have a few questions regarding what it takes to pick up C++ and
regarding what good the language is for. Basically, I want to know -
1) what are the top five ways to learn the language and the associated
platforms and how long does it take to progress from the beginner's
stage to an intermediate or expert stage?
Top five ways? You would need to ask the top five programmers. I don't
know them. Each individual learns the tools of the trade in his/her own
unique way. I can tell you that I learned C++ from books and from using
it in a project. Many do that, however, the percentage of time spent in
each of those activities differ. Some read books and can program without
pressing a key on the keyboard. Some just write code and never open
a single book.
2) what can be achieved using the language that is difficult to
achieve using other languages (for example, Java)?
C++ is a general purpose programming language. You can achieve in it all
you can achieve with any other general purpose language. Comparing C++
with other languages is considered a waste of time and asking to compare
C++ with anything (Java especially) is considered *trolling*.
3) What are the areas where the language is found useful and what are
those uses (again, say, in comparison to Java)?


Again, it's a general purpose programming language. It's used literally
_everywhere_. And, again, comparing it to anything else is pointless.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask
Jun 14 '06 #4
"TB" writes:
I am thinking about learning a programming language and I want to
decide whether it is worthwhile spending my time learning the C++
programming language.

<snip>

I think the questions you have are extremely difficult to answer. The kind
of person who might have a useful answer is someone who teaches both Java
and C++ in an adult education class. He is probably a real programmer,
rather than an academic, and he knows both languages quite well.

I know some C++ but just have a very general idea about Java. I know you
will not be writing real and usefull programs in C++ alone. You will need
to learn the API of at least one OS and learn it quite well. For example,
there is no such thing as recognition of a file structure in C++, there are
simply naked files.

The STL is now considered, and in fact is, an intrinsic part of C++. It
consists, basically, of a bunch of high level data structures, such as
stacks, lists and trees. C++ allows one to defer the intent as to data
types by using templates, this can be handy and it can also be a real PITA
when some simpleton thinks his little program is written for the ages and
obscures everything by hiding his data types in templates.

C++ has multiple inheritance which I don't think Java has. This has its uses
but it requires a mind numbing amount of planning to use in a fruitful
manner. The I/O of C++ uses multiple inheritance and I would guess there
were hundreds or even thousands of man-hours used in simply writing the
specifications - so the routines written would all fit together.

I have picked up several languages over the years and C++ is *by far* the
most hideously complex language of them all. There are gotchas around every
corner.

From what little I know of Java, if I already knew Java, I think it would
require a lot of selling to convert me to C++ guy.
Jun 14 '06 #5
"osmium" writes:
I am thinking about learning a programming language and I want to
decide whether it is worthwhile spending my time learning the C++
programming language.

<snip>

I think the questions you have are extremely difficult to answer. The kind
of person who might have a useful answer is someone who teaches both Java
and C++ in an adult education class. He is probably a real programmer,
rather than an academic, and he knows both languages quite well.


What an amazing coincidence! I chanced across this wish list of what people
would like to see added to C++. There is probably a lot of noise there but
there are certainly some useful hints as to what is missing from C++.

http://www.writely.com/Doc.aspx?id=bchdmtqvpnxv4
Jun 14 '06 #6
On 2006-06-14, TB <tb*******@gmail.com> wrote:
I am thinking about learning a programming language and I want to
decide whether it is worthwhile spending my time learning the C++
programming language.
Depends on what you want to achieve. You have to consider what
is the situation right now and also predict what it will be in the
future.
I am a starting C++ programmer. By that I mean that I have written one
small application in C++ on a real job that required some modular
programming. I am also familiar with the Object-Oriented Programming
techniques although I haven't used them extensively with C++. I have no
experience with the STLs, the MFCs, COM/DCOM, or CORBA.
CORBA is not a C++ specific thing anyway and MFC is just a bunch of code
written by Microsoft. STL itself is not very large and comprehensive,
and that was the intent of it's designers as far as I know.
I have a few questions regarding what it takes to pick up C++ and
regarding what good the language is for. Basically, I want to know -

1) what are the top five ways to learn the language and the associated
platforms and how long does it take to progress from the beginner's
stage to an intermediate or expert stage?
Depends on many factors. If you know other programming languages already,
it takes less time since you are familiar with the ideas and just need to
see how the same things are done in C++. Individuals have different learning
curves too, dramatically different.

Then, what is "intermediate" and what is an "expert"? Hardly anyone can
claim to know C++ inside out with all it's features. I guess someone who
is smart and knows a couple of programming languages can become pretty good
C++ programmer within a year.
2) what can be achieved using the language that is difficult to achieve
using other languages (for example, Java)?
Some things are impossible in Java, which are possible in C++. Most obviously,
C++ offers total control over the memory presentations of things while Java
has no pointers nor exact point of destruction for objects.
3) What are the areas where the language is found useful and what are
those uses (again, say, in comparison to Java)?


Speed comes to mind first and control comes second. Since C++ offers high-level
constructs and still gives the programmer a lot of low-level control, it is
very appealing for certain applications. Not surprisingly, game industry has
been using C++ for a long time. Then there are other things. A lot of legacy
code already exists and if it's written in C or C++, porting it to another
language may not be an option.

Having a few years of experience working with C++ and Java, I choose Java
unless I have some specific reason to choose otherwise. While Java has it's
issues, I'm personally more productive with it and that's what ultimately
counts when someone pays you for writing code. But this depends on what
kind of applications you are about to write and rarely is the choice of
language up to you in the industry anyway.

You did not mention C#, but it should be also considered if you want to make
any real comparison. I don't know much about it though and I don't intend to
learn it since it's future depends so heavily on Microsoft.

--
// Antti Virtanen -//- http://www.students.tut.fi/~virtanea
Jun 22 '06 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

52
by: Tony Marston | last post by:
Several months ago I started a thread with the title "What is/is not considered to be good OO programming" which started a long and interesting discussion. I have condensed the arguments into a...
5
by: Al Davis | last post by:
Note: I tried cross-posting this message to several newsgoups, including comp.lang.perl.misc, c.l.p.moderated, comp.infosystems.www.authoring.cgi, comp.lang.javascript and comp.lang.php. Nothing...
699
by: mike420 | last post by:
I think everyone who used Python will agree that its syntax is the best thing going for it. It is very readable and easy for everyone to learn. But, Python does not a have very good macro...
137
by: Philippe C. Martin | last post by:
I apologize in advance for launching this post but I might get enlightment somehow (PS: I am _very_ agnostic ;-). - 1) I do not consider my intelligence/education above average - 2) I am very...
31
by: N.Davis | last post by:
I am very new to Python, but have done plenty of development in C++ and Java. One thing I find weird about python is the idea of a module. Why is this needed when there are already the ideas of...
121
by: typingcat | last post by:
First of all, I'm an Asian and I need to input Japanese, Korean and so on. I've tried many PHP IDEs today, but almost non of them supported Unicode (UTF-8) file. I've found that the only Unicode...
6
by: Mudcat | last post by:
Hi, I am trying to build a tool that analyzes stock data. Therefore I am going to download and store quite a vast amount of it. Just for a general number - assuming there are about 7000 listed...
98
by: tjb | last post by:
I often see code like this: /// <summary> /// Removes a node. /// </summary> /// <param name="node">The node to remove.</param> public void RemoveNode(Node node) { <...> }
6
tharden3
by: tharden3 | last post by:
I want to be a professional computer programmer, software engineer, etc. My dream job is to work for Google or Apple. Has anybody here worked for these companies (or any other big name companies)?...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.