473,396 Members | 1,921 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,396 software developers and data experts.

Advice

Hi all.

I've recently landed myself the position of trainee
C++ programmer which I'm extremely pleased about,
but also nervous.

According to the feedback from the interview, I
have a good basic knowledge of C++ (through college)
although my contract states that I must endeavour to
learn more, so my question is - which areas of C++
might I bone up on which will bring immediate benefits
to my C++ programming career.

Also can anyone reccomend a book of programming
algorithms (common problems) in C++ that will aid
my general programming logic/skills.

Thanks.
Jul 19 '05 #1
5 2992

"Martin Piper" <m_*********@yahoo.com> wrote in message
news:bh***********@ID-126646.news.uni-berlin.de...
Hi all.

I've recently landed myself the position of trainee
C++ programmer which I'm extremely pleased about,
but also nervous.

According to the feedback from the interview, I
have a good basic knowledge of C++ (through college)
although my contract states that I must endeavour to
learn more, so my question is - which areas of C++
might I bone up on which will bring immediate benefits
to my C++ programming career.

Also can anyone reccomend a book of programming
algorithms (common problems) in C++ that will aid
my general programming logic/skills.

Thanks.


I think the big issue for newbies is to learn the common programming idioms
that good C++ programmers use. There are a lot of ways to mess up in C++ and
there are plenty of important techniques that should be more widely known.

'Effective C++', 'More Effective C++' by Scott Meyers and
'The C++ Standard Library' by Josuttis

will give you a lot of good practical advice.

john
Jul 19 '05 #2
"Martin Piper" <m_*********@yahoo.com> wrote in
message news:bh***********@ID-126646.news.uni-berlin.de...
| I've recently landed myself the position of trainee
| C++ programmer which I'm extremely pleased about,
| but also nervous.
Congratulations!

| According to the feedback from the interview, I
| have a good basic knowledge of C++ (through college)
| although my contract states that I must endeavour to
| learn more, so my question is - which areas of C++
| might I bone up on which will bring immediate benefits
| to my C++ programming career.

Well, there are different directions a C++ programming
career can take...

Before diving into C++ itself (which is good), I would
also take the time to read a book such as:
"The Pragmatic Programmer" (Hunt&Thomas).
It has a LOT of useful general advice.

For C++ itself, I can second John's advice for C++
books, with some additions:
- The Effective C++ and More ~ (Meyers)
The C++ ones provide sound advice (though I had
quickly found them to become obvious).
"Effective STL" is also useful (one you know the STL).
- The C++ Standard Library (Jossutis): excellent to
understand the standard library. Remains useful
as a reference (unless you prefer to use the
actual ISO document defining the C++ standard,
of which an inexpensive pdf can be obtained).
- Exceptional C++ and More~ (Sutter): teaches about
a lot of *useful* corner cases and situations.
See also http://www.gotw.ca/gotw from which
the book was derived.

*if* you want to get into advanced C++ design techniques,
using techniques that are unique to C++:
- "Modern C++ Design" (Alexandrescu)
- "Multi-Paradigm Design" (Coplien)
- "Generative Programming" (Czarmecki)

