473,554 Members | 3,102 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

How long to learn C++ if fluent in Java?

I am giving some thought to applying for some jobs that want people with
Java and C++ experience. I have been writing Java for several years and am
fluent enough that I don't have to get help with Java very often. I have no
real C++ experience and not much C experience for that matter.

However, the core Java statements are "borrowed" from C and C++ has often
been called "C with classes". It seems to me that it shouldn't take very
long to get up to speed on C++ if I am already fluent with Java and have at
least some knowledge of C. Then again, I understand that Java and C++ use
classes a bit differently; for instance C++ allows multiple inheritance
while Java allows only single inheritance but allows for multiple interfaces
as compensation. I'm not sure how long it would take to get fluent with
multiple inheritance after several years with Java.

I'd be very curious to know how long it took people here who were fluent in
Java to get fairly fluent in C++ if they started with approximately the same
skills I have today.

--
Rhino
---
rhino1 AT sympatico DOT ca
"There are two ways of constructing a software design. One way is to make it
so simple that there are obviously no deficiencies. And the other way is to
make it so complicated that there are no obvious deficiencies." - C.A.R.
Hoare
Jul 22 '05 #1
30 9380
Rhino wrote:
I am giving some thought to applying for some jobs that want people with
Java and C++ experience. I have been writing Java for several years and am
fluent enough that I don't have to get help with Java very often. I have no
real C++ experience and not much C experience for that matter.

However, the core Java statements are "borrowed" from C and C++ has often
been called "C with classes". It seems to me that it shouldn't take very
long to get up to speed on C++ if I am already fluent with Java and have at
least some knowledge of C. Then again, I understand that Java and C++ use
classes a bit differently; for instance C++ allows multiple inheritance
while Java allows only single inheritance but allows for multiple interfaces
as compensation. I'm not sure how long it would take to get fluent with
multiple inheritance after several years with Java.

I'd be very curious to know how long it took people here who were fluent in
Java to get fairly fluent in C++ if they started with approximately the same
skills I have today.

C++ supports 4 paradigms. The Object Oriented paradigm, the procedural
paradigm, the modular paradigm (namespaces) and the generic programming
paradigm (templates). Each paradigm is supported *well*, with optimal
space and time efficiencies.
The "well" part means that in OO for example, single and multiple
inheritance are supported (including that of interfaces), virtual
inheritance, virtual bases etc.
This means that it is a large language (I guess something like 4
languages in one), and will take time to learn.
However you do not need to know the entire language to begin writing
applications (myself have not finished it yet).
Since you have some programming background the best way to start is the
book "Accelerate d C++" by Andrew Koenig, Barbara Moo.
You may also check http://www.accu.org for book reviews.


--
Ioannis Vranos

http://www23.brinkster.com/noicys
Jul 22 '05 #2
Rhino wrote:
I am giving some thought to applying for some jobs that want people with
Java and C++ experience. I have been writing Java for several years and am
fluent enough that I don't have to get help with Java very often. I have no
real C++ experience and not much C experience for that matter.

However, the core Java statements are "borrowed" from C and C++ has often
been called "C with classes". It seems to me that it shouldn't take very
long to get up to speed on C++ if I am already fluent with Java and have at
least some knowledge of C. Then again, I understand that Java and C++ use
classes a bit differently; for instance C++ allows multiple inheritance
while Java allows only single inheritance but allows for multiple interfaces
as compensation. I'm not sure how long it would take to get fluent with
multiple inheritance after several years with Java.

I'd be very curious to know how long it took people here who were fluent in
Java to get fairly fluent in C++ if they started with approximately the same
skills I have today.


There was that philosopher, Diogenes, who lived in a huge barrel somewhere
not too far from Athens. And he was known as a very smart guy. And once
upon a time a man was passing Diogenes' barrel and asked him, "Tell me, o
wise man, how long a walk to Athens?" Diogenes answered, "Go!". The man
thought he heard it wrong and asked again, "I want to know how long I will
need to reach Athens" Diogenes again said, "Start walking, go!". Then the
man shrugged, and started walking away in the general direction of Athens.
After the man has made several dozen paces, Diogenes shouted, "Two and
an half days!". The man stopped, turned around and asked very
irritatedly, "Couldn't you just tell me that earlier?" "No", answered
Diogenes, "I didn't know how fast you were going to walk".

