Blueprints are a graphical version of code. The nodes there represent functions that are made in c++. You can make new ones with your own c++ code. So that’s one of the big differences.
You can make many things, maybe even a complete game only with blueprints, but at some points, you will find out, that something doesnt exist or work with Blueprints only and you need to write something in code, because you can do much more with c++.
Even more than you would need to. If you want to start with c++, you can watch the Youtube Tutorials from Epic Games on c++. I guess you need a basic understanding of coding. I would recommend to learn the easiest things first if you can’t code at all. There must be c++ tutorials in general on Youtube to start with and switch to Unreal later.
Some people also say, that Blueprints are slower than c++, but this only accures in really big projects. And if you come to a point where this happens, you can still switch to c++ because they work together.
I think the best thing is to use both. Write function in c++ and make them BlueprintCallable is one of the greatest features. (: