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

C++ skills and commonly (?) used non-standard libraries.

Hello,

I have a couple of years of experience with C++. I started studying
C++ syntax, then I read the B.Stroustrup's book, and eventually I went
through the N.Josuttis' book on how to program with the C++ Standard
Library.

I am not a professional programmer however I would like to gain more
knowledge of the language to get what could be considered the skills
you'd expect from a professional developer ( I also know Unix
programming and some Ix86 32-bit Assembly programming too ).

My questions are about what to do in order to get the above-mentioned
skills. I've heard of commonly used libraries (e.g., Boost and ACE)
and I know of libraries (Trolltech QT) for GUI developing.

1) Do really exist some libraries that can be considered commonly used
libraries? If yes, which they are and what they are intended for?

2) Do you think I'd better start on learning how to use some of them?
(What I intended to ask is if you think a good developer should master
the most used of them, given the fact that He/She will be probably
asked to program with these libraries when/if working in a
professional context).

3) What else a good C++ programmer is expected to know in addition to
all of the above, altogether with strong mathematics, common
algorithms and data structures, and some computer networks knowledge?

Thank all of you in advance,

FabioMDF.
Jul 22 '05 #1
3 3412
fabio de francesco wrote:
I have a couple of years of experience with C++. I started studying
C++ syntax, then I read the B.Stroustrup's book, and eventually I went
through the N.Josuttis' book on how to program with the C++ Standard
Library.

I am not a professional programmer however I would like to gain more
knowledge of the language to get what could be considered the skills
you'd expect from a professional developer ( I also know Unix
programming and some Ix86 32-bit Assembly programming too ).

My questions are about what to do in order to get the above-mentioned
skills. I've heard of commonly used libraries (e.g., Boost and ACE)
and I know of libraries (Trolltech QT) for GUI developing.

1) Do really exist some libraries that can be considered commonly used
libraries? If yes, which they are and what they are intended for?
Usually, if anything could be considered "commonly used", it would be
a system library for programming the platform you're on. For example,
Windows API library, POSIX (although it's not really a library, just
standard interfaces), pthreads (if applicable, and it often is), Motif
(or Tcl/Tk), OpenGL. The list is by no means complete. Just a scratch
on the surface, really.

It helps to know where the language is headed. For example, many parts
of the Boost library can end up adopted as standard library extensions
in the near future.
2) Do you think I'd better start on learning how to use some of them?
(What I intended to ask is if you think a good developer should master
the most used of them, given the fact that He/She will be probably
asked to program with these libraries when/if working in a
professional context).
You can't be using all of them at once, I'm afraid, unless you yourself
are programming something like Qt. And also, depending on the context
(professional one) you may never really be using any of them because
the orgranisation could have chosen to either use a popular cross-platform
variation (like Qt, etc.) or has implemented their own. Get a feeling of
what's out there and learn them as you encounter the need.
3) What else a good C++ programmer is expected to know in addition to
all of the above, altogether with strong mathematics, common
algorithms and data structures, and some computer networks knowledge?


It's a misconception that it is necessary to know mathematics very well
to be a good programmer. Algos and data structures, no doubt. But if
you are involved in creating a database or a communications system, what
mathematics, really? Minimal, at best.

Networks? I don't think so. You can program all your life and become
very good at what you do without knowing anything about networks.

We're crossing the line of topicality here, so it would probably be
better to continue this discussion in comp.software-eng, where it really
belongs, but...

As to your question, good common sense and ability to estimate the amount
of work needed for a particular task is just as important as in any other
occupation. Work ethics, respect for your colleagues, i.e. ability to
work well in a group. As it turns out, while programming is considered
art by many (or at least by some), programmers rarely work alone.

Every little bit of knowledge helps. In order to be a good programmer in
a professional context it is often better to know the non-programming
aspects of the domain. E.g. being a physicist helps if you develop some
scientific software to support an experiment in physics. Being a chemist
probably helps if you develop software to control production of drugs.
You get the idea, I am sure.

Knowing when to stop is good too, so I better wrap up... ;-)

Good luck!

Victor
Jul 22 '05 #2
fabio de francesco wrote:
Hello, [snip]