How can anybody can answer the question how long it will take _you_ to
learn C++? It's basically an attempt to predict the future without any
relevant information.

And, here is another point: don't ask how long it would take as if you're
deciding whether to take that route or not. If you feel that knowing C++
is essential for your career, start learning it NOW! I made my decision
more than 12 years ago and I am still learning. On the way I picked up
Java, Python, and several other languages I didn't know twelve years ago.
What does it tell you WRT how long it will take you to get there? Nothing
if you think about it.

Just my $0.02

V
Jul 22 '05 #3

"Victor Bazarov" <v.********@com Acast.net> wrote in message
news:tc******** **********@news read1.dllstx09. us.to.verio.net ...
Rhino wrote:
I am giving some thought to applying for some jobs that want people with
Java and C++ experience. I have been writing Java for several years and am fluent enough that I don't have to get help with Java very often. I have no real C++ experience and not much C experience for that matter.

However, the core Java statements are "borrowed" from C and C++ has often been called "C with classes". It seems to me that it shouldn't take very
long to get up to speed on C++ if I am already fluent with Java and have at least some knowledge of C. Then again, I understand that Java and C++ use classes a bit differently; for instance C++ allows multiple inheritance
while Java allows only single inheritance but allows for multiple interfaces as compensation. I'm not sure how long it would take to get fluent with
multiple inheritance after several years with Java.

I'd be very curious to know how long it took people here who were fluent in Java to get fairly fluent in C++ if they started with approximately the same skills I have today.


There was that philosopher, Diogenes, who lived in a huge barrel somewhere
not too far from Athens. And he was known as a very smart guy. And once
upon a time a man was passing Diogenes' barrel and asked him, "Tell me, o
wise man, how long a walk to Athens?" Diogenes answered, "Go!". The man
thought he heard it wrong and asked again, "I want to know how long I will
need to reach Athens" Diogenes again said, "Start walking, go!". Then the
man shrugged, and started walking away in the general direction of Athens.
After the man has made several dozen paces, Diogenes shouted, "Two and
an half days!". The man stopped, turned around and asked very
irritatedly, "Couldn't you just tell me that earlier?" "No", answered
Diogenes, "I didn't know how fast you were going to walk".

How can anybody can answer the question how long it will take _you_ to
learn C++? It's basically an attempt to predict the future without any
relevant information.

And, here is another point: don't ask how long it would take as if you're
deciding whether to take that route or not. If you feel that knowing C++
is essential for your career, start learning it NOW! I made my decision
more than 12 years ago and I am still learning. On the way I picked up
Java, Python, and several other languages I didn't know twelve years ago.
What does it tell you WRT how long it will take you to get there? Nothing
if you think about it.

Just my $0.02

Your point is well taken, even if it isn't very helpful. Yes, you are right,
you know nothing about me so you can't estimate accurately how long it would
take _me_ to learn C++.

I was really just looking for a generalization to get an idea of whether
this would be a difficult task or something that was relatively easy given
what I already know. I wasn't looking for an estimate that was accurate to
within 10 minutes. I suppose I should have made that clearer, although I
think most people would understand the sense of my question without having
to spell that out.

Rhino
Jul 22 '05 #4
Rhino wrote:
I was really just looking for a generalization to get an idea of whether
this would be a difficult task or something that was relatively easy given
what I already know. I wasn't looking for an estimate that was accurate to
within 10 minutes. I suppose I should have made that clearer, although I
think most people would understand the sense of my question without having
to spell that out.

It is not difficult, however it will take you enough time, since it is
more powerful language and provides more features.

An example is being able to read an object of whatever type as a
sequence of characters (unsigned chars = bytes) and print it character
by character.
After all, JVM is written in C++. :-)
However as I said in another message, you do not need to know the whole
language to begin writing applications.


