where to go from here?

J

jason hill

I'm trying to learn C++ on my own. I have a background in computer
networking and system administration. I currently script using
vbscript. I have read "The Complete Idiot's Guide to C++" which was
very helpful and a great beginner's book. However I'm not sure where
to go from there. I have been all over the internet trying to find
places that have exercises or even a "next step".

So, I figured I'd come to the professionals. Maybe there is someone
here who taught themselves C++ as well and can point me in that next
step direction.

I am not looking to get a job with c++ but I would like to use it to
build CNA tools.
 
V

Victor Bazarov

I'm trying to learn C++ on my own. I have a background in computer
networking and system administration. I currently script using
vbscript. I have read "The Complete Idiot's Guide to C++" which was
very helpful and a great beginner's book. However I'm not sure where
to go from there. I have been all over the internet trying to find
places that have exercises or even a "next step".

So, I figured I'd come to the professionals. Maybe there is someone
here who taught themselves C++ as well and can point me in that next
step direction.

I am not looking to get a job with c++ but I would like to use it to
build CNA tools.

I've not opened "The Idiot's Guide", so I'm not sure how much progress
it's going to be to go to "Accelerated C++" by Koenig and Moo, but do
find a copy in your nearest bookstore and leaf through it. If you find
that you know pretty much most of what it covers, skip it and go to "The
C++ Programming Language" (I used that book to "teach myself C++" at
some point in the distant past). Also, the "Effective" series by Meyers
have been useful to me at some point. One of the cornerstone pieces for
C++ education, AFAICT, is "The C++ Standard Library" by Nicolai Josuttis.

What I eventually figured that most of learning of a programming
language one accomplishes by using it, not by reading about it. There
is no substitution for writing your programs, making mistakes, figuring
out solutions.

Good luck!

V
 
C

cpp4ever

I've not opened "The Idiot's Guide", so I'm not sure how much progress
it's going to be to go to "Accelerated C++" by Koenig and Moo, but do
find a copy in your nearest bookstore and leaf through it. If you find
that you know pretty much most of what it covers, skip it and go to "The
C++ Programming Language" (I used that book to "teach myself C++" at
some point in the distant past). Also, the "Effective" series by Meyers
have been useful to me at some point. One of the cornerstone pieces for
C++ education, AFAICT, is "The C++ Standard Library" by Nicolai Josuttis.

What I eventually figured that most of learning of a programming
language one accomplishes by using it, not by reading about it. There
is no substitution for writing your programs, making mistakes, figuring
out solutions.

Good luck!

V

I agree with Mr V, but most folks I speak to think C++ is not the
easiest programming language to master. IMHO many books tend to gloss
over scope rules. For my part I spent 4 hours a day for 14 days teaching
myself many aspects of C++, and I'm still learning some 15+ years later.
May I wish you the best, but it will require a lot of practice and hard
graft before the fog of confusion clears.

JB
 
J

jason hill

What I eventually figured that most of learning of a programming
language one accomplishes by using it, not by reading about it.  There
is no substitution for writing your programs, making mistakes, figuring
out solutions.


Thanks for all the suggestions. I totally agree with you about doing
is the best learning. The problem I am running into is a feeling of
being overwhelmed. I'm learning C++ for myself and not for a job so
not sure what to program. Well, that's not true, I mean to say I know
what I want to program just not sure how to do it. That is why I am
looking for the "next step" in books.

Thank you for your insight.
 
Ö

Öö Tiib

Thanks for all the suggestions.  I totally agree with you about doing
is the best learning.  The problem I am running into is a feeling of
being overwhelmed.  I'm learning C++ for myself and not for a job so
not sure what to program.  Well, that's not true, I mean to say I know
what I want to program just not sure how to do it.  That is why I am
looking for the "next step" in books.

Thank you for your insight.

I do not what is CNA (Catholic News Agency, Canadian Nurses
Association or Cisco Network Assistance). In any case i would try to
follow usual hobbyist path (you may spend years at each step ...
depends how many spare time you have):

