Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What technologies do C++ programmers need to know? [closed]

Tags:

c++

C++ was the first programming language I really got into, but the majority of my work on it was academic or for game programming. Most of the programming jobs where I live require Java or .NET programmers and I have a fairly good idea of what technologies they require aside from the basic language. For example, a Java programmer might be required to know EJB, Servlets, Hibernate, Spring, and other technologies, libraries, and frameworks.

I'm not sure about C++, however. In real life situations, for general business programming, what are C++ programmers required to know beyond the language features? Stuff like Win32 API, certain libraries, frameworks, technologies, tools, etc.


Edit: I was thinking of the standard library as well when I said basic language, sorry if it was wrong or not clear. I was wondering if there are any more specific domain requirements similar to all the technologies Java or .NET programmers might be required to learn as apposed to what C++ programmers need to know in general. I do agree that the standard library and Boost are essential, but is there anything beyond that or is it different for every company/project/domain?

like image 862
Firas Assaad Avatar asked Sep 30 '08 09:09

Firas Assaad


People also ask

Are C programmers still in demand?

C is a programming language that is always in demand despite many other popular programming languages. C has great opportunities in terms of building career around the world and helps in applying for the real-time programming positions.

Is C close to machine language?

C is almost a portable assembly language. It is as close to the machine as possible while it is almost universally available for existing processor architectures. There is at least one C compiler for almost every existent architecture.

Is C close to Java?

C is a middle-level language as it binds the bridges between machine-level and high-level languages. Java is a high-level language as the translation of Java code takes place into machine language, using a compiler or interpreter. C is only compiled and not interpreted. Java is both compiled and interpreted.

What should every programmer know about C programming?

The most important highlights of the discussion were the five basic things every programmer should know about C programming — operators, variable types, debugging, standard libraries, and the limitations of C in detecting errors in code.

What are the technologies required for a C++ developer?

C++ developer have to grok std and boost libraries. List of other technologies largely depends on project type. For sure you will have some interaction with SO, so you will need to know API of your environment. As for data-access and other stuffs there are tons for different solutions.

What technologies do you need to learn to become a programmer?

Most of the programming jobs where I live require Java or .NET programmers and I have a fairly good idea of what technologies they require aside from the basic language. For example, a Java programmer might be required to know EJB, Servlets, Hibernate, Spring, and other technologies, libraries, and frameworks.

What is the best IDE for C++ programming?

For C, C++, and C# programmer, the choice is clear: Visual Studio. And for Python developers, Jupiter Notebook is getting better and better every day. For Java programmers, there are three major IDEs to choose: Eclipse, NetBeans, and IntelliJ.


1 Answers

As for every language, I believe there are three interconnected levels of knowledge :

  1. Master your language. Every programmer should (do what it takes to) master the syntax. Good references to achieve this are :
    • The C++ Programming Language by Bjarne Stroustrup.
    • Effective C++ series by Scott Meyers.
  2. Know your libraries extensively.
    • STL is definitely a must as it has been included in the C++ Standard Library, so knowing it is very close to point 1 : you have to master it.
    • Knowing boost can be very interesting, as a multi-platform and generic library.
    • Know the libraries you are supposed to work with, whether it is Win32 API, OCCI, XPCOM or UNO (just a few examples here). No need to know a database library if you develop purely graphic components...
  3. Develop your knowledge of patterns. Cannot avoid Design Patterns: Elements of Reusable Object-Oriented Software here...


So, my answer to your updated question would be : know your language, know your platform, know your domain. I think there is enough work by itself here, especially in C++. It's an evergoing work that should never be overlooked.
like image 172
Mac Avatar answered Sep 21 '22 16:09

Mac