--
Ioannis Vranos

http://www23.brinkster.com/noicys
Jul 22 '05 #5

"Ioannis Vranos" <iv*@remove.thi s.grad.com> wrote in message
news:1102371038 .685074@athnrd0 2...
Rhino wrote: After all, JVM is written in C++. :-)


or C++--

Jonathan
Jul 22 '05 #6
Ioannis Vranos wrote:
It is not difficult, however it will take you enough time, since it is
more powerful language and provides more features.

An example is being able to read an object of whatever type as a
sequence of characters (unsigned chars = bytes) and print it character
by character.
After all, JVM is written in C++. :-)
However as I said in another message, you do not need to know the whole
language to begin writing applications.

Also check this:

http://www23.brinkster.com/noicys/learningcpp.htm


--
Ioannis Vranos

http://www23.brinkster.com/noicys
Jul 22 '05 #7
"Rhino" <rh****@NOSPAM. sympatico.ca> wrote in message
news:fi******** ************@ne ws20.bellglobal .com...
I am giving some thought to applying for some jobs that want people with
Java and C++ experience. I have been writing Java for several years and am
fluent enough that I don't have to get help with Java very often. I have no real C++ experience and not much C experience for that matter.

However, the core Java statements are "borrowed" from C and C++ has often
been called "C with classes". It seems to me that it shouldn't take very
long to get up to speed on C++ if I am already fluent with Java and have at least some knowledge of C. Then again, I understand that Java and C++ use
classes a bit differently; for instance C++ allows multiple inheritance
while Java allows only single inheritance but allows for multiple interfaces as compensation. I'm not sure how long it would take to get fluent with
multiple inheritance after several years with Java.

I'd be very curious to know how long it took people here who were fluent in Java to get fairly fluent in C++ if they started with approximately the same skills I have today.


No really good answer is possible without knowing what skills you have
today.
However, I have found students who knew C++ fairly well learned Java fairly
well in about a year. It was on the order of six months to learn Java and
how to cobble together a program that actually did something, and another
six months to refine their understanding and eliminating the C++ knowledge
they had from the Java knowledge. I suspect it will work similarly the other
direction. There is just enough difference between the two languages to
cause problems for someone who wishes to learn both.

To become proficient in either probably takes years unless all you spend
your time on is exploring classes, libraries, etc.
--
Gary
Jul 22 '05 #8
Rhino wrote:
Your point is well taken, even if it isn't very helpful.
Yes, you are right, you know nothing about me
so you can't estimate accurately how long it would take _me_ to learn C++.
A week.
It shouldn't take you more than a week to learn C++.
It takes about as much time to learn C++
as it takes to read a textbook on C++ cover-to-cover.
Most computer science students taking a course on programming languages
get about a week to learn each new language if they are lucky.
Java is smalltalk disguised as C++.
C++ is *not* Java.
You will need to *unlearn* some of Java
before you can progress in C++.
But both Java and C++ are imperative computer programming languages
so much of what you learned to do with Java
will transfer to C++.
I was really just looking for a generalization
to get an idea of whether this would be a difficult task
or something that was relatively easy given what I already know.
I wasn't looking for an estimate that was accurate to within 10 minutes.
I suppose I should have made that clearer,
although I think most people would understand
the sense of my question without having to spell that out.


It might also help if you can learn to be patient
with people who are trying to help you.
Jul 22 '05 #9

I don't know what everyone else thinks, but I think the areas you'd have the
most fun with will be resource management (say goodbye GC - hello memory
leaks!) since you will have to know the implications of pointers to objects,
references to objects and value objects - there's no automatic reference
counting of your resources in C++.

Oh - and introductions to the 'const' keyword are in order - a close
personal friend of mine for the last ten years - sorely missed in my Java
experience - he'll be delighted to meet you!

And Templates! - Once you start looking into Templates - well! You'll wonder
how you ever lived without them!

