First of all Hi Everyone, I'm New to Rust. I'm Currently Learning C# and Bought a Rust Language Book.

I've been learning C# for a while and I've been learning Basic and Discrete Math for a few days at the same time.

The language I want to learn is C first and then Rust.

I Have A Question For You Should I Learn Rust or C After I Finish Basic and Discrete Mathematics? or Should I Learn Mathematics and C at the Same Time?

Let me give an example:

16 April 08.00 - Basic & Discrete Mathematics
16 April 15.00 - C Programming Language
16 April 18.00 - Basic & Discrete Mathematics

Or

16 April 08.00 - Basic & Discrete Mathematics
16 April 20.00 - Basic & Discrete Mathematics
.....

20 June 08:00 - Basic & Discrete Mathematics Lesson (Finished)
21 June 08.00 - C Programming Language Training (Started)

I'd say that is very much dependent on your personal learning style. Whatever makes you feel comfortable and most importantly motivated will be the right kind of learning strategy for you.

That being said, I personally would learn both at the same time. Programming has definitely helped me get a better grasp of mathematics and vice versa. Also just staring at algebraic structures and modular arithmetic all day would get too boring for me.

Well, kinda. I was a really bad math student in school. When I decided to study CS and people were telling me I'd have to know a lot of math I got scared straight and learned my ass off during my first two semesters at uni. Turns out that math can be really fun and interesting when you are willing to put in the effort and try to understand the meaning behind it, not just how to apply the mechanics. Unlike you (I guess) I had great teachers, so I didn't have to do a lot of self-teaching mathematics to myself.

Mmm... Back in the day between school and University I spent 3 years attending a technical college where we studied Mathematics, Physics and Computer Science. The latter starting off with BASIC and quickly moving on to assembly language.

So yes, one can learn a programming language or two, as a complete beginner to programming, and Maths at the same time.

But that was full time study and after the usual high school maths.

It all rather depends on what your circumstances are. Is this part of full time study in some kind of school or self learning? Or are you working and doing other things while doing this? How much time do you have to put into it?

Personally I would suggest learning only one language at a time. If you have easy access to a C course then start with that.

Of course Mathematics is a gigantic subject. One cannot *learn math" in it's entirety like one can learn all the features of a programming language. If you attempt that you will be at it all your life...!

I feel like deeper math knowledge is not necessary for getting into programming. It may come in helpful when doing more complex stuff such as graph theory, encryption or communication protocols (error correction, etc.), etc.

When you get into the theoretic aspects of Rust's type system (see also Type Theory), I feel like math knowledge can be helpful as well. But I don't think this is usually needed for the average programmer.

Programming language design seems to be steeped in, or informed by, math. Back in the day when C++ Standard Template Library (STL) was quite knew I remember seeing a theoretical manual for it that was heavily mathematical. It looked very intimidating. STL turned out to be easier to use than understand, especially if you started with it gently.

Even a more English-readable (compared to C-family) language, such as Eiffel, has what they call "science" behind it.

I'm EE, not CS/CE. In my school (I believe this is true in general as well) EEs were subjected to a lot more math courses.

In my experience math has never been important in a general sense. Stuff like FFT/DSP or transform matrices often ARE useful but only in specific applications, and I don't think its worthwhile to delve into these subjects in a preemptive way for sake of programming. The type of thinking skill used in programming is better practiced through programming, rather than through math, imho.

C is a very good language to learn that will give you insights about how computers work. Rust is known to be a difficult language to learn. I think learning C before Rust is a good idea.

I came to appreciate mathematics via computer graphics. I learned to program, then started making programs that made pictures, and learned mathematics that I needed to understand how to get the results I wanted, or why I got the results I did. Then later when I was taking actual mathematics classes, my graphics background gave me familiarity with, and ways to visualize, the concepts and equations we were working with.

If someone wanted to pursue this path today, I would recommend starting with JavaScript 2D <canvas> drawing and messing around with it. (There's plenty of reasons to disrecommend JavaScript, but they aren't severe in the context of the sort of programs one would be writing, and the quick turnaround and opportunity for easy interactivity are valuable.)

One does not require the other. You can treat them as completely separate subjects.

Although discrete math and basic programming concepts overlap, programming languages and classic math approach them quite differently to the point you need to relearn them from each perspective.

Most responses cover what I wanted to share. I would only like to emphasize that it also depends on what kind of applications or system you will develop. The higher the level, the less math you might need.

I would also love to suggest basic discrete mathematics, might be useful if you have to throw something into the mix.