473,769 Members | 6,653 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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 3465
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.l earn.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
2296
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 environment, I look at the job sites (Monster, Dice), and no-one, asks for just one skill. Therefor, what other skills will complement best my knowledge of PHP/MySQL? I already have a firm knowledge of html, css, and the web layout side
5
9060
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 over a year as I have been studying Oracle 9i and SQL*Plus. I would like to ask what Access skills should I revise/learn for next week? I appreciate that there isn't a lot of time but I think having at least some knowledge of the main Access...
1
1237
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 greatly appreciated. TIA -- Myk Quayce
0
1243
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 party. They will be asking me technical questions (not like "why are manhole covers round?"). I am confident in my ability but don't actually like to do tests (I suppose I get nervous). Has anyone had this happen to them before? Does anyone know...
2
1549
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 the commonly used data types etc into a single compilation unit (library). How may I do this in C# - any examples would be useful - tx
1
2170
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 the USA. Preferably, I contract with a manager that actually hires the coder, supervises them to make sure they are working and then makes a percentage of the coders pay. The problem I am experiencing is how to make sure the coder has a reasonable...
18
2191
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 to be only marginally better than plain procedural programming. For example, I do not use...
22
4559
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 questionnaires you can point us to? Thanks, Andy
3
2310
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
6462
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 use the code below in 100 different SQL statements... can I stored it somewhere and just call it from another SQL statement? For example, I want to call this very simplified statement 100 times from different stored procs::
0
9589
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10049
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 captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9865
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 protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8873
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 launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7413
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 presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6675
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 into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5309
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 the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
2
3565
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2815
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.