Not that I'm biased, but I reckon you'll have more fun learning C++ than
most C++ developers have learning Java!

In short - 21 days.

(that's what it'll say on the cover of the book anyway :-)

"Rhino" <rh****@NOSPAM. sympatico.ca> wrote in message
news:fi******** ************@ne ws20.bellglobal .com...
I am giving some thought to applying for some jobs that want people with
Java and C++ experience. I have been writing Java for several years and am
fluent enough that I don't have to get help with Java very often. I have
no
real C++ experience and not much C experience for that matter.

However, the core Java statements are "borrowed" from C and C++ has often
been called "C with classes". It seems to me that it shouldn't take very
long to get up to speed on C++ if I am already fluent with Java and have
at
least some knowledge of C. Then again, I understand that Java and C++ use
classes a bit differently; for instance C++ allows multiple inheritance
while Java allows only single inheritance but allows for multiple
interfaces
as compensation. I'm not sure how long it would take to get fluent with
multiple inheritance after several years with Java.

I'd be very curious to know how long it took people here who were fluent
in
Java to get fairly fluent in C++ if they started with approximately the
same
skills I have today.

--
Rhino
---
rhino1 AT sympatico DOT ca
"There are two ways of constructing a software design. One way is to make
it
so simple that there are obviously no deficiencies. And the other way is
to
make it so complicated that there are no obvious deficiencies." - C.A.R.
Hoare

Jul 22 '05 #10

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

Similar topics

4
2823
by: Benjamin | last post by:
Hello, I need some advice on a financial application I'm doing. First, I suppose I should give a little background so you know where I'm coming from. For 5 years I earned my living doing COBOL programming with some occasional VB and web programming with ASP. Prior to that I went to a technical college where I took a couple of courses in c,...
24
2507
by: Charif Lakchiri | last post by:
Okay, here's what I know so far about Python: It's an object-oriented scripting language, supported on many platforms. Now here are my questions: It is easy to learn? Does it support GUI programming? Does it support server-side programming, say for web apps? Does it have extensions and libraries, say for DB connectivity, serial com or...
55
45940
by: Elijah | last post by:
I have read many of the topics on learning C++ or Java first. It seems like everyone says something different. I would like to know if I should learn C++ or Java. First a little about myself. I know PHP, BASIC, and of course HTML. I'll be 15 years old in September. I am interested in programming GUI applications. I am also interested in...
35
2699
by: fermineutron | last post by:
For a while now i have been "playing" with a little C program to compute the factorial of large numbers. Currently it takes aboy 1 second per 1000 multiplications, that is 25000P1000 will take about a second. It will be longer for 50000P1000 as expected, since more digits will be in the answer. Now, on the Num Analyses forum/Group there is a...
73
7372
by: Yevgen Muntyan | last post by:
Hey, I was reading C99 Rationale, and it has the following two QUIET CHANGE paragraphs: 6.5.3.4: "With the introduction of the long long and extended integer types, the sizeof operator may yield a value that exceeds the range of an unsigned long." 6.5.6: "With the introduction of the long long and extended integer
21
1972
by: Lee.kain | last post by:
I want to learn C++! does anyone have any advice? Lee
18
2171
by: firewoodtim | last post by:
I need some help in furthering my education in OOP. I have developed a set of PHP scripts that I use in a fairly sophisticated database driven website, but I am not proud of the rather amateurish programming that I used to create the functionality. Although I use classes and objects to organize my data and their related functions, it seems...
12
2296
by: Srdja123 | last post by:
Like the topic says, I want to learn a language, but which should I learn? Which language will be mostly used in the future? C++ or C#?
21
2603
by: Bart C | last post by:
I've always had a problem knowing exactly how wide my integer variables were in C, and the little program below has increased my confusion. Run on 3 compilers on the same cpu (32-bit pentium), sometimes int and long int are the same, and long long int is twice the width; or sometimes both long int and long long int are twice the width of...
0
7798
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
8039
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
1
7560
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
6140
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
0
5152
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3556
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3545
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2015
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1130
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

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.