How to solidify our C++ knowledge?

N

NAU programmers

Hey folks,
Me and my friend are beginning our 3rd year at Computer engineering
faculty in a university in Kiev-Ukraine . Unfortunately, there aren't
any good professors in our university, and the level of education here
still goes back to Soviet Union time. Me and my friend are fond of
programming and have made up our mind to study on our own. Without
having nay guide teacher, we started out with C, read few books in C
for about 9 months. Then we moved to C++. For the past 6 months, we've
been studying different C++ books such as: Osborne complete reference;
Teach yourself C++ in 21 Days; Stroustrop C++ book. But our problem is
that we have no one to guide us in our studies. We don't know how to
solidify our knowledge in C++? Should we get a project and work on it?
Suppose if we even worked on a C++ projected, there's no one to look
at our code ans correct us! I wonder if there's a book out there that
has some projects of C++ with some guide-lines. We can't cooperate
with any company either, Because in Kiev, either you're a professional
C++ programmer and you make a good money, or you're nobody! They don't
let us work as summer intern or something like that.
We apppreciate you taking time and reading our email, and guiding us
how to solidify our knowledge. We know lot of theories, but haven't
programmed that much. one more thing is that in Kiev, they require
from you to know 4 or 5 languages including: C/C++, Java, Visual C+
+, .NET, SQL and so on. But how can we learn all that during 4 years
of our Bachelor degree? We are already beginning the 3rd year, and all
we know is C and C++ without any experience in coding!

our questions:
We don't know how to solidify our knowledge in C++? Should we get a
project and work on it?
I wonder if there's a book out there that has some projects of C++
with some guide-lines.

Is there a special way of learning all of these languages I mentioned
above? We're planning to spend another year on C++, do you think it's
a right decision?

Thank you for your help!
 
E

Erik Wikström

Hey folks,
Me and my friend are beginning our 3rd year at Computer engineering
faculty in a university in Kiev-Ukraine . Unfortunately, there aren't
any good professors in our university, and the level of education here
still goes back to Soviet Union time. Me and my friend are fond of
programming and have made up our mind to study on our own. Without
having nay guide teacher, we started out with C, read few books in C
for about 9 months. Then we moved to C++. For the past 6 months, we've
been studying different C++ books such as: Osborne complete reference;
Teach yourself C++ in 21 Days; Stroustrop C++ book. But our problem is
that we have no one to guide us in our studies. We don't know how to
solidify our knowledge in C++? Should we get a project and work on it?
Suppose if we even worked on a C++ projected, there's no one to look
at our code ans correct us! I wonder if there's a book out there that
has some projects of C++ with some guide-lines. We can't cooperate
with any company either, Because in Kiev, either you're a professional
C++ programmer and you make a good money, or you're nobody! They don't
let us work as summer intern or something like that.
We apppreciate you taking time and reading our email, and guiding us
how to solidify our knowledge. We know lot of theories, but haven't
programmed that much. one more thing is that in Kiev, they require
from you to know 4 or 5 languages including: C/C++, Java, Visual C+
+, .NET, SQL and so on. But how can we learn all that during 4 years
of our Bachelor degree? We are already beginning the 3rd year, and all
we know is C and C++ without any experience in coding!

our questions:
We don't know how to solidify our knowledge in C++? Should we get a
project and work on it?
I wonder if there's a book out there that has some projects of C++
with some guide-lines.

A project is always a good idea, start by doing the exercises in "The
C++ Programming Langauge", which range from small and easy to large and
advanced; that should give you a good foundation to stand on, when
moving on to real projects. To find a real project check out open source
hosting sites such as SourceForge and find a project you find
interesting. Start by learning the code and getting familiar with their
ways of working, then slowly start contributing (finding and fixing
bugs, then add a few small features and work your way up).
Is there a special way of learning all of these languages I mentioned
above? We're planning to spend another year on C++, do you think it's
a right decision?

C, C++, Java, and C# are all quite similar. If you master one of them
you should be able to learn enough to be productive in the other
languages by reading a book or taking a quick course. SQL is of course a
bit different but again you can become productive if you read a book or
two. Learning Visual C++ and .Net can take a bit more time since it is
more about knowing libraries/framework.

My point is that no serious company will expect you to really know all
of these languages, they expect you to know one or two and have some
knowledge in the others. If they expect you to know SQL and have some
proficiency in the others you will probably not be employed, but if they
want you to know C++ your chances are better.

Of course, knowing all the programming languages in the world does not
make you a good programmer, so spend some time to study other, relevant
subjects such as object-oriented design, design-patterns,
datastructures, software engineering, etc.
 
G

Gennaro Prota

Erik said:
A project is always a good idea, start by doing the exercises in "The
C++ Programming Langauge", which range from small and easy to large and
advanced; that should give you a good foundation to stand on, when
moving on to real projects.

In addition you might consider joining ACCU (http://accu.org/), which
will give you access to mentored projects. Also, have a look at:

<http://www.spellen.org/youcandoit/>

and its "Mentors & Partners".
> To find a real project check out open source
hosting sites such as SourceForge and find a project you find
interesting. Start by learning the code and getting familiar with their
ways of working, then slowly start contributing (finding and fixing
bugs, then add a few small features and work your way up).

This is something to take with caution. Lot (most?) of the C++ code on
SourceForge isn't exactly a model to learn from. I have seen something
good, but they were *big* projects where even an experienced
programmer would be initially lost. Some code I know for sure as being
of high quality is James Kanze's, at

<http://kanze.james.neuf.fr/>

Consider that some of the facilities there were written in the
pre-standard days. Anyhow, even if you just take the most simple stuff
I'm sure you'll learn something.

If you haven't already, also look for books by Scott Meyers and Herb
Sutter. And, perhaps a little later, "C++ Coding Standards", by Sutter
and Alexandrescu. Steve Dewhurst books are also good, though not
always fully "in line" with the subject (i.e., you'll find many good
insights, but not all of them seem to have directly to do with what
the book title suggests --e.g. things which aren't C++ specific in
"C++ Gotchas").

"Accelerated C++" by A. Koenig and B. Moo is also recommended.

I know that you were looking for _projects_, not books, but these ones
may accompany you (effectively :)) while you do some real programming.

BTW, if you want specific advice on some of your code, I think you can
post here and ask for a code critique. When it comes to criticizing,
all of us here are pretty "helpful"! :)
 
F

farshsomo

A project is always a good idea, start by doing the exercises in "The
C++ Programming Langauge", which range from small and easy to large and
advanced; that should give you a good foundation to stand on, when
moving on to real projects. To find a real project check out open source
hosting sites such as SourceForge and find a project you find
interesting. Start by learning the code and getting familiar with their
ways of working, then slowly start contributing (finding and fixing
bugs, then add a few small features and work your way up).


C, C++, Java, and C# are all quite similar. If you master one of them
you should be able to learn enough to be productive in the other
languages by reading a book or taking a quick course. SQL is of course a
bit different but again you can become productive if you read a book or
two. Learning Visual C++ and .Net can take a bit more time since it is
more about knowing libraries/framework.

My point is that no serious company will expect you to really know all
of these languages, they expect you to know one or two and have some
knowledge in the others. If they expect you to know SQL and have some
proficiency in the others you will probably not be employed, but if they
want you to know C++ your chances are better.

Of course, knowing all the programming languages in the world does not
make you a good programmer, so spend some time to study other, relevant
subjects such as object-oriented design, design-patterns,
datastructures, software engineering, etc.

We thank you Erik
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,817
Latest member
DicWeils

Latest Threads

Top