Make sure to also learn about design patters if you
haven't yet ("Design Patters", Gamma & al).
(If you want more about patterns, I liked "Pattern-
Oriented Software Architecture", vol 1 especially).
Make sure to learn other languages (Python/Perl/C#/...)
along the way.
Also learn about UML and software development processes.
RUP (Rational), XP (Extreme Programming), TDD (Test
Driven Development), DBC (Design by contract) are all
concepts to get familiar with...

Also check some less technical books about programming.
"Peopleware" (deMarco&al) and "The Mythical Man Month"
(Brooks) remain useful starting points.
| Also can anyone reccomend a book of programming
| algorithms (common problems) in C++ that will aid
| my general programming logic/skills.

For general programming/logic skills, I find that
doing a bunch of the problems available (with online-
submission and verification) at http://acm.uva.es/problemset/
Doing a few dozens of these (e.g. in Vol 1) can
teach you about a bunch of algorithms and approaches.
I may have been drawing too wide a picture... but
I hope this helps,
Ivan

--
http://www.post1.com/~ivec

Jul 19 '05 #3

"Ivan Vecerina" <iv**@myrealbox.com> wrote in message
news:3f********@news.swissonline.ch...
"Martin Piper" <m_*********@yahoo.com> wrote in
message news:bh***********@ID-126646.news.uni-berlin.de...
| I've recently landed myself the position of trainee
| C++ programmer which I'm extremely pleased about,
| but also nervous.
Congratulations!

| According to the feedback from the interview, I
| have a good basic knowledge of C++ (through college)
| although my contract states that I must endeavour to
| learn more, so my question is - which areas of C++
| might I bone up on which will bring immediate benefits
| to my C++ programming career.

Well, there are different directions a C++ programming
career can take...

Before diving into C++ itself (which is good), I would
also take the time to read a book such as:
"The Pragmatic Programmer" (Hunt&Thomas).
It has a LOT of useful general advice.

For C++ itself, I can second John's advice for C++
books, with some additions:
- The Effective C++ and More ~ (Meyers)
The C++ ones provide sound advice (though I had
quickly found them to become obvious).
"Effective STL" is also useful (one you know the STL).
- The C++ Standard Library (Jossutis): excellent to
understand the standard library. Remains useful
as a reference (unless you prefer to use the
actual ISO document defining the C++ standard,
of which an inexpensive pdf can be obtained).
- Exceptional C++ and More~ (Sutter): teaches about
a lot of *useful* corner cases and situations.
See also http://www.gotw.ca/gotw from which
the book was derived.

*if* you want to get into advanced C++ design techniques,
using techniques that are unique to C++:
- "Modern C++ Design" (Alexandrescu)
- "Multi-Paradigm Design" (Coplien)
- "Generative Programming" (Czarmecki)

Make sure to also learn about design patters if you
haven't yet ("Design Patters", Gamma & al).
(If you want more about patterns, I liked "Pattern-
Oriented Software Architecture", vol 1 especially).
Make sure to learn other languages (Python/Perl/C#/...)
along the way.
Also learn about UML and software development processes.
RUP (Rational), XP (Extreme Programming), TDD (Test
Driven Development), DBC (Design by contract) are all
concepts to get familiar with...

Also check some less technical books about programming.
"Peopleware" (deMarco&al) and "The Mythical Man Month"
(Brooks) remain useful starting points.
| Also can anyone reccomend a book of programming
| algorithms (common problems) in C++ that will aid
| my general programming logic/skills.

For general programming/logic skills, I find that
doing a bunch of the problems available (with online-
submission and verification) at http://acm.uva.es/problemset/
Doing a few dozens of these (e.g. in Vol 1) can
teach you about a bunch of algorithms and approaches.
I may have been drawing too wide a picture... but
I hope this helps,
Ivan


That's fantastic, thanks Ivan.
Jul 19 '05 #4
Martin Piper wrote:
Hi all.

I've recently landed myself the position of trainee
C++ programmer which I'm extremely pleased about,
but also nervous.

According to the feedback from the interview, I
have a good basic knowledge of C++ (through college)
although my contract states that I must endeavour to
learn more, so my question is - which areas of C++
might I bone up on which will bring immediate benefits
to my C++ programming career.

Also can anyone reccomend a book of programming
algorithms (common problems) in C++ that will aid
my general programming logic/skills.

Thanks.

I highly recommend learning about:
Data Structures (many different books about this)
Design Patterns
Software Design
"Testing Computer Software" by Kaner, Falk & Nguyen
Numerical Algorithms
"Refactoring" by Fowler.
Software Development Processes:
Waterfall model
Spiral model
XP (Extreme Programming)
Test Driven Development
Agile Programming
See the C++ STL Library book link below.

--
Thomas Matthews

C++ newsgroup welcome message:
http://www.slack.net/~shiva/welcome.txt
C++ Faq: http://www.parashift.com/c++-faq-lite
C Faq: http://www.eskimo.com/~scs/c-faq/top.html
alt.comp.lang.learn.c-c++ faq:
http://www.raos.demon.uk/acllc-c++/faq.html
Other sites:
http://www.josuttis.com -- C++ STL Library book

Jul 19 '05 #5
"Martin Piper" <m_*********@yahoo.com> wrote in message
news:bh***********@ID-126646.news.uni-berlin.de...
which areas of C++
might I bone up on which will bring immediate benefits
to my C++ programming career.
Once the basics of the C++ language itself are learned to a degree, there is
still much learning to be done before one can is a competent programmer.
Your biggest hurdle next is probably learning to program for the specific
operating system you will be working with. You don't need to know every
nuance of the C++ standard to begin learning your operating system; in fact,
I would say if you have the rudimentary basics and are bright, you are ready
to start learning the operating sysytem. Your deficincies in the core
language itself will become apparent to you as you go, and you can cover
these JIT (just-in-time). For this use, I recommend referring to
Stroustrup, "The C++ Programming Language."

So for instance, if in your new job you will be doing Windows programming,
you should start learning Windows programming. But it's not as simple as
that, either. You also need to find out what technologies your shop uses to
do it's work (ie, MFC, dot NET, etc), and concentrate your efforts in
learning that technology. (OT: In the case of learning Windows programming
using MFC, a good starting point is "Programming Windows 95 using MFC," by
Jeff Prosise)

Now, a word of warning. You are still on the left side of the learning
curve. That is, even though just learning C++ itself was probably hard (as
it is for everyone), things are probably about to get *much* harder. You
will probably buy and read $500 worth of books in the next year. At some
point you may think to yourself, "I just don't get any of this. I'll never
be a good programmer." You might think this all the time, and start to hate
your job. Don't despair. Everybody goes through this. Really. Epiphany
is coming. You will go in to work one day and just *get* it.
Also can anyone reccomend a book of programming
algorithms (common problems) in C++ that will aid
my general programming logic/skills.


Read the C++ FAQ online (www.parashift.com/c++-faq-lite/), maybe even buy
the book.

Learn STL. It provides solutions to many common problems. Don't reinvent
the wheel. If you find yourself writing a linked-list class, or a sorting
function, or some kind of memory-managed array, *stop*! Use STL instead.
Its already in there, and it works. You can always come to this newsgroup
and ask, "Is there something in STL I can use to accomplish this?"

Good luck on your new job!

- John Dibling
Jul 19 '05 #6

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

Similar topics

75
by: Howard Nease | last post by:
Hello, everyone. I would appreciate any advice that someone could give me on my future career path. Here is my situation: I am a bright Junior in a very well-respected private high school, taking...
3
by: Andy Dingley | last post by:
I've just started on a new project and inherited a huge pile of XSLT (and I use the term "pile" advisedly !) It runs at glacial speed, and I need to fix this this. Platform is MSXML 4 / ASP ...
11
by: ma740988 | last post by:
I'm perusing a slide with roughly 12 bullets spread across 3 pages. Each bullet reflects 'advice'. I'm ok with all but 1 bullet, more specifically the bullet that states: " Avoid the STL unless...
6
by: J Rieggle | last post by:
Hi there, I am stuck on a problem that relates to eCommerce sites, but isnt ASP.NET specific (sorry). The ecommerce site is working in the UK, and products will be sold in pounds stirling. ...
13
by: Alan Silver | last post by:
Hello, MSDN (amongst other places) is full of helpful advice on ways to do data access, but they all seem geared to wards enterprise applications. Maybe I'm in a minority, but I don't have those...
7
by: John Paul | last post by:
I'm thinking of building an e-commerce site in php. Anyone got any advice in building one? What is the best way to implement a payment system? Are any legal issues involved? Thanks,
232
by: robert maas, see http://tinyurl.com/uh3t | last post by:
I'm working on examples of programming in several languages, all (except PHP) running under CGI so that I can show both the source files and the actually running of the examples online. The first...
3
by: mesut | last post by:
Hi colleagues, I need your advice... I have approx 1,5 years experience with ASP.NET/VB.NET 2005 and I have to switch over into C# 2005 language. I don't have experience with C# 2005...
7
by: SM | last post by:
Hello, I have a index.php template (2 columns). The right columns contains a bunch of links (interviews, poems, etc...) The left columns contains the actual article. So if I click on a link on...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
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...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
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,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

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.