What is the most advanced and difficult programming concept to understand?
Programming concepts
pointers
Wrong.
Callbacks.
Parallel Programming
I've been told this is something that even graduate students struggle with.
The lambda calculus.
Recursion
Goto
Wrong.
Closures.
closures are inner functions where you have access to variables from the outer function
think about this:
const prefix = '!';
client.on('message', message => {
if (!message.content.startswith(prefix)) return;
});
where in the message event/lambda function is prefix declared? nowhere, but it has access to the variable because it was defined outside of it
partialy defined functions
Made software for real world over overcomplex autism solutions.
Monad
It's OOP. And I'm not talking about a Java project with 3 classes, I'm talking about enterprise software with 1000+ classes.
>the most advanced and difficult programming concept to understand
avoiding bloated software
Monads are just pointed functors that can flatten. There's not much to them.
Recursion
If you think recursion is hard
Give recursion with an anonymous function a try
This, unironically, Most programming concepts are easy and intuitive, it's dealing with a shit ton of APIs that can be almost unfathomable, especially with deeply inherited classes.
Coroutines.
The ability to shift the burden of complexity from classes -> code, and objects -> stack, is mind-boggling. But it's also incredibly simple once you wrap your mind around it.
Just add some framework that will parse everything from xml file and annotations. That will make everything simple.
hahahahahahahaha
Code design :)
CIA niggers on Jow Forums will tell you that either OOP or Functional programming is the one true solution to everything. But really it's neither. It's a mix of the two. It's _knowing_ how to use aspects in functional programming in OOP. Stateless, unit testable, class methods. Separation of concerns in classes. Do one thing do it well. Facades, interfaces, strongly typed