1) Get some C++ code that does something interesting for you and get
it to compile and run. Try to improve it. Lot of code can be found
from books, magazines and from network.
2) Find some simple task that you feel like able to solve yourself.
You may search for classical programming puzzles or Olympiad tasks in
network. Get them solved.
3) Try to solve some problems in your computer that is bothering you.
Do it with little programs written by you.
4) Find people in network who are already doing similar things that
you are planning to do as open source. Take their code try to get it
to compile and run. Report and fix some bugs in their code,
communicate with them, join the team, help them to do their thing.
5) Start your own product as a key developer. Let others to join you.
 
J

jason hill

1) Get some C++ code that does something interesting for you and get
it to compile and run. Try to improve it. Lot of code can be found
from books, magazines and from network.
2) Find some simple task that you feel like able to solve yourself.
You may search for classical programming puzzles or Olympiad tasks in
network. Get them solved.
3) Try to solve some problems in your computer that is bothering you.
Do it with little programs written by you.
4) Find people in network who are already doing similar things that
you are planning to do as open source. Take their code try to get it
to compile and run. Report and fix some bugs in their code,
communicate with them, join the team, help them to do their thing.
5) Start your own product as a key developer. Let others to join you.

These are all great ideas. I guess I have to start at the first one.
Great advice thank you.

On another front, how do you all keep track of all the header files
that are out there so you don't re-write things already done.
 
C

cpp4ever

These are all great ideas. I guess I have to start at the first one.
Great advice thank you.

On another front, how do you all keep track of all the header files
that are out there so you don't re-write things already done.

Sometimes it's quicker to reinvent the wheel than try and find one that
fits. Anyway the C++ practice will benefit the learning process.
Personally I find Doxygen helps me provide code documentation.

JB
 
Ö

Öö Tiib

On another front, how do you all keep track of all the header files
that are out there so you don't re-write things already done.

Simpler things we remember that we have seen solved it somewhere,
done, available and free to get already. If we forgot where it was, we
search and/or ask around.

About more complex things it often does not matter. There is always
possibility that we do it better. Optimum is possible only in static
fixed environment but world around us is changing constantly.
 
J

Jorgen Grahn

Canadian Nuclear Association? Child Nutrition Act?

Computer Network Attack seems like the most likely expansion my search
could find -- you're doing military computer network cracking as a
hobby? I have to admit, reluctantly, that C++ is a good choice for
that.

Agree completely.

And I want to add, hanging around here on c.l.c++ is also very
valuable, especially if you dont have colleagues or friends who are
also users.
I agree with Mr V, but most folks I speak to think C++ is not the
easiest programming language to master. IMHO many books tend to gloss
over scope rules.
For my part I spent 4 hours a day for 14 days teaching
myself many aspects of C++, and I'm still learning some 15+ years later.

But you did useful things with it the first month, I bet. Your
continued learning 15 years later doesn't seem abnormal to me. It
sounds fun.

/Jorgen
 
J

Jorgen Grahn

.
On another front, how do you all keep track of all the header files
that are out there so you don't re-write things already done.

They are called libraries -- they usually contain a lot more than
header files.

I look at what's available in my Linux distribution. If there is a
library which does what I want, and it's good enough to be used
by more than one or two applications, then I consider using it.

But more and more I reuse my own code, by copy, paste and
understanding.

/Jorgen
 
D

DeMarcus

I'm trying to learn C++ on my own. I have a background in computer
networking and system administration. I currently script using
vbscript. I have read "The Complete Idiot's Guide to C++" which was
very helpful and a great beginner's book. However I'm not sure where
to go from there. I have been all over the internet trying to find
places that have exercises or even a "next step".

So, I figured I'd come to the professionals. Maybe there is someone
here who taught themselves C++ as well and can point me in that next
step direction.

I am not looking to get a job with c++ but I would like to use it to
build CNA tools.

These books will boost you learning in sequential order.

// Reference books and links.
* The C++ Programming Language, by Bjarne Stroustrup.
* http://www.cplusplus.com
* The C++ Standar Library, by Nicolai M. Josuttis. Or following links
* http://www.cplusplus.com/reference/
* http://www.sgi.com/tech/stl/table_of_contents.html

// Books and links about coding conventions and best practices.
* http://www.parashift.com/c++-faq-lite/
* http://www.gotw.ca/gotw/
* C++ Coding Standards, by Herb Sutter & Andrei Alexandrescu.
* Effective C++, by Scott Meyers.
* More Effective C++, by Scott Meyers.
* Exceptional C++, by Herb Sutter.