1) Do really exist some libraries that can be considered commonly
used libraries? Yes. Many libraries exist for C++. The most common is the
Standard Template Library (STL). {I don't know if the run-time
library would be considered in this case.) See also the Boost
library ( http://www.boost.org )

If yes, which they are and what they are intended for? Depends on the library. Each one has a different purpose. For
example, there are GUI libraries and Matrix libraries.
Search the newsgroup for "Nikki Locke", this person routinely
posts a large list of libraries for C++.

2) Do you think I'd better start on learning how to use some of them? No. Learn the libraries that you need for the application. Don't
waste your time with libraries you will never use. For example,
there is a Tensor library, which I have never used in 30 years of
programming.\

(What I intended to ask is if you think a good developer should master
the most used of them, given the fact that He/She will be probably
asked to program with these libraries when/if working in a
professional context). "Most used" is a rather vague term; which depends on the industry
you are working in or the applications you are writing for. In
my realm of embedded systems, the most used libraries are quite
different than those required for Airplane, Word Processing and
Image Processing. In my current project, cryptography libraries
are commonly used.

When I was programming laser printers and tape drives, cryptography
was not commonly used; but motion control and compression libraries
were commonly used. Would you learn a library that was commonly
used in an industry that you are not working with?

3) What else a good C++ programmer is expected to know in addition to
all of the above, altogether with strong mathematics, common
algorithms and data structures, and some computer networks
knowledge? I am a good C++ programmer and I don't have any computer network
knowledge. One doesn't need to have computer network knowledge
to be a good C++ programmer.

In addition to knowing Computer Science stuff, one should also
learn:
1. Communication skills.
2. Knowledge about the product or the arena of the application.
If you are writing accounting programs, you should have some
knowledge about accounting.
3. Software Development methodologies. Learn more than one.
Such concepts as Test Driven Development, Sprial Model,
Waterfall model. Learn about data driven and event driven
systems.
4. Operating systems. Learn two; no, learn three; heck learn
many of them. Write your own.
5. No fault project management. Heh, Heh! Who made the bug
doesn't matter as much as how the whole team can fix the
bug and make the project / product better. Finger pointing
only slows down projects.
6. Database theory. There is a lot of data out there and
organizing the data will make products and programs more
efficient.
7. Lurk in this group for a year. :-)

Thank all of you in advance,

FabioMDF.


--
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.comeaucomputing.com/learn/faq/
Other sites:
http://www.josuttis.com -- C++ STL Library book
http://www.sgi.com/tech/stl -- Standard Template Library

Jul 22 '05 #3
Learn Operating Systems and Compiler Theories, then you will know what
your code is really doing. Learn design patterns in Object Oriented and
Generic Programming, then you'll know what a good C++ programmer will do...

Jul 22 '05 #4

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

Similar topics

14
by: Eakin, W | last post by:
Unlike a coding question, which may have a definite answer, this deals more with opinion. As I continue my studies of PHP and MySQL, and get to the point of being able to use them in a work...
5
by: James | last post by:
Hi there, I have a job interview next week and they will be assessing my technical skills (just through discussion I believe). The job involves using Access but I haven't used Access properly for...
1
by: Myk Quayce | last post by:
I'm writing a website using Notepad and ASP.NET and C#, and I'm trying to determine the best way of grouping commonly-used methods so they can be accessed by many .aspx pages. Any help would be...
0
by: Edward W. | last post by:
Sorry for this non-programming question but I might start doing some VB.NET contract work soon. The contractor company is going to have my skills tested over the phone by someone, like a third...
2
by: Bit Byte | last post by:
Coming from a pure C/C++ background - recently started looking at C# for a project. The absence of header files in C# has thrown me "a bit of a curve". I want to modularise my code and put all...
1
by: ronmauldin | last post by:
Anyone with experience in testing programmers prior to hiring them? I resell the skills of programmers (Web Design/Flash/PHP/MySQL/Javascript) around the world to work virtually for companies in...
18
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...
22
by: Andy Summers | last post by:
Hi All, Does anybody know how to determine C# skill set of a new hire? Our company is about to move to .Net and we have no experienced developers to assess C# skills . Are there any on-line...
3
tharden3
by: tharden3 | last post by:
What is the Progamming Language most commonly used to make big name games like COD4? Is it java? Would you use different ones for different types of games?
3
by: jduhler | last post by:
Is there a way in SQL Server T-SQL to store commonly used SQL statements in a function, stored proc, or system variable? That way if that code ever changes I can change it in one place. If I...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
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...
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: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
0
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
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.