Hi everyone
What libraries should be used after you have finished learning all the concepts ?
I know most people will say boost and stl but I want labaries which allow you to develop software(multimedia libraries)
STL is an ancient library, most of which is now part of the C++ Standard Library (aka, already part of your compiler). Boost however is excellent and you should definitely use it.
I'm a big fan of wxwidgets, cURL, SDL, portaudio, and of course openGL
SDL is a great way to get started with multimedia similar to SFML, cURL gets you relevant to today's web of things, portaudio is fun to play with to add sounds to stuff, wxWidgets makes it easy to make quick interfaces, and openGL is a veritable behemoth in the next level of graphics processing.
Boost is grand, and there are tons of components that can help you in most of your projects.
Honestly for me the best step I took to move out of the kiddie pool was tackling some large programming jobs for work, seeing your work come to fruition and learning how to apply a harmony to the libraries and code you create is delightful on the dreariest of days.
Programmers are used for creating software. C++ is used for creating software. Keyboards are used for creating software. Lots of things are used for creating software. SFML and Qt are just examples I am familiar with.
STL is its own separate thing that directly inspired the design of the C++ Standard Library. Boost is doing the same now with modern C++.
Which is better SDL or SFML ?
Or are they dependent on the situation a programmers given ?
Also do major companies use these libraries such as sfml of QT or they create there own according to their choice ?
Meh, I've used both, both do the job they're designed to do, act as a medium for media.
I know a couple major companies that don't care if their developers use QT. The company I work for lets me program with whatever I want as long as the program performs to spec.
Honestly the best thing you can do is start with anything and learn to learn libraries, as you progress it's less about being really good and knowing everything about an individual library, and more about being able to use a library you've never heard of before for a project you're working on today.
One important thing to keep in mind with libraries are their licenses, are they GNU? Can you make commercial software with them? Will it cost you or your company money if you decide to go commercial? Questions like these are the questions a person who runs a company will be interested in- they won't care if you use library A or library B, they just want a product.
If you want to sell your program (charge people money to use it), some libraries allow this by default whereas others do no allow this unless you get permission or pay royalties or buy a license, etc.
If your application is free, the only time a license comes into play is if you distribute the library with your source code or if you distribute the binaries (compiled version of the library) with your compiled application. If you don't need to do that, then you usually don't need to worry about the license. However most of the time you will be distributing the compiled binaries with your application which means you need to follow the license terms.