// Then when you feel warm and your application is growing you will
// need the following books and links about patterns and architecture.
* Design Patterns, by Gamma, Helm, Johnson, Vlissides.
* http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
* Modern C++ Design, by Andrei Alexandrescu. (Check out policies)
* http://www.drdobbs.com
* http://www.boost.org/doc/libs
* http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3090.pdf

// Then you can also check out what's coming soon.
* http://en.wikipedia.org/wiki/C++0x


HTH,
Daniel
 
P

Puppet_Sock

[what to do now after first book on C++]

Pick a topic to work on. Go here

http://accu.org/

and look in the book reviews to find good books on
C++ that are oriented to that topic.
Socks
 
K

Keith H Duggar

I do not what is CNA (Catholic News Agency, Canadian Nurses
Association or Cisco Network Assistance).

Though Jason has oddly not yet clarified this acronym, judging
from his post

"I have a background in computer networking and system
administration."

my guess would be Computer Network Administration.

KHD
 
C

cpp4ever

They are called libraries -- they usually contain a lot more than
header files.

Jorgen is so right about that
I look at what's available in my Linux distribution. If there is a
library which does what I want, and it's good enough to be used
by more than one or two applications, then I consider using it.

Hmmmmm, just one of the reasons I like Linux
But more and more I reuse my own code, by copy, paste and
understanding.

Only if you use it regularly, otherwise documentation still helps

I must have mentioned DOxygen in this thread before, but it really can
help with tracking, and not just your headers.

JB
 
C

cpp4ever

Canadian Nuclear Association? Child Nutrition Act?

Computer Network Attack seems like the most likely expansion my search
could find -- you're doing military computer network cracking as a
hobby? I have to admit, reluctantly, that C++ is a good choice for
that.


Agree completely.

And I want to add, hanging around here on c.l.c++ is also very
valuable, especially if you dont have colleagues or friends who are
also users.


But you did useful things with it the first month, I bet. Your
continued learning 15 years later doesn't seem abnormal to me. It
sounds fun.

/Jorgen

Being the crazy C++ nutter I am, I created an auto_ptr, (auto pointer),
template with the operator ->* overloaded to handle data member pointers
and function member pointers for functions with up to 4 parameters. I
learnt a lot about template usage and specialisation with that exercise.
Never actually used it in anger, as pointer to member data and member
functions can be easily handled with the standard library auto_ptr. This
is well beyond the scope of those starting to learn C++, unless they are
of the masochist variety!!!!

JB
 
J

Jorgen Grahn

....


Hmmmmm, just one of the reasons I like Linux

I'm not saying it's the right thing to do, only that it's following
accepted practice on that platform. What you reuse if you go that route
is libraries for data formats (compression algorithms, image formats
etc) but you might end up reinventing more wheels than (say) a Python
programmer armed with the Python standard library.

The libraries that come with Linux are mostly low-level, have a C API,
and try not to set policy. We don't like being told what to do.
Only if you use it regularly, otherwise documentation still helps

By "copy, paste and understanding" I meant I may copy a piece of code
from project FOO to project BAR, but not without first understanding
it, or being sure I can understand it when needed. Some minimal
documentation certainly helps with that.

If I later want to make the code reusable, I can use what I learned by
adapting it into BAR. It's probably hard to make a decent library
without first having two or more uses for it.

/Jorgen
 
B

Brian

I'm not saying it's the right thing to do, only that it's following
accepted practice on that platform. What you reuse if you go that route
is libraries for data formats (compression algorithms, image formats
etc) but you might end up reinventing more wheels than (say) a Python
programmer armed with the Python standard library.

The libraries that come with Linux are mostly low-level, have a C API,
and try not to set policy. We don't like being told what to do.



By "copy, paste and understanding" I meant I may copy a piece of code
from project FOO to project BAR, but not without first understanding
it, or being sure I can understand it when needed. Some minimal
documentation certainly helps with that.




It's probably hard to make a decent library
without first having two or more uses for it.

Yeah. I'm willing to donate 20 hours/week for six months on a
project that uses the C++ Middleware Writer. However, I'll
contemplate offers based on the nature of the project/company.
I can only take on one such project at a time, so may reject an
offer either temporarily or permanently.


Brian Wood
http://webEbenezer.net
 

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

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top