Advice for future learning

Hello guys.I am finishing my second term at university and I hope to get some advice for the future.I want to learn something besides what I have learned at university but I am afraid to start learning too many topics.By now I have learned a lot from C++(OOP concepts),data structures,SQL,also after learning c++ it was a lot easier for me to learn C# and java(we had subject that included this to languages).I know there is much more out there to learn and by now I did now make some more complex applications,usually I was making Console applications.Is it better to focus on one language to master it or learning more things at once is a better option.Every advice would be applicable.Thanks in advance.

I think it's important to know what you want to do and why you want to learn. Are you learning for fun or so you have the knowledge for when you look for work? Find what you it is you think you want to code, do a little research, and then delve into it.

If you want to learn multiple languages, one at a time is usually the best approach. You might end up confusing yourself with syntax otherwise. Think of it as trying to memorize a script for two different characters.
@zapshe's right, one language at a time is important. The syntax is too similar. I've known C++ for decades, but when I work in C# for a week, I have to reorient myself a little.

It is good, IMO, to learn C++ first (C second), then the other languages. My experience is that those who learned C# or Java first tend to think C++ is too complicated and reject it early at their own loss.

When you say "some more complex applications", are those GUI? I'd suggest a tour of Qt and WxWidgets. My own preference is WxWidgets, but Qt is well known (and has an almost fanatical following). The reason I suggest it is that these are the two main (an best) OS independent GUI frameworks for C++. WxWidgets is a bit more native (Qt draws many of it's controls), and both tend to try to do more than they should. WxWidgets, for example, has some support for TCP/IP communications, but it is by far better to use Boost's asio.

When you can write a custom control (say, display graphics), you can then try plotting mathematical formulae. It is interesting to visualize some of the old basics you already know.

The rest is not intended as a collection of all to study. Like you said, don't go for too much at once, so each of these are alternatives.

You may want to tour 3D graphics. Take some caution here. There are multiple API's out there, and all but DX12, Vulkan and Metal (Apple) are old style. It can be interesting to write to one of these API's, but ultimately no one in the industry making games does that unless they're also making game engines (which is one reason the study of these API's is informative). It is a long study.

It can be better to use a rendering or game engine. Many are fair, some are awful. Orge3D, for example, is well known and quite good. It is a rendering engine, not a game engine, making it suitable for 3D visualization of scientific data.

An alternative to anything 3D is audio. There can be quite an interesting bit of enjoyment from learning how to build a reverb effect, for example.

Another task I've enjoyed is making plugins. As a student you can get licenses for all AutoDesk products, download their SDK, and build addon plugins for their products, like 3DS Max and Maya. It is an interesting path. It gives you the flavor of working with a team on advanced products.


Last edited on
To be honest, @Zivojin, if you've finished your second term (semester?) at University it might be worth seeking an internship to see what the real world wants.

I'm going to slightly disagree with others: I think it is useful to see a range of computing languages -and I'd suggest some slightly more distinct from C++ than C# or Java. Python maybe? You may actually get to understand basic programming concepts better if you are not tied to a single language. As an analogy, I actually began to appreciate English grammar rather better once I was compelled to learn French and (not very successfully) German.
Topic archived. No new replies allowed.