(Re)learning to program [C++, C# or Rust]?

Good evening,

I already have some experience in programming, mainly C# and C++, although I'm a bit rusty in both (probably a bit more skilled in C++, but generally an amateur).

Now I'd like to get back into it, but I'm not sure which language I want to focus on. I think it's definitely a good idea to focus on just one language for now. Besides, my previous knowledge doesn't really play a role in the selection, and potential job prospects (how frequently the language is used in business) are at least somewhat secondary.

I'm pretty unsure, especially because I don't really know what I want to program (not even the general direction).

On the one hand, I think C# is easy to learn; you achieve success quickly and can develop desktop software well, but it is a bit slower and you probably learn less about the inner workings of the PC.

I generally quite like C++, at least from the relatively limited experience I've had with it. It's performant, you learn a lot about the deeper concepts, and it's good for embedded development (I still have a few STM32s with which I already have some experience in combination with C++ and which I might want to do something with in the future). On the other hand, a lot of things in C++ seem to be a pain, and few people like it.

Rust often receives high praise, and it sounds really interesting to me. However, I'm still unsure because I don't really know the use cases, and the language isn't really OOP (as far as I know). Embedded programming is possible, but I think the support, especially for beginners, is much better in C++.

In short: I'm clueless and would appreciate some more experienced programmers helping me make my choice. Other suggestions are also welcome, of course (although I'm less interested in Python).

Thank you in advance!

(1 votes)
Loading...

Similar Posts

Subscribe
Notify of
4 Answers
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
FaTech
1 year ago

On the one hand, I think C# is easy to learn, you have quick successes and can develop desktop software, a little slower and you learn more about the internal processes of the PC.

C# itself is less suitable in depth, but it is well suited for the safe learning of a programming language. Unlike some deep language (such as C++), C# provides security that is just useful as a beginner. Slow is relative. In C# you can use pointers, chips and other ways to make your application quite fast. It will not reach the speed of C++, but you can get a lot out of C#.

I generally like C++, at least from the relatively manageable experiences I had with it. It’s performant, you learn a lot about the deeper relationships and it’s good for embedded development (I still have a few STM32 with which I already have some experience in combination with C++ and with which I might want to do something in the future). That seems to be a lot in C++ and few like it.

C++ is a heavy language, can do much for it. The transition from C# to C++ is not even so difficult. With C++, you really have to consider extremely much while all this in C# is removed from the GC (for example). I don’t know your strengths, but if you say you’ve been out for a long time and you want to learn a lot, then C# sounds for a better choice, with a later transition to C++.

Rust is often highly praised and it sounds really interesting for me. Nevertheless, I am uncertain because I do not really know the use cases, the language is not really OOP (as far as I know), embedded is possible, but I think that the support, especially for beginners, in C++ is much better.

It’s the opposite. While C++ can be very unsure and thus “prone”, Rust already offers built-in mechanisms that allow beginners to write a secure code. You must not always assume that a language that looks simple is also simple. There is much more to consider. If I had to choose between C++ and Rust for a beginner, I would probably recommend Rust.

Again summarized:C# is a great language. It can do much what C++ can and you can gain a lot of understanding. You can also learn to understand the RAM (heap, stack, pointer, …). C# is very powerful. It is sometimes possible to compile C# natively. This makes the program even faster. Since I read out that you seem to be very interested in C++, I can really recommend C# (but not only the basics, but also the deeper things). If you’ve learned this, you’ll have it much easier when you get into C++ and the path of learning also happens safer, as C++ hides dangers at many places that you have to solve yourself while C# takes away all this.

This is my opinion and experience. Other opinions may vary, of course.

FaTech
1 year ago
Reply to  AOMkayyy

C# can be used in any ide or editor. Even in Windows notepad. The compiler is available as cmd tool.

Yeah, C# doesn’t like it, but it’s about learning. If you can C#, the transition to C++ is much easier and you already have the most knowledge. Going around always goes.

Visual Studio is not a problem. There are also raiders from Jet Brains, Visual Studio Code, notepad++, and many more