I want to learn C++ to make audio plugins with the Juce framework...

I want to learn C++ to make audio plugins with the Juce framework, but I read that it's a difficult language for someone like me who has no prior coding experience of any kind (except perhaps MaxMSP for what it's worth), so I was thinking of learning another easier language first to get my feet wet and learn the basic principles that I'll be using in C++, and then switch to C++.

So what's an easy first language that will allow me to transition well to C++?

Pic related are the two that I've been considering. Python because it seems to be the easiest and Java because my brother happens to be learning it and he could help me a bit, but I'll consider any other language as long as it's similar to how C++ works.

Attached: C++.png (836x854, 82K)

it's not even that hard to learn. it will be harder if you learn python and then move to c++ because the philosophy of each language is so different from the other, if you have no experience it's way easier to start in c++ than it is to learn python and then move to c++

the only acceptable gateway drug into c++ is c, not even java is a good intro to c++ because of their fundamental differences (java is comparable to c#, not to c++)

That's what I initially guessed, but a lot of forum posts I've been reading in the past few days suggest learning something easier first because apparently C++ requires a lot of knowledge to work correctly while other languages like Python allow you to get to coding much more easily without having to learn a ton of stuff.

to explain, the way you think about your program in python is fundamentally different from the way you think about it in c++
python is a language "for people" so you think about code the way you would explain that code to a person. c++ is a language for the computer. it's very formal

python's philosophy is that you should make the computer do more work as long as it makes the problem more intuitive to solve. c++'s philosphy is that you should have the programmer do more work as long as the computer does less work and performs better

you cannot learn python and move on to c++ expecting to have an easier time.

on the other hand, c++'s difficulty is vastly overrated, it's not a hard language to learn

if you're still intimidated by c++ (you shouldn't) then C should serve as a gentle introduction
if you're learning C first i recommend this book but don't feel like you cannot dive right into c++

Attached: index.jpg (220x270, 7K)

I see...
So should I just start with C++ or with an easy language that has the same philosophy as C++?
If the latter, then which language?

Python

I'll keep it in mind, thank you.

That would be C. One may even consider C++ a superset of C, as C syntax will compile in a C++ file (in general, though you may needs some tricks to make it work from time to time)

I read that some people don't suggest starting with C because it might be confusing when switching to C++ and some even end up using some kind of "hybrid". Is this true?

I'm not aware of that being a commonly held opinion. Here's something I found on learning C++ by Bjarne Stroustrup

Attached: bjarne c++.png (1389x875, 397K)

I've found that some students are happy when they learning Ruby and then C++. It starts you on the OOP path (moreso than Python in my opinion) but it's a very forgiving, dynamically typed language. Then you move to C++, which is statically typed, and learn about things like memory and a more robust encapsulation system. The general schema you'll learn in one language will be very applicable in the other, and early cross-pollination will prevent you from developing a dogmatic attachment to a particular environment.

I see, thank you.

Thanks, I'll look into it.

Alright, I've decided on starting with C++.
Thank you all very much for the input.
I learn new concepts much better by watching instead of reading, so is there a good video tutorial you'd suggest to get me started before I go with books?

bump

this but replace C++ with C

C# was my first language without prior programming experience (save for a few logic games like Human Resource Machine) and I thought it was rather easy. Though I did learn in tandem with a game engine which is kinda cheating

>Though I did learn in tandem with a game engine which is kinda cheating
Why is it cheating if I may ask?

I've always heard it compared to racing, would you want to so that without an engine? I guess it just really clicked getting to Ctrl+s then hit a play button and break-test almost every line in seconds and see your work come to life. I actually have very little experience programming outside of Unity so I don't know for sure if it's harder, just seams so to me

>but I read that it's a difficult language for someone like me who has no prior coding experience of any kind
It is. It's complex, gotcha-laden, and requires you to have a pretty good understanding of the technical minutiae or it will explode on you all the time. The gotchas in particular are a challenge for a beginner; it takes considerably longer than in most other languages until you properly understand what went wrong after a mistake (because there is a pretty large collection of subtle ways to fuck up that you couldn't reasonably have known until someone explains the gotcha).

That doesn't mean it can be done though. It's a bigger hurdle than most, yes; but not THAT much bigger, and it is regularly used as in introductory language.

>Pic related are the two that I've been considering.
Both are excellent choices.

So let's say it's a year from now* and there are two versions of me (one who started with an easier language and one who went straight with C++).
Which one will be in a better situation?
Please notice that I don't want to get employed as a programmer. I just want to make audio plugins for myself that do things that Max can't, to use them in my music, so I don't really need to be a great expert of the language.

*replace the 1 year with any reasonable amount of time in case this one isn't.

>Which one will be in a better situation?
For general-purpose programming in general, it doesn't matter much either way. Python and java and friends will give you a gentler first couple of months, but the end result is much the same.

For Juce specifically, I think plugins need to be written in C++, and you have no choice in the matter, so it's your C++ skill that counts rather than generalities; so if that's what you're aiming for, bothering with other languages sounds like a waste of time. Doing python first won't make you any better at C++; at best it will keep you interested more easily, but no more than that.

Got it, thank you very much.

Do you have book recommendation for C++?

test

Bump for tutorial suggestions

>Programming: Principles and Practice Using C++
This is the only book I know for the truly beginner to the language. I already knew to program before learning C++ so after reading a primer I jumped into more intermediate level books.

>Effective Modern C++ (very difficult book, very good)
>From Mathematics to Generic Programming
>Modern C++ Design: Generic Programming and Design Patterns Applied
very tedious book, boring, but good

>The C++ Programming Language
reference book, don't even try reading it from cover to cover

>Object Thinking
not C++ but still very relevant

Making audio plugins/vsts/etc sounds cool but I feel like I'm too brainlet and mathlet for it

Bump

You learn by taking small steps.
Start with Max/MSP (especially if you use Ableton, since you can make plugins to use inside the DAW through MaxForLive), which is super easy, then move on to programming them with proper code.

Wow, thank you

How long would it take for an average person to go from zero programming experience to being able to make VSTs in JUCE?

You should start with C++ because your goal to make plugins will give you motivation and that is most important.

I don't know anything about c++ but udemy is generally good for tutorials. Make sure to wait for a sale when everything is $10 or near that

Aren't those known for being amateurish?
How do you distinguish the good from the bad ones?

A couple hours.

Cool, thank you!
I've almost finished making my first serum clone.

>C++
don't fall for that pajeet langauge.

Attached: cat++.png (200x209, 34K)

>but I read that it's a difficult language for someone like me who has no prior coding experience of any kind (except perhaps MaxMSP for what it's worth), so I was thinking of learning another easier language first to get my feet wet and learn the basic principles that I'll be using in C++, and then switch to C++.

No, it's not and it's retarded to learn something else.

Could you please elaborate?

Lynda is free with some library cards.

everything that makes C++ different from C is useless and shitty(ie. exception handling, OOP shit). If you need a low level performant language then just use C otherwise use something else.